// Exercise shell parseModule function. function testEvalError(source) { // Test |source| throws when passed to eval. var caught = false; try { eval(source); } catch (e) { caught = true; } assertEq(caught, true); } function testModuleSource(source) { // Test |source| parses as a module, but throws when passed to eval. testEvalError(source); parseModule(source); } parseModule(""); parseModule("const foo = 1;"); parseModule("var foo = 1;"); parseModule("let foo = 1; var bar = 2; const baz = 3"); testModuleSource("import * as ns from 'bar';"); testModuleSource("export { a } from 'b';"); testModuleSource("export * from 'b';"); testModuleSource("export const foo = 1;"); testModuleSource("export default function() {};"); testModuleSource("export default 1;");