|  | // 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); |