| //@requireOptions("--useImportAssertion=true") |
| |
| function shouldThrow(func, errorMessage) { |
| var errorThrown = false; |
| var error = null; |
| try { |
| func(); |
| } catch (e) { |
| errorThrown = true; |
| error = e; |
| } |
| if (!errorThrown) |
| throw new Error('not thrown'); |
| if (errorMessage) { |
| if (String(error) !== errorMessage) |
| throw new Error(`bad error: ${String(error)}`); |
| } |
| } |
| |
| function checkModuleSyntaxError(source, errorMessage) { |
| shouldThrow(() => checkModuleSyntax(source), errorMessage); |
| } |
| |
| var list = [ |
| String.raw`import v from "mod"`, |
| String.raw`import * as ns from "mod"`, |
| String.raw`import {x} from "mod"`, |
| String.raw`import {x,} from "mod"`, |
| String.raw`import {} from "mod"`, |
| String.raw`import {x as v} from "mod"`, |
| String.raw`export {x} from "mod"`, |
| String.raw`export {v as x} from "mod"`, |
| String.raw`export * from "mod"`, |
| String.raw`export * as b from "Cocoa"`, |
| String.raw`export * as delete from "Cocoa"`, |
| String.raw`import a, { b as c } from "Cocoa"`, |
| String.raw`import d, { e, f, g as h } from "Cappuccino"`, |
| String.raw`import { } from "Cappuccino"`, |
| String.raw`import i, * as j from "Cappuccino"`, |
| String.raw`import a, { } from "Cappuccino"`, |
| String.raw`import a, { b, } from "Cappuccino"`, |
| String.raw`import * as from from "Matcha"`, |
| String.raw`import * as as from "Cocoa"`, |
| String.raw`import { default as module } from "Cocoa"`, |
| String.raw`export * from "Cocoa"`, |
| String.raw`export { } from "Cocoa"`, |
| String.raw`export { a } from "Cocoa"`, |
| String.raw`export { a as b } from "Cocoa"`, |
| String.raw`export { a, b } from "Cocoa"`, |
| String.raw`export { default } from "Cocoa"`, |
| String.raw`export { enum } from "Cocoa"`, |
| String.raw`export { default as default } from "Cocoa"`, |
| String.raw`export { enum as enum } from "Cocoa"`, |
| ]; |
| |
| for (let entry of list) { |
| checkModuleSyntaxError(entry + ` assert { , }`); |
| checkModuleSyntaxError(entry + ` assert { type: json }`); |
| checkModuleSyntaxError(entry + ` assert { type, }`); |
| checkModuleSyntaxError(entry + ` assert { type: "json",, }`); |
| checkModuleSyntaxError(entry + ` assert { `); |
| } |