OLD | NEW |
(Empty) | |
| 1 # Copyright 2013 the V8 project authors. All rights reserved. |
| 2 # Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 3 # |
| 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions |
| 6 # are met: |
| 7 # 1. Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. |
| 9 # 2. Redistributions in binary form must reproduce the above copyright |
| 10 # notice, this list of conditions and the following disclaimer in the |
| 11 # documentation and/or other materials provided with the distribution. |
| 12 # |
| 13 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY |
| 14 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 15 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 16 # DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| 17 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 18 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 19 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| 20 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 21 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 22 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 23 |
| 24 Test behaviour of strict mode |
| 25 |
| 26 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". |
| 27 |
| 28 |
| 29 PASS testThis.call(null) is null |
| 30 PASS testThis.call(1) is 1 |
| 31 PASS testThis.call(true) is true |
| 32 PASS testThis.call(false) is false |
| 33 PASS testThis.call(undefined) is undefined |
| 34 PASS testLineContinuation.call(undefined) === undefined is false |
| 35 PASS testEscapeSequence.call(undefined) === undefined is false |
| 36 PASS testThis.call('a string') is 'a string' |
| 37 PASS testThisDotAccess.call('a string') is 'a string'.length |
| 38 PASS testThisDotAccess.call(null) threw exception TypeError: Cannot read propert
y 'length' of null. |
| 39 PASS testThisDotAccess.call(undefined) threw exception TypeError: Cannot read pr
operty 'length' of undefined. |
| 40 PASS testThisDotAccess.call(true) is undefined. |
| 41 PASS testThisDotAccess.call(false) is undefined. |
| 42 PASS testThisDotAccess.call(1) is undefined. |
| 43 PASS testThisBracketAccess.call('a string', 'length') is 'a string'.length |
| 44 PASS testThisBracketAccess.call(null, 'length') threw exception TypeError: Canno
t read property 'length' of null. |
| 45 PASS testThisBracketAccess.call(undefined, 'length') threw exception TypeError:
Cannot read property 'length' of undefined. |
| 46 PASS testThisBracketAccess.call(true, 'length') is undefined. |
| 47 PASS testThisBracketAccess.call(false, 'length') is undefined. |
| 48 PASS testThisBracketAccess.call(1, 'length') is undefined. |
| 49 PASS Function('"use strict"; return this;')() is undefined. |
| 50 PASS Function('"use strict"; with({});') threw exception SyntaxError: Strict mod
e code may not include a with statement. |
| 51 PASS testGlobalAccess() is undefined |
| 52 PASS testThis.call() is undefined |
| 53 PASS testThis.apply() is undefined |
| 54 PASS testThis.call(undefined) is undefined |
| 55 PASS testThis.apply(undefined) is undefined |
| 56 PASS (function eval(){'use strict';}) threw exception SyntaxError: Function name
may not be eval or arguments in strict mode. |
| 57 PASS (function(){(function eval(){'use strict';})}) threw exception SyntaxError:
Function name may not be eval or arguments in strict mode. |
| 58 PASS (function (eval){'use strict';}) threw exception SyntaxError: Parameter nam
e eval or arguments is not allowed in strict mode. |
| 59 PASS (function(){(function (eval){'use strict';})}) threw exception SyntaxError:
Parameter name eval or arguments is not allowed in strict mode. |
| 60 PASS (function arguments(){'use strict';}) threw exception SyntaxError: Function
name may not be eval or arguments in strict mode. |
| 61 PASS (function(){(function arguments(){'use strict';})}) threw exception SyntaxE
rror: Function name may not be eval or arguments in strict mode. |
| 62 PASS (function (arguments){'use strict';}) threw exception SyntaxError: Paramete
r name eval or arguments is not allowed in strict mode. |
| 63 PASS (function(){(function (arguments){'use strict';})}) threw exception SyntaxE
rror: Parameter name eval or arguments is not allowed in strict mode. |
| 64 PASS (function (){'use strict'; var eval;}) threw exception SyntaxError: Variabl
e name may not be eval or arguments in strict mode. |
| 65 PASS (function(){(function (){'use strict'; var eval;})}) threw exception Syntax
Error: Variable name may not be eval or arguments in strict mode. |
| 66 PASS (function (){'use strict'; var arguments;}) threw exception SyntaxError: Va
riable name may not be eval or arguments in strict mode. |
| 67 PASS (function(){(function (){'use strict'; var arguments;})}) threw exception S
yntaxError: Variable name may not be eval or arguments in strict mode. |
| 68 PASS (function (){'use strict'; try{}catch(eval){}}) threw exception SyntaxError
: Catch variable may not be eval or arguments in strict mode. |
| 69 PASS (function(){(function (){'use strict'; try{}catch(eval){}})}) threw excepti
on SyntaxError: Catch variable may not be eval or arguments in strict mode. |
| 70 PASS (function (){'use strict'; try{}catch(arguments){}}) threw exception Syntax
Error: Catch variable may not be eval or arguments in strict mode. |
| 71 PASS (function(){(function (){'use strict'; try{}catch(arguments){}})}) threw ex
ception SyntaxError: Catch variable may not be eval or arguments in strict mode. |
| 72 PASS (function (a, a){'use strict';}) threw exception SyntaxError: Strict mode f
unction may not have duplicate parameter names. |
| 73 PASS (function(){(function (a, a){'use strict';})}) threw exception SyntaxError:
Strict mode function may not have duplicate parameter names. |
| 74 PASS (function (a){'use strict'; delete a;})() threw exception SyntaxError: Dele
te of an unqualified identifier in strict mode.. |
| 75 PASS (function(){(function (a){'use strict'; delete a;})()}) threw exception Syn
taxError: Delete of an unqualified identifier in strict mode.. |
| 76 PASS (function (){'use strict'; var a; delete a;})() threw exception SyntaxError
: Delete of an unqualified identifier in strict mode.. |
| 77 PASS (function(){(function (){'use strict'; var a; delete a;})()}) threw excepti
on SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 78 PASS (function (){var a; function f() {'use strict'; delete a;} })() threw excep
tion SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 79 PASS (function(){(function (){var a; function f() {'use strict'; delete a;} })()
}) threw exception SyntaxError: Delete of an unqualified identifier in strict mo
de.. |
| 80 PASS (function (){'use strict'; with(1){};}) threw exception SyntaxError: Strict
mode code may not include a with statement. |
| 81 PASS (function(){(function (){'use strict'; with(1){};})}) threw exception Synta
xError: Strict mode code may not include a with statement. |
| 82 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. |
| 83 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. |
| 84 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. |
| 85 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. |
| 86 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. |
| 87 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. |
| 88 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. |
| 89 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. |
| 90 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. |
| 91 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. |
| 92 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. |
| 93 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. |
| 94 PASS "caller" in function(){"use strict"} is true |
| 95 PASS (function(){"use strict";}).hasOwnProperty("caller") is true |
| 96 PASS "arguments" in function(){"use strict"} is true |
| 97 PASS (function(){"use strict";}).hasOwnProperty("arguments") is true |
| 98 PASS 'use strict'; (function (){with(1){};}) threw exception SyntaxError: Strict
mode code may not include a with statement. |
| 99 PASS (function(){'use strict'; (function (){with(1){};})}) threw exception Synta
xError: Strict mode code may not include a with statement. |
| 100 PASS 'use strict'; (function (){var a; delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
| 101 PASS (function(){'use strict'; (function (){var a; delete a;})}) threw exception
SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 102 PASS 'use strict'; var a; (function (){ delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
| 103 PASS (function(){'use strict'; var a; (function (){ delete a;})}) threw exceptio
n SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 104 PASS var a; (function (){ 'use strict'; delete a;}) threw exception SyntaxError:
Delete of an unqualified identifier in strict mode.. |
| 105 PASS (function(){var a; (function (){ 'use strict'; delete a;})}) threw exceptio
n SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 106 PASS 'misc directive'; 'use strict'; with({}){} threw exception SyntaxError: Str
ict mode code may not include a with statement. |
| 107 PASS (function(){'misc directive'; 'use strict'; with({}){}}) threw exception Sy
ntaxError: Strict mode code may not include a with statement. |
| 108 PASS 'use strict'; return threw exception SyntaxError: Illegal return statement. |
| 109 PASS 'use strict'; break threw exception SyntaxError: Illegal break statement. |
| 110 PASS (function(){'use strict'; break}) threw exception SyntaxError: Illegal brea
k statement. |
| 111 PASS 'use strict'; continue threw exception SyntaxError: Illegal continue statem
ent. |
| 112 PASS (function(){'use strict'; continue}) threw exception SyntaxError: Illegal c
ontinue statement. |
| 113 PASS 'use strict'; for(;;)return threw exception SyntaxError: Illegal return sta
tement. |
| 114 PASS 'use strict'; for(;;)break missingLabel threw exception SyntaxError: Undefi
ned label 'missingLabel'. |
| 115 PASS (function(){'use strict'; for(;;)break missingLabel}) threw exception Synta
xError: Undefined label 'missingLabel'. |
| 116 PASS 'use strict'; for(;;)continue missingLabel threw exception SyntaxError: Und
efined label 'missingLabel'. |
| 117 PASS (function(){'use strict'; for(;;)continue missingLabel}) threw exception Sy
ntaxError: Undefined label 'missingLabel'. |
| 118 PASS 'use strict'; 007; threw exception SyntaxError: Octal literals are not allo
wed in strict mode.. |
| 119 PASS (function(){'use strict'; 007;}) threw exception SyntaxError: Octal literal
s are not allowed in strict mode.. |
| 120 PASS 'use strict'; '\007'; threw exception SyntaxError: Octal literals are not a
llowed in strict mode.. |
| 121 PASS (function(){'use strict'; '\007';}) threw exception SyntaxError: Octal lite
rals are not allowed in strict mode.. |
| 122 PASS '\007'; 'use strict'; threw exception SyntaxError: Octal literals are not a
llowed in strict mode.. |
| 123 PASS (function(){'\007'; 'use strict';}) threw exception SyntaxError: Octal lite
rals are not allowed in strict mode.. |
| 124 PASS 'use strict'; delete aDeletableProperty; threw exception SyntaxError: Delet
e of an unqualified identifier in strict mode.. |
| 125 PASS (function(){'use strict'; delete aDeletableProperty;}) threw exception Synt
axError: Delete of an unqualified identifier in strict mode.. |
| 126 PASS 'use strict'; (function (){ delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Delete of an unqualified identifier in strict mode.. |
| 127 PASS (function(){'use strict'; (function (){ delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 128 PASS (function (){ 'use strict'; delete someDeclaredGlobal;}) threw exception Sy
ntaxError: Delete of an unqualified identifier in strict mode.. |
| 129 PASS (function(){(function (){ 'use strict'; delete someDeclaredGlobal;})}) thre
w exception SyntaxError: Delete of an unqualified identifier in strict mode.. |
| 130 PASS 'use strict'; if (0) { someGlobal = 'Shouldn\'t be able to assign this.'; }
; true; is true |
| 131 PASS 'use strict'; someGlobal = 'Shouldn\'t be able to assign this.'; threw exc
eption ReferenceError: someGlobal is not defined. |
| 132 FAIL 'use strict'; (function f(){ f = 'shouldn\'t be able to assign to function
expression name'; })() should throw an exception. Was undefined. |
| 133 PASS 'use strict'; eval('var introducedVariable = "FAIL: variable introduced int
o containing scope";'); introducedVariable threw exception ReferenceError: intro
ducedVariable is not defined. |
| 134 PASS 'use strict'; objectWithReadonlyProperty.prop = 'fail' threw exception Type
Error: Cannot assign to read only property 'prop' of #<Object>. |
| 135 PASS 'use strict'; delete objectWithReadonlyProperty.prop threw exception TypeEr
ror: Cannot delete property 'prop' of #<Object>. |
| 136 PASS 'use strict'; delete objectWithReadonlyProperty[readonlyPropName] threw exc
eption TypeError: Cannot delete property 'prop' of #<Object>. |
| 137 PASS 'use strict'; ++eval threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
| 138 PASS (function(){'use strict'; ++eval}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
| 139 PASS 'use strict'; eval++ threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
| 140 PASS (function(){'use strict'; eval++}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
| 141 PASS 'use strict'; --eval threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
| 142 PASS (function(){'use strict'; --eval}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
| 143 PASS 'use strict'; eval-- threw exception SyntaxError: Prefix increment/decremen
t may not have eval or arguments operand in strict mode. |
| 144 PASS (function(){'use strict'; eval--}) threw exception SyntaxError: Prefix incr
ement/decrement may not have eval or arguments operand in strict mode. |
| 145 PASS 'use strict'; function f() { ++arguments } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
| 146 PASS (function(){'use strict'; function f() { ++arguments }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
| 147 PASS 'use strict'; function f() { arguments++ } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
| 148 PASS (function(){'use strict'; function f() { arguments++ }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
| 149 PASS 'use strict'; function f() { --arguments } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
| 150 PASS (function(){'use strict'; function f() { --arguments }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
| 151 PASS 'use strict'; function f() { arguments-- } threw exception SyntaxError: Pre
fix increment/decrement may not have eval or arguments operand in strict mode. |
| 152 PASS (function(){'use strict'; function f() { arguments-- }}) threw exception Sy
ntaxError: Prefix increment/decrement may not have eval or arguments operand in
strict mode. |
| 153 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. |
| 154 PASS 'use strict'; ++(1, eval) threw exception ReferenceError: Invalid left-hand
side expression in prefix operation. |
| 155 FAIL (function(){'use strict'; ++(1, eval)}) should throw an exception. Was func
tion (){'use strict'; ++(1, eval)}. |
| 156 PASS 'use strict'; (1, eval)++ threw exception ReferenceError: Invalid left-hand
side expression in postfix operation. |
| 157 FAIL (function(){'use strict'; (1, eval)++}) should throw an exception. Was func
tion (){'use strict'; (1, eval)++}. |
| 158 PASS 'use strict'; --(1, eval) threw exception ReferenceError: Invalid left-hand
side expression in prefix operation. |
| 159 FAIL (function(){'use strict'; --(1, eval)}) should throw an exception. Was func
tion (){'use strict'; --(1, eval)}. |
| 160 PASS 'use strict'; (1, eval)-- threw exception ReferenceError: Invalid left-hand
side expression in postfix operation. |
| 161 FAIL (function(){'use strict'; (1, eval)--}) should throw an exception. Was func
tion (){'use strict'; (1, eval)--}. |
| 162 FAIL 'use strict'; function f() { ++(1, arguments) } should throw an exception.
Was use strict. |
| 163 FAIL (function(){'use strict'; function f() { ++(1, arguments) }}) should throw
an exception. Was function (){'use strict'; function f() { ++(1, arguments) }}. |
| 164 FAIL 'use strict'; function f() { (1, arguments)++ } should throw an exception.
Was use strict. |
| 165 FAIL (function(){'use strict'; function f() { (1, arguments)++ }}) should throw
an exception. Was function (){'use strict'; function f() { (1, arguments)++ }}. |
| 166 FAIL 'use strict'; function f() { --(1, arguments) } should throw an exception.
Was use strict. |
| 167 FAIL (function(){'use strict'; function f() { --(1, arguments) }}) should throw
an exception. Was function (){'use strict'; function f() { --(1, arguments) }}. |
| 168 FAIL 'use strict'; function f() { (1, arguments)-- } should throw an exception.
Was use strict. |
| 169 FAIL (function(){'use strict'; function f() { (1, arguments)-- }}) should throw
an exception. Was function (){'use strict'; function f() { (1, arguments)-- }}. |
| 170 FAIL 'use strict'; if (0) delete +a.b should throw an exception. Was use strict. |
| 171 FAIL (function(){'use strict'; if (0) delete +a.b}) should throw an exception. W
as function (){'use strict'; if (0) delete +a.b}. |
| 172 FAIL 'use strict'; if (0) delete ++a.b should throw an exception. Was use strict
. |
| 173 FAIL (function(){'use strict'; if (0) delete ++a.b}) should throw an exception.
Was function (){'use strict'; if (0) delete ++a.b}. |
| 174 FAIL 'use strict'; if (0) delete void a.b should throw an exception. Was use str
ict. |
| 175 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}. |
| 176 PASS (function (a){'use strict'; a = false; return a !== arguments[0]; })(true)
is true |
| 177 PASS (function (a){'use strict'; arguments[0] = false; return a !== arguments[0]
; })(true) is true |
| 178 PASS (function (a){'use strict'; a=false; return arguments; })(true)[0] is true |
| 179 PASS (function (a){'use strict'; arguments[0]=false; return a; })(true) is true |
| 180 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true |
| 181 PASS (function (){'use strict'; arguments[0]=true; return arguments; })(false)[
0] is true |
| 182 PASS (function (a){'use strict'; arguments[0]=true; a=false; return arguments; }
)()[0] is true |
| 183 PASS (function (a){'use strict'; arguments[0]=false; a=true; return a; })() is t
rue |
| 184 PASS (function (a){'use strict'; arguments[0]=true; return arguments; })()[0] is
true |
| 185 PASS (function (){'use strict'; arguments[0]=true; return arguments; })()[0] is
true |
| 186 PASS (function (a){'use strict'; var local; (function (){local;})(); a = false;
return a !== arguments[0]; })(true) is true |
| 187 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
] = false; return a !== arguments[0]; })(true) is true |
| 188 PASS (function (a){'use strict'; var local; (function (){local;})(); a=false; re
turn arguments; })(true)[0] is true |
| 189 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
]=false; return a; })(true) is true |
| 190 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
]=true; return arguments; })(false)[0] is true |
| 191 PASS (function (){'use strict'; var local; (function (){local;})(); arguments[0
]=true; return arguments; })(false)[0] is true |
| 192 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
]=true; a=false; return arguments; })()[0] is true |
| 193 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
]=true; return arguments; })()[0] is true |
| 194 PASS (function (a){'use strict'; var local; (function (){local;})(); arguments[0
]=false; a=true; return a; })() is true |
| 195 PASS (function (){'use strict'; var local; (function (){local;})(); arguments[0
]=true; return arguments; })()[0] is true |
| 196 PASS 'use strict'; (function (){var a = true; eval('var a = false'); return a; }
)() is true |
| 197 PASS (function (){var a = true; eval('"use strict"; var a = false'); return a; }
)() is true |
| 198 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'a
rguments').value; })() is undefined. |
| 199 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(f, 'c
aller').value; })() is undefined. |
| 200 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'callee').value; })() is undefined. |
| 201 PASS (function f(arg){'use strict'; return Object.getOwnPropertyDescriptor(argum
ents, 'caller').value; })() is undefined. |
| 202 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'caller'); return descriptor.get === descriptor.set; })() is tru
e |
| 203 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(arguments, 'callee'); return descriptor.get === descriptor.set; })() is tru
e |
| 204 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'caller'); return descriptor.get === descriptor.set; })() is true |
| 205 PASS (function f(arg){'use strict'; var descriptor = Object.getOwnPropertyDescri
ptor(f, 'arguments'); return descriptor.get === descriptor.set; })() is true |
| 206 PASS 'use strict'; (function f() { for(var i in this); })(); true; is true |
| 207 PASS 'use strict'̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
| 208 PASS (function(){'use strict'̻}) threw exception SyntaxError: Unexpected token I
LLEGAL. |
| 209 PASS 'use strict'5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
| 210 PASS (function(){'use strict'5.f}) threw exception SyntaxError: Unexpected token
ILLEGAL. |
| 211 PASS 'use strict';̻ threw exception SyntaxError: Unexpected token ILLEGAL. |
| 212 PASS (function(){'use strict';̻}) threw exception SyntaxError: Unexpected token
ILLEGAL. |
| 213 PASS 'use strict';5.f threw exception SyntaxError: Unexpected token ILLEGAL. |
| 214 PASS (function(){'use strict';5.f}) threw exception SyntaxError: Unexpected toke
n ILLEGAL. |
| 215 PASS 'use strict';1-(eval=1); threw exception SyntaxError: Assignment to eval or
arguments is not allowed in strict mode. |
| 216 PASS (function(){'use strict';1-(eval=1);}) threw exception SyntaxError: Assignm
ent to eval or arguments is not allowed in strict mode. |
| 217 PASS 'use strict';arguments=1; threw exception SyntaxError: Assignment to eval o
r arguments is not allowed in strict mode. |
| 218 PASS (function(){'use strict';arguments=1;}) threw exception SyntaxError: Assign
ment to eval or arguments is not allowed in strict mode. |
| 219 PASS 'use strict';1-(arguments=1); threw exception SyntaxError: Assignment to ev
al or arguments is not allowed in strict mode. |
| 220 PASS (function(){'use strict';1-(arguments=1);}) threw exception SyntaxError: As
signment to eval or arguments is not allowed in strict mode. |
| 221 PASS 'use strict';var a=(eval=1); threw exception SyntaxError: Assignment to eva
l or arguments is not allowed in strict mode. |
| 222 PASS (function(){'use strict';var a=(eval=1);}) threw exception SyntaxError: Ass
ignment to eval or arguments is not allowed in strict mode. |
| 223 PASS 'use strict';var a=(arguments=1); threw exception SyntaxError: Assignment t
o eval or arguments is not allowed in strict mode. |
| 224 PASS (function(){'use strict';var a=(arguments=1);}) threw exception SyntaxError
: Assignment to eval or arguments is not allowed in strict mode. |
| 225 PASS 'use strict'; try { throw 1; } catch (e) { aGlobal = true; } is true |
| 226 PASS 'use strict'; (function () { try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true |
| 227 PASS (function () {'use strict'; try { throw 1; } catch (e) { aGlobal = true; }
})(); aGlobal; is true |
| 228 PASS try { throw 1; } catch (e) { aGlobal = true; } is true |
| 229 PASS (function () { try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true |
| 230 PASS (function () {try { throw 1; } catch (e) { aGlobal = true; }})(); aGlobal;
is true |
| 231 FAIL String(Object.getOwnPropertyDescriptor(function() { "use strict"; }, "calle
r").get) should be function () { |
| 232 [native code] |
| 233 }. Was function ThrowTypeError() { [native code] }. |
| 234 PASS successfullyParsed is true |
| 235 |
| 236 TEST COMPLETE |
| 237 |
OLD | NEW |