| /** |
| * @license |
| * Copyright 2010 The Emscripten Authors |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| import {warn, addToCompileTimeContext} from './utility.mjs'; |
| import {POINTER_SIZE, runIfMainThread} from './parseTools.mjs'; |
| |
| // Replaced (at least internally) with receiveI64ParamAsI53 that does |
| // bounds checking. |
| function receiveI64ParamAsDouble(name) { |
| warn('use of legacy parseTools function: receiveI64ParamAsDouble'); |
| if (WASM_BIGINT) { |
| // Just convert the bigint into a double. |
| return `${name} = Number(${name});`; |
| } |
| // Combine the i32 params. Use an unsigned operator on low and shift high by |
| // 32 bits. |
| return `var ${name} = ${name}_high * 0x100000000 + (${name}_low >>> 0);`; |
| } |
| |
| function receiveI64ParamAsI32s(name) { |
| warn('use of legacy parseTools function: receiveI64ParamAsI32s'); |
| if (WASM_BIGINT) { |
| return `var ${name}_low = Number(${name} & 0xffffffffn) | 0, ${name}_high = Number(${name} >> 32n) | 0;`; |
| } |
| return ''; |
| } |
| |
| function makeMalloc(source, param) { |
| warn('use of legacy parseTools function: makeMalloc'); |
| return `_malloc(${param})`; |
| } |
| |
| const Runtime = { |
| POINTER_SIZE, |
| QUANTUM_SIZE: POINTER_SIZE, |
| }; |
| |
| // Legacy name for runIfMainThread. |
| const runOnMainThread = runIfMainThread; |
| |
| addToCompileTimeContext({ |
| Runtime, |
| makeMalloc, |
| receiveI64ParamAsDouble, |
| receiveI64ParamAsI32s, |
| runOnMainThread, |
| }); |