mirror of https://github.com/tc39/test262.git
32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
description: Immutable binding is created for module namespace object
|
|
esid: sec-moduledeclarationinstantiation
|
|
info: |
|
|
[...]
|
|
12. For each ImportEntry Record in in module.[[ImportEntries]], do
|
|
a. Let importedModule be ? HostResolveImportedModule(module,
|
|
in.[[ModuleRequest]]).
|
|
b. If in.[[ImportName]] is "*", then
|
|
i. Let namespace be ? GetModuleNamespace(importedModule).
|
|
ii. Perform ! envRec.CreateImmutableBinding(in.[[LocalName]], true).
|
|
iii. Call envRec.InitializeBinding(in.[[LocalName]], namespace).
|
|
[...]
|
|
flags: [module]
|
|
---*/
|
|
|
|
assert.sameValue(
|
|
typeof ns, 'object', 'binding is initialized prior to module evaluation'
|
|
);
|
|
|
|
var original = ns;
|
|
|
|
assert.throws(TypeError, function() {
|
|
ns = null;
|
|
}, 'binding rejects assignment');
|
|
|
|
assert.sameValue(ns, original, 'binding value is immutable');
|
|
|
|
import * as ns from './instn-star-binding.js';
|