| function assert(b) { |
| if (!b) |
| throw new Error("Bad"); |
| } |
| |
| disableRichSourceInfo(); // This is needed for the JSONP path to be taken for calls. |
| |
| let a = 22; |
| loadString("a = 42"); |
| assert(a === 42); |
| |
| let b = {f: 22}; |
| loadString("b.f = 42"); |
| assert(b.f === 42); |
| |
| let foo = null; |
| let bar = 42; |
| loadString("foo = 'root'; bar = 5") |
| assert(foo === "root"); |
| assert(bar === 5); |
| |
| let called = false; |
| let func = (a) => { |
| assert(a.foo === 20); |
| called = true; |
| }; |
| |
| loadString("func({foo:20})"); |
| assert(called); |
| |
| called = false; |
| let o = { |
| foo(arg) { |
| assert(arg.foo === 20); |
| called = true; |
| } |
| }; |
| |
| loadString("o.foo({foo:20})"); |
| assert(called); |
| |
| var theVar = 20; |
| loadString("theVar = 42"); |
| assert(theVar === 42); |
| assert(this.theVar === 42); |
| |
| called = false; |
| var varFunc = (a) => { |
| assert(a.foo === 20); |
| called = true; |
| }; |
| loadString("varFunc({foo:20})"); |
| assert(called); |