%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; // Flags: --experimental-vm-modules const common = require('../common'); const { SyntheticModule, SourceTextModule } = require('vm'); const assert = require('assert'); (async () => { { const s = new SyntheticModule(['x'], () => { s.setExport('x', 1); }); const m = new SourceTextModule(` import { x } from 'synthetic'; export const getX = () => x; `); await m.link(() => s); await m.evaluate(); assert.strictEqual(m.namespace.getX(), 1); s.setExport('x', 42); assert.strictEqual(m.namespace.getX(), 42); } { const s = new SyntheticModule([], () => { const p = Promise.reject(); p.catch(() => {}); return p; }); await s.link(common.mustNotCall()); assert.strictEqual(await s.evaluate(), undefined); } for (const invalidName of [1, Symbol.iterator, {}, [], null, true, 0]) { const s = new SyntheticModule([], () => {}); await s.link(() => {}); assert.throws(() => { s.setExport(invalidName, undefined); }, { name: 'TypeError', }); } { const s = new SyntheticModule([], () => {}); await s.link(() => {}); assert.throws(() => { s.setExport('does not exist'); }, { name: 'ReferenceError', }); } { const s = new SyntheticModule([], () => {}); assert.throws(() => { s.setExport('name', 'value'); }, { code: 'ERR_VM_MODULE_STATUS', }); } { assert.throws(() => { SyntheticModule.prototype.setExport.call({}, 'foo'); }, { code: 'ERR_VM_MODULE_NOT_MODULE', message: /Provided module is not an instance of Module/ }); } })().then(common.mustCall());