| import { shouldThrow, shouldBe } from "./resources/assert.js"; |
| |
| // Module code is always strict code. |
| shouldThrow(() => { |
| eval("with(value) { }"); |
| }, `SyntaxError: 'with' statements are not valid in strict mode.`); |
| |
| // When calling the indirect eval / Function constructor, its scope is not the module scope. |
| var moduleVariable = 42; |
| |
| shouldBe(eval("moduleVariable"), 42); |
| |
| shouldThrow(() => { |
| (0, eval)("moduleVariable"); |
| }, `ReferenceError: Can't find variable: moduleVariable`); |
| |
| shouldThrow(() => { |
| (Function("moduleVariable"))(); |
| }, `ReferenceError: Can't find variable: moduleVariable`); |