Files
cup_edit/examples/flutter/example/web/main.mjs
2024-06-16 13:22:22 +08:00

359 lines
17 KiB
JavaScript

let buildArgsList;
// `modulePromise` is a promise to the `WebAssembly.module` object to be
// instantiated.
// `importObjectPromise` is a promise to an object that contains any additional
// imports needed by the module that aren't provided by the standard runtime.
// The fields on this object will be merged into the importObject with which
// the module will be instantiated.
// This function returns a promise to the instantiated module.
export const instantiate = async (modulePromise, importObjectPromise) => {
let dartInstance;
function stringFromDartString(string) {
const totalLength = dartInstance.exports.$stringLength(string);
let result = '';
let index = 0;
while (index < totalLength) {
let chunkLength = Math.min(totalLength - index, 0xFFFF);
const array = new Array(chunkLength);
for (let i = 0; i < chunkLength; i++) {
array[i] = dartInstance.exports.$stringRead(string, index++);
}
result += String.fromCharCode(...array);
}
return result;
}
function stringToDartString(string) {
const length = string.length;
let range = 0;
for (let i = 0; i < length; i++) {
range |= string.codePointAt(i);
}
if (range < 256) {
const dartString = dartInstance.exports.$stringAllocate1(length);
for (let i = 0; i < length; i++) {
dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i));
}
return dartString;
} else {
const dartString = dartInstance.exports.$stringAllocate2(length);
for (let i = 0; i < length; i++) {
dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i));
}
return dartString;
}
}
// Prints to the console
function printToConsole(value) {
if (typeof dartPrint == "function") {
dartPrint(value);
return;
}
if (typeof console == "object" && typeof console.log != "undefined") {
console.log(value);
return;
}
if (typeof print == "function") {
print(value);
return;
}
throw "Unable to print message: " + js;
}
// Converts a Dart List to a JS array. Any Dart objects will be converted, but
// this will be cheap for JSValues.
function arrayFromDartList(constructor, list) {
const length = dartInstance.exports.$listLength(list);
const array = new constructor(length);
for (let i = 0; i < length; i++) {
array[i] = dartInstance.exports.$listRead(list, i);
}
return array;
}
buildArgsList = function(list) {
const dartList = dartInstance.exports.$makeStringList();
for (let i = 0; i < list.length; i++) {
dartInstance.exports.$listAdd(dartList, stringToDartString(list[i]));
}
return dartList;
}
// A special symbol attached to functions that wrap Dart functions.
const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction");
function finalizeWrapper(dartFunction, wrapped) {
wrapped.dartFunction = dartFunction;
wrapped[jsWrappedDartFunctionSymbol] = true;
return wrapped;
}
// Imports
const dart2wasm = {
_11: x0 => new Array(x0),
_12: x0 => new Promise(x0),
_17: (o,s,v) => o[s] = v,
_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)),
_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)),
_20: (x0,x1,x2) => x0.call(x1,x2),
_21: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._21(f,x0,x1)),
_22: (x0,x1) => x0.call(x1),
_23: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._23(f,x0,x1)),
_44: () => Symbol("jsBoxedDartObjectProperty"),
_75: (x0,x1) => x0.getElementById(x1),
_1495: (x0,x1) => x0.width = x1,
_1497: (x0,x1) => x0.height = x1,
_1874: () => globalThis.window,
_1916: x0 => x0.innerWidth,
_1917: x0 => x0.innerHeight,
_6850: () => globalThis.document,
_12719: () => globalThis.createVoidCallback(),
_12720: () => globalThis.createVoidPointerCallback(),
_12721: () => globalThis.createBoolCallback(),
_12722: () => globalThis.createBoolCallback(),
_12724: v => stringToDartString(v.toString()),
_12740: () => {
let stackString = new Error().stack.toString();
let frames = stackString.split('\n');
let drop = 2;
if (frames[0] === 'Error') {
drop += 1;
}
return frames.slice(drop).join('\n');
},
_12759: s => stringToDartString(JSON.stringify(stringFromDartString(s))),
_12760: s => printToConsole(stringFromDartString(s)),
_12761: f => finalizeWrapper(f,() => dartInstance.exports._12761(f)),
_12762: f => finalizeWrapper(f,() => dartInstance.exports._12762(f)),
_12763: f => finalizeWrapper(f,x0 => dartInstance.exports._12763(f,x0)),
_12764: f => finalizeWrapper(f,() => dartInstance.exports._12764(f)),
_12765: f => finalizeWrapper(f,x0 => dartInstance.exports._12765(f,x0)),
_12766: f => finalizeWrapper(f,() => dartInstance.exports._12766(f)),
_12767: f => finalizeWrapper(f,x0 => dartInstance.exports._12767(f,x0)),
_12768: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12768(f,x0,x1)),
_12769: f => finalizeWrapper(f,() => dartInstance.exports._12769(f)),
_12770: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12770(f,x0,x1,x2,x3)),
_12771: f => finalizeWrapper(f,x0 => dartInstance.exports._12771(f,x0)),
_12772: f => finalizeWrapper(f,() => dartInstance.exports._12772(f)),
_12773: f => finalizeWrapper(f,x0 => dartInstance.exports._12773(f,x0)),
_12774: f => finalizeWrapper(f,x0 => dartInstance.exports._12774(f,x0)),
_12775: f => finalizeWrapper(f,() => dartInstance.exports._12775(f)),
_12776: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9) => dartInstance.exports._12776(f,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)),
_12777: f => finalizeWrapper(f,x0 => dartInstance.exports._12777(f,x0)),
_12778: f => finalizeWrapper(f,() => dartInstance.exports._12778(f)),
_12779: f => finalizeWrapper(f,x0 => dartInstance.exports._12779(f,x0)),
_12780: f => finalizeWrapper(f,x0 => dartInstance.exports._12780(f,x0)),
_12781: f => finalizeWrapper(f,x0 => dartInstance.exports._12781(f,x0)),
_12782: f => finalizeWrapper(f,x0 => dartInstance.exports._12782(f,x0)),
_12783: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12783(f,x0,x1)),
_12784: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12784(f,x0,x1)),
_12785: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12785(f,x0,x1)),
_12786: f => finalizeWrapper(f,() => dartInstance.exports._12786(f)),
_12787: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12787(f,x0,x1)),
_12788: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12788(f,x0,x1)),
_12789: f => finalizeWrapper(f,() => dartInstance.exports._12789(f)),
_12790: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12790(f,x0,x1)),
_12791: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12791(f,x0,x1)),
_12792: f => finalizeWrapper(f,x0 => dartInstance.exports._12792(f,x0)),
_12793: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12793(f,x0,x1)),
_12794: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12794(f,x0,x1,x2,x3,x4)),
_12795: f => finalizeWrapper(f,x0 => dartInstance.exports._12795(f,x0)),
_12796: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12796(f,x0,x1)),
_12797: f => finalizeWrapper(f,x0 => dartInstance.exports._12797(f,x0)),
_12798: f => finalizeWrapper(f,() => dartInstance.exports._12798(f)),
_12799: f => finalizeWrapper(f,() => dartInstance.exports._12799(f)),
_12800: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12800(f,x0,x1,x2)),
_12801: f => finalizeWrapper(f,() => dartInstance.exports._12801(f)),
_12802: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12802(f,x0,x1)),
_12803: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12803(f,x0,x1)),
_12804: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12804(f,x0,x1,x2)),
_12805: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12805(f,x0,x1)),
_12806: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12806(f,x0,x1)),
_12807: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12807(f,x0,x1)),
_12808: f => finalizeWrapper(f,() => dartInstance.exports._12808(f)),
_12809: f => finalizeWrapper(f,() => dartInstance.exports._12809(f)),
_12810: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12810(f,x0,x1,x2)),
_12811: f => finalizeWrapper(f,x0 => dartInstance.exports._12811(f,x0)),
_12812: f => finalizeWrapper(f,x0 => dartInstance.exports._12812(f,x0)),
_12813: f => finalizeWrapper(f,x0 => dartInstance.exports._12813(f,x0)),
_12814: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12814(f,x0,x1)),
_12815: f => finalizeWrapper(f,() => dartInstance.exports._12815(f)),
_12816: f => finalizeWrapper(f,() => dartInstance.exports._12816(f)),
_12817: f => finalizeWrapper(f,x0 => dartInstance.exports._12817(f,x0)),
_12818: f => finalizeWrapper(f,() => dartInstance.exports._12818(f)),
_12819: f => finalizeWrapper(f,() => dartInstance.exports._12819(f)),
_12820: f => finalizeWrapper(f,() => dartInstance.exports._12820(f)),
_12821: f => finalizeWrapper(f,() => dartInstance.exports._12821(f)),
_12822: f => finalizeWrapper(f,() => dartInstance.exports._12822(f)),
_12823: f => finalizeWrapper(f,() => dartInstance.exports._12823(f)),
_12824: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12824(f,x0,x1,x2)),
_12825: f => finalizeWrapper(f,() => dartInstance.exports._12825(f)),
_12826: f => finalizeWrapper(f,x0 => dartInstance.exports._12826(f,x0)),
_12827: f => finalizeWrapper(f,x0 => dartInstance.exports._12827(f,x0)),
_12828: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12828(f,x0,x1,x2)),
_12829: f => finalizeWrapper(f,x0 => dartInstance.exports._12829(f,x0)),
_12830: f => finalizeWrapper(f,x0 => dartInstance.exports._12830(f,x0)),
_12831: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6) => dartInstance.exports._12831(f,x0,x1,x2,x3,x4,x5,x6)),
_12832: f => finalizeWrapper(f,x0 => dartInstance.exports._12832(f,x0)),
_12833: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12833(f,x0,x1,x2,x3)),
_12834: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12834(f,x0,x1)),
_12835: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12835(f,x0,x1,x2,x3,x4)),
_12836: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12836(f,x0,x1,x2,x3,x4)),
_12837: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5) => dartInstance.exports._12837(f,x0,x1,x2,x3,x4,x5)),
_12838: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12838(f,x0,x1,x2)),
_12839: f => finalizeWrapper(f,x0 => dartInstance.exports._12839(f,x0)),
_12840: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12840(f,x0,x1,x2)),
_12841: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12841(f,x0,x1)),
_12842: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12842(f,x0,x1)),
_12843: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12843(f,x0,x1)),
_12844: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12844(f,x0,x1)),
_12845: f => finalizeWrapper(f,x0 => dartInstance.exports._12845(f,x0)),
_12846: f => finalizeWrapper(f,() => dartInstance.exports._12846(f)),
_12847: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12847(f,x0,x1)),
_12848: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12848(f,x0,x1)),
_12849: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12849(f,x0,x1)),
_12850: f => finalizeWrapper(f,x0 => dartInstance.exports._12850(f,x0)),
_12851: f => finalizeWrapper(f,x0 => dartInstance.exports._12851(f,x0)),
_12852: f => finalizeWrapper(f,x0 => dartInstance.exports._12852(f,x0)),
_12853: f => finalizeWrapper(f,x0 => dartInstance.exports._12853(f,x0)),
_12854: f => finalizeWrapper(f,() => dartInstance.exports._12854(f)),
_12868: (ms, c) =>
setTimeout(() => dartInstance.exports.$invokeCallback(c),ms),
_12872: (c) =>
queueMicrotask(() => dartInstance.exports.$invokeCallback(c)),
_12874: (a, i) => a.push(i),
_12885: a => a.length,
_12887: (a, i) => a[i],
_12888: (a, i, v) => a[i] = v,
_12890: a => a.join(''),
_12900: (s, p, i) => s.indexOf(p, i),
_12903: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length),
_12904: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length),
_12905: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length),
_12906: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length),
_12907: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length),
_12908: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length),
_12909: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length),
_12912: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length),
_12913: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length),
_12918: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength),
_12922: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get),
_12923: (b, o) => new DataView(b, o),
_12925: Function.prototype.call.bind(DataView.prototype.getUint8),
_12927: Function.prototype.call.bind(DataView.prototype.getInt8),
_12929: Function.prototype.call.bind(DataView.prototype.getUint16),
_12931: Function.prototype.call.bind(DataView.prototype.getInt16),
_12933: Function.prototype.call.bind(DataView.prototype.getUint32),
_12935: Function.prototype.call.bind(DataView.prototype.getInt32),
_12941: Function.prototype.call.bind(DataView.prototype.getFloat32),
_12943: Function.prototype.call.bind(DataView.prototype.getFloat64),
_12962: (x0,x1,x2) => x0[x1] = x2,
_12964: o => o === undefined,
_12965: o => typeof o === 'boolean',
_12966: o => typeof o === 'number',
_12968: o => typeof o === 'string',
_12971: o => o instanceof Int8Array,
_12972: o => o instanceof Uint8Array,
_12973: o => o instanceof Uint8ClampedArray,
_12974: o => o instanceof Int16Array,
_12975: o => o instanceof Uint16Array,
_12976: o => o instanceof Int32Array,
_12977: o => o instanceof Uint32Array,
_12978: o => o instanceof Float32Array,
_12979: o => o instanceof Float64Array,
_12980: o => o instanceof ArrayBuffer,
_12981: o => o instanceof DataView,
_12982: o => o instanceof Array,
_12983: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true,
_12987: (l, r) => l === r,
_12988: o => o,
_12989: o => o,
_12990: o => o,
_12991: b => !!b,
_12992: o => o.length,
_12995: (o, i) => o[i],
_12996: f => f.dartFunction,
_12997: l => arrayFromDartList(Int8Array, l),
_12998: l => arrayFromDartList(Uint8Array, l),
_12999: l => arrayFromDartList(Uint8ClampedArray, l),
_13000: l => arrayFromDartList(Int16Array, l),
_13001: l => arrayFromDartList(Uint16Array, l),
_13002: l => arrayFromDartList(Int32Array, l),
_13003: l => arrayFromDartList(Uint32Array, l),
_13004: l => arrayFromDartList(Float32Array, l),
_13005: l => arrayFromDartList(Float64Array, l),
_13006: (data, length) => {
const view = new DataView(new ArrayBuffer(length));
for (let i = 0; i < length; i++) {
view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i));
}
return view;
},
_13007: l => arrayFromDartList(Array, l),
_13008: stringFromDartString,
_13009: stringToDartString,
_13010: () => ({}),
_13012: l => new Array(l),
_13013: () => globalThis,
_13014: (constructor, args) => {
const factoryFunction = constructor.bind.apply(
constructor, [null, ...args]);
return new factoryFunction();
},
_13016: (o, p) => o[p],
_13018: (o, m, a) => o[m].apply(o, a),
_13020: o => String(o),
_13021: (p, s, f) => p.then(s, f),
_13040: (o, p) => o[p],
_13041: (o, p, v) => o[p] = v
};
const baseImports = {
dart2wasm: dart2wasm,
Math: Math,
Date: Date,
Object: Object,
Array: Array,
Reflect: Reflect,
};
const jsStringPolyfill = {
"charCodeAt": (s, i) => s.charCodeAt(i),
"compare": (s1, s2) => {
if (s1 < s2) return -1;
if (s1 > s2) return 1;
return 0;
},
"concat": (s1, s2) => s1 + s2,
"equals": (s1, s2) => s1 === s2,
"fromCharCode": (i) => String.fromCharCode(i),
"length": (s) => s.length,
"substring": (s, a, b) => s.substring(a, b),
};
dartInstance = await WebAssembly.instantiate(await modulePromise, {
...baseImports,
...(await importObjectPromise),
"wasm:js-string": jsStringPolyfill,
});
return dartInstance;
}
// Call the main function for the instantiated module
// `moduleInstance` is the instantiated dart2wasm module
// `args` are any arguments that should be passed into the main function.
export const invoke = (moduleInstance, ...args) => {
const dartMain = moduleInstance.exports.$getMain();
const dartArgs = buildArgsList(args);
moduleInstance.exports.$invokeMain(dartMain, dartArgs);
}