Это ошибка в защите oop от JSBin.
При использовании этого кода ( ссылка JSBin ):
let myTodos = {
day: "Monday",
meetings: 0,
meetDone: 0,
}
let addMeeting = function(todo, meet = 0) {
todo.meetings = todo.meetings + meet;
}
let meetDone = function (todo, meet = 0) {
todo.meetDone = todo.meetDone - meet;
}
let resetDay = function (todo) {
todo.meetings = 0;
todo.meetDone = 0;
}
let getSummaryOfDay = function (todo) {
let meetleft = todo.meetings + todo.meetDone;
return `You have ${meetleft} meetings for today.!`;
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
console.log(getSummaryOfDay(myTodos));
console.log (myTodos);
JSBin создает следующий документ, который будет выполнен:
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width\">
<title>JS Bin</title>
<style id=\"jsbin-css\">
</style>
</head>
<body>
<script>try {let myTodos = {
day: \"Monday\",
meetings: 0,
meetDone: 0,
}
let addMeeting = function(todo, meet = 0) {
todo.meetings = todo.meetings + meet;
}
let meetDone = function (todo, meet = 0) {
todo.meetDone = todo.meetDone - meet;
}
let resetDay = function (todo) {
todo.meetings = 0;
todo.meetDone = 0;
}
let getSummaryOfDay = function (todo) {
let meetleft = todo.meetings + todo.meetDone;
{
if (window.runnerWindow.protect.prote{;window.runnerWindow.protect.protect({ line: 23, reset: true }); ct({ line: 23 })) break;
return `You have ${meetleft} meetings for today.!`;
}}
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
window.runnerWindow.proxyConsole.log(getSummaryOfDay(myTodos));
window.runnerWindow.proxyConsole.log (myTodos);
} catch (error) { throw error; }
//# sourceURL=xibavicide.js
</script>
</body>
</html>
Обратите внимание, как литерал шаблона включен в код защиты, и теперь он не синтаксически корректен.
Предположительно, защита чтобы остановить бесконечные циклы.
Если вы просто удалите for
( JSBin link ), то защита не будет активирована, а полученный документ синтаксически корректен:
<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width\">
<title>JS Bin</title>
<style id=\"jsbin-css\">
</style>
</head>
<body>
<script>try {let myTodos = {
day: \"Monday\",
meetings: 0,
meetDone: 0,
}
let addMeeting = function(todo, meet = 0) {
todo.meetings = todo.meetings + meet;
}
let meetDone = function (todo, meet = 0) {
todo.meetDone = todo.meetDone - meet;
}
let resetDay = function (todo) {
todo.meetings = 0;
todo.meetDone = 0;
}
let getSummaryOfDay = function (todo) {
let meetleft = todo.meetings + todo.meetDone;
return `You have ${meetleft} meetings today.!`;
}
addMeeting(myTodos, 4);
addMeeting(myTodos, 2);
meetDone(myTodos, 5);
window.runnerWindow.proxyConsole.log(getSummaryOfDay(myTodos));
window.runnerWindow.proxyConsole.log (myTodos);
} catch (error) { throw error; }
//# sourceURL=roqosiyasa.js
</script>
</body>
</html>
Вы можете использовать обходной путь, предложенный в ошибке - добавление комментария // noprotect
в любом месте области JavaScript остановит защиту l oop от срабатывания. JSBin ссылка