| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| exports.QuickJSAsyncRuntime = void 0; |
| const _1 = require("."); |
| const context_asyncify_1 = require("./context-asyncify"); |
| const runtime_1 = require("./runtime"); |
| const types_1 = require("./types"); |
| class QuickJSAsyncRuntime extends runtime_1.QuickJSRuntime { |
| /** @private */ |
| constructor(args) { |
| super(args); |
| } |
| newContext(options = {}) { |
| if (options.intrinsics && options.intrinsics !== types_1.DefaultIntrinsics) { |
| throw new Error("TODO: Custom intrinsics are not supported yet"); |
| } |
| const ctx = new _1.Lifetime(this.ffi.QTS_NewContext(this.rt.value), undefined, (ctx_ptr) => { |
| this.contextMap.delete(ctx_ptr); |
| this.callbacks.deleteContext(ctx_ptr); |
| this.ffi.QTS_FreeContext(ctx_ptr); |
| }); |
| const context = new context_asyncify_1.QuickJSAsyncContext({ |
| module: this.module, |
| ctx, |
| ffi: this.ffi, |
| rt: this.rt, |
| ownedLifetimes: [], |
| runtime: this, |
| callbacks: this.callbacks, |
| }); |
| this.contextMap.set(ctx.value, context); |
| return context; |
| } |
| setModuleLoader(moduleLoader, moduleNormalizer) { |
| super.setModuleLoader(moduleLoader, moduleNormalizer); |
| } |
| /** |
| * Set the max stack size for this runtime in bytes. |
| * To remove the limit, set to `0`. |
| * |
| * Setting this limit also adjusts the global `ASYNCIFY_STACK_SIZE` for the entire {@link QuickJSAsyncWASMModule}. |
| * See the [pull request](https://github.com/justjake/quickjs-emscripten/pull/114) for more details. |
| */ |
| setMaxStackSize(stackSize) { |
| return super.setMaxStackSize(stackSize); |
| } |
| } |
| exports.QuickJSAsyncRuntime = QuickJSAsyncRuntime; |
| //# sourceMappingURL=runtime-asyncify.js.map |