aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/modules-namespace4.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/modules-namespace4.mjs')
-rw-r--r--deps/v8/test/mjsunit/modules-namespace4.mjs57
1 files changed, 57 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/modules-namespace4.mjs b/deps/v8/test/mjsunit/modules-namespace4.mjs
new file mode 100644
index 0000000000..93c577c253
--- /dev/null
+++ b/deps/v8/test/mjsunit/modules-namespace4.mjs
@@ -0,0 +1,57 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import * as foo from "modules-namespace4.mjs";
+
+assertSame(undefined, a);
+assertThrows(() => b, ReferenceError);
+assertThrows(() => B, ReferenceError);
+assertThrows(() => c, ReferenceError);
+assertEquals(45, d());
+
+assertSame(undefined, foo.a);
+assertThrows(() => foo.b, ReferenceError);
+assertThrows(() => foo.B, ReferenceError);
+assertThrows(() => foo.c, ReferenceError);
+assertEquals(45, foo.d());
+assertThrows(() => foo.default, ReferenceError);
+assertSame(undefined, foo.doesnotexist);
+
+Function("Foo", " \
+ with (Foo) { \
+ assertEquals(undefined, a); \
+ assertThrows(() => b, ReferenceError); \
+ assertThrows(() => B, ReferenceError); \
+ assertThrows(() => c, ReferenceError); \
+ assertEquals(45, d()); \
+ }")(foo);
+
+export var a = 42;
+export let b = 43;
+export {b as B};
+export const c = 44;
+export function d() { return 45 };
+export default 46;
+
+assertEquals(42, a);
+assertEquals(43, b);
+assertEquals(44, c);
+assertEquals(45, d());
+
+assertEquals(42, foo.a);
+assertEquals(43, foo.b);
+assertEquals(43, foo.B);
+assertEquals(44, foo.c);
+assertEquals(45, foo.d());
+assertEquals(46, foo.default);
+assertSame(undefined, foo.doesnotexist);
+
+Function("Foo", " \
+ with (Foo) { \
+ assertEquals(42, a); \
+ assertEquals(43, b); \
+ assertEquals(43, B); \
+ assertEquals(44, c); \
+ assertEquals(45, d()); \
+ }")(foo);