Tests to ensure that we can use ES reserved words as property names.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS var true; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS (function(){var true; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS var true = 42; true === 42 threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS (function(){var true = 42; true === 42}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS function g(true){  }; true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS (function(){function g(true){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS /true/.test(function g(true){  }) threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS (function(){/true/.test(function g(true){  })}); true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS try{}catch(true){}; true threw exception SyntaxError: Cannot use the keyword 'true' as a catch parameter name..
PASS (function(){try{}catch(true){}; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a catch parameter name..
PASS function true(){  }; true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
PASS (function(){function true(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
PASS ({ "true": 42 }.true === 42) is true
PASS (function(){({ "true": 42 }.true === 42)}); true is true
PASS ({ true: 42 }.true === 42) is true
PASS (function(){({ true: 42 }.true === 42)}); true is true
PASS ({ get true(){}, set true(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get true(){}, set true(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var true; true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS (function(){"use strict";var true; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS "use strict";var true = 42; true === 42 threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS (function(){"use strict";var true = 42; true === 42}); true threw exception SyntaxError: Cannot use the keyword 'true' as a variable name..
PASS "use strict";function g(true){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS (function(){"use strict";function g(true){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS "use strict";/true/.test(function g(true){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS (function(){"use strict";/true/.test(function g(true){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'true' as a parameter name..
PASS "use strict";try{}catch(true){}; true threw exception SyntaxError: Cannot use the keyword 'true' as a catch parameter name..
PASS (function(){"use strict";try{}catch(true){}; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a catch parameter name..
PASS "use strict";function true(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
PASS (function(){"use strict";function true(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'true' as a function name..
PASS "use strict";({ "true": 42 }.true === 42) is true
PASS (function(){"use strict";({ "true": 42 }.true === 42)}); true is true
PASS "use strict";({ true: 42 }.true === 42) is true
PASS (function(){"use strict";({ true: 42 }.true === 42)}); true is true
PASS "use strict";({ get true(){}, set true(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get true(){}, set true(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var false; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS (function(){var false; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS var false = 42; false === 42 threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS (function(){var false = 42; false === 42}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS function g(false){  }; true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS (function(){function g(false){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS /false/.test(function g(false){  }) threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS (function(){/false/.test(function g(false){  })}); true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS try{}catch(false){}; true threw exception SyntaxError: Cannot use the keyword 'false' as a catch parameter name..
PASS (function(){try{}catch(false){}; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a catch parameter name..
PASS function false(){  }; true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
PASS (function(){function false(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
PASS ({ "false": 42 }.false === 42) is true
PASS (function(){({ "false": 42 }.false === 42)}); true is true
PASS ({ false: 42 }.false === 42) is true
PASS (function(){({ false: 42 }.false === 42)}); true is true
PASS ({ get false(){}, set false(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get false(){}, set false(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var false; true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS (function(){"use strict";var false; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS "use strict";var false = 42; false === 42 threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS (function(){"use strict";var false = 42; false === 42}); true threw exception SyntaxError: Cannot use the keyword 'false' as a variable name..
PASS "use strict";function g(false){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS (function(){"use strict";function g(false){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS "use strict";/false/.test(function g(false){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS (function(){"use strict";/false/.test(function g(false){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'false' as a parameter name..
PASS "use strict";try{}catch(false){}; true threw exception SyntaxError: Cannot use the keyword 'false' as a catch parameter name..
PASS (function(){"use strict";try{}catch(false){}; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a catch parameter name..
PASS "use strict";function false(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
PASS (function(){"use strict";function false(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'false' as a function name..
PASS "use strict";({ "false": 42 }.false === 42) is true
PASS (function(){"use strict";({ "false": 42 }.false === 42)}); true is true
PASS "use strict";({ false: 42 }.false === 42) is true
PASS (function(){"use strict";({ false: 42 }.false === 42)}); true is true
PASS "use strict";({ get false(){}, set false(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get false(){}, set false(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var null; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS (function(){var null; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS var null = 42; null === 42 threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS (function(){var null = 42; null === 42}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS function g(null){  }; true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS (function(){function g(null){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS /null/.test(function g(null){  }) threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS (function(){/null/.test(function g(null){  })}); true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS try{}catch(null){}; true threw exception SyntaxError: Cannot use the keyword 'null' as a catch parameter name..
PASS (function(){try{}catch(null){}; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a catch parameter name..
PASS function null(){  }; true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
PASS (function(){function null(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
PASS ({ "null": 42 }.null === 42) is true
PASS (function(){({ "null": 42 }.null === 42)}); true is true
PASS ({ null: 42 }.null === 42) is true
PASS (function(){({ null: 42 }.null === 42)}); true is true
PASS ({ get null(){}, set null(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get null(){}, set null(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var null; true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS (function(){"use strict";var null; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS "use strict";var null = 42; null === 42 threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS (function(){"use strict";var null = 42; null === 42}); true threw exception SyntaxError: Cannot use the keyword 'null' as a variable name..
PASS "use strict";function g(null){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS (function(){"use strict";function g(null){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS "use strict";/null/.test(function g(null){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS (function(){"use strict";/null/.test(function g(null){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'null' as a parameter name..
PASS "use strict";try{}catch(null){}; true threw exception SyntaxError: Cannot use the keyword 'null' as a catch parameter name..
PASS (function(){"use strict";try{}catch(null){}; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a catch parameter name..
PASS "use strict";function null(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
PASS (function(){"use strict";function null(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'null' as a function name..
PASS "use strict";({ "null": 42 }.null === 42) is true
PASS (function(){"use strict";({ "null": 42 }.null === 42)}); true is true
PASS "use strict";({ null: 42 }.null === 42) is true
PASS (function(){"use strict";({ null: 42 }.null === 42)}); true is true
PASS "use strict";({ get null(){}, set null(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get null(){}, set null(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var break; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS (function(){var break; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS var break = 42; break === 42 threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS (function(){var break = 42; break === 42}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS function g(break){  }; true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS (function(){function g(break){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS /break/.test(function g(break){  }) threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS (function(){/break/.test(function g(break){  })}); true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS try{}catch(break){}; true threw exception SyntaxError: Cannot use the keyword 'break' as a catch parameter name..
PASS (function(){try{}catch(break){}; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a catch parameter name..
PASS function break(){  }; true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
PASS (function(){function break(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
PASS ({ "break": 42 }.break === 42) is true
PASS (function(){({ "break": 42 }.break === 42)}); true is true
PASS ({ break: 42 }.break === 42) is true
PASS (function(){({ break: 42 }.break === 42)}); true is true
PASS ({ get break(){}, set break(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get break(){}, set break(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var break; true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS (function(){"use strict";var break; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS "use strict";var break = 42; break === 42 threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS (function(){"use strict";var break = 42; break === 42}); true threw exception SyntaxError: Cannot use the keyword 'break' as a variable name..
PASS "use strict";function g(break){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS (function(){"use strict";function g(break){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS "use strict";/break/.test(function g(break){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS (function(){"use strict";/break/.test(function g(break){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'break' as a parameter name..
PASS "use strict";try{}catch(break){}; true threw exception SyntaxError: Cannot use the keyword 'break' as a catch parameter name..
PASS (function(){"use strict";try{}catch(break){}; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a catch parameter name..
PASS "use strict";function break(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
PASS (function(){"use strict";function break(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'break' as a function name..
PASS "use strict";({ "break": 42 }.break === 42) is true
PASS (function(){"use strict";({ "break": 42 }.break === 42)}); true is true
PASS "use strict";({ break: 42 }.break === 42) is true
PASS (function(){"use strict";({ break: 42 }.break === 42)}); true is true
PASS "use strict";({ get break(){}, set break(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get break(){}, set break(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var case; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS (function(){var case; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS var case = 42; case === 42 threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS (function(){var case = 42; case === 42}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS function g(case){  }; true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS (function(){function g(case){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS /case/.test(function g(case){  }) threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS (function(){/case/.test(function g(case){  })}); true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS try{}catch(case){}; true threw exception SyntaxError: Cannot use the keyword 'case' as a catch parameter name..
PASS (function(){try{}catch(case){}; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a catch parameter name..
PASS function case(){  }; true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
PASS (function(){function case(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
PASS ({ "case": 42 }.case === 42) is true
PASS (function(){({ "case": 42 }.case === 42)}); true is true
PASS ({ case: 42 }.case === 42) is true
PASS (function(){({ case: 42 }.case === 42)}); true is true
PASS ({ get case(){}, set case(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get case(){}, set case(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var case; true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS (function(){"use strict";var case; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS "use strict";var case = 42; case === 42 threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS (function(){"use strict";var case = 42; case === 42}); true threw exception SyntaxError: Cannot use the keyword 'case' as a variable name..
PASS "use strict";function g(case){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS (function(){"use strict";function g(case){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS "use strict";/case/.test(function g(case){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS (function(){"use strict";/case/.test(function g(case){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'case' as a parameter name..
PASS "use strict";try{}catch(case){}; true threw exception SyntaxError: Cannot use the keyword 'case' as a catch parameter name..
PASS (function(){"use strict";try{}catch(case){}; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a catch parameter name..
PASS "use strict";function case(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
PASS (function(){"use strict";function case(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'case' as a function name..
PASS "use strict";({ "case": 42 }.case === 42) is true
PASS (function(){"use strict";({ "case": 42 }.case === 42)}); true is true
PASS "use strict";({ case: 42 }.case === 42) is true
PASS (function(){"use strict";({ case: 42 }.case === 42)}); true is true
PASS "use strict";({ get case(){}, set case(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get case(){}, set case(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var catch; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS (function(){var catch; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS var catch = 42; catch === 42 threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS (function(){var catch = 42; catch === 42}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS function g(catch){  }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS (function(){function g(catch){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS /catch/.test(function g(catch){  }) threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS (function(){/catch/.test(function g(catch){  })}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS try{}catch(catch){}; true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch parameter name..
PASS (function(){try{}catch(catch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch parameter name..
PASS function catch(){  }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
PASS (function(){function catch(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
PASS ({ "catch": 42 }.catch === 42) is true
PASS (function(){({ "catch": 42 }.catch === 42)}); true is true
PASS ({ catch: 42 }.catch === 42) is true
PASS (function(){({ catch: 42 }.catch === 42)}); true is true
PASS ({ get catch(){}, set catch(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get catch(){}, set catch(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var catch; true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS (function(){"use strict";var catch; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS "use strict";var catch = 42; catch === 42 threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS (function(){"use strict";var catch = 42; catch === 42}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a variable name..
PASS "use strict";function g(catch){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS (function(){"use strict";function g(catch){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS "use strict";/catch/.test(function g(catch){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS (function(){"use strict";/catch/.test(function g(catch){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a parameter name..
PASS "use strict";try{}catch(catch){}; true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch parameter name..
PASS (function(){"use strict";try{}catch(catch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a catch parameter name..
PASS "use strict";function catch(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
PASS (function(){"use strict";function catch(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'catch' as a function name..
PASS "use strict";({ "catch": 42 }.catch === 42) is true
PASS (function(){"use strict";({ "catch": 42 }.catch === 42)}); true is true
PASS "use strict";({ catch: 42 }.catch === 42) is true
PASS (function(){"use strict";({ catch: 42 }.catch === 42)}); true is true
PASS "use strict";({ get catch(){}, set catch(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get catch(){}, set catch(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var continue; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS (function(){var continue; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS var continue = 42; continue === 42 threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS (function(){var continue = 42; continue === 42}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS function g(continue){  }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS (function(){function g(continue){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS /continue/.test(function g(continue){  }) threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS (function(){/continue/.test(function g(continue){  })}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS try{}catch(continue){}; true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch parameter name..
PASS (function(){try{}catch(continue){}; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch parameter name..
PASS function continue(){  }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
PASS (function(){function continue(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
PASS ({ "continue": 42 }.continue === 42) is true
PASS (function(){({ "continue": 42 }.continue === 42)}); true is true
PASS ({ continue: 42 }.continue === 42) is true
PASS (function(){({ continue: 42 }.continue === 42)}); true is true
PASS ({ get continue(){}, set continue(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get continue(){}, set continue(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var continue; true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS (function(){"use strict";var continue; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS "use strict";var continue = 42; continue === 42 threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS (function(){"use strict";var continue = 42; continue === 42}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a variable name..
PASS "use strict";function g(continue){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS (function(){"use strict";function g(continue){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS "use strict";/continue/.test(function g(continue){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS (function(){"use strict";/continue/.test(function g(continue){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a parameter name..
PASS "use strict";try{}catch(continue){}; true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch parameter name..
PASS (function(){"use strict";try{}catch(continue){}; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a catch parameter name..
PASS "use strict";function continue(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
PASS (function(){"use strict";function continue(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'continue' as a function name..
PASS "use strict";({ "continue": 42 }.continue === 42) is true
PASS (function(){"use strict";({ "continue": 42 }.continue === 42)}); true is true
PASS "use strict";({ continue: 42 }.continue === 42) is true
PASS (function(){"use strict";({ continue: 42 }.continue === 42)}); true is true
PASS "use strict";({ get continue(){}, set continue(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get continue(){}, set continue(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var debugger; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS (function(){var debugger; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS var debugger = 42; debugger === 42 threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS (function(){var debugger = 42; debugger === 42}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS function g(debugger){  }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS (function(){function g(debugger){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS /debugger/.test(function g(debugger){  }) threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS (function(){/debugger/.test(function g(debugger){  })}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS try{}catch(debugger){}; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch parameter name..
PASS (function(){try{}catch(debugger){}; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch parameter name..
PASS function debugger(){  }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
PASS (function(){function debugger(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
PASS ({ "debugger": 42 }.debugger === 42) is true
PASS (function(){({ "debugger": 42 }.debugger === 42)}); true is true
PASS ({ debugger: 42 }.debugger === 42) is true
PASS (function(){({ debugger: 42 }.debugger === 42)}); true is true
PASS ({ get debugger(){}, set debugger(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get debugger(){}, set debugger(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var debugger; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS (function(){"use strict";var debugger; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS "use strict";var debugger = 42; debugger === 42 threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS (function(){"use strict";var debugger = 42; debugger === 42}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a variable name..
PASS "use strict";function g(debugger){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS (function(){"use strict";function g(debugger){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS "use strict";/debugger/.test(function g(debugger){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS (function(){"use strict";/debugger/.test(function g(debugger){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a parameter name..
PASS "use strict";try{}catch(debugger){}; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch parameter name..
PASS (function(){"use strict";try{}catch(debugger){}; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a catch parameter name..
PASS "use strict";function debugger(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
PASS (function(){"use strict";function debugger(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'debugger' as a function name..
PASS "use strict";({ "debugger": 42 }.debugger === 42) is true
PASS (function(){"use strict";({ "debugger": 42 }.debugger === 42)}); true is true
PASS "use strict";({ debugger: 42 }.debugger === 42) is true
PASS (function(){"use strict";({ debugger: 42 }.debugger === 42)}); true is true
PASS "use strict";({ get debugger(){}, set debugger(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get debugger(){}, set debugger(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var default; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS (function(){var default; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS var default = 42; default === 42 threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS (function(){var default = 42; default === 42}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS function g(default){  }; true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS (function(){function g(default){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS /default/.test(function g(default){  }) threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS (function(){/default/.test(function g(default){  })}); true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS try{}catch(default){}; true threw exception SyntaxError: Cannot use the keyword 'default' as a catch parameter name..
PASS (function(){try{}catch(default){}; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a catch parameter name..
PASS function default(){  }; true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
PASS (function(){function default(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
PASS ({ "default": 42 }.default === 42) is true
PASS (function(){({ "default": 42 }.default === 42)}); true is true
PASS ({ default: 42 }.default === 42) is true
PASS (function(){({ default: 42 }.default === 42)}); true is true
PASS ({ get default(){}, set default(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get default(){}, set default(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var default; true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS (function(){"use strict";var default; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS "use strict";var default = 42; default === 42 threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS (function(){"use strict";var default = 42; default === 42}); true threw exception SyntaxError: Cannot use the keyword 'default' as a variable name..
PASS "use strict";function g(default){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS (function(){"use strict";function g(default){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS "use strict";/default/.test(function g(default){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS (function(){"use strict";/default/.test(function g(default){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'default' as a parameter name..
PASS "use strict";try{}catch(default){}; true threw exception SyntaxError: Cannot use the keyword 'default' as a catch parameter name..
PASS (function(){"use strict";try{}catch(default){}; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a catch parameter name..
PASS "use strict";function default(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
PASS (function(){"use strict";function default(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'default' as a function name..
PASS "use strict";({ "default": 42 }.default === 42) is true
PASS (function(){"use strict";({ "default": 42 }.default === 42)}); true is true
PASS "use strict";({ default: 42 }.default === 42) is true
PASS (function(){"use strict";({ default: 42 }.default === 42)}); true is true
PASS "use strict";({ get default(){}, set default(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get default(){}, set default(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var delete; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS (function(){var delete; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS var delete = 42; delete === 42 threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS (function(){var delete = 42; delete === 42}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS function g(delete){  }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS (function(){function g(delete){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS /delete/.test(function g(delete){  }) threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS (function(){/delete/.test(function g(delete){  })}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS try{}catch(delete){}; true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch parameter name..
PASS (function(){try{}catch(delete){}; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch parameter name..
PASS function delete(){  }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
PASS (function(){function delete(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
PASS ({ "delete": 42 }.delete === 42) is true
PASS (function(){({ "delete": 42 }.delete === 42)}); true is true
PASS ({ delete: 42 }.delete === 42) is true
PASS (function(){({ delete: 42 }.delete === 42)}); true is true
PASS ({ get delete(){}, set delete(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get delete(){}, set delete(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var delete; true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS (function(){"use strict";var delete; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS "use strict";var delete = 42; delete === 42 threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS (function(){"use strict";var delete = 42; delete === 42}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a variable name..
PASS "use strict";function g(delete){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS (function(){"use strict";function g(delete){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS "use strict";/delete/.test(function g(delete){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS (function(){"use strict";/delete/.test(function g(delete){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a parameter name..
PASS "use strict";try{}catch(delete){}; true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch parameter name..
PASS (function(){"use strict";try{}catch(delete){}; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a catch parameter name..
PASS "use strict";function delete(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
PASS (function(){"use strict";function delete(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'delete' as a function name..
PASS "use strict";({ "delete": 42 }.delete === 42) is true
PASS (function(){"use strict";({ "delete": 42 }.delete === 42)}); true is true
PASS "use strict";({ delete: 42 }.delete === 42) is true
PASS (function(){"use strict";({ delete: 42 }.delete === 42)}); true is true
PASS "use strict";({ get delete(){}, set delete(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get delete(){}, set delete(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var do; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS (function(){var do; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS var do = 42; do === 42 threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS (function(){var do = 42; do === 42}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS function g(do){  }; true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS (function(){function g(do){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS /do/.test(function g(do){  }) threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS (function(){/do/.test(function g(do){  })}); true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS try{}catch(do){}; true threw exception SyntaxError: Cannot use the keyword 'do' as a catch parameter name..
PASS (function(){try{}catch(do){}; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a catch parameter name..
PASS function do(){  }; true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
PASS (function(){function do(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
PASS ({ "do": 42 }.do === 42) is true
PASS (function(){({ "do": 42 }.do === 42)}); true is true
PASS ({ do: 42 }.do === 42) is true
PASS (function(){({ do: 42 }.do === 42)}); true is true
PASS ({ get do(){}, set do(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get do(){}, set do(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var do; true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS (function(){"use strict";var do; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS "use strict";var do = 42; do === 42 threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS (function(){"use strict";var do = 42; do === 42}); true threw exception SyntaxError: Cannot use the keyword 'do' as a variable name..
PASS "use strict";function g(do){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS (function(){"use strict";function g(do){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS "use strict";/do/.test(function g(do){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS (function(){"use strict";/do/.test(function g(do){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'do' as a parameter name..
PASS "use strict";try{}catch(do){}; true threw exception SyntaxError: Cannot use the keyword 'do' as a catch parameter name..
PASS (function(){"use strict";try{}catch(do){}; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a catch parameter name..
PASS "use strict";function do(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
PASS (function(){"use strict";function do(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'do' as a function name..
PASS "use strict";({ "do": 42 }.do === 42) is true
PASS (function(){"use strict";({ "do": 42 }.do === 42)}); true is true
PASS "use strict";({ do: 42 }.do === 42) is true
PASS (function(){"use strict";({ do: 42 }.do === 42)}); true is true
PASS "use strict";({ get do(){}, set do(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get do(){}, set do(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var else; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS (function(){var else; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS var else = 42; else === 42 threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS (function(){var else = 42; else === 42}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS function g(else){  }; true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS (function(){function g(else){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS /else/.test(function g(else){  }) threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS (function(){/else/.test(function g(else){  })}); true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS try{}catch(else){}; true threw exception SyntaxError: Cannot use the keyword 'else' as a catch parameter name..
PASS (function(){try{}catch(else){}; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a catch parameter name..
PASS function else(){  }; true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
PASS (function(){function else(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
PASS ({ "else": 42 }.else === 42) is true
PASS (function(){({ "else": 42 }.else === 42)}); true is true
PASS ({ else: 42 }.else === 42) is true
PASS (function(){({ else: 42 }.else === 42)}); true is true
PASS ({ get else(){}, set else(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get else(){}, set else(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var else; true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS (function(){"use strict";var else; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS "use strict";var else = 42; else === 42 threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS (function(){"use strict";var else = 42; else === 42}); true threw exception SyntaxError: Cannot use the keyword 'else' as a variable name..
PASS "use strict";function g(else){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS (function(){"use strict";function g(else){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS "use strict";/else/.test(function g(else){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS (function(){"use strict";/else/.test(function g(else){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'else' as a parameter name..
PASS "use strict";try{}catch(else){}; true threw exception SyntaxError: Cannot use the keyword 'else' as a catch parameter name..
PASS (function(){"use strict";try{}catch(else){}; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a catch parameter name..
PASS "use strict";function else(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
PASS (function(){"use strict";function else(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'else' as a function name..
PASS "use strict";({ "else": 42 }.else === 42) is true
PASS (function(){"use strict";({ "else": 42 }.else === 42)}); true is true
PASS "use strict";({ else: 42 }.else === 42) is true
PASS (function(){"use strict";({ else: 42 }.else === 42)}); true is true
PASS "use strict";({ get else(){}, set else(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get else(){}, set else(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var finally; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS (function(){var finally; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS var finally = 42; finally === 42 threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS (function(){var finally = 42; finally === 42}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS function g(finally){  }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS (function(){function g(finally){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS /finally/.test(function g(finally){  }) threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS (function(){/finally/.test(function g(finally){  })}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS try{}catch(finally){}; true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch parameter name..
PASS (function(){try{}catch(finally){}; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch parameter name..
PASS function finally(){  }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
PASS (function(){function finally(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
PASS ({ "finally": 42 }.finally === 42) is true
PASS (function(){({ "finally": 42 }.finally === 42)}); true is true
PASS ({ finally: 42 }.finally === 42) is true
PASS (function(){({ finally: 42 }.finally === 42)}); true is true
PASS ({ get finally(){}, set finally(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get finally(){}, set finally(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var finally; true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS (function(){"use strict";var finally; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS "use strict";var finally = 42; finally === 42 threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS (function(){"use strict";var finally = 42; finally === 42}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a variable name..
PASS "use strict";function g(finally){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS (function(){"use strict";function g(finally){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS "use strict";/finally/.test(function g(finally){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS (function(){"use strict";/finally/.test(function g(finally){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a parameter name..
PASS "use strict";try{}catch(finally){}; true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch parameter name..
PASS (function(){"use strict";try{}catch(finally){}; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a catch parameter name..
PASS "use strict";function finally(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
PASS (function(){"use strict";function finally(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'finally' as a function name..
PASS "use strict";({ "finally": 42 }.finally === 42) is true
PASS (function(){"use strict";({ "finally": 42 }.finally === 42)}); true is true
PASS "use strict";({ finally: 42 }.finally === 42) is true
PASS (function(){"use strict";({ finally: 42 }.finally === 42)}); true is true
PASS "use strict";({ get finally(){}, set finally(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get finally(){}, set finally(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var for; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS (function(){var for; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS var for = 42; for === 42 threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS (function(){var for = 42; for === 42}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS function g(for){  }; true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS (function(){function g(for){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS /for/.test(function g(for){  }) threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS (function(){/for/.test(function g(for){  })}); true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS try{}catch(for){}; true threw exception SyntaxError: Cannot use the keyword 'for' as a catch parameter name..
PASS (function(){try{}catch(for){}; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a catch parameter name..
PASS function for(){  }; true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
PASS (function(){function for(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
PASS ({ "for": 42 }.for === 42) is true
PASS (function(){({ "for": 42 }.for === 42)}); true is true
PASS ({ for: 42 }.for === 42) is true
PASS (function(){({ for: 42 }.for === 42)}); true is true
PASS ({ get for(){}, set for(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get for(){}, set for(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var for; true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS (function(){"use strict";var for; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS "use strict";var for = 42; for === 42 threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS (function(){"use strict";var for = 42; for === 42}); true threw exception SyntaxError: Cannot use the keyword 'for' as a variable name..
PASS "use strict";function g(for){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS (function(){"use strict";function g(for){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS "use strict";/for/.test(function g(for){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS (function(){"use strict";/for/.test(function g(for){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'for' as a parameter name..
PASS "use strict";try{}catch(for){}; true threw exception SyntaxError: Cannot use the keyword 'for' as a catch parameter name..
PASS (function(){"use strict";try{}catch(for){}; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a catch parameter name..
PASS "use strict";function for(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
PASS (function(){"use strict";function for(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'for' as a function name..
PASS "use strict";({ "for": 42 }.for === 42) is true
PASS (function(){"use strict";({ "for": 42 }.for === 42)}); true is true
PASS "use strict";({ for: 42 }.for === 42) is true
PASS (function(){"use strict";({ for: 42 }.for === 42)}); true is true
PASS "use strict";({ get for(){}, set for(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get for(){}, set for(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var function; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS (function(){var function; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS var function = 42; function === 42 threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS (function(){var function = 42; function === 42}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS function g(function){  }; true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS (function(){function g(function){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS /function/.test(function g(function){  }) threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS (function(){/function/.test(function g(function){  })}); true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS try{}catch(function){}; true threw exception SyntaxError: Cannot use the keyword 'function' as a catch parameter name..
PASS (function(){try{}catch(function){}; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a catch parameter name..
PASS function function(){  }; true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
PASS (function(){function function(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
PASS ({ "function": 42 }.function === 42) is true
PASS (function(){({ "function": 42 }.function === 42)}); true is true
PASS ({ function: 42 }.function === 42) is true
PASS (function(){({ function: 42 }.function === 42)}); true is true
PASS ({ get function(){}, set function(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get function(){}, set function(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var function; true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS (function(){"use strict";var function; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS "use strict";var function = 42; function === 42 threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS (function(){"use strict";var function = 42; function === 42}); true threw exception SyntaxError: Cannot use the keyword 'function' as a variable name..
PASS "use strict";function g(function){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS (function(){"use strict";function g(function){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS "use strict";/function/.test(function g(function){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS (function(){"use strict";/function/.test(function g(function){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'function' as a parameter name..
PASS "use strict";try{}catch(function){}; true threw exception SyntaxError: Cannot use the keyword 'function' as a catch parameter name..
PASS (function(){"use strict";try{}catch(function){}; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a catch parameter name..
PASS "use strict";function function(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
PASS (function(){"use strict";function function(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'function' as a function name..
PASS "use strict";({ "function": 42 }.function === 42) is true
PASS (function(){"use strict";({ "function": 42 }.function === 42)}); true is true
PASS "use strict";({ function: 42 }.function === 42) is true
PASS (function(){"use strict";({ function: 42 }.function === 42)}); true is true
PASS "use strict";({ get function(){}, set function(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get function(){}, set function(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var if; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS (function(){var if; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS var if = 42; if === 42 threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS (function(){var if = 42; if === 42}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS function g(if){  }; true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS (function(){function g(if){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS /if/.test(function g(if){  }) threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS (function(){/if/.test(function g(if){  })}); true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS try{}catch(if){}; true threw exception SyntaxError: Cannot use the keyword 'if' as a catch parameter name..
PASS (function(){try{}catch(if){}; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a catch parameter name..
PASS function if(){  }; true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
PASS (function(){function if(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
PASS ({ "if": 42 }.if === 42) is true
PASS (function(){({ "if": 42 }.if === 42)}); true is true
PASS ({ if: 42 }.if === 42) is true
PASS (function(){({ if: 42 }.if === 42)}); true is true
PASS ({ get if(){}, set if(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get if(){}, set if(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var if; true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS (function(){"use strict";var if; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS "use strict";var if = 42; if === 42 threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS (function(){"use strict";var if = 42; if === 42}); true threw exception SyntaxError: Cannot use the keyword 'if' as a variable name..
PASS "use strict";function g(if){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS (function(){"use strict";function g(if){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS "use strict";/if/.test(function g(if){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS (function(){"use strict";/if/.test(function g(if){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'if' as a parameter name..
PASS "use strict";try{}catch(if){}; true threw exception SyntaxError: Cannot use the keyword 'if' as a catch parameter name..
PASS (function(){"use strict";try{}catch(if){}; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a catch parameter name..
PASS "use strict";function if(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
PASS (function(){"use strict";function if(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'if' as a function name..
PASS "use strict";({ "if": 42 }.if === 42) is true
PASS (function(){"use strict";({ "if": 42 }.if === 42)}); true is true
PASS "use strict";({ if: 42 }.if === 42) is true
PASS (function(){"use strict";({ if: 42 }.if === 42)}); true is true
PASS "use strict";({ get if(){}, set if(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get if(){}, set if(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var in; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS (function(){var in; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS var in = 42; in === 42 threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS (function(){var in = 42; in === 42}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS function g(in){  }; true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS (function(){function g(in){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS /in/.test(function g(in){  }) threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS (function(){/in/.test(function g(in){  })}); true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS try{}catch(in){}; true threw exception SyntaxError: Cannot use the keyword 'in' as a catch parameter name..
PASS (function(){try{}catch(in){}; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a catch parameter name..
PASS function in(){  }; true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
PASS (function(){function in(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
PASS ({ "in": 42 }.in === 42) is true
PASS (function(){({ "in": 42 }.in === 42)}); true is true
PASS ({ in: 42 }.in === 42) is true
PASS (function(){({ in: 42 }.in === 42)}); true is true
PASS ({ get in(){}, set in(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get in(){}, set in(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var in; true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS (function(){"use strict";var in; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS "use strict";var in = 42; in === 42 threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS (function(){"use strict";var in = 42; in === 42}); true threw exception SyntaxError: Cannot use the keyword 'in' as a variable name..
PASS "use strict";function g(in){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS (function(){"use strict";function g(in){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS "use strict";/in/.test(function g(in){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS (function(){"use strict";/in/.test(function g(in){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'in' as a parameter name..
PASS "use strict";try{}catch(in){}; true threw exception SyntaxError: Cannot use the keyword 'in' as a catch parameter name..
PASS (function(){"use strict";try{}catch(in){}; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a catch parameter name..
PASS "use strict";function in(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
PASS (function(){"use strict";function in(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'in' as a function name..
PASS "use strict";({ "in": 42 }.in === 42) is true
PASS (function(){"use strict";({ "in": 42 }.in === 42)}); true is true
PASS "use strict";({ in: 42 }.in === 42) is true
PASS (function(){"use strict";({ in: 42 }.in === 42)}); true is true
PASS "use strict";({ get in(){}, set in(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get in(){}, set in(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var instanceof; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS (function(){var instanceof; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS var instanceof = 42; instanceof === 42 threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS (function(){var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS function g(instanceof){  }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS (function(){function g(instanceof){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS /instanceof/.test(function g(instanceof){  }) threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS (function(){/instanceof/.test(function g(instanceof){  })}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS try{}catch(instanceof){}; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch parameter name..
PASS (function(){try{}catch(instanceof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch parameter name..
PASS function instanceof(){  }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
PASS (function(){function instanceof(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
PASS ({ "instanceof": 42 }.instanceof === 42) is true
PASS (function(){({ "instanceof": 42 }.instanceof === 42)}); true is true
PASS ({ instanceof: 42 }.instanceof === 42) is true
PASS (function(){({ instanceof: 42 }.instanceof === 42)}); true is true
PASS ({ get instanceof(){}, set instanceof(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get instanceof(){}, set instanceof(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var instanceof; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS (function(){"use strict";var instanceof; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS "use strict";var instanceof = 42; instanceof === 42 threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS (function(){"use strict";var instanceof = 42; instanceof === 42}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a variable name..
PASS "use strict";function g(instanceof){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS (function(){"use strict";function g(instanceof){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS "use strict";/instanceof/.test(function g(instanceof){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS (function(){"use strict";/instanceof/.test(function g(instanceof){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a parameter name..
PASS "use strict";try{}catch(instanceof){}; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch parameter name..
PASS (function(){"use strict";try{}catch(instanceof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a catch parameter name..
PASS "use strict";function instanceof(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
PASS (function(){"use strict";function instanceof(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'instanceof' as a function name..
PASS "use strict";({ "instanceof": 42 }.instanceof === 42) is true
PASS (function(){"use strict";({ "instanceof": 42 }.instanceof === 42)}); true is true
PASS "use strict";({ instanceof: 42 }.instanceof === 42) is true
PASS (function(){"use strict";({ instanceof: 42 }.instanceof === 42)}); true is true
PASS "use strict";({ get instanceof(){}, set instanceof(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get instanceof(){}, set instanceof(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var new; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS (function(){var new; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS var new = 42; new === 42 threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS (function(){var new = 42; new === 42}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS function g(new){  }; true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS (function(){function g(new){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS /new/.test(function g(new){  }) threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS (function(){/new/.test(function g(new){  })}); true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS try{}catch(new){}; true threw exception SyntaxError: Cannot use the keyword 'new' as a catch parameter name..
PASS (function(){try{}catch(new){}; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a catch parameter name..
PASS function new(){  }; true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
PASS (function(){function new(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
PASS ({ "new": 42 }.new === 42) is true
PASS (function(){({ "new": 42 }.new === 42)}); true is true
PASS ({ new: 42 }.new === 42) is true
PASS (function(){({ new: 42 }.new === 42)}); true is true
PASS ({ get new(){}, set new(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get new(){}, set new(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var new; true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS (function(){"use strict";var new; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS "use strict";var new = 42; new === 42 threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS (function(){"use strict";var new = 42; new === 42}); true threw exception SyntaxError: Cannot use the keyword 'new' as a variable name..
PASS "use strict";function g(new){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS (function(){"use strict";function g(new){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS "use strict";/new/.test(function g(new){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS (function(){"use strict";/new/.test(function g(new){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'new' as a parameter name..
PASS "use strict";try{}catch(new){}; true threw exception SyntaxError: Cannot use the keyword 'new' as a catch parameter name..
PASS (function(){"use strict";try{}catch(new){}; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a catch parameter name..
PASS "use strict";function new(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
PASS (function(){"use strict";function new(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'new' as a function name..
PASS "use strict";({ "new": 42 }.new === 42) is true
PASS (function(){"use strict";({ "new": 42 }.new === 42)}); true is true
PASS "use strict";({ new: 42 }.new === 42) is true
PASS (function(){"use strict";({ new: 42 }.new === 42)}); true is true
PASS "use strict";({ get new(){}, set new(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get new(){}, set new(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var return; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS (function(){var return; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS var return = 42; return === 42 threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS (function(){var return = 42; return === 42}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS function g(return){  }; true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS (function(){function g(return){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS /return/.test(function g(return){  }) threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS (function(){/return/.test(function g(return){  })}); true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS try{}catch(return){}; true threw exception SyntaxError: Cannot use the keyword 'return' as a catch parameter name..
PASS (function(){try{}catch(return){}; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a catch parameter name..
PASS function return(){  }; true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
PASS (function(){function return(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
PASS ({ "return": 42 }.return === 42) is true
PASS (function(){({ "return": 42 }.return === 42)}); true is true
PASS ({ return: 42 }.return === 42) is true
PASS (function(){({ return: 42 }.return === 42)}); true is true
PASS ({ get return(){}, set return(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get return(){}, set return(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var return; true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS (function(){"use strict";var return; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS "use strict";var return = 42; return === 42 threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS (function(){"use strict";var return = 42; return === 42}); true threw exception SyntaxError: Cannot use the keyword 'return' as a variable name..
PASS "use strict";function g(return){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS (function(){"use strict";function g(return){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS "use strict";/return/.test(function g(return){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS (function(){"use strict";/return/.test(function g(return){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'return' as a parameter name..
PASS "use strict";try{}catch(return){}; true threw exception SyntaxError: Cannot use the keyword 'return' as a catch parameter name..
PASS (function(){"use strict";try{}catch(return){}; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a catch parameter name..
PASS "use strict";function return(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
PASS (function(){"use strict";function return(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'return' as a function name..
PASS "use strict";({ "return": 42 }.return === 42) is true
PASS (function(){"use strict";({ "return": 42 }.return === 42)}); true is true
PASS "use strict";({ return: 42 }.return === 42) is true
PASS (function(){"use strict";({ return: 42 }.return === 42)}); true is true
PASS "use strict";({ get return(){}, set return(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get return(){}, set return(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var switch; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS (function(){var switch; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS var switch = 42; switch === 42 threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS (function(){var switch = 42; switch === 42}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS function g(switch){  }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS (function(){function g(switch){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS /switch/.test(function g(switch){  }) threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS (function(){/switch/.test(function g(switch){  })}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS try{}catch(switch){}; true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch parameter name..
PASS (function(){try{}catch(switch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch parameter name..
PASS function switch(){  }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
PASS (function(){function switch(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
PASS ({ "switch": 42 }.switch === 42) is true
PASS (function(){({ "switch": 42 }.switch === 42)}); true is true
PASS ({ switch: 42 }.switch === 42) is true
PASS (function(){({ switch: 42 }.switch === 42)}); true is true
PASS ({ get switch(){}, set switch(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get switch(){}, set switch(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var switch; true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS (function(){"use strict";var switch; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS "use strict";var switch = 42; switch === 42 threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS (function(){"use strict";var switch = 42; switch === 42}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a variable name..
PASS "use strict";function g(switch){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS (function(){"use strict";function g(switch){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS "use strict";/switch/.test(function g(switch){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS (function(){"use strict";/switch/.test(function g(switch){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a parameter name..
PASS "use strict";try{}catch(switch){}; true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch parameter name..
PASS (function(){"use strict";try{}catch(switch){}; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a catch parameter name..
PASS "use strict";function switch(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
PASS (function(){"use strict";function switch(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'switch' as a function name..
PASS "use strict";({ "switch": 42 }.switch === 42) is true
PASS (function(){"use strict";({ "switch": 42 }.switch === 42)}); true is true
PASS "use strict";({ switch: 42 }.switch === 42) is true
PASS (function(){"use strict";({ switch: 42 }.switch === 42)}); true is true
PASS "use strict";({ get switch(){}, set switch(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get switch(){}, set switch(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var this; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS (function(){var this; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS var this = 42; this === 42 threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS (function(){var this = 42; this === 42}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS function g(this){  }; true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS (function(){function g(this){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS /this/.test(function g(this){  }) threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS (function(){/this/.test(function g(this){  })}); true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS try{}catch(this){}; true threw exception SyntaxError: Cannot use the keyword 'this' as a catch parameter name..
PASS (function(){try{}catch(this){}; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a catch parameter name..
PASS function this(){  }; true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
PASS (function(){function this(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
PASS ({ "this": 42 }.this === 42) is true
PASS (function(){({ "this": 42 }.this === 42)}); true is true
PASS ({ this: 42 }.this === 42) is true
PASS (function(){({ this: 42 }.this === 42)}); true is true
PASS ({ get this(){}, set this(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get this(){}, set this(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var this; true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS (function(){"use strict";var this; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS "use strict";var this = 42; this === 42 threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS (function(){"use strict";var this = 42; this === 42}); true threw exception SyntaxError: Cannot use the keyword 'this' as a variable name..
PASS "use strict";function g(this){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS (function(){"use strict";function g(this){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS "use strict";/this/.test(function g(this){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS (function(){"use strict";/this/.test(function g(this){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'this' as a parameter name..
PASS "use strict";try{}catch(this){}; true threw exception SyntaxError: Cannot use the keyword 'this' as a catch parameter name..
PASS (function(){"use strict";try{}catch(this){}; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a catch parameter name..
PASS "use strict";function this(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
PASS (function(){"use strict";function this(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'this' as a function name..
PASS "use strict";({ "this": 42 }.this === 42) is true
PASS (function(){"use strict";({ "this": 42 }.this === 42)}); true is true
PASS "use strict";({ this: 42 }.this === 42) is true
PASS (function(){"use strict";({ this: 42 }.this === 42)}); true is true
PASS "use strict";({ get this(){}, set this(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get this(){}, set this(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var throw; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS (function(){var throw; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS var throw = 42; throw === 42 threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS (function(){var throw = 42; throw === 42}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS function g(throw){  }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS (function(){function g(throw){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS /throw/.test(function g(throw){  }) threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS (function(){/throw/.test(function g(throw){  })}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS try{}catch(throw){}; true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch parameter name..
PASS (function(){try{}catch(throw){}; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch parameter name..
PASS function throw(){  }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
PASS (function(){function throw(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
PASS ({ "throw": 42 }.throw === 42) is true
PASS (function(){({ "throw": 42 }.throw === 42)}); true is true
PASS ({ throw: 42 }.throw === 42) is true
PASS (function(){({ throw: 42 }.throw === 42)}); true is true
PASS ({ get throw(){}, set throw(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get throw(){}, set throw(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var throw; true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS (function(){"use strict";var throw; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS "use strict";var throw = 42; throw === 42 threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS (function(){"use strict";var throw = 42; throw === 42}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a variable name..
PASS "use strict";function g(throw){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS (function(){"use strict";function g(throw){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS "use strict";/throw/.test(function g(throw){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS (function(){"use strict";/throw/.test(function g(throw){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a parameter name..
PASS "use strict";try{}catch(throw){}; true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch parameter name..
PASS (function(){"use strict";try{}catch(throw){}; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a catch parameter name..
PASS "use strict";function throw(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
PASS (function(){"use strict";function throw(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'throw' as a function name..
PASS "use strict";({ "throw": 42 }.throw === 42) is true
PASS (function(){"use strict";({ "throw": 42 }.throw === 42)}); true is true
PASS "use strict";({ throw: 42 }.throw === 42) is true
PASS (function(){"use strict";({ throw: 42 }.throw === 42)}); true is true
PASS "use strict";({ get throw(){}, set throw(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get throw(){}, set throw(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var try; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS (function(){var try; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS var try = 42; try === 42 threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS (function(){var try = 42; try === 42}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS function g(try){  }; true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS (function(){function g(try){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS /try/.test(function g(try){  }) threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS (function(){/try/.test(function g(try){  })}); true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS try{}catch(try){}; true threw exception SyntaxError: Cannot use the keyword 'try' as a catch parameter name..
PASS (function(){try{}catch(try){}; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a catch parameter name..
PASS function try(){  }; true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
PASS (function(){function try(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
PASS ({ "try": 42 }.try === 42) is true
PASS (function(){({ "try": 42 }.try === 42)}); true is true
PASS ({ try: 42 }.try === 42) is true
PASS (function(){({ try: 42 }.try === 42)}); true is true
PASS ({ get try(){}, set try(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get try(){}, set try(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var try; true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS (function(){"use strict";var try; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS "use strict";var try = 42; try === 42 threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS (function(){"use strict";var try = 42; try === 42}); true threw exception SyntaxError: Cannot use the keyword 'try' as a variable name..
PASS "use strict";function g(try){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS (function(){"use strict";function g(try){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS "use strict";/try/.test(function g(try){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS (function(){"use strict";/try/.test(function g(try){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'try' as a parameter name..
PASS "use strict";try{}catch(try){}; true threw exception SyntaxError: Cannot use the keyword 'try' as a catch parameter name..
PASS (function(){"use strict";try{}catch(try){}; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a catch parameter name..
PASS "use strict";function try(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
PASS (function(){"use strict";function try(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'try' as a function name..
PASS "use strict";({ "try": 42 }.try === 42) is true
PASS (function(){"use strict";({ "try": 42 }.try === 42)}); true is true
PASS "use strict";({ try: 42 }.try === 42) is true
PASS (function(){"use strict";({ try: 42 }.try === 42)}); true is true
PASS "use strict";({ get try(){}, set try(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get try(){}, set try(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var typeof; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS (function(){var typeof; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS var typeof = 42; typeof === 42 threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS (function(){var typeof = 42; typeof === 42}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS function g(typeof){  }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS (function(){function g(typeof){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS /typeof/.test(function g(typeof){  }) threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS (function(){/typeof/.test(function g(typeof){  })}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS try{}catch(typeof){}; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch parameter name..
PASS (function(){try{}catch(typeof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch parameter name..
PASS function typeof(){  }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
PASS (function(){function typeof(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
PASS ({ "typeof": 42 }.typeof === 42) is true
PASS (function(){({ "typeof": 42 }.typeof === 42)}); true is true
PASS ({ typeof: 42 }.typeof === 42) is true
PASS (function(){({ typeof: 42 }.typeof === 42)}); true is true
PASS ({ get typeof(){}, set typeof(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get typeof(){}, set typeof(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var typeof; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS (function(){"use strict";var typeof; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS "use strict";var typeof = 42; typeof === 42 threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS (function(){"use strict";var typeof = 42; typeof === 42}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a variable name..
PASS "use strict";function g(typeof){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS (function(){"use strict";function g(typeof){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS "use strict";/typeof/.test(function g(typeof){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS (function(){"use strict";/typeof/.test(function g(typeof){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a parameter name..
PASS "use strict";try{}catch(typeof){}; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch parameter name..
PASS (function(){"use strict";try{}catch(typeof){}; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a catch parameter name..
PASS "use strict";function typeof(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
PASS (function(){"use strict";function typeof(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'typeof' as a function name..
PASS "use strict";({ "typeof": 42 }.typeof === 42) is true
PASS (function(){"use strict";({ "typeof": 42 }.typeof === 42)}); true is true
PASS "use strict";({ typeof: 42 }.typeof === 42) is true
PASS (function(){"use strict";({ typeof: 42 }.typeof === 42)}); true is true
PASS "use strict";({ get typeof(){}, set typeof(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get typeof(){}, set typeof(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var var; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS (function(){var var; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS var var = 42; var === 42 threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS (function(){var var = 42; var === 42}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS function g(var){  }; true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS (function(){function g(var){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS /var/.test(function g(var){  }) threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS (function(){/var/.test(function g(var){  })}); true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS try{}catch(var){}; true threw exception SyntaxError: Cannot use the keyword 'var' as a catch parameter name..
PASS (function(){try{}catch(var){}; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a catch parameter name..
PASS function var(){  }; true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
PASS (function(){function var(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
PASS ({ "var": 42 }.var === 42) is true
PASS (function(){({ "var": 42 }.var === 42)}); true is true
PASS ({ var: 42 }.var === 42) is true
PASS (function(){({ var: 42 }.var === 42)}); true is true
PASS ({ get var(){}, set var(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get var(){}, set var(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var var; true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS (function(){"use strict";var var; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS "use strict";var var = 42; var === 42 threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS (function(){"use strict";var var = 42; var === 42}); true threw exception SyntaxError: Cannot use the keyword 'var' as a variable name..
PASS "use strict";function g(var){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS (function(){"use strict";function g(var){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS "use strict";/var/.test(function g(var){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS (function(){"use strict";/var/.test(function g(var){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'var' as a parameter name..
PASS "use strict";try{}catch(var){}; true threw exception SyntaxError: Cannot use the keyword 'var' as a catch parameter name..
PASS (function(){"use strict";try{}catch(var){}; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a catch parameter name..
PASS "use strict";function var(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
PASS (function(){"use strict";function var(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'var' as a function name..
PASS "use strict";({ "var": 42 }.var === 42) is true
PASS (function(){"use strict";({ "var": 42 }.var === 42)}); true is true
PASS "use strict";({ var: 42 }.var === 42) is true
PASS (function(){"use strict";({ var: 42 }.var === 42)}); true is true
PASS "use strict";({ get var(){}, set var(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get var(){}, set var(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var void; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS (function(){var void; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS var void = 42; void === 42 threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS (function(){var void = 42; void === 42}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS function g(void){  }; true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS (function(){function g(void){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS /void/.test(function g(void){  }) threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS (function(){/void/.test(function g(void){  })}); true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS try{}catch(void){}; true threw exception SyntaxError: Cannot use the keyword 'void' as a catch parameter name..
PASS (function(){try{}catch(void){}; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a catch parameter name..
PASS function void(){  }; true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
PASS (function(){function void(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
PASS ({ "void": 42 }.void === 42) is true
PASS (function(){({ "void": 42 }.void === 42)}); true is true
PASS ({ void: 42 }.void === 42) is true
PASS (function(){({ void: 42 }.void === 42)}); true is true
PASS ({ get void(){}, set void(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get void(){}, set void(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var void; true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS (function(){"use strict";var void; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS "use strict";var void = 42; void === 42 threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS (function(){"use strict";var void = 42; void === 42}); true threw exception SyntaxError: Cannot use the keyword 'void' as a variable name..
PASS "use strict";function g(void){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS (function(){"use strict";function g(void){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS "use strict";/void/.test(function g(void){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS (function(){"use strict";/void/.test(function g(void){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'void' as a parameter name..
PASS "use strict";try{}catch(void){}; true threw exception SyntaxError: Cannot use the keyword 'void' as a catch parameter name..
PASS (function(){"use strict";try{}catch(void){}; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a catch parameter name..
PASS "use strict";function void(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
PASS (function(){"use strict";function void(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'void' as a function name..
PASS "use strict";({ "void": 42 }.void === 42) is true
PASS (function(){"use strict";({ "void": 42 }.void === 42)}); true is true
PASS "use strict";({ void: 42 }.void === 42) is true
PASS (function(){"use strict";({ void: 42 }.void === 42)}); true is true
PASS "use strict";({ get void(){}, set void(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get void(){}, set void(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var while; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS (function(){var while; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS var while = 42; while === 42 threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS (function(){var while = 42; while === 42}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS function g(while){  }; true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS (function(){function g(while){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS /while/.test(function g(while){  }) threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS (function(){/while/.test(function g(while){  })}); true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS try{}catch(while){}; true threw exception SyntaxError: Cannot use the keyword 'while' as a catch parameter name..
PASS (function(){try{}catch(while){}; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a catch parameter name..
PASS function while(){  }; true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
PASS (function(){function while(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
PASS ({ "while": 42 }.while === 42) is true
PASS (function(){({ "while": 42 }.while === 42)}); true is true
PASS ({ while: 42 }.while === 42) is true
PASS (function(){({ while: 42 }.while === 42)}); true is true
PASS ({ get while(){}, set while(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get while(){}, set while(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var while; true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS (function(){"use strict";var while; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS "use strict";var while = 42; while === 42 threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS (function(){"use strict";var while = 42; while === 42}); true threw exception SyntaxError: Cannot use the keyword 'while' as a variable name..
PASS "use strict";function g(while){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS (function(){"use strict";function g(while){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS "use strict";/while/.test(function g(while){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS (function(){"use strict";/while/.test(function g(while){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'while' as a parameter name..
PASS "use strict";try{}catch(while){}; true threw exception SyntaxError: Cannot use the keyword 'while' as a catch parameter name..
PASS (function(){"use strict";try{}catch(while){}; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a catch parameter name..
PASS "use strict";function while(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
PASS (function(){"use strict";function while(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'while' as a function name..
PASS "use strict";({ "while": 42 }.while === 42) is true
PASS (function(){"use strict";({ "while": 42 }.while === 42)}); true is true
PASS "use strict";({ while: 42 }.while === 42) is true
PASS (function(){"use strict";({ while: 42 }.while === 42)}); true is true
PASS "use strict";({ get while(){}, set while(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get while(){}, set while(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var with; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS (function(){var with; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS var with = 42; with === 42 threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS (function(){var with = 42; with === 42}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS function g(with){  }; true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS (function(){function g(with){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS /with/.test(function g(with){  }) threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS (function(){/with/.test(function g(with){  })}); true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS try{}catch(with){}; true threw exception SyntaxError: Cannot use the keyword 'with' as a catch parameter name..
PASS (function(){try{}catch(with){}; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a catch parameter name..
PASS function with(){  }; true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
PASS (function(){function with(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
PASS ({ "with": 42 }.with === 42) is true
PASS (function(){({ "with": 42 }.with === 42)}); true is true
PASS ({ with: 42 }.with === 42) is true
PASS (function(){({ with: 42 }.with === 42)}); true is true
PASS ({ get with(){}, set with(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get with(){}, set with(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var with; true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS (function(){"use strict";var with; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS "use strict";var with = 42; with === 42 threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS (function(){"use strict";var with = 42; with === 42}); true threw exception SyntaxError: Cannot use the keyword 'with' as a variable name..
PASS "use strict";function g(with){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS (function(){"use strict";function g(with){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS "use strict";/with/.test(function g(with){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS (function(){"use strict";/with/.test(function g(with){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'with' as a parameter name..
PASS "use strict";try{}catch(with){}; true threw exception SyntaxError: Cannot use the keyword 'with' as a catch parameter name..
PASS (function(){"use strict";try{}catch(with){}; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a catch parameter name..
PASS "use strict";function with(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
PASS (function(){"use strict";function with(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'with' as a function name..
PASS "use strict";({ "with": 42 }.with === 42) is true
PASS (function(){"use strict";({ "with": 42 }.with === 42)}); true is true
PASS "use strict";({ with: 42 }.with === 42) is true
PASS (function(){"use strict";({ with: 42 }.with === 42)}); true is true
PASS "use strict";({ get with(){}, set with(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get with(){}, set with(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var class; true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS (function(){var class; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS var class = 42; class === 42 threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS (function(){var class = 42; class === 42}); true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS function g(class){  }; true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS (function(){function g(class){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS /class/.test(function g(class){  }) threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS (function(){/class/.test(function g(class){  })}); true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS try{}catch(class){}; true threw exception SyntaxError: Cannot use the keyword 'class' as a catch parameter name..
PASS (function(){try{}catch(class){}; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a catch parameter name..
PASS function class(){  }; true threw exception SyntaxError: Cannot use the keyword 'class' as a function name..
PASS (function(){function class(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a function name..
PASS ({ "class": 42 }.class === 42) is true
PASS (function(){({ "class": 42 }.class === 42)}); true is true
PASS ({ class: 42 }.class === 42) is true
PASS (function(){({ class: 42 }.class === 42)}); true is true
PASS ({ get class(){}, set class(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get class(){}, set class(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var class; true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS (function(){"use strict";var class; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS "use strict";var class = 42; class === 42 threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS (function(){"use strict";var class = 42; class === 42}); true threw exception SyntaxError: Cannot use the keyword 'class' as a variable name..
PASS "use strict";function g(class){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS (function(){"use strict";function g(class){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS "use strict";/class/.test(function g(class){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS (function(){"use strict";/class/.test(function g(class){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'class' as a parameter name..
PASS "use strict";try{}catch(class){}; true threw exception SyntaxError: Cannot use the keyword 'class' as a catch parameter name..
PASS (function(){"use strict";try{}catch(class){}; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a catch parameter name..
PASS "use strict";function class(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'class' as a function name..
PASS (function(){"use strict";function class(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'class' as a function name..
PASS "use strict";({ "class": 42 }.class === 42) is true
PASS (function(){"use strict";({ "class": 42 }.class === 42)}); true is true
PASS "use strict";({ class: 42 }.class === 42) is true
PASS (function(){"use strict";({ class: 42 }.class === 42)}); true is true
PASS "use strict";({ get class(){}, set class(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get class(){}, set class(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var const; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS (function(){var const; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS var const = 42; const === 42 threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS (function(){var const = 42; const === 42}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS function g(const){  }; true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS (function(){function g(const){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS /const/.test(function g(const){  }) threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS (function(){/const/.test(function g(const){  })}); true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS try{}catch(const){}; true threw exception SyntaxError: Cannot use the keyword 'const' as a catch parameter name..
PASS (function(){try{}catch(const){}; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a catch parameter name..
PASS function const(){  }; true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
PASS (function(){function const(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
PASS ({ "const": 42 }.const === 42) is true
PASS (function(){({ "const": 42 }.const === 42)}); true is true
PASS ({ const: 42 }.const === 42) is true
PASS (function(){({ const: 42 }.const === 42)}); true is true
PASS ({ get const(){}, set const(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get const(){}, set const(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var const; true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS (function(){"use strict";var const; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS "use strict";var const = 42; const === 42 threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS (function(){"use strict";var const = 42; const === 42}); true threw exception SyntaxError: Cannot use the keyword 'const' as a variable name..
PASS "use strict";function g(const){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS (function(){"use strict";function g(const){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS "use strict";/const/.test(function g(const){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS (function(){"use strict";/const/.test(function g(const){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'const' as a parameter name..
PASS "use strict";try{}catch(const){}; true threw exception SyntaxError: Cannot use the keyword 'const' as a catch parameter name..
PASS (function(){"use strict";try{}catch(const){}; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a catch parameter name..
PASS "use strict";function const(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
PASS (function(){"use strict";function const(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'const' as a function name..
PASS "use strict";({ "const": 42 }.const === 42) is true
PASS (function(){"use strict";({ "const": 42 }.const === 42)}); true is true
PASS "use strict";({ const: 42 }.const === 42) is true
PASS (function(){"use strict";({ const: 42 }.const === 42)}); true is true
PASS "use strict";({ get const(){}, set const(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get const(){}, set const(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var enum; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS (function(){var enum; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS var enum = 42; enum === 42 threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS (function(){var enum = 42; enum === 42}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS function g(enum){  }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS (function(){function g(enum){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS /enum/.test(function g(enum){  }) threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS (function(){/enum/.test(function g(enum){  })}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS try{}catch(enum){}; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch parameter name..
PASS (function(){try{}catch(enum){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch parameter name..
PASS function enum(){  }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
PASS (function(){function enum(){  }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
PASS ({ "enum": 42 }.enum === 42) is true
PASS (function(){({ "enum": 42 }.enum === 42)}); true is true
PASS ({ enum: 42 }.enum === 42) is true
PASS (function(){({ enum: 42 }.enum === 42)}); true is true
PASS ({ get enum(){}, set enum(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get enum(){}, set enum(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var enum; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS (function(){"use strict";var enum; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS "use strict";var enum = 42; enum === 42 threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS (function(){"use strict";var enum = 42; enum === 42}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a variable name..
PASS "use strict";function g(enum){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS (function(){"use strict";function g(enum){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS "use strict";/enum/.test(function g(enum){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS (function(){"use strict";/enum/.test(function g(enum){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a parameter name..
PASS "use strict";try{}catch(enum){}; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch parameter name..
PASS (function(){"use strict";try{}catch(enum){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a catch parameter name..
PASS "use strict";function enum(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
PASS (function(){"use strict";function enum(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'enum' as a function name..
PASS "use strict";({ "enum": 42 }.enum === 42) is true
PASS (function(){"use strict";({ "enum": 42 }.enum === 42)}); true is true
PASS "use strict";({ enum: 42 }.enum === 42) is true
PASS (function(){"use strict";({ enum: 42 }.enum === 42)}); true is true
PASS "use strict";({ get enum(){}, set enum(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get enum(){}, set enum(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var export; true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS (function(){var export; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS var export = 42; export === 42 threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS (function(){var export = 42; export === 42}); true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS function g(export){  }; true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS (function(){function g(export){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS /export/.test(function g(export){  }) threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS (function(){/export/.test(function g(export){  })}); true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS try{}catch(export){}; true threw exception SyntaxError: Cannot use the keyword 'export' as a catch parameter name..
PASS (function(){try{}catch(export){}; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a catch parameter name..
PASS function export(){  }; true threw exception SyntaxError: Cannot use the keyword 'export' as a function name..
PASS (function(){function export(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a function name..
PASS ({ "export": 42 }.export === 42) is true
PASS (function(){({ "export": 42 }.export === 42)}); true is true
PASS ({ export: 42 }.export === 42) is true
PASS (function(){({ export: 42 }.export === 42)}); true is true
PASS ({ get export(){}, set export(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get export(){}, set export(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var export; true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS (function(){"use strict";var export; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS "use strict";var export = 42; export === 42 threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS (function(){"use strict";var export = 42; export === 42}); true threw exception SyntaxError: Cannot use the keyword 'export' as a variable name..
PASS "use strict";function g(export){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS (function(){"use strict";function g(export){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS "use strict";/export/.test(function g(export){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS (function(){"use strict";/export/.test(function g(export){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'export' as a parameter name..
PASS "use strict";try{}catch(export){}; true threw exception SyntaxError: Cannot use the keyword 'export' as a catch parameter name..
PASS (function(){"use strict";try{}catch(export){}; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a catch parameter name..
PASS "use strict";function export(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'export' as a function name..
PASS (function(){"use strict";function export(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'export' as a function name..
PASS "use strict";({ "export": 42 }.export === 42) is true
PASS (function(){"use strict";({ "export": 42 }.export === 42)}); true is true
PASS "use strict";({ export: 42 }.export === 42) is true
PASS (function(){"use strict";({ export: 42 }.export === 42)}); true is true
PASS "use strict";({ get export(){}, set export(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get export(){}, set export(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var extends; true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS (function(){var extends; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS var extends = 42; extends === 42 threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS (function(){var extends = 42; extends === 42}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS function g(extends){  }; true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS (function(){function g(extends){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS /extends/.test(function g(extends){  }) threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS (function(){/extends/.test(function g(extends){  })}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS try{}catch(extends){}; true threw exception SyntaxError: Cannot use the keyword 'extends' as a catch parameter name..
PASS (function(){try{}catch(extends){}; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a catch parameter name..
PASS function extends(){  }; true threw exception SyntaxError: Cannot use the keyword 'extends' as a function name..
PASS (function(){function extends(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a function name..
PASS ({ "extends": 42 }.extends === 42) is true
PASS (function(){({ "extends": 42 }.extends === 42)}); true is true
PASS ({ extends: 42 }.extends === 42) is true
PASS (function(){({ extends: 42 }.extends === 42)}); true is true
PASS ({ get extends(){}, set extends(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get extends(){}, set extends(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var extends; true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS (function(){"use strict";var extends; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS "use strict";var extends = 42; extends === 42 threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS (function(){"use strict";var extends = 42; extends === 42}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a variable name..
PASS "use strict";function g(extends){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS (function(){"use strict";function g(extends){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS "use strict";/extends/.test(function g(extends){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS (function(){"use strict";/extends/.test(function g(extends){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a parameter name..
PASS "use strict";try{}catch(extends){}; true threw exception SyntaxError: Cannot use the keyword 'extends' as a catch parameter name..
PASS (function(){"use strict";try{}catch(extends){}; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a catch parameter name..
PASS "use strict";function extends(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'extends' as a function name..
PASS (function(){"use strict";function extends(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'extends' as a function name..
PASS "use strict";({ "extends": 42 }.extends === 42) is true
PASS (function(){"use strict";({ "extends": 42 }.extends === 42)}); true is true
PASS "use strict";({ extends: 42 }.extends === 42) is true
PASS (function(){"use strict";({ extends: 42 }.extends === 42)}); true is true
PASS "use strict";({ get extends(){}, set extends(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get extends(){}, set extends(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var import; true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS (function(){var import; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS var import = 42; import === 42 threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS (function(){var import = 42; import === 42}); true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS function g(import){  }; true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS (function(){function g(import){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS /import/.test(function g(import){  }) threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS (function(){/import/.test(function g(import){  })}); true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS try{}catch(import){}; true threw exception SyntaxError: Cannot use the keyword 'import' as a catch parameter name..
PASS (function(){try{}catch(import){}; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a catch parameter name..
PASS function import(){  }; true threw exception SyntaxError: Cannot use the keyword 'import' as a function name..
PASS (function(){function import(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a function name..
PASS ({ "import": 42 }.import === 42) is true
PASS (function(){({ "import": 42 }.import === 42)}); true is true
PASS ({ import: 42 }.import === 42) is true
PASS (function(){({ import: 42 }.import === 42)}); true is true
PASS ({ get import(){}, set import(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get import(){}, set import(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var import; true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS (function(){"use strict";var import; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS "use strict";var import = 42; import === 42 threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS (function(){"use strict";var import = 42; import === 42}); true threw exception SyntaxError: Cannot use the keyword 'import' as a variable name..
PASS "use strict";function g(import){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS (function(){"use strict";function g(import){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS "use strict";/import/.test(function g(import){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS (function(){"use strict";/import/.test(function g(import){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'import' as a parameter name..
PASS "use strict";try{}catch(import){}; true threw exception SyntaxError: Cannot use the keyword 'import' as a catch parameter name..
PASS (function(){"use strict";try{}catch(import){}; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a catch parameter name..
PASS "use strict";function import(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'import' as a function name..
PASS (function(){"use strict";function import(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'import' as a function name..
PASS "use strict";({ "import": 42 }.import === 42) is true
PASS (function(){"use strict";({ "import": 42 }.import === 42)}); true is true
PASS "use strict";({ import: 42 }.import === 42) is true
PASS (function(){"use strict";({ import: 42 }.import === 42)}); true is true
PASS "use strict";({ get import(){}, set import(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get import(){}, set import(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var super; true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS (function(){var super; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS var super = 42; super === 42 threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS (function(){var super = 42; super === 42}); true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS function g(super){  }; true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS (function(){function g(super){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS /super/.test(function g(super){  }) threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS (function(){/super/.test(function g(super){  })}); true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS try{}catch(super){}; true threw exception SyntaxError: Cannot use the keyword 'super' as a catch parameter name..
PASS (function(){try{}catch(super){}; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a catch parameter name..
PASS function super(){  }; true threw exception SyntaxError: Cannot use the keyword 'super' as a function name..
PASS (function(){function super(){  }; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a function name..
PASS ({ "super": 42 }.super === 42) is true
PASS (function(){({ "super": 42 }.super === 42)}); true is true
PASS ({ super: 42 }.super === 42) is true
PASS (function(){({ super: 42 }.super === 42)}); true is true
PASS ({ get super(){}, set super(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get super(){}, set super(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var super; true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS (function(){"use strict";var super; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS "use strict";var super = 42; super === 42 threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS (function(){"use strict";var super = 42; super === 42}); true threw exception SyntaxError: Cannot use the keyword 'super' as a variable name..
PASS "use strict";function g(super){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS (function(){"use strict";function g(super){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS "use strict";/super/.test(function g(super){ "use strict"; }) threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS (function(){"use strict";/super/.test(function g(super){ "use strict"; })}); true threw exception SyntaxError: Cannot use the keyword 'super' as a parameter name..
PASS "use strict";try{}catch(super){}; true threw exception SyntaxError: Cannot use the keyword 'super' as a catch parameter name..
PASS (function(){"use strict";try{}catch(super){}; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a catch parameter name..
PASS "use strict";function super(){ "use strict"; }; true threw exception SyntaxError: Cannot use the keyword 'super' as a function name..
PASS (function(){"use strict";function super(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the keyword 'super' as a function name..
PASS "use strict";({ "super": 42 }.super === 42) is true
PASS (function(){"use strict";({ "super": 42 }.super === 42)}); true is true
PASS "use strict";({ super: 42 }.super === 42) is true
PASS (function(){"use strict";({ super: 42 }.super === 42)}); true is true
PASS "use strict";({ get super(){}, set super(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get super(){}, set super(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var implements; true is true
PASS (function(){var implements; true}); true is true
PASS var implements = 42; implements === 42 is true
PASS (function(){var implements = 42; implements === 42}); true is true
PASS function g(implements){  }; true is true
PASS (function(){function g(implements){  }; true}); true is true
PASS /implements/.test(function g(implements){  }) is true
PASS (function(){/implements/.test(function g(implements){  })}); true is true
PASS try{}catch(implements){}; true is true
PASS (function(){try{}catch(implements){}; true}); true is true
PASS function implements(){  }; true is true
PASS (function(){function implements(){  }; true}); true is true
PASS ({ "implements": 42 }.implements === 42) is true
PASS (function(){({ "implements": 42 }.implements === 42)}); true is true
PASS ({ implements: 42 }.implements === 42) is true
PASS (function(){({ implements: 42 }.implements === 42)}); true is true
PASS ({ get implements(){}, set implements(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get implements(){}, set implements(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var implements; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
PASS (function(){"use strict";var implements; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
PASS "use strict";var implements = 42; implements === 42 threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
PASS (function(){"use strict";var implements = 42; implements === 42}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a variable name in strict mode..
PASS "use strict";function g(implements){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a parameter name in strict mode..
PASS (function(){"use strict";function g(implements){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a parameter name in strict mode..
PASS "use strict";/implements/.test(function g(implements){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'implements' as a parameter name in strict mode..
PASS (function(){"use strict";/implements/.test(function g(implements){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a parameter name in strict mode..
PASS "use strict";try{}catch(implements){}; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(implements){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a catch parameter name in strict mode..
PASS "use strict";function implements(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'implements' as a function name in strict mode..
PASS (function(){"use strict";function implements(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'implements' as a function name in strict mode..
PASS "use strict";({ "implements": 42 }.implements === 42) is true
PASS (function(){"use strict";({ "implements": 42 }.implements === 42)}); true is true
PASS "use strict";({ implements: 42 }.implements === 42) is true
PASS (function(){"use strict";({ implements: 42 }.implements === 42)}); true is true
PASS "use strict";({ get implements(){}, set implements(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get implements(){}, set implements(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var let; true is true
PASS (function(){var let; true}); true is true
PASS var let = 42; let === 42 is true
PASS (function(){var let = 42; let === 42}); true is true
PASS function g(let){  }; true is true
PASS (function(){function g(let){  }; true}); true is true
PASS /let/.test(function g(let){  }) is true
PASS (function(){/let/.test(function g(let){  })}); true is true
PASS try{}catch(let){}; true is true
PASS (function(){try{}catch(let){}; true}); true is true
PASS function let(){  }; true is true
PASS (function(){function let(){  }; true}); true is true
PASS ({ "let": 42 }.let === 42) is true
PASS (function(){({ "let": 42 }.let === 42)}); true is true
PASS ({ let: 42 }.let === 42) is true
PASS (function(){({ let: 42 }.let === 42)}); true is true
PASS ({ get let(){}, set let(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get let(){}, set let(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var let; true threw exception SyntaxError: Cannot use 'let' as a variable name in strict mode..
PASS (function(){"use strict";var let; true}); true threw exception SyntaxError: Cannot use 'let' as a variable name in strict mode..
PASS "use strict";var let = 42; let === 42 threw exception SyntaxError: Cannot use 'let' as a variable name in strict mode..
PASS (function(){"use strict";var let = 42; let === 42}); true threw exception SyntaxError: Cannot use 'let' as a variable name in strict mode..
PASS "use strict";function g(let){ "use strict"; }; true threw exception SyntaxError: Cannot use 'let' as a parameter name in strict mode..
PASS (function(){"use strict";function g(let){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use 'let' as a parameter name in strict mode..
PASS "use strict";/let/.test(function g(let){ "use strict"; }) threw exception SyntaxError: Cannot use 'let' as a parameter name in strict mode..
PASS (function(){"use strict";/let/.test(function g(let){ "use strict"; })}); true threw exception SyntaxError: Cannot use 'let' as a parameter name in strict mode..
PASS "use strict";try{}catch(let){}; true threw exception SyntaxError: Cannot use 'let' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(let){}; true}); true threw exception SyntaxError: Cannot use 'let' as a catch parameter name in strict mode..
PASS "use strict";function let(){ "use strict"; }; true threw exception SyntaxError: Cannot use 'let' as a function name in strict mode..
PASS (function(){"use strict";function let(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use 'let' as a function name in strict mode..
PASS "use strict";({ "let": 42 }.let === 42) is true
PASS (function(){"use strict";({ "let": 42 }.let === 42)}); true is true
PASS "use strict";({ let: 42 }.let === 42) is true
PASS (function(){"use strict";({ let: 42 }.let === 42)}); true is true
PASS "use strict";({ get let(){}, set let(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get let(){}, set let(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var private; true is true
PASS (function(){var private; true}); true is true
PASS var private = 42; private === 42 is true
PASS (function(){var private = 42; private === 42}); true is true
PASS function g(private){  }; true is true
PASS (function(){function g(private){  }; true}); true is true
PASS /private/.test(function g(private){  }) is true
PASS (function(){/private/.test(function g(private){  })}); true is true
PASS try{}catch(private){}; true is true
PASS (function(){try{}catch(private){}; true}); true is true
PASS function private(){  }; true is true
PASS (function(){function private(){  }; true}); true is true
PASS ({ "private": 42 }.private === 42) is true
PASS (function(){({ "private": 42 }.private === 42)}); true is true
PASS ({ private: 42 }.private === 42) is true
PASS (function(){({ private: 42 }.private === 42)}); true is true
PASS ({ get private(){}, set private(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get private(){}, set private(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var private; true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
PASS (function(){"use strict";var private; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
PASS "use strict";var private = 42; private === 42 threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
PASS (function(){"use strict";var private = 42; private === 42}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a variable name in strict mode..
PASS "use strict";function g(private){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'private' as a parameter name in strict mode..
PASS (function(){"use strict";function g(private){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a parameter name in strict mode..
PASS "use strict";/private/.test(function g(private){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'private' as a parameter name in strict mode..
PASS (function(){"use strict";/private/.test(function g(private){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a parameter name in strict mode..
PASS "use strict";try{}catch(private){}; true threw exception SyntaxError: Cannot use the reserved word 'private' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(private){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a catch parameter name in strict mode..
PASS "use strict";function private(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'private' as a function name in strict mode..
PASS (function(){"use strict";function private(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'private' as a function name in strict mode..
PASS "use strict";({ "private": 42 }.private === 42) is true
PASS (function(){"use strict";({ "private": 42 }.private === 42)}); true is true
PASS "use strict";({ private: 42 }.private === 42) is true
PASS (function(){"use strict";({ private: 42 }.private === 42)}); true is true
PASS "use strict";({ get private(){}, set private(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get private(){}, set private(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var public; true is true
PASS (function(){var public; true}); true is true
PASS var public = 42; public === 42 is true
PASS (function(){var public = 42; public === 42}); true is true
PASS function g(public){  }; true is true
PASS (function(){function g(public){  }; true}); true is true
PASS /public/.test(function g(public){  }) is true
PASS (function(){/public/.test(function g(public){  })}); true is true
PASS try{}catch(public){}; true is true
PASS (function(){try{}catch(public){}; true}); true is true
PASS function public(){  }; true is true
PASS (function(){function public(){  }; true}); true is true
PASS ({ "public": 42 }.public === 42) is true
PASS (function(){({ "public": 42 }.public === 42)}); true is true
PASS ({ public: 42 }.public === 42) is true
PASS (function(){({ public: 42 }.public === 42)}); true is true
PASS ({ get public(){}, set public(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get public(){}, set public(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var public; true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
PASS (function(){"use strict";var public; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
PASS "use strict";var public = 42; public === 42 threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
PASS (function(){"use strict";var public = 42; public === 42}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a variable name in strict mode..
PASS "use strict";function g(public){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'public' as a parameter name in strict mode..
PASS (function(){"use strict";function g(public){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a parameter name in strict mode..
PASS "use strict";/public/.test(function g(public){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'public' as a parameter name in strict mode..
PASS (function(){"use strict";/public/.test(function g(public){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a parameter name in strict mode..
PASS "use strict";try{}catch(public){}; true threw exception SyntaxError: Cannot use the reserved word 'public' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(public){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a catch parameter name in strict mode..
PASS "use strict";function public(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'public' as a function name in strict mode..
PASS (function(){"use strict";function public(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'public' as a function name in strict mode..
PASS "use strict";({ "public": 42 }.public === 42) is true
PASS (function(){"use strict";({ "public": 42 }.public === 42)}); true is true
PASS "use strict";({ public: 42 }.public === 42) is true
PASS (function(){"use strict";({ public: 42 }.public === 42)}); true is true
PASS "use strict";({ get public(){}, set public(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get public(){}, set public(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var yield; true is true
PASS (function(){var yield; true}); true is true
PASS var yield = 42; yield === 42 is true
PASS (function(){var yield = 42; yield === 42}); true is true
PASS function g(yield){  }; true is true
PASS (function(){function g(yield){  }; true}); true is true
PASS /yield/.test(function g(yield){  }) is true
PASS (function(){/yield/.test(function g(yield){  })}); true is true
PASS try{}catch(yield){}; true is true
PASS (function(){try{}catch(yield){}; true}); true is true
PASS function yield(){  }; true is true
PASS (function(){function yield(){  }; true}); true is true
PASS ({ "yield": 42 }.yield === 42) is true
PASS (function(){({ "yield": 42 }.yield === 42)}); true is true
PASS ({ yield: 42 }.yield === 42) is true
PASS (function(){({ yield: 42 }.yield === 42)}); true is true
PASS ({ get yield(){}, set yield(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get yield(){}, set yield(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var yield; true threw exception SyntaxError: Cannot use 'yield' as a variable name in strict mode..
PASS (function(){"use strict";var yield; true}); true threw exception SyntaxError: Cannot use 'yield' as a variable name in strict mode..
PASS "use strict";var yield = 42; yield === 42 threw exception SyntaxError: Cannot use 'yield' as a variable name in strict mode..
PASS (function(){"use strict";var yield = 42; yield === 42}); true threw exception SyntaxError: Cannot use 'yield' as a variable name in strict mode..
PASS "use strict";function g(yield){ "use strict"; }; true threw exception SyntaxError: Cannot use 'yield' as a parameter name in strict mode..
PASS (function(){"use strict";function g(yield){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use 'yield' as a parameter name in strict mode..
PASS "use strict";/yield/.test(function g(yield){ "use strict"; }) threw exception SyntaxError: Cannot use 'yield' as a parameter name in strict mode..
PASS (function(){"use strict";/yield/.test(function g(yield){ "use strict"; })}); true threw exception SyntaxError: Cannot use 'yield' as a parameter name in strict mode..
PASS "use strict";try{}catch(yield){}; true threw exception SyntaxError: Cannot use 'yield' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(yield){}; true}); true threw exception SyntaxError: Cannot use 'yield' as a catch parameter name in strict mode..
PASS "use strict";function yield(){ "use strict"; }; true threw exception SyntaxError: Cannot use 'yield' as a function name in strict mode..
PASS (function(){"use strict";function yield(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use 'yield' as a function name in strict mode..
PASS "use strict";({ "yield": 42 }.yield === 42) is true
PASS (function(){"use strict";({ "yield": 42 }.yield === 42)}); true is true
PASS "use strict";({ yield: 42 }.yield === 42) is true
PASS (function(){"use strict";({ yield: 42 }.yield === 42)}); true is true
PASS "use strict";({ get yield(){}, set yield(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get yield(){}, set yield(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var interface; true is true
PASS (function(){var interface; true}); true is true
PASS var interface = 42; interface === 42 is true
PASS (function(){var interface = 42; interface === 42}); true is true
PASS function g(interface){  }; true is true
PASS (function(){function g(interface){  }; true}); true is true
PASS /interface/.test(function g(interface){  }) is true
PASS (function(){/interface/.test(function g(interface){  })}); true is true
PASS try{}catch(interface){}; true is true
PASS (function(){try{}catch(interface){}; true}); true is true
PASS function interface(){  }; true is true
PASS (function(){function interface(){  }; true}); true is true
PASS ({ "interface": 42 }.interface === 42) is true
PASS (function(){({ "interface": 42 }.interface === 42)}); true is true
PASS ({ interface: 42 }.interface === 42) is true
PASS (function(){({ interface: 42 }.interface === 42)}); true is true
PASS ({ get interface(){}, set interface(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get interface(){}, set interface(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var interface; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
PASS (function(){"use strict";var interface; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
PASS "use strict";var interface = 42; interface === 42 threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
PASS (function(){"use strict";var interface = 42; interface === 42}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a variable name in strict mode..
PASS "use strict";function g(interface){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a parameter name in strict mode..
PASS (function(){"use strict";function g(interface){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a parameter name in strict mode..
PASS "use strict";/interface/.test(function g(interface){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'interface' as a parameter name in strict mode..
PASS (function(){"use strict";/interface/.test(function g(interface){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a parameter name in strict mode..
PASS "use strict";try{}catch(interface){}; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(interface){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a catch parameter name in strict mode..
PASS "use strict";function interface(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'interface' as a function name in strict mode..
PASS (function(){"use strict";function interface(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'interface' as a function name in strict mode..
PASS "use strict";({ "interface": 42 }.interface === 42) is true
PASS (function(){"use strict";({ "interface": 42 }.interface === 42)}); true is true
PASS "use strict";({ interface: 42 }.interface === 42) is true
PASS (function(){"use strict";({ interface: 42 }.interface === 42)}); true is true
PASS "use strict";({ get interface(){}, set interface(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get interface(){}, set interface(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var package; true is true
PASS (function(){var package; true}); true is true
PASS var package = 42; package === 42 is true
PASS (function(){var package = 42; package === 42}); true is true
PASS function g(package){  }; true is true
PASS (function(){function g(package){  }; true}); true is true
PASS /package/.test(function g(package){  }) is true
PASS (function(){/package/.test(function g(package){  })}); true is true
PASS try{}catch(package){}; true is true
PASS (function(){try{}catch(package){}; true}); true is true
PASS function package(){  }; true is true
PASS (function(){function package(){  }; true}); true is true
PASS ({ "package": 42 }.package === 42) is true
PASS (function(){({ "package": 42 }.package === 42)}); true is true
PASS ({ package: 42 }.package === 42) is true
PASS (function(){({ package: 42 }.package === 42)}); true is true
PASS ({ get package(){}, set package(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get package(){}, set package(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var package; true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
PASS (function(){"use strict";var package; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
PASS "use strict";var package = 42; package === 42 threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
PASS (function(){"use strict";var package = 42; package === 42}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a variable name in strict mode..
PASS "use strict";function g(package){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'package' as a parameter name in strict mode..
PASS (function(){"use strict";function g(package){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a parameter name in strict mode..
PASS "use strict";/package/.test(function g(package){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'package' as a parameter name in strict mode..
PASS (function(){"use strict";/package/.test(function g(package){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a parameter name in strict mode..
PASS "use strict";try{}catch(package){}; true threw exception SyntaxError: Cannot use the reserved word 'package' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(package){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a catch parameter name in strict mode..
PASS "use strict";function package(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'package' as a function name in strict mode..
PASS (function(){"use strict";function package(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'package' as a function name in strict mode..
PASS "use strict";({ "package": 42 }.package === 42) is true
PASS (function(){"use strict";({ "package": 42 }.package === 42)}); true is true
PASS "use strict";({ package: 42 }.package === 42) is true
PASS (function(){"use strict";({ package: 42 }.package === 42)}); true is true
PASS "use strict";({ get package(){}, set package(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get package(){}, set package(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var protected; true is true
PASS (function(){var protected; true}); true is true
PASS var protected = 42; protected === 42 is true
PASS (function(){var protected = 42; protected === 42}); true is true
PASS function g(protected){  }; true is true
PASS (function(){function g(protected){  }; true}); true is true
PASS /protected/.test(function g(protected){  }) is true
PASS (function(){/protected/.test(function g(protected){  })}); true is true
PASS try{}catch(protected){}; true is true
PASS (function(){try{}catch(protected){}; true}); true is true
PASS function protected(){  }; true is true
PASS (function(){function protected(){  }; true}); true is true
PASS ({ "protected": 42 }.protected === 42) is true
PASS (function(){({ "protected": 42 }.protected === 42)}); true is true
PASS ({ protected: 42 }.protected === 42) is true
PASS (function(){({ protected: 42 }.protected === 42)}); true is true
PASS ({ get protected(){}, set protected(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get protected(){}, set protected(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var protected; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
PASS (function(){"use strict";var protected; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
PASS "use strict";var protected = 42; protected === 42 threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
PASS (function(){"use strict";var protected = 42; protected === 42}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a variable name in strict mode..
PASS "use strict";function g(protected){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a parameter name in strict mode..
PASS (function(){"use strict";function g(protected){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a parameter name in strict mode..
PASS "use strict";/protected/.test(function g(protected){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'protected' as a parameter name in strict mode..
PASS (function(){"use strict";/protected/.test(function g(protected){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a parameter name in strict mode..
PASS "use strict";try{}catch(protected){}; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(protected){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a catch parameter name in strict mode..
PASS "use strict";function protected(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'protected' as a function name in strict mode..
PASS (function(){"use strict";function protected(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'protected' as a function name in strict mode..
PASS "use strict";({ "protected": 42 }.protected === 42) is true
PASS (function(){"use strict";({ "protected": 42 }.protected === 42)}); true is true
PASS "use strict";({ protected: 42 }.protected === 42) is true
PASS (function(){"use strict";({ protected: 42 }.protected === 42)}); true is true
PASS "use strict";({ get protected(){}, set protected(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get protected(){}, set protected(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var static; true is true
PASS (function(){var static; true}); true is true
PASS var static = 42; static === 42 is true
PASS (function(){var static = 42; static === 42}); true is true
PASS function g(static){  }; true is true
PASS (function(){function g(static){  }; true}); true is true
PASS /static/.test(function g(static){  }) is true
PASS (function(){/static/.test(function g(static){  })}); true is true
PASS try{}catch(static){}; true is true
PASS (function(){try{}catch(static){}; true}); true is true
PASS function static(){  }; true is true
PASS (function(){function static(){  }; true}); true is true
PASS ({ "static": 42 }.static === 42) is true
PASS (function(){({ "static": 42 }.static === 42)}); true is true
PASS ({ static: 42 }.static === 42) is true
PASS (function(){({ static: 42 }.static === 42)}); true is true
PASS ({ get static(){}, set static(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get static(){}, set static(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var static; true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
PASS (function(){"use strict";var static; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
PASS "use strict";var static = 42; static === 42 threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
PASS (function(){"use strict";var static = 42; static === 42}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a variable name in strict mode..
PASS "use strict";function g(static){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'static' as a parameter name in strict mode..
PASS (function(){"use strict";function g(static){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a parameter name in strict mode..
PASS "use strict";/static/.test(function g(static){ "use strict"; }) threw exception SyntaxError: Cannot use the reserved word 'static' as a parameter name in strict mode..
PASS (function(){"use strict";/static/.test(function g(static){ "use strict"; })}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a parameter name in strict mode..
PASS "use strict";try{}catch(static){}; true threw exception SyntaxError: Cannot use the reserved word 'static' as a catch parameter name in strict mode..
PASS (function(){"use strict";try{}catch(static){}; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a catch parameter name in strict mode..
PASS "use strict";function static(){ "use strict"; }; true threw exception SyntaxError: Cannot use the reserved word 'static' as a function name in strict mode..
PASS (function(){"use strict";function static(){ "use strict"; }; true}); true threw exception SyntaxError: Cannot use the reserved word 'static' as a function name in strict mode..
PASS "use strict";({ "static": 42 }.static === 42) is true
PASS (function(){"use strict";({ "static": 42 }.static === 42)}); true is true
PASS "use strict";({ static: 42 }.static === 42) is true
PASS (function(){"use strict";({ static: 42 }.static === 42)}); true is true
PASS "use strict";({ get static(){}, set static(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get static(){}, set static(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var abstract; true is true
PASS (function(){var abstract; true}); true is true
PASS var abstract = 42; abstract === 42 is true
PASS (function(){var abstract = 42; abstract === 42}); true is true
PASS function g(abstract){  }; true is true
PASS (function(){function g(abstract){  }; true}); true is true
PASS /abstract/.test(function g(abstract){  }) is true
PASS (function(){/abstract/.test(function g(abstract){  })}); true is true
PASS try{}catch(abstract){}; true is true
PASS (function(){try{}catch(abstract){}; true}); true is true
PASS function abstract(){  }; true is true
PASS (function(){function abstract(){  }; true}); true is true
PASS ({ "abstract": 42 }.abstract === 42) is true
PASS (function(){({ "abstract": 42 }.abstract === 42)}); true is true
PASS ({ abstract: 42 }.abstract === 42) is true
PASS (function(){({ abstract: 42 }.abstract === 42)}); true is true
PASS ({ get abstract(){}, set abstract(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get abstract(){}, set abstract(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var abstract; true is true
PASS (function(){"use strict";var abstract; true}); true is true
PASS "use strict";var abstract = 42; abstract === 42 is true
PASS (function(){"use strict";var abstract = 42; abstract === 42}); true is true
PASS "use strict";function g(abstract){ "use strict"; }; true is true
PASS (function(){"use strict";function g(abstract){ "use strict"; }; true}); true is true
PASS "use strict";/abstract/.test(function g(abstract){ "use strict"; }) is true
PASS (function(){"use strict";/abstract/.test(function g(abstract){ "use strict"; })}); true is true
PASS "use strict";try{}catch(abstract){}; true is true
PASS (function(){"use strict";try{}catch(abstract){}; true}); true is true
PASS "use strict";function abstract(){ "use strict"; }; true is true
PASS (function(){"use strict";function abstract(){ "use strict"; }; true}); true is true
PASS "use strict";({ "abstract": 42 }.abstract === 42) is true
PASS (function(){"use strict";({ "abstract": 42 }.abstract === 42)}); true is true
PASS "use strict";({ abstract: 42 }.abstract === 42) is true
PASS (function(){"use strict";({ abstract: 42 }.abstract === 42)}); true is true
PASS "use strict";({ get abstract(){}, set abstract(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get abstract(){}, set abstract(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var boolean; true is true
PASS (function(){var boolean; true}); true is true
PASS var boolean = 42; boolean === 42 is true
PASS (function(){var boolean = 42; boolean === 42}); true is true
PASS function g(boolean){  }; true is true
PASS (function(){function g(boolean){  }; true}); true is true
PASS /boolean/.test(function g(boolean){  }) is true
PASS (function(){/boolean/.test(function g(boolean){  })}); true is true
PASS try{}catch(boolean){}; true is true
PASS (function(){try{}catch(boolean){}; true}); true is true
PASS function boolean(){  }; true is true
PASS (function(){function boolean(){  }; true}); true is true
PASS ({ "boolean": 42 }.boolean === 42) is true
PASS (function(){({ "boolean": 42 }.boolean === 42)}); true is true
PASS ({ boolean: 42 }.boolean === 42) is true
PASS (function(){({ boolean: 42 }.boolean === 42)}); true is true
PASS ({ get boolean(){}, set boolean(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get boolean(){}, set boolean(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var boolean; true is true
PASS (function(){"use strict";var boolean; true}); true is true
PASS "use strict";var boolean = 42; boolean === 42 is true
PASS (function(){"use strict";var boolean = 42; boolean === 42}); true is true
PASS "use strict";function g(boolean){ "use strict"; }; true is true
PASS (function(){"use strict";function g(boolean){ "use strict"; }; true}); true is true
PASS "use strict";/boolean/.test(function g(boolean){ "use strict"; }) is true
PASS (function(){"use strict";/boolean/.test(function g(boolean){ "use strict"; })}); true is true
PASS "use strict";try{}catch(boolean){}; true is true
PASS (function(){"use strict";try{}catch(boolean){}; true}); true is true
PASS "use strict";function boolean(){ "use strict"; }; true is true
PASS (function(){"use strict";function boolean(){ "use strict"; }; true}); true is true
PASS "use strict";({ "boolean": 42 }.boolean === 42) is true
PASS (function(){"use strict";({ "boolean": 42 }.boolean === 42)}); true is true
PASS "use strict";({ boolean: 42 }.boolean === 42) is true
PASS (function(){"use strict";({ boolean: 42 }.boolean === 42)}); true is true
PASS "use strict";({ get boolean(){}, set boolean(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get boolean(){}, set boolean(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var byte; true is true
PASS (function(){var byte; true}); true is true
PASS var byte = 42; byte === 42 is true
PASS (function(){var byte = 42; byte === 42}); true is true
PASS function g(byte){  }; true is true
PASS (function(){function g(byte){  }; true}); true is true
PASS /byte/.test(function g(byte){  }) is true
PASS (function(){/byte/.test(function g(byte){  })}); true is true
PASS try{}catch(byte){}; true is true
PASS (function(){try{}catch(byte){}; true}); true is true
PASS function byte(){  }; true is true
PASS (function(){function byte(){  }; true}); true is true
PASS ({ "byte": 42 }.byte === 42) is true
PASS (function(){({ "byte": 42 }.byte === 42)}); true is true
PASS ({ byte: 42 }.byte === 42) is true
PASS (function(){({ byte: 42 }.byte === 42)}); true is true
PASS ({ get byte(){}, set byte(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get byte(){}, set byte(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var byte; true is true
PASS (function(){"use strict";var byte; true}); true is true
PASS "use strict";var byte = 42; byte === 42 is true
PASS (function(){"use strict";var byte = 42; byte === 42}); true is true
PASS "use strict";function g(byte){ "use strict"; }; true is true
PASS (function(){"use strict";function g(byte){ "use strict"; }; true}); true is true
PASS "use strict";/byte/.test(function g(byte){ "use strict"; }) is true
PASS (function(){"use strict";/byte/.test(function g(byte){ "use strict"; })}); true is true
PASS "use strict";try{}catch(byte){}; true is true
PASS (function(){"use strict";try{}catch(byte){}; true}); true is true
PASS "use strict";function byte(){ "use strict"; }; true is true
PASS (function(){"use strict";function byte(){ "use strict"; }; true}); true is true
PASS "use strict";({ "byte": 42 }.byte === 42) is true
PASS (function(){"use strict";({ "byte": 42 }.byte === 42)}); true is true
PASS "use strict";({ byte: 42 }.byte === 42) is true
PASS (function(){"use strict";({ byte: 42 }.byte === 42)}); true is true
PASS "use strict";({ get byte(){}, set byte(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get byte(){}, set byte(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var char; true is true
PASS (function(){var char; true}); true is true
PASS var char = 42; char === 42 is true
PASS (function(){var char = 42; char === 42}); true is true
PASS function g(char){  }; true is true
PASS (function(){function g(char){  }; true}); true is true
PASS /char/.test(function g(char){  }) is true
PASS (function(){/char/.test(function g(char){  })}); true is true
PASS try{}catch(char){}; true is true
PASS (function(){try{}catch(char){}; true}); true is true
PASS function char(){  }; true is true
PASS (function(){function char(){  }; true}); true is true
PASS ({ "char": 42 }.char === 42) is true
PASS (function(){({ "char": 42 }.char === 42)}); true is true
PASS ({ char: 42 }.char === 42) is true
PASS (function(){({ char: 42 }.char === 42)}); true is true
PASS ({ get char(){}, set char(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get char(){}, set char(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var char; true is true
PASS (function(){"use strict";var char; true}); true is true
PASS "use strict";var char = 42; char === 42 is true
PASS (function(){"use strict";var char = 42; char === 42}); true is true
PASS "use strict";function g(char){ "use strict"; }; true is true
PASS (function(){"use strict";function g(char){ "use strict"; }; true}); true is true
PASS "use strict";/char/.test(function g(char){ "use strict"; }) is true
PASS (function(){"use strict";/char/.test(function g(char){ "use strict"; })}); true is true
PASS "use strict";try{}catch(char){}; true is true
PASS (function(){"use strict";try{}catch(char){}; true}); true is true
PASS "use strict";function char(){ "use strict"; }; true is true
PASS (function(){"use strict";function char(){ "use strict"; }; true}); true is true
PASS "use strict";({ "char": 42 }.char === 42) is true
PASS (function(){"use strict";({ "char": 42 }.char === 42)}); true is true
PASS "use strict";({ char: 42 }.char === 42) is true
PASS (function(){"use strict";({ char: 42 }.char === 42)}); true is true
PASS "use strict";({ get char(){}, set char(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get char(){}, set char(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var double; true is true
PASS (function(){var double; true}); true is true
PASS var double = 42; double === 42 is true
PASS (function(){var double = 42; double === 42}); true is true
PASS function g(double){  }; true is true
PASS (function(){function g(double){  }; true}); true is true
PASS /double/.test(function g(double){  }) is true
PASS (function(){/double/.test(function g(double){  })}); true is true
PASS try{}catch(double){}; true is true
PASS (function(){try{}catch(double){}; true}); true is true
PASS function double(){  }; true is true
PASS (function(){function double(){  }; true}); true is true
PASS ({ "double": 42 }.double === 42) is true
PASS (function(){({ "double": 42 }.double === 42)}); true is true
PASS ({ double: 42 }.double === 42) is true
PASS (function(){({ double: 42 }.double === 42)}); true is true
PASS ({ get double(){}, set double(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get double(){}, set double(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var double; true is true
PASS (function(){"use strict";var double; true}); true is true
PASS "use strict";var double = 42; double === 42 is true
PASS (function(){"use strict";var double = 42; double === 42}); true is true
PASS "use strict";function g(double){ "use strict"; }; true is true
PASS (function(){"use strict";function g(double){ "use strict"; }; true}); true is true
PASS "use strict";/double/.test(function g(double){ "use strict"; }) is true
PASS (function(){"use strict";/double/.test(function g(double){ "use strict"; })}); true is true
PASS "use strict";try{}catch(double){}; true is true
PASS (function(){"use strict";try{}catch(double){}; true}); true is true
PASS "use strict";function double(){ "use strict"; }; true is true
PASS (function(){"use strict";function double(){ "use strict"; }; true}); true is true
PASS "use strict";({ "double": 42 }.double === 42) is true
PASS (function(){"use strict";({ "double": 42 }.double === 42)}); true is true
PASS "use strict";({ double: 42 }.double === 42) is true
PASS (function(){"use strict";({ double: 42 }.double === 42)}); true is true
PASS "use strict";({ get double(){}, set double(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get double(){}, set double(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var final; true is true
PASS (function(){var final; true}); true is true
PASS var final = 42; final === 42 is true
PASS (function(){var final = 42; final === 42}); true is true
PASS function g(final){  }; true is true
PASS (function(){function g(final){  }; true}); true is true
PASS /final/.test(function g(final){  }) is true
PASS (function(){/final/.test(function g(final){  })}); true is true
PASS try{}catch(final){}; true is true
PASS (function(){try{}catch(final){}; true}); true is true
PASS function final(){  }; true is true
PASS (function(){function final(){  }; true}); true is true
PASS ({ "final": 42 }.final === 42) is true
PASS (function(){({ "final": 42 }.final === 42)}); true is true
PASS ({ final: 42 }.final === 42) is true
PASS (function(){({ final: 42 }.final === 42)}); true is true
PASS ({ get final(){}, set final(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get final(){}, set final(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var final; true is true
PASS (function(){"use strict";var final; true}); true is true
PASS "use strict";var final = 42; final === 42 is true
PASS (function(){"use strict";var final = 42; final === 42}); true is true
PASS "use strict";function g(final){ "use strict"; }; true is true
PASS (function(){"use strict";function g(final){ "use strict"; }; true}); true is true
PASS "use strict";/final/.test(function g(final){ "use strict"; }) is true
PASS (function(){"use strict";/final/.test(function g(final){ "use strict"; })}); true is true
PASS "use strict";try{}catch(final){}; true is true
PASS (function(){"use strict";try{}catch(final){}; true}); true is true
PASS "use strict";function final(){ "use strict"; }; true is true
PASS (function(){"use strict";function final(){ "use strict"; }; true}); true is true
PASS "use strict";({ "final": 42 }.final === 42) is true
PASS (function(){"use strict";({ "final": 42 }.final === 42)}); true is true
PASS "use strict";({ final: 42 }.final === 42) is true
PASS (function(){"use strict";({ final: 42 }.final === 42)}); true is true
PASS "use strict";({ get final(){}, set final(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get final(){}, set final(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var float; true is true
PASS (function(){var float; true}); true is true
PASS var float = 42; float === 42 is true
PASS (function(){var float = 42; float === 42}); true is true
PASS function g(float){  }; true is true
PASS (function(){function g(float){  }; true}); true is true
PASS /float/.test(function g(float){  }) is true
PASS (function(){/float/.test(function g(float){  })}); true is true
PASS try{}catch(float){}; true is true
PASS (function(){try{}catch(float){}; true}); true is true
PASS function float(){  }; true is true
PASS (function(){function float(){  }; true}); true is true
PASS ({ "float": 42 }.float === 42) is true
PASS (function(){({ "float": 42 }.float === 42)}); true is true
PASS ({ float: 42 }.float === 42) is true
PASS (function(){({ float: 42 }.float === 42)}); true is true
PASS ({ get float(){}, set float(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get float(){}, set float(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var float; true is true
PASS (function(){"use strict";var float; true}); true is true
PASS "use strict";var float = 42; float === 42 is true
PASS (function(){"use strict";var float = 42; float === 42}); true is true
PASS "use strict";function g(float){ "use strict"; }; true is true
PASS (function(){"use strict";function g(float){ "use strict"; }; true}); true is true
PASS "use strict";/float/.test(function g(float){ "use strict"; }) is true
PASS (function(){"use strict";/float/.test(function g(float){ "use strict"; })}); true is true
PASS "use strict";try{}catch(float){}; true is true
PASS (function(){"use strict";try{}catch(float){}; true}); true is true
PASS "use strict";function float(){ "use strict"; }; true is true
PASS (function(){"use strict";function float(){ "use strict"; }; true}); true is true
PASS "use strict";({ "float": 42 }.float === 42) is true
PASS (function(){"use strict";({ "float": 42 }.float === 42)}); true is true
PASS "use strict";({ float: 42 }.float === 42) is true
PASS (function(){"use strict";({ float: 42 }.float === 42)}); true is true
PASS "use strict";({ get float(){}, set float(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get float(){}, set float(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var goto; true is true
PASS (function(){var goto; true}); true is true
PASS var goto = 42; goto === 42 is true
PASS (function(){var goto = 42; goto === 42}); true is true
PASS function g(goto){  }; true is true
PASS (function(){function g(goto){  }; true}); true is true
PASS /goto/.test(function g(goto){  }) is true
PASS (function(){/goto/.test(function g(goto){  })}); true is true
PASS try{}catch(goto){}; true is true
PASS (function(){try{}catch(goto){}; true}); true is true
PASS function goto(){  }; true is true
PASS (function(){function goto(){  }; true}); true is true
PASS ({ "goto": 42 }.goto === 42) is true
PASS (function(){({ "goto": 42 }.goto === 42)}); true is true
PASS ({ goto: 42 }.goto === 42) is true
PASS (function(){({ goto: 42 }.goto === 42)}); true is true
PASS ({ get goto(){}, set goto(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get goto(){}, set goto(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var goto; true is true
PASS (function(){"use strict";var goto; true}); true is true
PASS "use strict";var goto = 42; goto === 42 is true
PASS (function(){"use strict";var goto = 42; goto === 42}); true is true
PASS "use strict";function g(goto){ "use strict"; }; true is true
PASS (function(){"use strict";function g(goto){ "use strict"; }; true}); true is true
PASS "use strict";/goto/.test(function g(goto){ "use strict"; }) is true
PASS (function(){"use strict";/goto/.test(function g(goto){ "use strict"; })}); true is true
PASS "use strict";try{}catch(goto){}; true is true
PASS (function(){"use strict";try{}catch(goto){}; true}); true is true
PASS "use strict";function goto(){ "use strict"; }; true is true
PASS (function(){"use strict";function goto(){ "use strict"; }; true}); true is true
PASS "use strict";({ "goto": 42 }.goto === 42) is true
PASS (function(){"use strict";({ "goto": 42 }.goto === 42)}); true is true
PASS "use strict";({ goto: 42 }.goto === 42) is true
PASS (function(){"use strict";({ goto: 42 }.goto === 42)}); true is true
PASS "use strict";({ get goto(){}, set goto(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get goto(){}, set goto(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var int; true is true
PASS (function(){var int; true}); true is true
PASS var int = 42; int === 42 is true
PASS (function(){var int = 42; int === 42}); true is true
PASS function g(int){  }; true is true
PASS (function(){function g(int){  }; true}); true is true
PASS /int/.test(function g(int){  }) is true
PASS (function(){/int/.test(function g(int){  })}); true is true
PASS try{}catch(int){}; true is true
PASS (function(){try{}catch(int){}; true}); true is true
PASS function int(){  }; true is true
PASS (function(){function int(){  }; true}); true is true
PASS ({ "int": 42 }.int === 42) is true
PASS (function(){({ "int": 42 }.int === 42)}); true is true
PASS ({ int: 42 }.int === 42) is true
PASS (function(){({ int: 42 }.int === 42)}); true is true
PASS ({ get int(){}, set int(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get int(){}, set int(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var int; true is true
PASS (function(){"use strict";var int; true}); true is true
PASS "use strict";var int = 42; int === 42 is true
PASS (function(){"use strict";var int = 42; int === 42}); true is true
PASS "use strict";function g(int){ "use strict"; }; true is true
PASS (function(){"use strict";function g(int){ "use strict"; }; true}); true is true
PASS "use strict";/int/.test(function g(int){ "use strict"; }) is true
PASS (function(){"use strict";/int/.test(function g(int){ "use strict"; })}); true is true
PASS "use strict";try{}catch(int){}; true is true
PASS (function(){"use strict";try{}catch(int){}; true}); true is true
PASS "use strict";function int(){ "use strict"; }; true is true
PASS (function(){"use strict";function int(){ "use strict"; }; true}); true is true
PASS "use strict";({ "int": 42 }.int === 42) is true
PASS (function(){"use strict";({ "int": 42 }.int === 42)}); true is true
PASS "use strict";({ int: 42 }.int === 42) is true
PASS (function(){"use strict";({ int: 42 }.int === 42)}); true is true
PASS "use strict";({ get int(){}, set int(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get int(){}, set int(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var long; true is true
PASS (function(){var long; true}); true is true
PASS var long = 42; long === 42 is true
PASS (function(){var long = 42; long === 42}); true is true
PASS function g(long){  }; true is true
PASS (function(){function g(long){  }; true}); true is true
PASS /long/.test(function g(long){  }) is true
PASS (function(){/long/.test(function g(long){  })}); true is true
PASS try{}catch(long){}; true is true
PASS (function(){try{}catch(long){}; true}); true is true
PASS function long(){  }; true is true
PASS (function(){function long(){  }; true}); true is true
PASS ({ "long": 42 }.long === 42) is true
PASS (function(){({ "long": 42 }.long === 42)}); true is true
PASS ({ long: 42 }.long === 42) is true
PASS (function(){({ long: 42 }.long === 42)}); true is true
PASS ({ get long(){}, set long(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get long(){}, set long(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var long; true is true
PASS (function(){"use strict";var long; true}); true is true
PASS "use strict";var long = 42; long === 42 is true
PASS (function(){"use strict";var long = 42; long === 42}); true is true
PASS "use strict";function g(long){ "use strict"; }; true is true
PASS (function(){"use strict";function g(long){ "use strict"; }; true}); true is true
PASS "use strict";/long/.test(function g(long){ "use strict"; }) is true
PASS (function(){"use strict";/long/.test(function g(long){ "use strict"; })}); true is true
PASS "use strict";try{}catch(long){}; true is true
PASS (function(){"use strict";try{}catch(long){}; true}); true is true
PASS "use strict";function long(){ "use strict"; }; true is true
PASS (function(){"use strict";function long(){ "use strict"; }; true}); true is true
PASS "use strict";({ "long": 42 }.long === 42) is true
PASS (function(){"use strict";({ "long": 42 }.long === 42)}); true is true
PASS "use strict";({ long: 42 }.long === 42) is true
PASS (function(){"use strict";({ long: 42 }.long === 42)}); true is true
PASS "use strict";({ get long(){}, set long(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get long(){}, set long(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var native; true is true
PASS (function(){var native; true}); true is true
PASS var native = 42; native === 42 is true
PASS (function(){var native = 42; native === 42}); true is true
PASS function g(native){  }; true is true
PASS (function(){function g(native){  }; true}); true is true
PASS /native/.test(function g(native){  }) is true
PASS (function(){/native/.test(function g(native){  })}); true is true
PASS try{}catch(native){}; true is true
PASS (function(){try{}catch(native){}; true}); true is true
PASS function native(){  }; true is true
PASS (function(){function native(){  }; true}); true is true
PASS ({ "native": 42 }.native === 42) is true
PASS (function(){({ "native": 42 }.native === 42)}); true is true
PASS ({ native: 42 }.native === 42) is true
PASS (function(){({ native: 42 }.native === 42)}); true is true
PASS ({ get native(){}, set native(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get native(){}, set native(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var native; true is true
PASS (function(){"use strict";var native; true}); true is true
PASS "use strict";var native = 42; native === 42 is true
PASS (function(){"use strict";var native = 42; native === 42}); true is true
PASS "use strict";function g(native){ "use strict"; }; true is true
PASS (function(){"use strict";function g(native){ "use strict"; }; true}); true is true
PASS "use strict";/native/.test(function g(native){ "use strict"; }) is true
PASS (function(){"use strict";/native/.test(function g(native){ "use strict"; })}); true is true
PASS "use strict";try{}catch(native){}; true is true
PASS (function(){"use strict";try{}catch(native){}; true}); true is true
PASS "use strict";function native(){ "use strict"; }; true is true
PASS (function(){"use strict";function native(){ "use strict"; }; true}); true is true
PASS "use strict";({ "native": 42 }.native === 42) is true
PASS (function(){"use strict";({ "native": 42 }.native === 42)}); true is true
PASS "use strict";({ native: 42 }.native === 42) is true
PASS (function(){"use strict";({ native: 42 }.native === 42)}); true is true
PASS "use strict";({ get native(){}, set native(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get native(){}, set native(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var short; true is true
PASS (function(){var short; true}); true is true
PASS var short = 42; short === 42 is true
PASS (function(){var short = 42; short === 42}); true is true
PASS function g(short){  }; true is true
PASS (function(){function g(short){  }; true}); true is true
PASS /short/.test(function g(short){  }) is true
PASS (function(){/short/.test(function g(short){  })}); true is true
PASS try{}catch(short){}; true is true
PASS (function(){try{}catch(short){}; true}); true is true
PASS function short(){  }; true is true
PASS (function(){function short(){  }; true}); true is true
PASS ({ "short": 42 }.short === 42) is true
PASS (function(){({ "short": 42 }.short === 42)}); true is true
PASS ({ short: 42 }.short === 42) is true
PASS (function(){({ short: 42 }.short === 42)}); true is true
PASS ({ get short(){}, set short(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get short(){}, set short(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var short; true is true
PASS (function(){"use strict";var short; true}); true is true
PASS "use strict";var short = 42; short === 42 is true
PASS (function(){"use strict";var short = 42; short === 42}); true is true
PASS "use strict";function g(short){ "use strict"; }; true is true
PASS (function(){"use strict";function g(short){ "use strict"; }; true}); true is true
PASS "use strict";/short/.test(function g(short){ "use strict"; }) is true
PASS (function(){"use strict";/short/.test(function g(short){ "use strict"; })}); true is true
PASS "use strict";try{}catch(short){}; true is true
PASS (function(){"use strict";try{}catch(short){}; true}); true is true
PASS "use strict";function short(){ "use strict"; }; true is true
PASS (function(){"use strict";function short(){ "use strict"; }; true}); true is true
PASS "use strict";({ "short": 42 }.short === 42) is true
PASS (function(){"use strict";({ "short": 42 }.short === 42)}); true is true
PASS "use strict";({ short: 42 }.short === 42) is true
PASS (function(){"use strict";({ short: 42 }.short === 42)}); true is true
PASS "use strict";({ get short(){}, set short(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get short(){}, set short(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var synchronized; true is true
PASS (function(){var synchronized; true}); true is true
PASS var synchronized = 42; synchronized === 42 is true
PASS (function(){var synchronized = 42; synchronized === 42}); true is true
PASS function g(synchronized){  }; true is true
PASS (function(){function g(synchronized){  }; true}); true is true
PASS /synchronized/.test(function g(synchronized){  }) is true
PASS (function(){/synchronized/.test(function g(synchronized){  })}); true is true
PASS try{}catch(synchronized){}; true is true
PASS (function(){try{}catch(synchronized){}; true}); true is true
PASS function synchronized(){  }; true is true
PASS (function(){function synchronized(){  }; true}); true is true
PASS ({ "synchronized": 42 }.synchronized === 42) is true
PASS (function(){({ "synchronized": 42 }.synchronized === 42)}); true is true
PASS ({ synchronized: 42 }.synchronized === 42) is true
PASS (function(){({ synchronized: 42 }.synchronized === 42)}); true is true
PASS ({ get synchronized(){}, set synchronized(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get synchronized(){}, set synchronized(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var synchronized; true is true
PASS (function(){"use strict";var synchronized; true}); true is true
PASS "use strict";var synchronized = 42; synchronized === 42 is true
PASS (function(){"use strict";var synchronized = 42; synchronized === 42}); true is true
PASS "use strict";function g(synchronized){ "use strict"; }; true is true
PASS (function(){"use strict";function g(synchronized){ "use strict"; }; true}); true is true
PASS "use strict";/synchronized/.test(function g(synchronized){ "use strict"; }) is true
PASS (function(){"use strict";/synchronized/.test(function g(synchronized){ "use strict"; })}); true is true
PASS "use strict";try{}catch(synchronized){}; true is true
PASS (function(){"use strict";try{}catch(synchronized){}; true}); true is true
PASS "use strict";function synchronized(){ "use strict"; }; true is true
PASS (function(){"use strict";function synchronized(){ "use strict"; }; true}); true is true
PASS "use strict";({ "synchronized": 42 }.synchronized === 42) is true
PASS (function(){"use strict";({ "synchronized": 42 }.synchronized === 42)}); true is true
PASS "use strict";({ synchronized: 42 }.synchronized === 42) is true
PASS (function(){"use strict";({ synchronized: 42 }.synchronized === 42)}); true is true
PASS "use strict";({ get synchronized(){}, set synchronized(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get synchronized(){}, set synchronized(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var throws; true is true
PASS (function(){var throws; true}); true is true
PASS var throws = 42; throws === 42 is true
PASS (function(){var throws = 42; throws === 42}); true is true
PASS function g(throws){  }; true is true
PASS (function(){function g(throws){  }; true}); true is true
PASS /throws/.test(function g(throws){  }) is true
PASS (function(){/throws/.test(function g(throws){  })}); true is true
PASS try{}catch(throws){}; true is true
PASS (function(){try{}catch(throws){}; true}); true is true
PASS function throws(){  }; true is true
PASS (function(){function throws(){  }; true}); true is true
PASS ({ "throws": 42 }.throws === 42) is true
PASS (function(){({ "throws": 42 }.throws === 42)}); true is true
PASS ({ throws: 42 }.throws === 42) is true
PASS (function(){({ throws: 42 }.throws === 42)}); true is true
PASS ({ get throws(){}, set throws(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get throws(){}, set throws(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var throws; true is true
PASS (function(){"use strict";var throws; true}); true is true
PASS "use strict";var throws = 42; throws === 42 is true
PASS (function(){"use strict";var throws = 42; throws === 42}); true is true
PASS "use strict";function g(throws){ "use strict"; }; true is true
PASS (function(){"use strict";function g(throws){ "use strict"; }; true}); true is true
PASS "use strict";/throws/.test(function g(throws){ "use strict"; }) is true
PASS (function(){"use strict";/throws/.test(function g(throws){ "use strict"; })}); true is true
PASS "use strict";try{}catch(throws){}; true is true
PASS (function(){"use strict";try{}catch(throws){}; true}); true is true
PASS "use strict";function throws(){ "use strict"; }; true is true
PASS (function(){"use strict";function throws(){ "use strict"; }; true}); true is true
PASS "use strict";({ "throws": 42 }.throws === 42) is true
PASS (function(){"use strict";({ "throws": 42 }.throws === 42)}); true is true
PASS "use strict";({ throws: 42 }.throws === 42) is true
PASS (function(){"use strict";({ throws: 42 }.throws === 42)}); true is true
PASS "use strict";({ get throws(){}, set throws(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get throws(){}, set throws(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var transient; true is true
PASS (function(){var transient; true}); true is true
PASS var transient = 42; transient === 42 is true
PASS (function(){var transient = 42; transient === 42}); true is true
PASS function g(transient){  }; true is true
PASS (function(){function g(transient){  }; true}); true is true
PASS /transient/.test(function g(transient){  }) is true
PASS (function(){/transient/.test(function g(transient){  })}); true is true
PASS try{}catch(transient){}; true is true
PASS (function(){try{}catch(transient){}; true}); true is true
PASS function transient(){  }; true is true
PASS (function(){function transient(){  }; true}); true is true
PASS ({ "transient": 42 }.transient === 42) is true
PASS (function(){({ "transient": 42 }.transient === 42)}); true is true
PASS ({ transient: 42 }.transient === 42) is true
PASS (function(){({ transient: 42 }.transient === 42)}); true is true
PASS ({ get transient(){}, set transient(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get transient(){}, set transient(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var transient; true is true
PASS (function(){"use strict";var transient; true}); true is true
PASS "use strict";var transient = 42; transient === 42 is true
PASS (function(){"use strict";var transient = 42; transient === 42}); true is true
PASS "use strict";function g(transient){ "use strict"; }; true is true
PASS (function(){"use strict";function g(transient){ "use strict"; }; true}); true is true
PASS "use strict";/transient/.test(function g(transient){ "use strict"; }) is true
PASS (function(){"use strict";/transient/.test(function g(transient){ "use strict"; })}); true is true
PASS "use strict";try{}catch(transient){}; true is true
PASS (function(){"use strict";try{}catch(transient){}; true}); true is true
PASS "use strict";function transient(){ "use strict"; }; true is true
PASS (function(){"use strict";function transient(){ "use strict"; }; true}); true is true
PASS "use strict";({ "transient": 42 }.transient === 42) is true
PASS (function(){"use strict";({ "transient": 42 }.transient === 42)}); true is true
PASS "use strict";({ transient: 42 }.transient === 42) is true
PASS (function(){"use strict";({ transient: 42 }.transient === 42)}); true is true
PASS "use strict";({ get transient(){}, set transient(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get transient(){}, set transient(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS var volatile; true is true
PASS (function(){var volatile; true}); true is true
PASS var volatile = 42; volatile === 42 is true
PASS (function(){var volatile = 42; volatile === 42}); true is true
PASS function g(volatile){  }; true is true
PASS (function(){function g(volatile){  }; true}); true is true
PASS /volatile/.test(function g(volatile){  }) is true
PASS (function(){/volatile/.test(function g(volatile){  })}); true is true
PASS try{}catch(volatile){}; true is true
PASS (function(){try{}catch(volatile){}; true}); true is true
PASS function volatile(){  }; true is true
PASS (function(){function volatile(){  }; true}); true is true
PASS ({ "volatile": 42 }.volatile === 42) is true
PASS (function(){({ "volatile": 42 }.volatile === 42)}); true is true
PASS ({ volatile: 42 }.volatile === 42) is true
PASS (function(){({ volatile: 42 }.volatile === 42)}); true is true
PASS ({ get volatile(){}, set volatile(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){({ get volatile(){}, set volatile(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS "use strict";var volatile; true is true
PASS (function(){"use strict";var volatile; true}); true is true
PASS "use strict";var volatile = 42; volatile === 42 is true
PASS (function(){"use strict";var volatile = 42; volatile === 42}); true is true
PASS "use strict";function g(volatile){ "use strict"; }; true is true
PASS (function(){"use strict";function g(volatile){ "use strict"; }; true}); true is true
PASS "use strict";/volatile/.test(function g(volatile){ "use strict"; }) is true
PASS (function(){"use strict";/volatile/.test(function g(volatile){ "use strict"; })}); true is true
PASS "use strict";try{}catch(volatile){}; true is true
PASS (function(){"use strict";try{}catch(volatile){}; true}); true is true
PASS "use strict";function volatile(){ "use strict"; }; true is true
PASS (function(){"use strict";function volatile(){ "use strict"; }; true}); true is true
PASS "use strict";({ "volatile": 42 }.volatile === 42) is true
PASS (function(){"use strict";({ "volatile": 42 }.volatile === 42)}); true is true
PASS "use strict";({ volatile: 42 }.volatile === 42) is true
PASS (function(){"use strict";({ volatile: 42 }.volatile === 42)}); true is true
PASS "use strict";({ get volatile(){}, set volatile(x){}, parsedOkay: 42 }.parsedOkay === 42) is true
PASS (function(){"use strict";({ get volatile(){}, set volatile(x){}, parsedOkay: 42 }.parsedOkay === 42)}); true is true
PASS window.yield === 42 is true
PASS successfullyParsed is true

TEST COMPLETE

