2 // Copyright (C) 2021 Alexey Shvayka. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
5 esid: sec-module-namespace-exotic-objects
7 Internal methods of module namespace exotic objects are correct
8 with non-Identifier bindings that are integer indices.
13 3. If P is an element of exports, return true.
16 [[Get]] ( P, Receiver )
19 13. Return ? targetEnv.GetBindingValue(binding.[[BindingName]], true).
21 [[Set]] ( P, V, Receiver )
28 4. If P is an element of exports, return false.
31 features: [arbitrary-module-namespace-names, Reflect]
33 import * as ns from "./export-expname-binding-index_FIXTURE.js";
35 assert.sameValue(ns[0], 0);
36 assert.sameValue(Reflect.get(ns, 1), 1);
37 assert.sameValue(ns[2], undefined);
39 assert.throws(TypeError, () => { ns[0] = 1; });
40 assert(!Reflect.set(ns, 1, 1));
41 assert.throws(TypeError, () => { ns[2] = 2; });
44 assert(Reflect.has(ns, 1));
47 assert.throws(TypeError, () => { delete ns[0]; });
48 assert(!Reflect.deleteProperty(ns, 1));