Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(337)

Side by Side Diff: test/mjsunit/modules-namespace1.js

Issue 2388153003: [modules] Implement namespace imports. (Closed)
Patch Set: Fix verifier. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // MODULE
6
7 let ja = 42;
8 export {ja as yo};
9 export const bla = "blaa";
10 export {foo as foo_again};
11 // See further below for the actual star import that declares "foo".
12
13 // The object itself.
14 assertEquals("object", typeof foo);
15 assertThrows(() => foo = 666, TypeError);
16 assertFalse(Reflect.isExtensible(foo));
17 assertTrue(Reflect.preventExtensions(foo));
18 assertThrows(() => Reflect.apply(foo, {}, []));
19 assertThrows(() => Reflect.construct(foo, {}, []));
20 assertSame(null, Reflect.getPrototypeOf(foo));
21 // assertFalse(Reflect.setPrototypeOf(foo, null));
adamk 2016/10/04 18:26:53 Can you change this assertion to assertTrue and ad
neis 2016/10/05 08:18:42 Done.
22 assertFalse(Reflect.setPrototypeOf(foo, {}));
23 assertSame(null, Reflect.getPrototypeOf(foo));
24 assertEquals(
25 ["bla", "foo_again", "yo", Symbol.toStringTag],
26 // , Symbol.iterator],
adamk 2016/10/04 18:26:53 Please add a TODO here.
neis 2016/10/05 08:18:42 Done.
27 Reflect.ownKeys(foo));
28
29 // Its "yo" property.
30 assertEquals(
31 {value: 42, enumerable: true, configurable: false, writable: true},
32 Reflect.getOwnPropertyDescriptor(foo, "yo"));
33 assertFalse(Reflect.deleteProperty(foo, "yo"));
34 assertTrue(Reflect.has(foo, "yo"));
35 // assertFalse(Reflect.set(foo, "yo", true));
36 // assertFalse(Reflect.defineProperty(foo, "yo",
37 // Reflect.getOwnPropertyDescriptor(foo, "yo")));
38 // assertFalse(Reflect.defineProperty(foo, "yo", {}));
adamk 2016/10/04 18:26:53 Please add a TODO above this block of asserts; I a
neis 2016/10/05 08:18:42 Yes, it's the setter issue. Will create a bug repo
39 assertFalse(Reflect.defineProperty(foo, "yo", {get() {return 1}}));
40 assertEquals(42, Reflect.get(foo, "yo"));
41 assertEquals(43, (ja++, foo.yo));
42
43 // Its "foo_again" property.
44 assertSame(foo, foo.foo_again);
45
46 // Its @@toStringTag property.
47 assertTrue(Reflect.has(foo, Symbol.toStringTag));
48 assertEquals("string", typeof Reflect.get(foo, Symbol.toStringTag));
49 assertEquals(
50 {value: "Module", configurable: true, writable: false, enumerable: false},
51 Reflect.getOwnPropertyDescriptor(foo, Symbol.toStringTag));
52
53 // Its @@iterator property.
54 // assertTrue(Reflect.has(foo, Symbol.iterator));
55 // assert("function", typeof Reflect.get(foo, Symbol.iterator));
56 // assertEquals(["bla", "yo"], [...foo]);
57 // assertThrows(() => (42, foo[Symbol.iterator])(), TypeError);
58 // assertSame(foo[Symbol.iterator]().__proto__,
59 // ([][Symbol.iterator]()).__proto__.__proto__);
60
61 // TODO(neis): Clarify spec w.r.t. other symbols.
62
63 // Nonexistant properties.
64 let nonexistant = ["gaga", 123, Symbol('')];
65 for (let key of nonexistant) {
66 assertSame(undefined, Reflect.getOwnPropertyDescriptor(foo, key));
67 assertTrue(Reflect.deleteProperty(foo, key));
68 assertFalse(Reflect.set(foo, key, true));
69 assertSame(undefined, Reflect.get(foo, key));
70 assertFalse(Reflect.defineProperty(foo, key, {get() {return 1}}));
71 assertFalse(Reflect.has(foo, key));
72 }
73
74 // The actual star import that we are testing. Namespace imports are
75 // initialized before evaluation
76 import * as foo from "modules-namespace1.js";
77
78 // There can be only one namespace object.
79 import * as bar from "modules-namespace1.js";
80 assertSame(foo, bar);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698