OLD | NEW |
1 Test behaviour of strict mode | 1 Test behaviour of strict mode |
2 | 2 |
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". | 3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". |
4 | 4 |
5 | 5 |
6 PASS testThis.call(null) is null | 6 PASS testThis.call(null) is null |
7 PASS testThis.call(1) is 1 | 7 PASS testThis.call(1) is 1 |
8 PASS testThis.call(true) is true | 8 PASS testThis.call(true) is true |
9 PASS testThis.call(false) is false | 9 PASS testThis.call(false) is false |
10 PASS testThis.call(undefined) is undefined | 10 PASS testThis.call(undefined) is undefined |
11 PASS testLineContinuation.call(undefined) === undefined is false | 11 PASS testLineContinuation.call(undefined) === undefined is false |
12 PASS testEscapeSequence.call(undefined) === undefined is false | 12 PASS testEscapeSequence.call(undefined) === undefined is false |
13 PASS testThis.call('a string') is 'a string' | 13 PASS testThis.call('a string') is 'a string' |
14 PASS testThisDotAccess.call('a string') is 'a string'.length | 14 PASS testThisDotAccess.call('a string') is 'a string'.length |
15 PASS testThisDotAccess.call(null) threw exception TypeError: 'null' is not an ob
ject (evaluating 'this.length'). | 15 PASS testThisDotAccess.call(null) threw exception TypeError: Cannot read propert
y 'length' of null. |
16 PASS testThisDotAccess.call(undefined) threw exception TypeError: 'undefined' is
not an object (evaluating 'this.length'). | 16 PASS testThisDotAccess.call(undefined) threw exception TypeError: Cannot read pr
operty 'length' of undefined. |
17 PASS testThisDotAccess.call(true) is undefined. | 17 PASS testThisDotAccess.call(true) is undefined. |
18 PASS testThisDotAccess.call(false) is undefined. | 18 PASS testThisDotAccess.call(false) is undefined. |
19 PASS testThisDotAccess.call(1) is undefined. | 19 PASS testThisDotAccess.call(1) is undefined. |
20 PASS testThisBracketAccess.call('a string', 'length') is 'a string'.length | 20 PASS testThisBracketAccess.call('a string', 'length') is 'a string'.length |
21 PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: 'null
' is not an object (evaluating 'this[prop]'). | 21 PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: Canno
t read property 'length' of null. |
22 PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError:
'undefined' is not an object (evaluating 'this[prop]'). | 22 PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError:
Cannot read property 'length' of undefined. |
23 PASS testThisBracketAccess.call(true, 'length') is undefined. | 23 PASS testThisBracketAccess.call(true, 'length') is undefined. |
24 PASS testThisBracketAccess.call(false, 'length') is undefined. | 24 PASS testThisBracketAccess.call(false, 'length') is undefined. |
25 PASS testThisBracketAccess.call(1, 'length') is undefined. | 25 PASS testThisBracketAccess.call(1, 'length') is undefined. |
26 PASS Function('"use strict"; return this;')() is undefined. | 26 PASS Function('"use strict"; return this;')() is undefined. |
27 PASS Function('"use strict"; with({});') threw exception SyntaxError: 'with' sta
tements are not valid in strict mode. | 27 PASS Function('"use strict"; with({});') threw exception SyntaxError: Strict mod
e code may not include a with statement. |
28 PASS testGlobalAccess() is undefined | 28 PASS testGlobalAccess() is undefined |
29 PASS testThis.call() is undefined | 29 PASS testThis.call() is undefined |
30 PASS testThis.apply() is undefined | 30 PASS testThis.apply() is undefined |
31 PASS testThis.call(undefined) is undefined | 31 PASS testThis.call(undefined) is undefined |
32 PASS testThis.apply(undefined) is undefined | 32 PASS testThis.apply(undefined) is undefined |
33 PASS (function eval(){'use strict';}) threw exception SyntaxError: Unexpected to
ken '}'. | 33 PASS (function eval(){'use strict';}) threw exception SyntaxError: Function name
may not be eval or arguments in strict mode. |
34 PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError:
Unexpected token '}'. | 34 PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError:
Function name may not be eval or arguments in strict mode. |
35 PASS (function (eval){'use strict';}) threw exception SyntaxError: Unexpected to
ken '}'. | 35 PASS (function (eval){'use strict';}) threw exception SyntaxError: Parameter nam
e eval or arguments is not allowed in strict mode. |
36 PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError:
Unexpected token '}'. | 36 PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError:
Parameter name eval or arguments is not allowed in strict mode. |
37 PASS (function arguments(){'use strict';}) threw exception SyntaxError: Unexpect
ed token '}'. | 37 PASS (function arguments(){'use strict';}) threw exception SyntaxError: Function
name may not be eval or arguments in strict mode. |
38 PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxE
rror: Unexpected token '}'. | 38 PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxE
rror: Function name may not be eval or arguments in strict mode. |
39 PASS (function (arguments){'use strict';}) threw exception SyntaxError: Unexpect
ed token '}'. | 39 PASS (function (arguments){'use strict';}) threw exception SyntaxError: Paramete
r name eval or arguments is not allowed in strict mode. |
40 PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxE
rror: Unexpected token '}'. | 40 PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxE
rror: Parameter name eval or arguments is not allowed in strict mode. |
41 PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Cannot
declare a variable named 'eval' in strict mode.. | 41 PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Variabl
e name may not be eval or arguments in strict mode. |
42 PASS (function(){(function (){'use strict'; var eval;})}) threw exception Syntax
Error: Cannot declare a variable named 'eval' in strict mode.. | 42 PASS (function(){(function (){'use strict'; var eval;})}) threw exception Syntax
Error: Variable name may not be eval or arguments in strict mode. |
43 PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Ca
nnot declare a variable named 'arguments' in strict mode.. | 43 PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Va
riable name may not be eval or arguments in strict mode. |
44 PASS (function(){(function (){'use strict'; var arguments;})}) threw exception S
yntaxError: Cannot declare a variable named 'arguments' in strict mode.. | 44 PASS (function(){(function (){'use strict'; var arguments;})}) threw exception S
yntaxError: Variable name may not be eval or arguments in strict mode. |
45 PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError
: Cannot declare a variable named 'eval' in strict mode. | 45 PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError
: Catch variable may not be eval or arguments in strict mode. |
46 PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw excepti
on SyntaxError: Cannot declare a variable named 'eval' in strict mode. | 46 PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw excepti
on SyntaxError: Catch variable may not be eval or arguments in strict mode. |
47 PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception Syntax
Error: Cannot declare a variable named 'arguments' in strict mode. | 47 PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception Syntax
Error: Catch variable may not be eval or arguments in strict mode. |
48 PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw ex
ception SyntaxError: Cannot declare a variable named 'arguments' in strict mode. | 48 PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw ex
ception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
49 PASS (function (a, a){'use strict';}) threw exception SyntaxError: Unexpected to
ken '}'. | 49 PASS (function (a, a){'use strict';}) threw exception SyntaxError: Strict mode f
unction may not have duplicate parameter names. |
50 PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError:
Unexpected token '}'. | 50 PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError:
Strict mode function may not have duplicate parameter names. |
51 PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Cann
ot delete unqualified property 'a' in strict mode. | 51 PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Dele
te of an unqualified identifier in strict mode.. |
52 PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception Syn
taxError: Cannot delete unqualified property 'a' in strict mode. | 52 PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception Syn
taxError: Delete of an unqualified identifier in strict mode.. |
53 PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError
: Cannot delete unqualified property 'a' in strict mode. | 53 PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError
: Delete of an unqualified identifier in strict mode.. |
54 PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw excepti
on SyntaxError: Cannot delete unqualified property 'a' in strict mode. | 54 PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw excepti
on SyntaxError: Delete of an unqualified identifier in strict mode.. |
55 PASS (function (){var a; function f() {'use strict'; delete a;} })() threw excep
tion SyntaxError: Cannot delete unqualified property 'a' in strict mode. | 55 PASS (function (){var a; function f() {'use strict'; delete a;} })() threw excep
tion SyntaxError: Delete of an unqualified identifier in strict mode.. |
56 PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()
}) threw exception SyntaxError: Cannot delete unqualified property 'a' in strict
mode. | 56 PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()
}) threw exception SyntaxError: Delete of an unqualified identifier in strict mo
de.. |
57 PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: 'with'
statements are not valid in strict mode. | 57 PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: Strict
mode code may not include a with statement. |
58 PASS (function(){(function (){'use strict'; with(1){};})}) threw exception Synta
xError: 'with' statements are not valid in strict mode. | 58 PASS (function(){(function (){'use strict'; with(1){};})}) threw exception Synta
xError: Strict mode code may not include a with statement. |
59 PASS (function (){'use strict'; arguments.callee; })() threw exception TypeError
: Type error. | 59 PASS (function (){'use strict'; arguments.callee; })() threw exception TypeError
: 'caller', 'callee', and 'arguments' properties may not be accessed on strict m
ode functions or the arguments objects for calls to them. |
60 PASS (function (){'use strict'; arguments.caller; })() threw exception TypeError
: Type error. | 60 PASS (function (){'use strict'; arguments.caller; })() threw exception TypeError
: 'caller', 'callee', and 'arguments' properties may not be accessed on strict m
ode functions or the arguments objects for calls to them. |
61 PASS (function f(){'use strict'; f.arguments; })() threw exception TypeError: Ty
pe error. | 61 PASS (function f(){'use strict'; f.arguments; })() threw exception TypeError: 'c
aller', 'callee', and 'arguments' properties may not be accessed on strict mode
functions or the arguments objects for calls to them. |
62 PASS (function f(){'use strict'; f.caller; })() threw exception TypeError: Type
error. | 62 PASS (function f(){'use strict'; f.caller; })() threw exception TypeError: 'call
er', 'callee', and 'arguments' properties may not be accessed on strict mode fun
ctions or the arguments objects for calls to them. |
63 PASS (function f(){'use strict'; f.arguments=5; })() threw exception TypeError:
Type error. | 63 PASS (function f(){'use strict'; f.arguments=5; })() threw exception TypeError:
'caller', 'callee', and 'arguments' properties may not be accessed on strict mod
e functions or the arguments objects for calls to them. |
64 PASS (function f(){'use strict'; f.caller=5; })() threw exception TypeError: Typ
e error. | 64 PASS (function f(){'use strict'; f.caller=5; })() threw exception TypeError: 'ca
ller', 'callee', and 'arguments' properties may not be accessed on strict mode f
unctions or the arguments objects for calls to them. |
65 PASS (function (arg){'use strict'; arguments.callee; })() threw exception TypeEr
ror: Type error. | 65 PASS (function (arg){'use strict'; arguments.callee; })() threw exception TypeEr
ror: 'caller', 'callee', and 'arguments' properties may not be accessed on stric
t mode functions or the arguments objects for calls to them. |
66 PASS (function (arg){'use strict'; arguments.caller; })() threw exception TypeEr
ror: Type error. | 66 PASS (function (arg){'use strict'; arguments.caller; })() threw exception TypeEr
ror: 'caller', 'callee', and 'arguments' properties may not be accessed on stric
t mode functions or the arguments objects for calls to them. |
67 PASS (function f(arg){'use strict'; f.arguments; })() threw exception TypeError:
Type error. | 67 PASS (function f(arg){'use strict'; f.arguments; })() threw exception TypeError:
'caller', 'callee', and 'arguments' properties may not be accessed on strict mo
de functions or the arguments objects for calls to them. |
68 PASS (function f(arg){'use strict'; f.caller; })() threw exception TypeError: Ty
pe error. | 68 PASS (function f(arg){'use strict'; f.caller; })() threw exception TypeError: 'c
aller', 'callee', and 'arguments' properties may not be accessed on strict mode
functions or the arguments objects for calls to them. |
69 PASS (function f(arg){'use strict'; f.arguments=5; })() threw exception TypeErro
r: Type error. | 69 PASS (function f(arg){'use strict'; f.arguments=5; })() threw exception TypeErro
r: 'caller', 'callee', and 'arguments' properties may not be accessed on strict
mode functions or the arguments objects for calls to them. |
70 PASS (function f(arg){'use strict'; f.caller=5; })() threw exception TypeError:
Type error. | 70 PASS (function f(arg){'use strict'; f.caller=5; })() threw exception TypeError:
'caller', 'callee', and 'arguments' properties may not be accessed on strict mod
e functions or the arguments objects for calls to them. |
71 PASS "caller" in function(){"use strict"} is true | 71 PASS "caller" in function(){"use strict"} is true |
72 PASS (function(){"use strict";}).hasOwnProperty("caller") is true | 72 PASS (function(){"use strict";}).hasOwnProperty("caller") is true |
73 PASS "arguments" in function(){"use strict"} is true | 73 PASS "arguments" in function(){"use strict"} is true |
74 PASS (function(){"use strict";}).hasOwnProperty("arguments") is true | 74 PASS (function(){"use strict";}).hasOwnProperty("arguments") is true |
75 PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: 'with'
statements are not valid in strict mode. | 75 PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: Strict
mode code may not include a with statement. |
76 PASS (function(){'use strict'; (function (){with(1){};})}) threw exception Synta
xError: 'with' statements are not valid in strict mode. | 76 PASS (function(){'use strict'; (function (){with(1){};})}) threw exception Synta
xError: Strict mode code may not include a with statement. |
77 PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError:
Cannot delete unqualified property 'a' in strict mode. | 77 PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
78 PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception
SyntaxError: Cannot delete unqualified property 'a' in strict mode. | 78 PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception
SyntaxError: Delete of an unqualified identifier in strict mode.. |
79 PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError:
Cannot delete unqualified property 'a' in strict mode. | 79 PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
80 PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exceptio
n SyntaxError: Cannot delete unqualified property 'a' in strict mode. | 80 PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exceptio
n SyntaxError: Delete of an unqualified identifier in strict mode.. |
81 PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError:
Cannot delete unqualified property 'a' in strict mode. | 81 PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
82 PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exceptio
n SyntaxError: Cannot delete unqualified property 'a' in strict mode. | 82 PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exceptio
n SyntaxError: Delete of an unqualified identifier in strict mode.. |
83 PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: 'wi
th' statements are not valid in strict mode. | 83 PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: Str
ict mode code may not include a with statement. |
84 PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception Sy
ntaxError: 'with' statements are not valid in strict mode. | 84 PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception Sy
ntaxError: Strict mode code may not include a with statement. |
85 PASS 'use strict'; return threw exception SyntaxError: Return statements are onl
y valid inside functions. | 85 PASS 'use strict'; return threw exception SyntaxError: Illegal return statement. |
86 PASS 'use strict'; break threw exception SyntaxError: 'break' is only valid insi
de a switch or loop statement. | 86 PASS 'use strict'; break threw exception SyntaxError: Illegal break statement. |
87 PASS (function(){'use strict'; break}) threw exception SyntaxError: 'break' is o
nly valid inside a switch or loop statement. | 87 PASS (function(){'use strict'; break}) threw exception SyntaxError: Illegal brea
k statement. |
88 PASS 'use strict'; continue threw exception SyntaxError: 'continue' is only vali
d inside a loop statement. | 88 PASS 'use strict'; continue threw exception SyntaxError: Illegal continue statem
ent. |
89 PASS (function(){'use strict'; continue}) threw exception SyntaxError: 'continue
' is only valid inside a loop statement. | 89 PASS (function(){'use strict'; continue}) threw exception SyntaxError: Illegal c
ontinue statement. |
90 PASS 'use strict'; for(;;)return threw exception SyntaxError: Return statements
are only valid inside functions. | 90 PASS 'use strict'; for(;;)return threw exception SyntaxError: Illegal return sta
tement. |
91 PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Label
'missingLabel' is not defined. | 91 PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Undefi
ned label 'missingLabel'. |
92 PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception Synta
xError: Label 'missingLabel' is not defined. | 92 PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception Synta
xError: Undefined label 'missingLabel'. |
93 PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Lab
el 'missingLabel' is not defined. | 93 PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Und
efined label 'missingLabel'. |
94 PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception Sy
ntaxError: Label 'missingLabel' is not defined. | 94 PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception Sy
ntaxError: Undefined label 'missingLabel'. |
95 PASS 'use strict'; 007; threw exception SyntaxError: Octal escapes are forbidden
in strict mode. | 95 PASS 'use strict'; 007; threw exception SyntaxError: Octal literals are not allo
wed in strict mode.. |
96 PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal escapes
are forbidden in strict mode. | 96 PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal literal
s are not allowed in strict mode.. |
97 PASS 'use strict'; '\007'; threw exception SyntaxError: The only valid numeric e
scape in strict mode is '\0'. | 97 PASS 'use strict'; '\007'; threw exception SyntaxError: Octal literals are not a
llowed in strict mode.. |
98 PASS (function(){'use strict'; '\007';}) threw exception SyntaxError: The only v
alid numeric escape in strict mode is '\0'. | 98 PASS (function(){'use strict'; '\007';}) threw exception SyntaxError: Octal lite
rals are not allowed in strict mode.. |
99 PASS '\007'; 'use strict'; threw exception SyntaxError: The only valid numeric e
scape in strict mode is '\0'. | 99 PASS '\007'; 'use strict'; threw exception SyntaxError: Octal literals are not a
llowed in strict mode.. |
100 PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: The only v
alid numeric escape in strict mode is '\0'. | 100 PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: Octal lite
rals are not allowed in strict mode.. |
101 PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Canno
t delete unqualified property 'aDeletableProperty' in strict mode. | 101 PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Delet
e of an unqualified identifier in strict mode.. |
102 PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception Synt
axError: Cannot delete unqualified property 'aDeletableProperty' in strict mode. | 102 PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception Synt
axError: Delete of an unqualified identifier in strict mode.. |
103 PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mod
e. | 103 PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Delete of an unqualified identifier in strict mode.. |
104 PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal'
in strict mode. | 104 PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
105 PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Cannot delete unqualified property 'someDeclaredGlobal' in strict mod
e. | 105 PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Delete of an unqualified identifier in strict mode.. |
106 PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Cannot delete unqualified property 'someDeclaredGlobal'
in strict mode. | 106 PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
107 PASS 'use strict'; if (0) { someGlobal = 'Shouldn\'t be able to assign this.'; }
; true; is true | 107 PASS 'use strict'; if (0) { someGlobal = 'Shouldn\'t be able to assign this.'; }
; true; is true |
108 PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.'; threw exc
eption ReferenceError: Strict mode forbids implicit creation of global property
'someGlobal'. | 108 PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.'; threw exc
eption ReferenceError: someGlobal is not defined. |
109 PASS 'use strict'; (function f(){ f = 'shouldn\'t be able to assign to function
expression name'; })() threw exception TypeError: Attempted to assign to readonl
y property.. | 109 FAIL 'use strict'; (function f(){ f = 'shouldn\'t be able to assign to function
expression name'; })() should throw an exception. Was undefined. |
110 PASS 'use strict'; eval('var introducedVariable = "FAIL: variable introduced int
o containing scope";'); introducedVariable threw exception ReferenceError: Can't
find variable: introducedVariable. | 110 PASS 'use strict'; eval('var introducedVariable = "FAIL: variable introduced int
o containing scope";'); introducedVariable threw exception ReferenceError: intro
ducedVariable is not defined. |
111 PASS 'use strict'; objectWithReadonlyProperty.prop = 'fail' threw exception Type
Error: Attempted to assign to readonly property.. | 111 PASS 'use strict'; objectWithReadonlyProperty.prop = 'fail' threw exception Type
Error: Cannot assign to read only property 'prop' of #<Object>. |
112 PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeEr
ror: Unable to delete property.. | 112 PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeEr
ror: Cannot delete property 'prop' of #<Object>. |
113 PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exc
eption TypeError: Unable to delete property.. | 113 PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exc
eption TypeError: Cannot delete property 'prop' of #<Object>. |
114 PASS 'use strict'; ++eval threw exception SyntaxError: ' 'eval' ' cannot be modi
fied in strict mode. | 114 PASS 'use strict'; ++eval threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
115 PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: ' 'eval' '
cannot be modified in strict mode. | 115 PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
116 PASS 'use strict'; eval++ threw exception SyntaxError: ' 'eval' ' cannot be modi
fied in strict mode. | 116 PASS 'use strict'; eval++ threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
117 PASS (function(){'use strict'; eval++}) threw exception SyntaxError: ' 'eval' '
cannot be modified in strict mode. | 117 PASS (function(){'use strict'; eval++}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
118 PASS 'use strict'; --eval threw exception SyntaxError: ' 'eval' ' cannot be modi
fied in strict mode. | 118 PASS 'use strict'; --eval threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
119 PASS (function(){'use strict'; --eval}) threw exception SyntaxError: ' 'eval' '
cannot be modified in strict mode. | 119 PASS (function(){'use strict'; --eval}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
120 PASS 'use strict'; eval-- threw exception SyntaxError: ' 'eval' ' cannot be modi
fied in strict mode. | 120 PASS 'use strict'; eval-- threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
121 PASS (function(){'use strict'; eval--}) threw exception SyntaxError: ' 'eval' '
cannot be modified in strict mode. | 121 PASS (function(){'use strict'; eval--}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
122 PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: ' '
arguments' ' cannot be modified in strict mode. | 122 PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
123 PASS (function(){'use strict'; function f() { ++arguments }}) threw exception Sy
ntaxError: ' 'arguments' ' cannot be modified in strict mode. | 123 PASS (function(){'use strict'; function f() { ++arguments }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
124 PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: ' '
arguments' ' cannot be modified in strict mode. | 124 PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
125 PASS (function(){'use strict'; function f() { arguments++ }}) threw exception Sy
ntaxError: ' 'arguments' ' cannot be modified in strict mode. | 125 PASS (function(){'use strict'; function f() { arguments++ }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
126 PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: ' '
arguments' ' cannot be modified in strict mode. | 126 PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
127 PASS (function(){'use strict'; function f() { --arguments }}) threw exception Sy
ntaxError: ' 'arguments' ' cannot be modified in strict mode. | 127 PASS (function(){'use strict'; function f() { --arguments }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
128 PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: ' '
arguments' ' cannot be modified in strict mode. | 128 PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
129 PASS (function(){'use strict'; function f() { arguments-- }}) threw exception Sy
ntaxError: ' 'arguments' ' cannot be modified in strict mode. | 129 PASS (function(){'use strict'; function f() { arguments-- }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
130 PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception Synt
axError: ' 'arguments' ' cannot be modified in strict mode. | 130 PASS global.eval('"use strict"; if (0) ++arguments; true;') threw exception Synt
axError: Prefix increment/decrement may not have eval or arguments operand in st
rict mode. |
131 PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Prefix ++ operato
r applied to value that is not a reference.. | 131 PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Invalid left-hand
side expression in prefix operation. |
132 PASS (function(){'use strict'; ++(1, eval)}) threw exception SyntaxError: ' 'eva
l' ' cannot be modified in strict mode. | 132 FAIL (function(){'use strict'; ++(1, eval)}) should throw an exception. Was func
tion (){'use strict'; ++(1, eval)}. |
133 PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Postfix ++ operat
or applied to value that is not a reference.. | 133 PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Invalid left-hand
side expression in postfix operation. |
134 PASS (function(){'use strict'; (1, eval)++}) threw exception SyntaxError: ' 'eva
l' ' cannot be modified in strict mode. | 134 FAIL (function(){'use strict'; (1, eval)++}) should throw an exception. Was func
tion (){'use strict'; (1, eval)++}. |
135 PASS 'use strict'; --(1, eval) threw exception ReferenceError: Prefix -- operato
r applied to value that is not a reference.. | 135 PASS 'use strict'; --(1, eval) threw exception ReferenceError: Invalid left-hand
side expression in prefix operation. |
136 PASS (function(){'use strict'; --(1, eval)}) threw exception SyntaxError: ' 'eva
l' ' cannot be modified in strict mode. | 136 FAIL (function(){'use strict'; --(1, eval)}) should throw an exception. Was func
tion (){'use strict'; --(1, eval)}. |
137 PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Postfix -- operat
or applied to value that is not a reference.. | 137 PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Invalid left-hand
side expression in postfix operation. |
138 PASS (function(){'use strict'; (1, eval)--}) threw exception SyntaxError: ' 'eva
l' ' cannot be modified in strict mode. | 138 FAIL (function(){'use strict'; (1, eval)--}) should throw an exception. Was func
tion (){'use strict'; (1, eval)--}. |
139 PASS 'use strict'; function f() { ++(1, arguments) } threw exception SyntaxError
: ' 'arguments' ' cannot be modified in strict mode. | 139 FAIL 'use strict'; function f() { ++(1, arguments) } should throw an exception.
Was use strict. |
140 PASS (function(){'use strict'; function f() { ++(1, arguments) }}) threw excepti
on SyntaxError: ' 'arguments' ' cannot be modified in strict mode. | 140 FAIL (function(){'use strict'; function f() { ++(1, arguments) }}) should throw
an exception. Was function (){'use strict'; function f() { ++(1, arguments) }}. |
141 PASS 'use strict'; function f() { (1, arguments)++ } threw exception SyntaxError
: ' 'arguments' ' cannot be modified in strict mode. | 141 FAIL 'use strict'; function f() { (1, arguments)++ } should throw an exception.
Was use strict. |
142 PASS (function(){'use strict'; function f() { (1, arguments)++ }}) threw excepti
on SyntaxError: ' 'arguments' ' cannot be modified in strict mode. | 142 FAIL (function(){'use strict'; function f() { (1, arguments)++ }}) should throw
an exception. Was function (){'use strict'; function f() { (1, arguments)++ }}. |
143 PASS 'use strict'; function f() { --(1, arguments) } threw exception SyntaxError
: ' 'arguments' ' cannot be modified in strict mode. | 143 FAIL 'use strict'; function f() { --(1, arguments) } should throw an exception.
Was use strict. |
144 PASS (function(){'use strict'; function f() { --(1, arguments) }}) threw excepti
on SyntaxError: ' 'arguments' ' cannot be modified in strict mode. | 144 FAIL (function(){'use strict'; function f() { --(1, arguments) }}) should throw
an exception. Was function (){'use strict'; function f() { --(1, arguments) }}. |
145 PASS 'use strict'; function f() { (1, arguments)-- } threw exception SyntaxError
: ' 'arguments' ' cannot be modified in strict mode. | 145 FAIL 'use strict'; function f() { (1, arguments)-- } should throw an exception.
Was use strict. |
146 PASS (function(){'use strict'; function f() { (1, arguments)-- }}) threw excepti
on SyntaxError: ' 'arguments' ' cannot be modified in strict mode. | 146 FAIL (function(){'use strict'; function f() { (1, arguments)-- }}) should throw
an exception. Was function (){'use strict'; function f() { (1, arguments)-- }}. |
147 PASS 'use strict'; if (0) delete +a.b threw exception SyntaxError: Unexpected to
ken '+'. | 147 FAIL 'use strict'; if (0) delete +a.b should throw an exception. Was use strict. |
148 PASS (function(){'use strict'; if (0) delete +a.b}) threw exception SyntaxError:
Unexpected token '+'. | 148 FAIL (function(){'use strict'; if (0) delete +a.b}) should throw an exception. W
as function (){'use strict'; if (0) delete +a.b}. |
149 PASS 'use strict'; if (0) delete ++a.b threw exception SyntaxError: Unexpected t
oken '++'. | 149 FAIL 'use strict'; if (0) delete ++a.b should throw an exception. Was use strict
. |
150 PASS (function(){'use strict'; if (0) delete ++a.b}) threw exception SyntaxError
: Unexpected token '++'. | 150 FAIL (function(){'use strict'; if (0) delete ++a.b}) should throw an exception.
Was function (){'use strict'; if (0) delete ++a.b}. |
151 PASS 'use strict'; if (0) delete void a.b threw exception SyntaxError: Unexpecte
d token 'void'. | 151 FAIL 'use strict'; if (0) delete void a.b should throw an exception. Was use str
ict. |
152 PASS (function(){'use strict'; if (0) delete void a.b}) threw exception SyntaxEr
ror: Unexpected token 'void'. | 152 FAIL (function(){'use strict'; if (0) delete void a.b}) should throw an exceptio
n. Was function (){'use strict'; if (0) delete void a.b}. |
153 PASS (function (a){'use strict'; a = false; return a !== arguments[0]; })(true)
is true | 153 PASS (function (a){'use strict'; a = false; return a !== arguments[0]; })(true)
is true |
154 PASS (function (a){'use strict'; arguments[0] = false; return a !== arguments[0]
; })(true) is true | 154 PASS (function (a){'use strict'; arguments[0] = false; return a !== arguments[0]
; })(true) is true |
155 PASS (function (a){'use strict'; a=false; return arguments; })(true)[0] is true | 155 PASS (function (a){'use strict'; a=false; return arguments; })(true)[0] is true |
156 PASS (function (a){'use strict'; arguments[0]=false; return a; })(true) is true | 156 PASS (function (a){'use strict'; arguments[0]=false; return a; })(true) is true |
157 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true | 157 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true |
158 PASS (function (){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true | 158 PASS (function (){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true |
159 PASS (function (a){'use strict'; arguments[0]=true; a=false; return arguments; }
)()[0] is true | 159 PASS (function (a){'use strict'; arguments[0]=true; a=false; return arguments; }
)()[0] is true |
160 PASS (function (a){'use strict'; arguments[0]=false; a=true; return a; })() is t
rue | 160 PASS (function (a){'use strict'; arguments[0]=false; a=true; return a; })() is t
rue |
161 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })()[0] is
true | 161 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })()[0] is
true |
162 PASS (function (){'use strict'; arguments[0]=true; return arguments; })()[0] is
true | 162 PASS (function (){'use strict'; arguments[0]=true; return arguments; })()[0] is
true |
(...skipping 11 matching lines...) Expand all Loading... |
174 PASS (function (){var a = true; eval('"use strict"; var a = false'); return a; }
)() is true | 174 PASS (function (){var a = true; eval('"use strict"; var a = false'); return a; }
)() is true |
175 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'a
rguments').value; })() is undefined. | 175 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'a
rguments').value; })() is undefined. |
176 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'c
aller').value; })() is undefined. | 176 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'c
aller').value; })() is undefined. |
177 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'callee').value; })() is undefined. | 177 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'callee').value; })() is undefined. |
178 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'caller').value; })() is undefined. | 178 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'caller').value; })() is undefined. |
179 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'caller'); return descriptor.get === descriptor.set; })() is tru
e | 179 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'caller'); return descriptor.get === descriptor.set; })() is tru
e |
180 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'callee'); return descriptor.get === descriptor.set; })() is tru
e | 180 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'callee'); return descriptor.get === descriptor.set; })() is tru
e |
181 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'caller'); return descriptor.get === descriptor.set; })() is true | 181 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'caller'); return descriptor.get === descriptor.set; })() is true |
182 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'arguments'); return descriptor.get === descriptor.set; })() is true | 182 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'arguments'); return descriptor.get === descriptor.set; })() is true |
183 PASS 'use strict'; (function f() { for(var i in this); })(); true; is true | 183 PASS 'use strict'; (function f() { for(var i in this); })(); true; is true |
184 PASS 'use strict'̻ threw exception SyntaxError: Invalid character '\u0827'. | 184 PASS 'use strict'̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
185 PASS (function(){'use strict'̻}) threw exception SyntaxError: Invalid character
'\u0827'. | 185 PASS (function(){'use strict'̻}) threw exception SyntaxError: Unexpected token I
LLEGAL. |
186 PASS 'use strict'5.f threw exception SyntaxError: At least one digit must occur
after a decimal point. | 186 PASS 'use strict'5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
187 PASS (function(){'use strict'5.f}) threw exception SyntaxError: At least one dig
it must occur after a decimal point. | 187 PASS (function(){'use strict'5.f}) threw exception SyntaxError: Unexpected token
ILLEGAL. |
188 PASS 'use strict';̻ threw exception SyntaxError: Invalid character '\u0827'. | 188 PASS 'use strict';̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
189 PASS (function(){'use strict';̻}) threw exception SyntaxError: Invalid character
'\u0827'. | 189 PASS (function(){'use strict';̻}) threw exception SyntaxError: Unexpected token
ILLEGAL. |
190 PASS 'use strict';5.f threw exception SyntaxError: At least one digit must occur
after a decimal point. | 190 PASS 'use strict';5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
191 PASS (function(){'use strict';5.f}) threw exception SyntaxError: At least one di
git must occur after a decimal point. | 191 PASS (function(){'use strict';5.f}) threw exception SyntaxError: Unexpected toke
n ILLEGAL. |
192 PASS 'use strict';1-(eval=1); threw exception SyntaxError: 'eval' cannot be modi
fied in strict mode. | 192 PASS 'use strict';1-(eval=1); threw exception SyntaxError: Assignment to eval or
arguments is not allowed in strict mode. |
193 PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: 'eval'
cannot be modified in strict mode. | 193 PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: Assignm
ent to eval or arguments is not allowed in strict mode. |
194 PASS 'use strict';arguments=1; threw exception SyntaxError: 'arguments' cannot b
e modified in strict mode. | 194 PASS 'use strict';arguments=1; threw exception SyntaxError: Assignment to eval o
r arguments is not allowed in strict mode. |
195 PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: 'argum
ents' cannot be modified in strict mode. | 195 PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: Assign
ment to eval or arguments is not allowed in strict mode. |
196 PASS 'use strict';1-(arguments=1); threw exception SyntaxError: 'arguments' cann
ot be modified in strict mode. | 196 PASS 'use strict';1-(arguments=1); threw exception SyntaxError: Assignment to ev
al or arguments is not allowed in strict mode. |
197 PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: 'a
rguments' cannot be modified in strict mode. | 197 PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: As
signment to eval or arguments is not allowed in strict mode. |
198 PASS 'use strict';var a=(eval=1); threw exception SyntaxError: 'eval' cannot be
modified in strict mode. | 198 PASS 'use strict';var a=(eval=1); threw exception SyntaxError: Assignment to eva
l or arguments is not allowed in strict mode. |
199 PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: 'ev
al' cannot be modified in strict mode. | 199 PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: Ass
ignment to eval or arguments is not allowed in strict mode. |
200 PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: 'arguments'
cannot be modified in strict mode. | 200 PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: Assignment t
o eval or arguments is not allowed in strict mode. |
201 PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError
: 'arguments' cannot be modified in strict mode. | 201 PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError
: Assignment to eval or arguments is not allowed in strict mode. |
202 PASS 'use strict'; try { throw 1; } catch (e) { aGlobal = true; } is true | 202 PASS 'use strict'; try { throw 1; } catch (e) { aGlobal = true; } is true |
203 PASS 'use strict'; (function () { try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true | 203 PASS 'use strict'; (function () { try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true |
204 PASS (function () {'use strict'; try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true | 204 PASS (function () {'use strict'; try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true |
205 PASS try { throw 1; } catch (e) { aGlobal = true; } is true | 205 PASS try { throw 1; } catch (e) { aGlobal = true; } is true |
206 PASS (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true | 206 PASS (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true |
207 PASS (function () {try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true | 207 PASS (function () {try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true |
208 PASS String(Object.getOwnPropertyDescriptor(function() { "use strict"; }, "calle
r").get) is 'function () {\n [native code]\n}' | 208 FAIL String(Object.getOwnPropertyDescriptor(function() { "use strict"; }, "calle
r").get) should be function () { |
| 209 [native code] |
| 210 }. Was function ThrowTypeError() { [native code] }. |
209 PASS successfullyParsed is true | 211 PASS successfullyParsed is true |
210 | 212 |
211 TEST COMPLETE | 213 TEST COMPLETE |
212 | 214 |
OLD | NEW |