diff --git a/Runtime/src/index.ts b/Runtime/src/index.ts index 3da0f2e47..77264223c 100644 --- a/Runtime/src/index.ts +++ b/Runtime/src/index.ts @@ -27,6 +27,14 @@ export class SwiftRuntime { setInstance(instance: WebAssembly.Instance) { this._instance = instance; + if (typeof (this.exports as any)._start === "function") { + throw new Error( + `JavaScriptKit supports only WASI reactor ABI. + Please make sure you are building with: + -Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor + ` + ); + } if (this.exports.swjs_library_version() != this.version) { throw new Error( `The versions of JavaScriptKit are incompatible. diff --git a/Sources/JavaScriptKit/Runtime/index.js b/Sources/JavaScriptKit/Runtime/index.js index 8b6edbe3f..eb55ebc58 100644 --- a/Sources/JavaScriptKit/Runtime/index.js +++ b/Sources/JavaScriptKit/Runtime/index.js @@ -365,6 +365,12 @@ } setInstance(instance) { this._instance = instance; + if (typeof this.exports._start === "function") { + throw new Error(`JavaScriptKit supports only WASI reactor ABI. + Please make sure you are building with: + -Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor + `); + } if (this.exports.swjs_library_version() != this.version) { throw new Error(`The versions of JavaScriptKit are incompatible. WebAssembly runtime ${this.exports.swjs_library_version()} != JS runtime ${this.version}`); diff --git a/Sources/JavaScriptKit/Runtime/index.mjs b/Sources/JavaScriptKit/Runtime/index.mjs index 465752eb5..8bd8043d9 100644 --- a/Sources/JavaScriptKit/Runtime/index.mjs +++ b/Sources/JavaScriptKit/Runtime/index.mjs @@ -359,6 +359,12 @@ class SwiftRuntime { } setInstance(instance) { this._instance = instance; + if (typeof this.exports._start === "function") { + throw new Error(`JavaScriptKit supports only WASI reactor ABI. + Please make sure you are building with: + -Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor + `); + } if (this.exports.swjs_library_version() != this.version) { throw new Error(`The versions of JavaScriptKit are incompatible. WebAssembly runtime ${this.exports.swjs_library_version()} != JS runtime ${this.version}`);