Index: LayoutTests/fast/js/basic-strict-mode-expected.txt |
diff --git a/LayoutTests/fast/js/basic-strict-mode-expected.txt b/LayoutTests/fast/js/basic-strict-mode-expected.txt |
index 666cb70909f3bb4bb10fe94823f9a3ff7035368a..b4a627c47995a69d74c104a2aff509ede85389ae 100644 |
--- a/LayoutTests/fast/js/basic-strict-mode-expected.txt |
+++ b/LayoutTests/fast/js/basic-strict-mode-expected.txt |
@@ -12,144 +12,144 @@ PASS testLineContinuation.call(undefined) === undefined is false |
PASS testEscapeSequence.call(undefined) === undefined is false |
PASS testThis.call('a string') is 'a string' |
PASS testThisDotAccess.call('a string') is 'a string'.length |
-PASS testThisDotAccess.call(null) threw exception TypeError: 'null' is not an object (evaluating 'this.length'). |
-PASS testThisDotAccess.call(undefined) threw exception TypeError: 'undefined' is not an object (evaluating 'this.length'). |
+PASS testThisDotAccess.call(null) threw exception TypeError: Cannot read property 'length' of null. |
+PASS testThisDotAccess.call(undefined) threw exception TypeError: Cannot read property 'length' of undefined. |
PASS testThisDotAccess.call(true) is undefined. |
PASS testThisDotAccess.call(false) is undefined. |
PASS testThisDotAccess.call(1) is undefined. |
PASS testThisBracketAccess.call('a string', 'length') is 'a string'.length |
-PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: 'null' is not an object (evaluating 'this[prop]'). |
-PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError: 'undefined' is not an object (evaluating 'this[prop]'). |
+PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: Cannot read property 'length' of null. |
+PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError: Cannot read property 'length' of undefined. |
PASS testThisBracketAccess.call(true, 'length') is undefined. |
PASS testThisBracketAccess.call(false, 'length') is undefined. |
PASS testThisBracketAccess.call(1, 'length') is undefined. |
PASS Function('"use strict"; return this;')() is undefined. |
-PASS Function('"use strict"; with({});') threw exception SyntaxError: 'with' statements are not valid in strict mode. |
+PASS Function('"use strict"; with({});') threw exception SyntaxError: Strict mode code may not include a with statement. |
PASS testGlobalAccess() is undefined |
PASS testThis.call() is undefined |
PASS testThis.apply() is undefined |
PASS testThis.call(undefined) is undefined |
PASS testThis.apply(undefined) is undefined |
-PASS (function eval(){'use strict';}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function (eval){'use strict';}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function arguments(){'use strict';}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function (arguments){'use strict';}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode.. |
-PASS (function(){(function (){'use strict'; var eval;})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode.. |
-PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode.. |
-PASS (function(){(function (){'use strict'; var arguments;})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode.. |
-PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode. |
-PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw exception SyntaxError: Cannot declare a variable named 'eval' in strict mode. |
-PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode. |
-PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw exception SyntaxError: Cannot declare a variable named 'arguments' in strict mode. |
-PASS (function (a, a){'use strict';}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError: Unexpected token '}'. |
-PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function (){var a; function f() {'use strict'; delete a;} })() threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS (function(){(function (){'use strict'; with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS (function (){'use strict'; arguments.callee; })() threw exception TypeError: Type error. |
-PASS (function (){'use strict'; arguments.caller; })() threw exception TypeError: Type error. |
-PASS (function f(){'use strict'; f.arguments; })() threw exception TypeError: Type error. |
-PASS (function f(){'use strict'; f.caller; })() threw exception TypeError: Type error. |
-PASS (function f(){'use strict'; f.arguments=5; })() threw exception TypeError: Type error. |
-PASS (function f(){'use strict'; f.caller=5; })() threw exception TypeError: Type error. |
-PASS (function (arg){'use strict'; arguments.callee; })() threw exception TypeError: Type error. |
-PASS (function (arg){'use strict'; arguments.caller; })() threw exception TypeError: Type error. |
-PASS (function f(arg){'use strict'; f.arguments; })() threw exception TypeError: Type error. |
-PASS (function f(arg){'use strict'; f.caller; })() threw exception TypeError: Type error. |
-PASS (function f(arg){'use strict'; f.arguments=5; })() threw exception TypeError: Type error. |
-PASS (function f(arg){'use strict'; f.caller=5; })() threw exception TypeError: Type error. |
+PASS (function eval(){'use strict';}) threw exception SyntaxError: Function name may not be eval or arguments in strict mode. |
+PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError: Function name may not be eval or arguments in strict mode. |
+PASS (function (eval){'use strict';}) threw exception SyntaxError: Parameter name eval or arguments is not allowed in strict mode. |
+PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError: Parameter name eval or arguments is not allowed in strict mode. |
+PASS (function arguments(){'use strict';}) threw exception SyntaxError: Function name may not be eval or arguments in strict mode. |
+PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxError: Function name may not be eval or arguments in strict mode. |
+PASS (function (arguments){'use strict';}) threw exception SyntaxError: Parameter name eval or arguments is not allowed in strict mode. |
+PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxError: Parameter name eval or arguments is not allowed in strict mode. |
+PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Variable name may not be eval or arguments in strict mode. |
+PASS (function(){(function (){'use strict'; var eval;})}) threw exception SyntaxError: Variable name may not be eval or arguments in strict mode. |
+PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Variable name may not be eval or arguments in strict mode. |
+PASS (function(){(function (){'use strict'; var arguments;})}) threw exception SyntaxError: Variable name may not be eval or arguments in strict mode. |
+PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
+PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw exception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
+PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
+PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw exception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
+PASS (function (a, a){'use strict';}) threw exception SyntaxError: Strict mode function may not have duplicate parameter names. |
+PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError: Strict mode function may not have duplicate parameter names. |
+PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function (){var a; function f() {'use strict'; delete a;} })() threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS (function(){(function (){'use strict'; with(1){};})}) threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS (function (){'use strict'; arguments.callee; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function (){'use strict'; arguments.caller; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(){'use strict'; f.arguments; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(){'use strict'; f.caller; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(){'use strict'; f.arguments=5; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(){'use strict'; f.caller=5; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function (arg){'use strict'; arguments.callee; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function (arg){'use strict'; arguments.caller; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(arg){'use strict'; f.arguments; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(arg){'use strict'; f.caller; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(arg){'use strict'; f.arguments=5; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
+PASS (function f(arg){'use strict'; f.caller=5; })() threw exception TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them. |
PASS "caller" in function(){"use strict"} is true |
PASS (function(){"use strict";}).hasOwnProperty("caller") is true |
PASS "arguments" in function(){"use strict"} is true |
PASS (function(){"use strict";}).hasOwnProperty("arguments") is true |
-PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS (function(){'use strict'; (function (){with(1){};})}) threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict mode. |
-PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception SyntaxError: 'with' statements are not valid in strict mode. |
-PASS 'use strict'; return threw exception SyntaxError: Return statements are only valid inside functions. |
-PASS 'use strict'; break threw exception SyntaxError: 'break' is only valid inside a switch or loop statement. |
-PASS (function(){'use strict'; break}) threw exception SyntaxError: 'break' is only valid inside a switch or loop statement. |
-PASS 'use strict'; continue threw exception SyntaxError: 'continue' is only valid inside a loop statement. |
-PASS (function(){'use strict'; continue}) threw exception SyntaxError: 'continue' is only valid inside a loop statement. |
-PASS 'use strict'; for(;;)return threw exception SyntaxError: Return statements are only valid inside functions. |
-PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Label 'missingLabel' is not defined. |
-PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception SyntaxError: Label 'missingLabel' is not defined. |
-PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Label 'missingLabel' is not defined. |
-PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception SyntaxError: Label 'missingLabel' is not defined. |
-PASS 'use strict'; 007; threw exception SyntaxError: Octal escapes are forbidden in strict mode. |
-PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal escapes are forbidden in strict mode. |
-PASS 'use strict'; '\007'; threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'. |
-PASS (function(){'use strict'; '\007';}) threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'. |
-PASS '\007'; 'use strict'; threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'. |
-PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: The only valid numeric escape in strict mode is '\0'. |
-PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode. |
-PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception SyntaxError: Cannot delete unqualified property 'aDeletableProperty' in strict mode. |
-PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode. |
-PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode. |
-PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode. |
-PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) threw exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mode. |
+PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS (function(){'use strict'; (function (){with(1){};})}) threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception SyntaxError: Strict mode code may not include a with statement. |
+PASS 'use strict'; return threw exception SyntaxError: Illegal return statement. |
+PASS 'use strict'; break threw exception SyntaxError: Illegal break statement. |
+PASS (function(){'use strict'; break}) threw exception SyntaxError: Illegal break statement. |
+PASS 'use strict'; continue threw exception SyntaxError: Illegal continue statement. |
+PASS (function(){'use strict'; continue}) threw exception SyntaxError: Illegal continue statement. |
+PASS 'use strict'; for(;;)return threw exception SyntaxError: Illegal return statement. |
+PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Undefined label 'missingLabel'. |
+PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception SyntaxError: Undefined label 'missingLabel'. |
+PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Undefined label 'missingLabel'. |
+PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception SyntaxError: Undefined label 'missingLabel'. |
+PASS 'use strict'; 007; threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS 'use strict'; '\007'; threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS (function(){'use strict'; '\007';}) threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS '\007'; 'use strict'; threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: Octal literals are not allowed in strict mode.. |
+PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
+PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) threw exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
PASS 'use strict'; if (0) { someGlobal = 'Shouldn\'t be able to assign this.'; }; true; is true |
-PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.'; threw exception ReferenceError: Strict mode forbids implicit creation of global property 'someGlobal'. |
-PASS 'use strict'; (function f(){ f = 'shouldn\'t be able to assign to function expression name'; })() threw exception TypeError: Attempted to assign to readonly property.. |
-PASS 'use strict'; eval('var introducedVariable = "FAIL: variable introduced into containing scope";'); introducedVariable threw exception ReferenceError: Can't find variable: introducedVariable. |
-PASS 'use strict'; objectWithReadonlyProperty.prop = 'fail' threw exception TypeError: Attempted to assign to readonly property.. |
-PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeError: Unable to delete property.. |
-PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exception TypeError: Unable to delete property.. |
-PASS 'use strict'; ++eval threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; eval++ threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; eval++}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; --eval threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; --eval}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; eval-- threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; eval--}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { ++arguments }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { arguments++ }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { --arguments }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { arguments-- }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Prefix ++ operator applied to value that is not a reference.. |
-PASS (function(){'use strict'; ++(1, eval)}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Postfix ++ operator applied to value that is not a reference.. |
-PASS (function(){'use strict'; (1, eval)++}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; --(1, eval) threw exception ReferenceError: Prefix -- operator applied to value that is not a reference.. |
-PASS (function(){'use strict'; --(1, eval)}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Postfix -- operator applied to value that is not a reference.. |
-PASS (function(){'use strict'; (1, eval)--}) threw exception SyntaxError: ' 'eval' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { ++(1, arguments) } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { ++(1, arguments) }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { (1, arguments)++ } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { (1, arguments)++ }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { --(1, arguments) } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { --(1, arguments) }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; function f() { (1, arguments)-- } threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS (function(){'use strict'; function f() { (1, arguments)-- }}) threw exception SyntaxError: ' 'arguments' ' cannot be modified in strict mode. |
-PASS 'use strict'; if (0) delete +a.b threw exception SyntaxError: Unexpected token '+'. |
-PASS (function(){'use strict'; if (0) delete +a.b}) threw exception SyntaxError: Unexpected token '+'. |
-PASS 'use strict'; if (0) delete ++a.b threw exception SyntaxError: Unexpected token '++'. |
-PASS (function(){'use strict'; if (0) delete ++a.b}) threw exception SyntaxError: Unexpected token '++'. |
-PASS 'use strict'; if (0) delete void a.b threw exception SyntaxError: Unexpected token 'void'. |
-PASS (function(){'use strict'; if (0) delete void a.b}) threw exception SyntaxError: Unexpected token 'void'. |
+PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.'; threw exception ReferenceError: someGlobal is not defined. |
+FAIL 'use strict'; (function f(){ f = 'shouldn\'t be able to assign to function expression name'; })() should throw an exception. Was undefined. |
+PASS 'use strict'; eval('var introducedVariable = "FAIL: variable introduced into containing scope";'); introducedVariable threw exception ReferenceError: introducedVariable is not defined. |
+PASS 'use strict'; objectWithReadonlyProperty.prop = 'fail' threw exception TypeError: Cannot assign to read only property 'prop' of #<Object>. |
+PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeError: Cannot delete property 'prop' of #<Object>. |
+PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exception TypeError: Cannot delete property 'prop' of #<Object>. |
+PASS 'use strict'; ++eval threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; eval++ threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; eval++}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; --eval threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; --eval}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; eval-- threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; eval--}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; function f() { ++arguments }}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; function f() { arguments++ }}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; function f() { --arguments }}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS (function(){'use strict'; function f() { arguments-- }}) threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception SyntaxError: Prefix increment/decrement may not have eval or arguments operand in strict mode. |
+PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Invalid left-hand side expression in prefix operation. |
+FAIL (function(){'use strict'; ++(1, eval)}) should throw an exception. Was function (){'use strict'; ++(1, eval)}. |
+PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Invalid left-hand side expression in postfix operation. |
+FAIL (function(){'use strict'; (1, eval)++}) should throw an exception. Was function (){'use strict'; (1, eval)++}. |
+PASS 'use strict'; --(1, eval) threw exception ReferenceError: Invalid left-hand side expression in prefix operation. |
+FAIL (function(){'use strict'; --(1, eval)}) should throw an exception. Was function (){'use strict'; --(1, eval)}. |
+PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Invalid left-hand side expression in postfix operation. |
+FAIL (function(){'use strict'; (1, eval)--}) should throw an exception. Was function (){'use strict'; (1, eval)--}. |
+FAIL 'use strict'; function f() { ++(1, arguments) } should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; function f() { ++(1, arguments) }}) should throw an exception. Was function (){'use strict'; function f() { ++(1, arguments) }}. |
+FAIL 'use strict'; function f() { (1, arguments)++ } should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; function f() { (1, arguments)++ }}) should throw an exception. Was function (){'use strict'; function f() { (1, arguments)++ }}. |
+FAIL 'use strict'; function f() { --(1, arguments) } should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; function f() { --(1, arguments) }}) should throw an exception. Was function (){'use strict'; function f() { --(1, arguments) }}. |
+FAIL 'use strict'; function f() { (1, arguments)-- } should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; function f() { (1, arguments)-- }}) should throw an exception. Was function (){'use strict'; function f() { (1, arguments)-- }}. |
+FAIL 'use strict'; if (0) delete +a.b should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; if (0) delete +a.b}) should throw an exception. Was function (){'use strict'; if (0) delete +a.b}. |
+FAIL 'use strict'; if (0) delete ++a.b should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; if (0) delete ++a.b}) should throw an exception. Was function (){'use strict'; if (0) delete ++a.b}. |
+FAIL 'use strict'; if (0) delete void a.b should throw an exception. Was use strict. |
+FAIL (function(){'use strict'; if (0) delete void a.b}) should throw an exception. Was function (){'use strict'; if (0) delete void a.b}. |
PASS (function (a){'use strict'; a = false; return a !== arguments[0]; })(true) is true |
PASS (function (a){'use strict'; arguments[0] = false; return a !== arguments[0]; })(true) is true |
PASS (function (a){'use strict'; a=false; return arguments; })(true)[0] is true |
@@ -181,31 +181,33 @@ PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri |
PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescriptor(f, 'caller'); return descriptor.get === descriptor.set; })() is true |
PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescriptor(f, 'arguments'); return descriptor.get === descriptor.set; })() is true |
PASS 'use strict'; (function f() { for(var i in this); })(); true; is true |
-PASS 'use strict'̻ threw exception SyntaxError: Invalid character '\u0827'. |
-PASS (function(){'use strict'̻}) threw exception SyntaxError: Invalid character '\u0827'. |
-PASS 'use strict'5.f threw exception SyntaxError: At least one digit must occur after a decimal point. |
-PASS (function(){'use strict'5.f}) threw exception SyntaxError: At least one digit must occur after a decimal point. |
-PASS 'use strict';̻ threw exception SyntaxError: Invalid character '\u0827'. |
-PASS (function(){'use strict';̻}) threw exception SyntaxError: Invalid character '\u0827'. |
-PASS 'use strict';5.f threw exception SyntaxError: At least one digit must occur after a decimal point. |
-PASS (function(){'use strict';5.f}) threw exception SyntaxError: At least one digit must occur after a decimal point. |
-PASS 'use strict';1-(eval=1); threw exception SyntaxError: 'eval' cannot be modified in strict mode. |
-PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: 'eval' cannot be modified in strict mode. |
-PASS 'use strict';arguments=1; threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
-PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
-PASS 'use strict';1-(arguments=1); threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
-PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
-PASS 'use strict';var a=(eval=1); threw exception SyntaxError: 'eval' cannot be modified in strict mode. |
-PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: 'eval' cannot be modified in strict mode. |
-PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
-PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError: 'arguments' cannot be modified in strict mode. |
+PASS 'use strict'̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS (function(){'use strict'̻}) threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS 'use strict'5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS (function(){'use strict'5.f}) threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS 'use strict';̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS (function(){'use strict';̻}) threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS 'use strict';5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS (function(){'use strict';5.f}) threw exception SyntaxError: Unexpected token ILLEGAL. |
+PASS 'use strict';1-(eval=1); threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS 'use strict';arguments=1; threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS 'use strict';1-(arguments=1); threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS 'use strict';var a=(eval=1); threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
+PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError: Assignment to eval or arguments is not allowed in strict mode. |
PASS 'use strict'; try { throw 1; } catch (e) { aGlobal = true; } is true |
PASS 'use strict'; (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal; is true |
PASS (function () {'use strict'; try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal; is true |
PASS try { throw 1; } catch (e) { aGlobal = true; } is true |
PASS (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal; is true |
PASS (function () {try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal; is true |
-PASS String(Object.getOwnPropertyDescriptor(function() { "use strict"; }, "caller").get) is 'function () {\n [native code]\n}' |
+FAIL String(Object.getOwnPropertyDescriptor(function() { "use strict"; }, "caller").get) should be function () { |
+ [native code] |
+}. Was function ThrowTypeError() { [native code] }. |
PASS successfullyParsed is true |
TEST COMPLETE |