compile-script.js (1557B)
1 load(libdir + "asserts.js"); 2 3 let stencil = compileToStencil('314;'); 4 assertEq(evalStencil(stencil), 314); 5 6 stencil = compileToStencil('let o = { a: 42, b: 2718 }["b"]; o', { prepareForInstantiate: true }); 7 assertEq(evalStencil(stencil), 2718); 8 9 assertThrowsInstanceOf(() => compileToStencil('let fail ='), SyntaxError); 10 assertThrowsInstanceOf(() => compileToStencil('42;', 42), Error); 11 12 oomTest(function() { 13 compileToStencil('"hello stencil!";', { prepareForInstantiate: false }); 14 }); 15 16 oomTest(function() { 17 compileToStencil('"hello stencil!";', { prepareForInstantiate: true }); 18 }); 19 20 // Modules 21 function compileAndEvaluateModule(script, options) { 22 if (!options) { 23 options = {}; 24 } 25 options.module = true; 26 let stencil = compileToStencil(script, options); 27 let m = instantiateModuleStencil(stencil); 28 moduleLink(m); 29 moduleEvaluate(m); 30 return m; 31 } 32 33 var m = compileAndEvaluateModule('export let r = 314;'); 34 assertEq(getModuleEnvironmentValue(m, "r"), 314); 35 36 m = compileAndEvaluateModule('export let r = { a: 42, b: 2718 }["b"];', { prepareForInstantiate: true }); 37 assertEq(getModuleEnvironmentValue(m, "r"), 2718); 38 39 assertThrowsInstanceOf(() => compileAndEvaluateModule('let fail ='), SyntaxError); 40 assertThrowsInstanceOf(() => compileToStencil('42;', 42), Error); 41 42 oomTest(function() { 43 compileAndEvaluateModule('export let r = "hello stencil!";', { prepareForInstantiate: false }); 44 }); 45 46 oomTest(function() { 47 compileAndEvaluateModule('export let r = "hello stencil!";', { prepareForInstantiate: true }); 48 });