lineNumber.js (1266B)
1 // Simple tests for evaluate's "lineNumber" option. 2 3 load(libdir + 'asserts.js'); 4 5 const maxLine = Math.pow(2,32) - 1; 6 7 assertEq(evaluate("saveStack().line"), 1); 8 assertEq(evaluate("saveStack().line", { lineNumber: maxLine }), maxLine); 9 assertEq(evaluate("\nsaveStack().line"), 2); 10 assertEq(evaluate("\nsaveStack().line", { lineNumber: 1000 }), 1001); 11 assertThrowsInstanceOf(() => evaluate("\nsaveStack().line", { lineNumber: maxLine }), 12 RangeError); 13 14 if (helperThreadCount() > 0) { 15 offThreadCompileToStencil("saveStack().line"); 16 var stencil = finishOffThreadStencil(); 17 assertEq(evalStencil(stencil), 1); 18 19 offThreadCompileToStencil("saveStack().line", { lineNumber: maxLine }); 20 stencil = finishOffThreadStencil(); 21 assertEq(evalStencil(stencil), maxLine); 22 23 offThreadCompileToStencil("\nsaveStack().line"); 24 stencil = finishOffThreadStencil(); 25 assertEq(evalStencil(stencil), 2); 26 27 offThreadCompileToStencil("\nsaveStack().line", { lineNumber: 1000 }); 28 stencil = finishOffThreadStencil(); 29 assertEq(evalStencil(stencil), 1001); 30 31 offThreadCompileToStencil("\nsaveStack().line", { lineNumber: maxLine }); 32 assertThrowsInstanceOf(() => { 33 stencil = finishOffThreadStencil(); 34 evalStencil(stencil); 35 }, RangeError); 36 }