| |
| function foo() { |
| "hello world i'm not use strict."; |
| function bar() { |
| return 25; |
| } |
| bar(); |
| "use strict"; |
| return this; |
| } |
| if (foo.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode."); |
| |
| function bar() { |
| "hello world i'm not use strict."; |
| function foo() { |
| return this; |
| } |
| "use strict"; |
| return foo.call(undefined); |
| } |
| if (bar.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode.") |
| |
| function baz() { |
| "foo"; |
| "bar"; |
| "baz"; |
| "foo"; |
| "bar"; |
| "baz"; |
| "foo"; |
| "bar"; |
| "baz"; |
| "use strict"; |
| return this; |
| } |
| if (baz.call(undefined) !== undefined) |
| throw new Error("Bad parsing strict mode.") |
| |
| function jaz() { |
| "foo"; |
| `bar`; |
| "use strict"; |
| return this; |
| } |
| if (jaz.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode.") |
| |
| function vaz() { |
| "foo"; |
| "use strict"; |
| `bar`; |
| return this; |
| } |
| if (vaz.call(undefined) !== undefined) |
| throw new Error("Bad parsing strict mode.") |
| |
| function hello() { |
| "foo"; |
| 2 + 2 |
| "use strict"; |
| return this; |
| } |
| if (hello.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode.") |
| |
| function world() { |
| "foo"; |
| let x; |
| "use strict"; |
| return this; |
| } |
| if (world.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode.") |
| |
| function a() { |
| "foo"; |
| world; |
| "use strict"; |
| return this; |
| } |
| if (a.call(undefined) !== this) |
| throw new Error("Bad parsing strict mode.") |
| |
| if (eval("'foo'; 'use strict'; 'bar';") !== "bar") |
| throw new Error("Bad parsing strict mode."); |
| |
| if (eval("'foo'; 'use strict'; 'bar'; this;") !== this) |
| throw new Error("Bad parsing strict mode."); |