summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/modules/module-this.js
blob: 9721ef4d95ee8acc743d89d48738459bdc3c1bd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// |jit-test| --enable-top-level-await;
// Test 'this' is undefined in modules.

function parseAndEvaluate(source) {
    let m = parseModule(source);
    m.declarationInstantiation();
    return m.evaluation();
}

parseAndEvaluate("this")
  .then(value => assertEq(typeof(value), "undefined"))
  .catch(error => {
    // We shouldn't throw in this case.
    assertEq(false, true)
  });

let m = parseModule("export function getThis() { return this; }");
m.declarationInstantiation();
m.evaluation()
  .then(() => {
    let f = getModuleEnvironmentValue(m, "getThis");
    assertEq(typeof(f()), "undefined");
  });

drainJobQueue();