Backed out changeset 1b14354719c0 (bug 1895254) for causing bustages on NavigationTra...
[gecko.git] / js / src / tests / test262 / language / module-code / instn-iee-bndng-var.js
blobde956a44e455c9b36c9126e1c1b17f7e3bbfdc64
1 // |reftest| module
2 // Copyright (C) 2016 the V8 project authors. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
4 /*---
5 description: >
6     Imported binding reflects state of indirectly-exported `var` binding
7 esid: sec-moduledeclarationinstantiation
8 info: |
9     [...]
10     12. For each ImportEntry Record in in module.[[ImportEntries]], do
11         a. Let importedModule be ? HostResolveImportedModule(module,
12            in.[[ModuleRequest]]).
13         b. If in.[[ImportName]] is "*", then
14            [...]
15         c. Else,
16            i. Let resolution be ?
17               importedModule.ResolveExport(in.[[ImportName]], « », « »).
18            ii. If resolution is null or resolution is "ambiguous", throw a
19                SyntaxError exception.
20            iii. Call envRec.CreateImportBinding(in.[[LocalName]],
21                 resolution.[[Module]], resolution.[[BindingName]]).
22     [...]
23     16. Let lexDeclarations be the LexicallyScopedDeclarations of code.
24     17. For each element d in lexDeclarations do
25         a. For each element dn of the BoundNames of d do
26            i, If IsConstantDeclaration of d is true, then
27               [...]
28            ii. Else,
29                1. Perform ! envRec.CreateMutableBinding(dn, false).
30            iii. If d is a GeneratorDeclaration production or a
31                 FunctionDeclaration production, then
32                 [...]
34     8.1.1.5.5 CreateImportBinding
36     [...]
37     5. Create an immutable indirect binding in envRec for N that references M
38        and N2 as its target binding and record that the binding is initialized.
39     6. Return NormalCompletion(empty).
40 flags: [module]
41 ---*/
43 assert.sameValue(
44   B,
45   undefined,
46   'binding is initialized to `undefined` prior to module evaulation'
49 assert.throws(TypeError, function() {
50   B = null;
51 }, 'binding rejects assignment');
53 assert.sameValue(B, undefined, 'binding value is immutable');
55 import { B, results } from './instn-iee-bndng-var_FIXTURE.js';
56 export var A = 99;
58 assert.sameValue(results.length, 4);
59 assert.sameValue(results[0], 'ReferenceError');
60 assert.sameValue(results[1], 'undefined');
61 assert.sameValue(results[2], 'ReferenceError');
62 assert.sameValue(results[3], 'undefined');
65 reportCompare(0, 0);