@keymanapp/kmc-kmn 18.0.79-alpha → 18.0.81-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/compiler/compiler.d.ts +10 -5
- package/build/src/compiler/compiler.d.ts.map +1 -1
- package/build/src/compiler/compiler.js +35 -56
- package/build/src/compiler/compiler.js.map +1 -1
- package/build/src/compiler/kmn-compiler-messages.d.ts +10 -13
- package/build/src/compiler/kmn-compiler-messages.d.ts.map +1 -1
- package/build/src/compiler/kmn-compiler-messages.js +10 -49
- package/build/src/compiler/kmn-compiler-messages.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.d.ts.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.js +562 -402
- package/build/src/import/kmcmplib/wasm-host.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.wasm +0 -0
- package/build/src/kmw-compiler/kmw-compiler-messages.d.ts +2 -2
- package/build/src/kmw-compiler/kmw-compiler-messages.d.ts.map +1 -1
- package/build/src/kmw-compiler/kmw-compiler-messages.js +2 -2
- package/build/src/kmw-compiler/kmw-compiler-messages.js.map +1 -1
- package/build/src/kmw-compiler/kmw-compiler.js +1 -1
- package/build/src/kmw-compiler/kmw-compiler.js.map +1 -1
- package/package.json +5 -5
|
@@ -787,24 +787,6 @@ var Module = (() => {
|
|
|
787
787
|
// include: runtime_debug.js
|
|
788
788
|
// end include: runtime_debug.js
|
|
789
789
|
// === Body ===
|
|
790
|
-
function wasm_msgproc(line, msgcode, text, context) { const proc = globalThis[UTF8ToString(context)].message; if (!proc || typeof proc != 'function') {
|
|
791
|
-
console.log(`[${line}: ${msgcode}: ${UTF8ToString(text)}]`);
|
|
792
|
-
return 0;
|
|
793
|
-
}
|
|
794
|
-
else {
|
|
795
|
-
return proc(line, msgcode, UTF8ToString(text));
|
|
796
|
-
} }
|
|
797
|
-
function wasm_loadfileproc(filename, baseFilename, buffer, bufferSize, context) { const proc = globalThis[UTF8ToString(context)].loadFile; if (!proc || typeof proc != 'function') {
|
|
798
|
-
return 0;
|
|
799
|
-
}
|
|
800
|
-
else {
|
|
801
|
-
if (buffer == 0) {
|
|
802
|
-
return proc(UTF8ToString(filename), UTF8ToString(baseFilename), 0, 0);
|
|
803
|
-
}
|
|
804
|
-
else {
|
|
805
|
-
return proc(UTF8ToString(filename), UTF8ToString(baseFilename), buffer, bufferSize);
|
|
806
|
-
}
|
|
807
|
-
} }
|
|
808
790
|
// end include: preamble.js
|
|
809
791
|
/** @constructor */
|
|
810
792
|
function ExitStatus(status) {
|
|
@@ -876,20 +858,6 @@ var Module = (() => {
|
|
|
876
858
|
function ___assert_fail(condition, filename, line, func) {
|
|
877
859
|
abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);
|
|
878
860
|
}
|
|
879
|
-
var structRegistrations = {};
|
|
880
|
-
function runDestructors(destructors) {
|
|
881
|
-
while (destructors.length) {
|
|
882
|
-
var ptr = destructors.pop();
|
|
883
|
-
var del = destructors.pop();
|
|
884
|
-
del(ptr);
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
function simpleReadValueFromPointer(pointer) {
|
|
888
|
-
return this['fromWireType'](HEAP32[((pointer) >> 2)]);
|
|
889
|
-
}
|
|
890
|
-
var awaitingDependencies = {};
|
|
891
|
-
var registeredTypes = {};
|
|
892
|
-
var typeDependencies = {};
|
|
893
861
|
var char_0 = 48;
|
|
894
862
|
var char_9 = 57;
|
|
895
863
|
function makeLegalFunctionName(name) {
|
|
@@ -913,6 +881,8 @@ var Module = (() => {
|
|
|
913
881
|
}
|
|
914
882
|
}[name];
|
|
915
883
|
}
|
|
884
|
+
var emval_handle_array = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }];
|
|
885
|
+
var emval_free_list = [];
|
|
916
886
|
function extendError(baseErrorType, errorName) {
|
|
917
887
|
var errorClass = createNamedFunction(errorName, function (message) {
|
|
918
888
|
this.name = errorName;
|
|
@@ -935,121 +905,52 @@ var Module = (() => {
|
|
|
935
905
|
};
|
|
936
906
|
return errorClass;
|
|
937
907
|
}
|
|
938
|
-
var
|
|
939
|
-
function
|
|
940
|
-
throw new
|
|
908
|
+
var BindingError = undefined;
|
|
909
|
+
function throwBindingError(message) {
|
|
910
|
+
throw new BindingError(message);
|
|
941
911
|
}
|
|
942
|
-
function
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
var myTypeConverters = getTypeConverters(typeConverters);
|
|
948
|
-
if (myTypeConverters.length !== myTypes.length) {
|
|
949
|
-
throwInternalError('Mismatched type converter count');
|
|
950
|
-
}
|
|
951
|
-
for (var i = 0; i < myTypes.length; ++i) {
|
|
952
|
-
registerType(myTypes[i], myTypeConverters[i]);
|
|
912
|
+
function count_emval_handles() {
|
|
913
|
+
var count = 0;
|
|
914
|
+
for (var i = 5; i < emval_handle_array.length; ++i) {
|
|
915
|
+
if (emval_handle_array[i] !== undefined) {
|
|
916
|
+
++count;
|
|
953
917
|
}
|
|
954
918
|
}
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
if (
|
|
960
|
-
|
|
961
|
-
}
|
|
962
|
-
else {
|
|
963
|
-
unregisteredTypes.push(dt);
|
|
964
|
-
if (!awaitingDependencies.hasOwnProperty(dt)) {
|
|
965
|
-
awaitingDependencies[dt] = [];
|
|
966
|
-
}
|
|
967
|
-
awaitingDependencies[dt].push(() => {
|
|
968
|
-
typeConverters[i] = registeredTypes[dt];
|
|
969
|
-
++registered;
|
|
970
|
-
if (registered === unregisteredTypes.length) {
|
|
971
|
-
onComplete(typeConverters);
|
|
972
|
-
}
|
|
973
|
-
});
|
|
919
|
+
return count;
|
|
920
|
+
}
|
|
921
|
+
function get_first_emval() {
|
|
922
|
+
for (var i = 5; i < emval_handle_array.length; ++i) {
|
|
923
|
+
if (emval_handle_array[i] !== undefined) {
|
|
924
|
+
return emval_handle_array[i];
|
|
974
925
|
}
|
|
975
|
-
});
|
|
976
|
-
if (0 === unregisteredTypes.length) {
|
|
977
|
-
onComplete(typeConverters);
|
|
978
926
|
}
|
|
927
|
+
return null;
|
|
979
928
|
}
|
|
980
|
-
function
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
var rawConstructor = reg.rawConstructor;
|
|
984
|
-
var rawDestructor = reg.rawDestructor;
|
|
985
|
-
var fieldRecords = reg.fields;
|
|
986
|
-
var fieldTypes = fieldRecords.map((field) => field.getterReturnType).
|
|
987
|
-
concat(fieldRecords.map((field) => field.setterArgumentType));
|
|
988
|
-
whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes) => {
|
|
989
|
-
var fields = {};
|
|
990
|
-
fieldRecords.forEach((field, i) => {
|
|
991
|
-
var fieldName = field.fieldName;
|
|
992
|
-
var getterReturnType = fieldTypes[i];
|
|
993
|
-
var getter = field.getter;
|
|
994
|
-
var getterContext = field.getterContext;
|
|
995
|
-
var setterArgumentType = fieldTypes[i + fieldRecords.length];
|
|
996
|
-
var setter = field.setter;
|
|
997
|
-
var setterContext = field.setterContext;
|
|
998
|
-
fields[fieldName] = {
|
|
999
|
-
read: (ptr) => {
|
|
1000
|
-
return getterReturnType['fromWireType'](getter(getterContext, ptr));
|
|
1001
|
-
},
|
|
1002
|
-
write: (ptr, o) => {
|
|
1003
|
-
var destructors = [];
|
|
1004
|
-
setter(setterContext, ptr, setterArgumentType['toWireType'](destructors, o));
|
|
1005
|
-
runDestructors(destructors);
|
|
1006
|
-
}
|
|
1007
|
-
};
|
|
1008
|
-
});
|
|
1009
|
-
return [{
|
|
1010
|
-
name: reg.name,
|
|
1011
|
-
'fromWireType': function (ptr) {
|
|
1012
|
-
var rv = {};
|
|
1013
|
-
for (var i in fields) {
|
|
1014
|
-
rv[i] = fields[i].read(ptr);
|
|
1015
|
-
}
|
|
1016
|
-
rawDestructor(ptr);
|
|
1017
|
-
return rv;
|
|
1018
|
-
},
|
|
1019
|
-
'toWireType': function (destructors, o) {
|
|
1020
|
-
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations:
|
|
1021
|
-
// assume all fields are present without checking.
|
|
1022
|
-
for (var fieldName in fields) {
|
|
1023
|
-
if (!(fieldName in o)) {
|
|
1024
|
-
throw new TypeError('Missing field: "' + fieldName + '"');
|
|
1025
|
-
}
|
|
1026
|
-
}
|
|
1027
|
-
var ptr = rawConstructor();
|
|
1028
|
-
for (fieldName in fields) {
|
|
1029
|
-
fields[fieldName].write(ptr, o[fieldName]);
|
|
1030
|
-
}
|
|
1031
|
-
if (destructors !== null) {
|
|
1032
|
-
destructors.push(rawDestructor, ptr);
|
|
1033
|
-
}
|
|
1034
|
-
return ptr;
|
|
1035
|
-
},
|
|
1036
|
-
'argPackAdvance': 8,
|
|
1037
|
-
'readValueFromPointer': simpleReadValueFromPointer,
|
|
1038
|
-
destructorFunction: rawDestructor,
|
|
1039
|
-
}];
|
|
1040
|
-
});
|
|
1041
|
-
}
|
|
1042
|
-
function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { }
|
|
1043
|
-
function getShiftFromSize(size) {
|
|
1044
|
-
switch (size) {
|
|
1045
|
-
case 1: return 0;
|
|
1046
|
-
case 2: return 1;
|
|
1047
|
-
case 4: return 2;
|
|
1048
|
-
case 8: return 3;
|
|
1049
|
-
default:
|
|
1050
|
-
throw new TypeError('Unknown type size: ' + size);
|
|
1051
|
-
}
|
|
929
|
+
function init_emval() {
|
|
930
|
+
Module['count_emval_handles'] = count_emval_handles;
|
|
931
|
+
Module['get_first_emval'] = get_first_emval;
|
|
1052
932
|
}
|
|
933
|
+
var Emval = { toValue: (handle) => {
|
|
934
|
+
if (!handle) {
|
|
935
|
+
throwBindingError('Cannot use deleted val. handle = ' + handle);
|
|
936
|
+
}
|
|
937
|
+
return emval_handle_array[handle].value;
|
|
938
|
+
}, toHandle: (value) => {
|
|
939
|
+
switch (value) {
|
|
940
|
+
case undefined: return 1;
|
|
941
|
+
case null: return 2;
|
|
942
|
+
case true: return 3;
|
|
943
|
+
case false: return 4;
|
|
944
|
+
default: {
|
|
945
|
+
var handle = emval_free_list.length ?
|
|
946
|
+
emval_free_list.pop() :
|
|
947
|
+
emval_handle_array.length;
|
|
948
|
+
emval_handle_array[handle] = { refcount: 1, value: value };
|
|
949
|
+
return handle;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
} };
|
|
953
|
+
var PureVirtualError = undefined;
|
|
1053
954
|
function embind_init_charCodes() {
|
|
1054
955
|
var codes = new Array(256);
|
|
1055
956
|
for (var i = 0; i < 256; ++i) {
|
|
@@ -1066,109 +967,84 @@ var Module = (() => {
|
|
|
1066
967
|
}
|
|
1067
968
|
return ret;
|
|
1068
969
|
}
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
throw new BindingError(message);
|
|
970
|
+
function getInheritedInstanceCount() {
|
|
971
|
+
return Object.keys(registeredInstances).length;
|
|
1072
972
|
}
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
var name = registeredInstance.name;
|
|
1079
|
-
if (!rawType) {
|
|
1080
|
-
throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
|
|
1081
|
-
}
|
|
1082
|
-
if (registeredTypes.hasOwnProperty(rawType)) {
|
|
1083
|
-
if (options.ignoreDuplicateRegistrations) {
|
|
1084
|
-
return;
|
|
1085
|
-
}
|
|
1086
|
-
else {
|
|
1087
|
-
throwBindingError("Cannot register type '" + name + "' twice");
|
|
973
|
+
function getLiveInheritedInstances() {
|
|
974
|
+
var rv = [];
|
|
975
|
+
for (var k in registeredInstances) {
|
|
976
|
+
if (registeredInstances.hasOwnProperty(k)) {
|
|
977
|
+
rv.push(registeredInstances[k]);
|
|
1088
978
|
}
|
|
1089
979
|
}
|
|
1090
|
-
|
|
1091
|
-
delete typeDependencies[rawType];
|
|
1092
|
-
if (awaitingDependencies.hasOwnProperty(rawType)) {
|
|
1093
|
-
var callbacks = awaitingDependencies[rawType];
|
|
1094
|
-
delete awaitingDependencies[rawType];
|
|
1095
|
-
callbacks.forEach((cb) => cb());
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
|
|
1099
|
-
var shift = getShiftFromSize(size);
|
|
1100
|
-
name = readLatin1String(name);
|
|
1101
|
-
registerType(rawType, {
|
|
1102
|
-
name: name,
|
|
1103
|
-
'fromWireType': function (wt) {
|
|
1104
|
-
// ambiguous emscripten ABI: sometimes return values are
|
|
1105
|
-
// true or false, and sometimes integers (0 or 1)
|
|
1106
|
-
return !!wt;
|
|
1107
|
-
},
|
|
1108
|
-
'toWireType': function (destructors, o) {
|
|
1109
|
-
return o ? trueValue : falseValue;
|
|
1110
|
-
},
|
|
1111
|
-
'argPackAdvance': 8,
|
|
1112
|
-
'readValueFromPointer': function (pointer) {
|
|
1113
|
-
// TODO: if heap is fixed (like in asm.js) this could be executed outside
|
|
1114
|
-
var heap;
|
|
1115
|
-
if (size === 1) {
|
|
1116
|
-
heap = HEAP8;
|
|
1117
|
-
}
|
|
1118
|
-
else if (size === 2) {
|
|
1119
|
-
heap = HEAP16;
|
|
1120
|
-
}
|
|
1121
|
-
else if (size === 4) {
|
|
1122
|
-
heap = HEAP32;
|
|
1123
|
-
}
|
|
1124
|
-
else {
|
|
1125
|
-
throw new TypeError("Unknown boolean type size: " + name);
|
|
1126
|
-
}
|
|
1127
|
-
return this['fromWireType'](heap[pointer >> shift]);
|
|
1128
|
-
},
|
|
1129
|
-
destructorFunction: null, // This type does not need a destructor
|
|
1130
|
-
});
|
|
980
|
+
return rv;
|
|
1131
981
|
}
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
982
|
+
var deletionQueue = [];
|
|
983
|
+
function flushPendingDeletes() {
|
|
984
|
+
while (deletionQueue.length) {
|
|
985
|
+
var obj = deletionQueue.pop();
|
|
986
|
+
obj.$$.deleteScheduled = false;
|
|
987
|
+
obj['delete']();
|
|
1135
988
|
}
|
|
1136
|
-
|
|
1137
|
-
|
|
989
|
+
}
|
|
990
|
+
var delayFunction = undefined;
|
|
991
|
+
function setDelayFunction(fn) {
|
|
992
|
+
delayFunction = fn;
|
|
993
|
+
if (deletionQueue.length && delayFunction) {
|
|
994
|
+
delayFunction(flushPendingDeletes);
|
|
1138
995
|
}
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
996
|
+
}
|
|
997
|
+
function init_embind() {
|
|
998
|
+
Module['getInheritedInstanceCount'] = getInheritedInstanceCount;
|
|
999
|
+
Module['getLiveInheritedInstances'] = getLiveInheritedInstances;
|
|
1000
|
+
Module['flushPendingDeletes'] = flushPendingDeletes;
|
|
1001
|
+
Module['setDelayFunction'] = setDelayFunction;
|
|
1002
|
+
}
|
|
1003
|
+
var registeredInstances = {};
|
|
1004
|
+
function getBasestPointer(class_, ptr) {
|
|
1005
|
+
if (ptr === undefined) {
|
|
1006
|
+
throwBindingError('ptr should not be undefined');
|
|
1146
1007
|
}
|
|
1147
|
-
while (
|
|
1148
|
-
|
|
1149
|
-
|
|
1008
|
+
while (class_.baseClass) {
|
|
1009
|
+
ptr = class_.upcast(ptr);
|
|
1010
|
+
class_ = class_.baseClass;
|
|
1150
1011
|
}
|
|
1151
|
-
return
|
|
1012
|
+
return ptr;
|
|
1152
1013
|
}
|
|
1153
|
-
function
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
smartPtrType: o.smartPtrType,
|
|
1162
|
-
};
|
|
1014
|
+
function registerInheritedInstance(class_, ptr, instance) {
|
|
1015
|
+
ptr = getBasestPointer(class_, ptr);
|
|
1016
|
+
if (registeredInstances.hasOwnProperty(ptr)) {
|
|
1017
|
+
throwBindingError('Tried to register registered instance: ' + ptr);
|
|
1018
|
+
}
|
|
1019
|
+
else {
|
|
1020
|
+
registeredInstances[ptr] = instance;
|
|
1021
|
+
}
|
|
1163
1022
|
}
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1023
|
+
var registeredTypes = {};
|
|
1024
|
+
function getTypeName(type) {
|
|
1025
|
+
var ptr = ___getTypeName(type);
|
|
1026
|
+
var rv = readLatin1String(ptr);
|
|
1027
|
+
_free(ptr);
|
|
1028
|
+
return rv;
|
|
1029
|
+
}
|
|
1030
|
+
function requireRegisteredType(rawType, humanName) {
|
|
1031
|
+
var impl = registeredTypes[rawType];
|
|
1032
|
+
if (undefined === impl) {
|
|
1033
|
+
throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
|
|
1034
|
+
}
|
|
1035
|
+
return impl;
|
|
1036
|
+
}
|
|
1037
|
+
function unregisterInheritedInstance(class_, ptr) {
|
|
1038
|
+
ptr = getBasestPointer(class_, ptr);
|
|
1039
|
+
if (registeredInstances.hasOwnProperty(ptr)) {
|
|
1040
|
+
delete registeredInstances[ptr];
|
|
1041
|
+
}
|
|
1042
|
+
else {
|
|
1043
|
+
throwBindingError('Tried to unregister unregistered instance: ' + ptr);
|
|
1167
1044
|
}
|
|
1168
|
-
throwBindingError(getInstanceTypeName(obj) + ' instance already deleted');
|
|
1169
1045
|
}
|
|
1170
|
-
var finalizationRegistry = false;
|
|
1171
1046
|
function detachFinalizer(handle) { }
|
|
1047
|
+
var finalizationRegistry = false;
|
|
1172
1048
|
function runDestructor($$) {
|
|
1173
1049
|
if ($$.smartPtr) {
|
|
1174
1050
|
$$.smartPtrType.rawDestructor($$.smartPtr);
|
|
@@ -1198,54 +1074,14 @@ var Module = (() => {
|
|
|
1198
1074
|
return desiredClass.downcast(rv);
|
|
1199
1075
|
}
|
|
1200
1076
|
var registeredPointers = {};
|
|
1201
|
-
function getInheritedInstanceCount() {
|
|
1202
|
-
return Object.keys(registeredInstances).length;
|
|
1203
|
-
}
|
|
1204
|
-
function getLiveInheritedInstances() {
|
|
1205
|
-
var rv = [];
|
|
1206
|
-
for (var k in registeredInstances) {
|
|
1207
|
-
if (registeredInstances.hasOwnProperty(k)) {
|
|
1208
|
-
rv.push(registeredInstances[k]);
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
return rv;
|
|
1212
|
-
}
|
|
1213
|
-
var deletionQueue = [];
|
|
1214
|
-
function flushPendingDeletes() {
|
|
1215
|
-
while (deletionQueue.length) {
|
|
1216
|
-
var obj = deletionQueue.pop();
|
|
1217
|
-
obj.$$.deleteScheduled = false;
|
|
1218
|
-
obj['delete']();
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
var delayFunction = undefined;
|
|
1222
|
-
function setDelayFunction(fn) {
|
|
1223
|
-
delayFunction = fn;
|
|
1224
|
-
if (deletionQueue.length && delayFunction) {
|
|
1225
|
-
delayFunction(flushPendingDeletes);
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1228
|
-
function init_embind() {
|
|
1229
|
-
Module['getInheritedInstanceCount'] = getInheritedInstanceCount;
|
|
1230
|
-
Module['getLiveInheritedInstances'] = getLiveInheritedInstances;
|
|
1231
|
-
Module['flushPendingDeletes'] = flushPendingDeletes;
|
|
1232
|
-
Module['setDelayFunction'] = setDelayFunction;
|
|
1233
|
-
}
|
|
1234
|
-
var registeredInstances = {};
|
|
1235
|
-
function getBasestPointer(class_, ptr) {
|
|
1236
|
-
if (ptr === undefined) {
|
|
1237
|
-
throwBindingError('ptr should not be undefined');
|
|
1238
|
-
}
|
|
1239
|
-
while (class_.baseClass) {
|
|
1240
|
-
ptr = class_.upcast(ptr);
|
|
1241
|
-
class_ = class_.baseClass;
|
|
1242
|
-
}
|
|
1243
|
-
return ptr;
|
|
1244
|
-
}
|
|
1245
1077
|
function getInheritedInstance(class_, ptr) {
|
|
1246
1078
|
ptr = getBasestPointer(class_, ptr);
|
|
1247
1079
|
return registeredInstances[ptr];
|
|
1248
1080
|
}
|
|
1081
|
+
var InternalError = undefined;
|
|
1082
|
+
function throwInternalError(message) {
|
|
1083
|
+
throw new InternalError(message);
|
|
1084
|
+
}
|
|
1249
1085
|
function makeClassHandle(prototype, record) {
|
|
1250
1086
|
if (!record.ptrType || !record.ptr) {
|
|
1251
1087
|
throwInternalError('makeClassHandle requires ptr and ptrType');
|
|
@@ -1296,67 +1132,338 @@ var Module = (() => {
|
|
|
1296
1132
|
});
|
|
1297
1133
|
}
|
|
1298
1134
|
else {
|
|
1299
|
-
return makeClassHandle(this.registeredClass.instancePrototype, {
|
|
1300
|
-
ptrType: this,
|
|
1301
|
-
ptr: ptr,
|
|
1302
|
-
});
|
|
1135
|
+
return makeClassHandle(this.registeredClass.instancePrototype, {
|
|
1136
|
+
ptrType: this,
|
|
1137
|
+
ptr: ptr,
|
|
1138
|
+
});
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
var actualType = this.registeredClass.getActualType(rawPointer);
|
|
1142
|
+
var registeredPointerRecord = registeredPointers[actualType];
|
|
1143
|
+
if (!registeredPointerRecord) {
|
|
1144
|
+
return makeDefaultHandle.call(this);
|
|
1145
|
+
}
|
|
1146
|
+
var toType;
|
|
1147
|
+
if (this.isConst) {
|
|
1148
|
+
toType = registeredPointerRecord.constPointerType;
|
|
1149
|
+
}
|
|
1150
|
+
else {
|
|
1151
|
+
toType = registeredPointerRecord.pointerType;
|
|
1152
|
+
}
|
|
1153
|
+
var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
|
|
1154
|
+
if (dp === null) {
|
|
1155
|
+
return makeDefaultHandle.call(this);
|
|
1156
|
+
}
|
|
1157
|
+
if (this.isSmartPointer) {
|
|
1158
|
+
return makeClassHandle(toType.registeredClass.instancePrototype, {
|
|
1159
|
+
ptrType: toType,
|
|
1160
|
+
ptr: dp,
|
|
1161
|
+
smartPtrType: this,
|
|
1162
|
+
smartPtr: ptr,
|
|
1163
|
+
});
|
|
1164
|
+
}
|
|
1165
|
+
else {
|
|
1166
|
+
return makeClassHandle(toType.registeredClass.instancePrototype, {
|
|
1167
|
+
ptrType: toType,
|
|
1168
|
+
ptr: dp,
|
|
1169
|
+
});
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
function attachFinalizer(handle) {
|
|
1173
|
+
if ('undefined' === typeof FinalizationRegistry) {
|
|
1174
|
+
attachFinalizer = (handle) => handle;
|
|
1175
|
+
return handle;
|
|
1176
|
+
}
|
|
1177
|
+
// If the running environment has a FinalizationRegistry (see
|
|
1178
|
+
// https://github.com/tc39/proposal-weakrefs), then attach finalizers
|
|
1179
|
+
// for class handles. We check for the presence of FinalizationRegistry
|
|
1180
|
+
// at run-time, not build-time.
|
|
1181
|
+
finalizationRegistry = new FinalizationRegistry((info) => {
|
|
1182
|
+
releaseClassHandle(info.$$);
|
|
1183
|
+
});
|
|
1184
|
+
attachFinalizer = (handle) => {
|
|
1185
|
+
var $$ = handle.$$;
|
|
1186
|
+
var hasSmartPtr = !!$$.smartPtr;
|
|
1187
|
+
if (hasSmartPtr) {
|
|
1188
|
+
// We should not call the destructor on raw pointers in case other code expects the pointee to live
|
|
1189
|
+
var info = { $$: $$ };
|
|
1190
|
+
finalizationRegistry.register(handle, info, handle);
|
|
1191
|
+
}
|
|
1192
|
+
return handle;
|
|
1193
|
+
};
|
|
1194
|
+
detachFinalizer = (handle) => finalizationRegistry.unregister(handle);
|
|
1195
|
+
return attachFinalizer(handle);
|
|
1196
|
+
}
|
|
1197
|
+
function __embind_create_inheriting_constructor(constructorName, wrapperType, properties) {
|
|
1198
|
+
constructorName = readLatin1String(constructorName);
|
|
1199
|
+
wrapperType = requireRegisteredType(wrapperType, 'wrapper');
|
|
1200
|
+
properties = Emval.toValue(properties);
|
|
1201
|
+
var arraySlice = [].slice;
|
|
1202
|
+
var registeredClass = wrapperType.registeredClass;
|
|
1203
|
+
var wrapperPrototype = registeredClass.instancePrototype;
|
|
1204
|
+
var baseClass = registeredClass.baseClass;
|
|
1205
|
+
var baseClassPrototype = baseClass.instancePrototype;
|
|
1206
|
+
var baseConstructor = registeredClass.baseClass.constructor;
|
|
1207
|
+
var ctor = createNamedFunction(constructorName, function () {
|
|
1208
|
+
registeredClass.baseClass.pureVirtualFunctions.forEach(function (name) {
|
|
1209
|
+
if (this[name] === baseClassPrototype[name]) {
|
|
1210
|
+
throw new PureVirtualError('Pure virtual function ' + name + ' must be implemented in JavaScript');
|
|
1211
|
+
}
|
|
1212
|
+
}.bind(this));
|
|
1213
|
+
Object.defineProperty(this, '__parent', {
|
|
1214
|
+
value: wrapperPrototype
|
|
1215
|
+
});
|
|
1216
|
+
this["__construct"].apply(this, arraySlice.call(arguments));
|
|
1217
|
+
});
|
|
1218
|
+
// It's a little nasty that we're modifying the wrapper prototype here.
|
|
1219
|
+
wrapperPrototype["__construct"] = function __construct() {
|
|
1220
|
+
if (this === wrapperPrototype) {
|
|
1221
|
+
throwBindingError("Pass correct 'this' to __construct");
|
|
1222
|
+
}
|
|
1223
|
+
var inner = baseConstructor["implement"].apply(undefined, [this].concat(arraySlice.call(arguments)));
|
|
1224
|
+
detachFinalizer(inner);
|
|
1225
|
+
var $$ = inner.$$;
|
|
1226
|
+
inner["notifyOnDestruction"]();
|
|
1227
|
+
$$.preservePointerOnDelete = true;
|
|
1228
|
+
Object.defineProperties(this, { $$: {
|
|
1229
|
+
value: $$
|
|
1230
|
+
} });
|
|
1231
|
+
attachFinalizer(this);
|
|
1232
|
+
registerInheritedInstance(registeredClass, $$.ptr, this);
|
|
1233
|
+
};
|
|
1234
|
+
wrapperPrototype["__destruct"] = function __destruct() {
|
|
1235
|
+
if (this === wrapperPrototype) {
|
|
1236
|
+
throwBindingError("Pass correct 'this' to __destruct");
|
|
1237
|
+
}
|
|
1238
|
+
detachFinalizer(this);
|
|
1239
|
+
unregisterInheritedInstance(registeredClass, this.$$.ptr);
|
|
1240
|
+
};
|
|
1241
|
+
ctor.prototype = Object.create(wrapperPrototype);
|
|
1242
|
+
for (var p in properties) {
|
|
1243
|
+
ctor.prototype[p] = properties[p];
|
|
1244
|
+
}
|
|
1245
|
+
return Emval.toHandle(ctor);
|
|
1246
|
+
}
|
|
1247
|
+
var structRegistrations = {};
|
|
1248
|
+
function runDestructors(destructors) {
|
|
1249
|
+
while (destructors.length) {
|
|
1250
|
+
var ptr = destructors.pop();
|
|
1251
|
+
var del = destructors.pop();
|
|
1252
|
+
del(ptr);
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
function simpleReadValueFromPointer(pointer) {
|
|
1256
|
+
return this['fromWireType'](HEAP32[((pointer) >> 2)]);
|
|
1257
|
+
}
|
|
1258
|
+
var awaitingDependencies = {};
|
|
1259
|
+
var typeDependencies = {};
|
|
1260
|
+
function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
|
|
1261
|
+
myTypes.forEach(function (type) {
|
|
1262
|
+
typeDependencies[type] = dependentTypes;
|
|
1263
|
+
});
|
|
1264
|
+
function onComplete(typeConverters) {
|
|
1265
|
+
var myTypeConverters = getTypeConverters(typeConverters);
|
|
1266
|
+
if (myTypeConverters.length !== myTypes.length) {
|
|
1267
|
+
throwInternalError('Mismatched type converter count');
|
|
1268
|
+
}
|
|
1269
|
+
for (var i = 0; i < myTypes.length; ++i) {
|
|
1270
|
+
registerType(myTypes[i], myTypeConverters[i]);
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
var typeConverters = new Array(dependentTypes.length);
|
|
1274
|
+
var unregisteredTypes = [];
|
|
1275
|
+
var registered = 0;
|
|
1276
|
+
dependentTypes.forEach((dt, i) => {
|
|
1277
|
+
if (registeredTypes.hasOwnProperty(dt)) {
|
|
1278
|
+
typeConverters[i] = registeredTypes[dt];
|
|
1279
|
+
}
|
|
1280
|
+
else {
|
|
1281
|
+
unregisteredTypes.push(dt);
|
|
1282
|
+
if (!awaitingDependencies.hasOwnProperty(dt)) {
|
|
1283
|
+
awaitingDependencies[dt] = [];
|
|
1284
|
+
}
|
|
1285
|
+
awaitingDependencies[dt].push(() => {
|
|
1286
|
+
typeConverters[i] = registeredTypes[dt];
|
|
1287
|
+
++registered;
|
|
1288
|
+
if (registered === unregisteredTypes.length) {
|
|
1289
|
+
onComplete(typeConverters);
|
|
1290
|
+
}
|
|
1291
|
+
});
|
|
1292
|
+
}
|
|
1293
|
+
});
|
|
1294
|
+
if (0 === unregisteredTypes.length) {
|
|
1295
|
+
onComplete(typeConverters);
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
function __embind_finalize_value_object(structType) {
|
|
1299
|
+
var reg = structRegistrations[structType];
|
|
1300
|
+
delete structRegistrations[structType];
|
|
1301
|
+
var rawConstructor = reg.rawConstructor;
|
|
1302
|
+
var rawDestructor = reg.rawDestructor;
|
|
1303
|
+
var fieldRecords = reg.fields;
|
|
1304
|
+
var fieldTypes = fieldRecords.map((field) => field.getterReturnType).
|
|
1305
|
+
concat(fieldRecords.map((field) => field.setterArgumentType));
|
|
1306
|
+
whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes) => {
|
|
1307
|
+
var fields = {};
|
|
1308
|
+
fieldRecords.forEach((field, i) => {
|
|
1309
|
+
var fieldName = field.fieldName;
|
|
1310
|
+
var getterReturnType = fieldTypes[i];
|
|
1311
|
+
var getter = field.getter;
|
|
1312
|
+
var getterContext = field.getterContext;
|
|
1313
|
+
var setterArgumentType = fieldTypes[i + fieldRecords.length];
|
|
1314
|
+
var setter = field.setter;
|
|
1315
|
+
var setterContext = field.setterContext;
|
|
1316
|
+
fields[fieldName] = {
|
|
1317
|
+
read: (ptr) => {
|
|
1318
|
+
return getterReturnType['fromWireType'](getter(getterContext, ptr));
|
|
1319
|
+
},
|
|
1320
|
+
write: (ptr, o) => {
|
|
1321
|
+
var destructors = [];
|
|
1322
|
+
setter(setterContext, ptr, setterArgumentType['toWireType'](destructors, o));
|
|
1323
|
+
runDestructors(destructors);
|
|
1324
|
+
}
|
|
1325
|
+
};
|
|
1326
|
+
});
|
|
1327
|
+
return [{
|
|
1328
|
+
name: reg.name,
|
|
1329
|
+
'fromWireType': function (ptr) {
|
|
1330
|
+
var rv = {};
|
|
1331
|
+
for (var i in fields) {
|
|
1332
|
+
rv[i] = fields[i].read(ptr);
|
|
1333
|
+
}
|
|
1334
|
+
rawDestructor(ptr);
|
|
1335
|
+
return rv;
|
|
1336
|
+
},
|
|
1337
|
+
'toWireType': function (destructors, o) {
|
|
1338
|
+
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations:
|
|
1339
|
+
// assume all fields are present without checking.
|
|
1340
|
+
for (var fieldName in fields) {
|
|
1341
|
+
if (!(fieldName in o)) {
|
|
1342
|
+
throw new TypeError('Missing field: "' + fieldName + '"');
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
var ptr = rawConstructor();
|
|
1346
|
+
for (fieldName in fields) {
|
|
1347
|
+
fields[fieldName].write(ptr, o[fieldName]);
|
|
1348
|
+
}
|
|
1349
|
+
if (destructors !== null) {
|
|
1350
|
+
destructors.push(rawDestructor, ptr);
|
|
1351
|
+
}
|
|
1352
|
+
return ptr;
|
|
1353
|
+
},
|
|
1354
|
+
'argPackAdvance': 8,
|
|
1355
|
+
'readValueFromPointer': simpleReadValueFromPointer,
|
|
1356
|
+
destructorFunction: rawDestructor,
|
|
1357
|
+
}];
|
|
1358
|
+
});
|
|
1359
|
+
}
|
|
1360
|
+
function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { }
|
|
1361
|
+
function getShiftFromSize(size) {
|
|
1362
|
+
switch (size) {
|
|
1363
|
+
case 1: return 0;
|
|
1364
|
+
case 2: return 1;
|
|
1365
|
+
case 4: return 2;
|
|
1366
|
+
case 8: return 3;
|
|
1367
|
+
default:
|
|
1368
|
+
throw new TypeError('Unknown type size: ' + size);
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
/** @param {Object=} options */
|
|
1372
|
+
function registerType(rawType, registeredInstance, options = {}) {
|
|
1373
|
+
if (!('argPackAdvance' in registeredInstance)) {
|
|
1374
|
+
throw new TypeError('registerType registeredInstance requires argPackAdvance');
|
|
1375
|
+
}
|
|
1376
|
+
var name = registeredInstance.name;
|
|
1377
|
+
if (!rawType) {
|
|
1378
|
+
throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
|
|
1379
|
+
}
|
|
1380
|
+
if (registeredTypes.hasOwnProperty(rawType)) {
|
|
1381
|
+
if (options.ignoreDuplicateRegistrations) {
|
|
1382
|
+
return;
|
|
1383
|
+
}
|
|
1384
|
+
else {
|
|
1385
|
+
throwBindingError("Cannot register type '" + name + "' twice");
|
|
1303
1386
|
}
|
|
1304
1387
|
}
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
if (
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
if (this.isConst) {
|
|
1312
|
-
toType = registeredPointerRecord.constPointerType;
|
|
1388
|
+
registeredTypes[rawType] = registeredInstance;
|
|
1389
|
+
delete typeDependencies[rawType];
|
|
1390
|
+
if (awaitingDependencies.hasOwnProperty(rawType)) {
|
|
1391
|
+
var callbacks = awaitingDependencies[rawType];
|
|
1392
|
+
delete awaitingDependencies[rawType];
|
|
1393
|
+
callbacks.forEach((cb) => cb());
|
|
1313
1394
|
}
|
|
1314
|
-
|
|
1315
|
-
|
|
1395
|
+
}
|
|
1396
|
+
function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
|
|
1397
|
+
var shift = getShiftFromSize(size);
|
|
1398
|
+
name = readLatin1String(name);
|
|
1399
|
+
registerType(rawType, {
|
|
1400
|
+
name: name,
|
|
1401
|
+
'fromWireType': function (wt) {
|
|
1402
|
+
// ambiguous emscripten ABI: sometimes return values are
|
|
1403
|
+
// true or false, and sometimes integers (0 or 1)
|
|
1404
|
+
return !!wt;
|
|
1405
|
+
},
|
|
1406
|
+
'toWireType': function (destructors, o) {
|
|
1407
|
+
return o ? trueValue : falseValue;
|
|
1408
|
+
},
|
|
1409
|
+
'argPackAdvance': 8,
|
|
1410
|
+
'readValueFromPointer': function (pointer) {
|
|
1411
|
+
// TODO: if heap is fixed (like in asm.js) this could be executed outside
|
|
1412
|
+
var heap;
|
|
1413
|
+
if (size === 1) {
|
|
1414
|
+
heap = HEAP8;
|
|
1415
|
+
}
|
|
1416
|
+
else if (size === 2) {
|
|
1417
|
+
heap = HEAP16;
|
|
1418
|
+
}
|
|
1419
|
+
else if (size === 4) {
|
|
1420
|
+
heap = HEAP32;
|
|
1421
|
+
}
|
|
1422
|
+
else {
|
|
1423
|
+
throw new TypeError("Unknown boolean type size: " + name);
|
|
1424
|
+
}
|
|
1425
|
+
return this['fromWireType'](heap[pointer >> shift]);
|
|
1426
|
+
},
|
|
1427
|
+
destructorFunction: null, // This type does not need a destructor
|
|
1428
|
+
});
|
|
1429
|
+
}
|
|
1430
|
+
function ClassHandle_isAliasOf(other) {
|
|
1431
|
+
if (!(this instanceof ClassHandle)) {
|
|
1432
|
+
return false;
|
|
1316
1433
|
}
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
return makeDefaultHandle.call(this);
|
|
1434
|
+
if (!(other instanceof ClassHandle)) {
|
|
1435
|
+
return false;
|
|
1320
1436
|
}
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1437
|
+
var leftClass = this.$$.ptrType.registeredClass;
|
|
1438
|
+
var left = this.$$.ptr;
|
|
1439
|
+
var rightClass = other.$$.ptrType.registeredClass;
|
|
1440
|
+
var right = other.$$.ptr;
|
|
1441
|
+
while (leftClass.baseClass) {
|
|
1442
|
+
left = leftClass.upcast(left);
|
|
1443
|
+
leftClass = leftClass.baseClass;
|
|
1328
1444
|
}
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
ptr: dp,
|
|
1333
|
-
});
|
|
1445
|
+
while (rightClass.baseClass) {
|
|
1446
|
+
right = rightClass.upcast(right);
|
|
1447
|
+
rightClass = rightClass.baseClass;
|
|
1334
1448
|
}
|
|
1449
|
+
return leftClass === rightClass && left === right;
|
|
1335
1450
|
}
|
|
1336
|
-
function
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
finalizationRegistry = new FinalizationRegistry((info) => {
|
|
1346
|
-
releaseClassHandle(info.$$);
|
|
1347
|
-
});
|
|
1348
|
-
attachFinalizer = (handle) => {
|
|
1349
|
-
var $$ = handle.$$;
|
|
1350
|
-
var hasSmartPtr = !!$$.smartPtr;
|
|
1351
|
-
if (hasSmartPtr) {
|
|
1352
|
-
// We should not call the destructor on raw pointers in case other code expects the pointee to live
|
|
1353
|
-
var info = { $$: $$ };
|
|
1354
|
-
finalizationRegistry.register(handle, info, handle);
|
|
1355
|
-
}
|
|
1356
|
-
return handle;
|
|
1451
|
+
function shallowCopyInternalPointer(o) {
|
|
1452
|
+
return {
|
|
1453
|
+
count: o.count,
|
|
1454
|
+
deleteScheduled: o.deleteScheduled,
|
|
1455
|
+
preservePointerOnDelete: o.preservePointerOnDelete,
|
|
1456
|
+
ptr: o.ptr,
|
|
1457
|
+
ptrType: o.ptrType,
|
|
1458
|
+
smartPtr: o.smartPtr,
|
|
1459
|
+
smartPtrType: o.smartPtrType,
|
|
1357
1460
|
};
|
|
1358
|
-
|
|
1359
|
-
|
|
1461
|
+
}
|
|
1462
|
+
function throwInstanceAlreadyDeleted(obj) {
|
|
1463
|
+
function getInstanceTypeName(handle) {
|
|
1464
|
+
return handle.$$.ptrType.registeredClass.name;
|
|
1465
|
+
}
|
|
1466
|
+
throwBindingError(getInstanceTypeName(obj) + ' instance already deleted');
|
|
1360
1467
|
}
|
|
1361
1468
|
function ClassHandle_clone() {
|
|
1362
1469
|
if (!this.$$.ptr) {
|
|
@@ -1709,12 +1816,6 @@ var Module = (() => {
|
|
|
1709
1816
|
return fp;
|
|
1710
1817
|
}
|
|
1711
1818
|
var UnboundTypeError = undefined;
|
|
1712
|
-
function getTypeName(type) {
|
|
1713
|
-
var ptr = ___getTypeName(type);
|
|
1714
|
-
var rv = readLatin1String(ptr);
|
|
1715
|
-
_free(ptr);
|
|
1716
|
-
return rv;
|
|
1717
|
-
}
|
|
1718
1819
|
function throwUnboundTypeError(message, types) {
|
|
1719
1820
|
var unboundTypes = [];
|
|
1720
1821
|
var seen = {};
|
|
@@ -1790,15 +1891,6 @@ var Module = (() => {
|
|
|
1790
1891
|
return [referenceConverter, pointerConverter, constPointerConverter];
|
|
1791
1892
|
});
|
|
1792
1893
|
}
|
|
1793
|
-
function heap32VectorToArray(count, firstElement) {
|
|
1794
|
-
var array = [];
|
|
1795
|
-
for (var i = 0; i < count; i++) {
|
|
1796
|
-
// TODO(https://github.com/emscripten-core/emscripten/issues/17310):
|
|
1797
|
-
// Find a way to hoist the `>> 2` or `>> 3` out of this loop.
|
|
1798
|
-
array.push(HEAPU32[(((firstElement) + (i * 4)) >> 2)]);
|
|
1799
|
-
}
|
|
1800
|
-
return array;
|
|
1801
|
-
}
|
|
1802
1894
|
function new_(constructor, argumentList) {
|
|
1803
1895
|
if (!(constructor instanceof Function)) {
|
|
1804
1896
|
throw new TypeError('new_ called with constructor type ' + typeof (constructor) + " which is not a function");
|
|
@@ -1901,6 +1993,58 @@ var Module = (() => {
|
|
|
1901
1993
|
var invokerFunction = new_(Function, args1).apply(null, args2);
|
|
1902
1994
|
return invokerFunction;
|
|
1903
1995
|
}
|
|
1996
|
+
function heap32VectorToArray(count, firstElement) {
|
|
1997
|
+
var array = [];
|
|
1998
|
+
for (var i = 0; i < count; i++) {
|
|
1999
|
+
// TODO(https://github.com/emscripten-core/emscripten/issues/17310):
|
|
2000
|
+
// Find a way to hoist the `>> 2` or `>> 3` out of this loop.
|
|
2001
|
+
array.push(HEAPU32[(((firstElement) + (i * 4)) >> 2)]);
|
|
2002
|
+
}
|
|
2003
|
+
return array;
|
|
2004
|
+
}
|
|
2005
|
+
function __embind_register_class_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync) {
|
|
2006
|
+
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
2007
|
+
methodName = readLatin1String(methodName);
|
|
2008
|
+
rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
|
|
2009
|
+
whenDependentTypesAreResolved([], [rawClassType], function (classType) {
|
|
2010
|
+
classType = classType[0];
|
|
2011
|
+
var humanName = classType.name + '.' + methodName;
|
|
2012
|
+
function unboundTypesHandler() {
|
|
2013
|
+
throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes);
|
|
2014
|
+
}
|
|
2015
|
+
if (methodName.startsWith("@@")) {
|
|
2016
|
+
methodName = Symbol[methodName.substring(2)];
|
|
2017
|
+
}
|
|
2018
|
+
var proto = classType.registeredClass.constructor;
|
|
2019
|
+
if (undefined === proto[methodName]) {
|
|
2020
|
+
// This is the first function to be registered with this name.
|
|
2021
|
+
unboundTypesHandler.argCount = argCount - 1;
|
|
2022
|
+
proto[methodName] = unboundTypesHandler;
|
|
2023
|
+
}
|
|
2024
|
+
else {
|
|
2025
|
+
// There was an existing function with the same name registered. Set up
|
|
2026
|
+
// a function overload routing table.
|
|
2027
|
+
ensureOverloadTable(proto, methodName, humanName);
|
|
2028
|
+
proto[methodName].overloadTable[argCount - 1] = unboundTypesHandler;
|
|
2029
|
+
}
|
|
2030
|
+
whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
|
|
2031
|
+
// Replace the initial unbound-types-handler stub with the proper
|
|
2032
|
+
// function. If multiple overloads are registered, the function handlers
|
|
2033
|
+
// go into an overload table.
|
|
2034
|
+
var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */);
|
|
2035
|
+
var func = craftInvokerFunction(humanName, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn, isAsync);
|
|
2036
|
+
if (undefined === proto[methodName].overloadTable) {
|
|
2037
|
+
func.argCount = argCount - 1;
|
|
2038
|
+
proto[methodName] = func;
|
|
2039
|
+
}
|
|
2040
|
+
else {
|
|
2041
|
+
proto[methodName].overloadTable[argCount - 1] = func;
|
|
2042
|
+
}
|
|
2043
|
+
return [];
|
|
2044
|
+
});
|
|
2045
|
+
return [];
|
|
2046
|
+
});
|
|
2047
|
+
}
|
|
1904
2048
|
function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
|
|
1905
2049
|
assert(argCount > 0);
|
|
1906
2050
|
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
@@ -1928,6 +2072,55 @@ var Module = (() => {
|
|
|
1928
2072
|
return [];
|
|
1929
2073
|
});
|
|
1930
2074
|
}
|
|
2075
|
+
function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, // [ReturnType, ThisType, Args...]
|
|
2076
|
+
invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {
|
|
2077
|
+
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
2078
|
+
methodName = readLatin1String(methodName);
|
|
2079
|
+
rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
|
|
2080
|
+
whenDependentTypesAreResolved([], [rawClassType], function (classType) {
|
|
2081
|
+
classType = classType[0];
|
|
2082
|
+
var humanName = classType.name + '.' + methodName;
|
|
2083
|
+
if (methodName.startsWith("@@")) {
|
|
2084
|
+
methodName = Symbol[methodName.substring(2)];
|
|
2085
|
+
}
|
|
2086
|
+
if (isPureVirtual) {
|
|
2087
|
+
classType.registeredClass.pureVirtualFunctions.push(methodName);
|
|
2088
|
+
}
|
|
2089
|
+
function unboundTypesHandler() {
|
|
2090
|
+
throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes);
|
|
2091
|
+
}
|
|
2092
|
+
var proto = classType.registeredClass.instancePrototype;
|
|
2093
|
+
var method = proto[methodName];
|
|
2094
|
+
if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) {
|
|
2095
|
+
// This is the first overload to be registered, OR we are replacing a
|
|
2096
|
+
// function in the base class with a function in the derived class.
|
|
2097
|
+
unboundTypesHandler.argCount = argCount - 2;
|
|
2098
|
+
unboundTypesHandler.className = classType.name;
|
|
2099
|
+
proto[methodName] = unboundTypesHandler;
|
|
2100
|
+
}
|
|
2101
|
+
else {
|
|
2102
|
+
// There was an existing function with the same name registered. Set up
|
|
2103
|
+
// a function overload routing table.
|
|
2104
|
+
ensureOverloadTable(proto, methodName, humanName);
|
|
2105
|
+
proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
|
|
2106
|
+
}
|
|
2107
|
+
whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
|
|
2108
|
+
var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);
|
|
2109
|
+
// Replace the initial unbound-handler-stub function with the appropriate member function, now that all types
|
|
2110
|
+
// are resolved. If multiple overloads are registered for this function, the function goes into an overload table.
|
|
2111
|
+
if (undefined === proto[methodName].overloadTable) {
|
|
2112
|
+
// Set argCount in case an overload is registered later
|
|
2113
|
+
memberFunction.argCount = argCount - 2;
|
|
2114
|
+
proto[methodName] = memberFunction;
|
|
2115
|
+
}
|
|
2116
|
+
else {
|
|
2117
|
+
proto[methodName].overloadTable[argCount - 2] = memberFunction;
|
|
2118
|
+
}
|
|
2119
|
+
return [];
|
|
2120
|
+
});
|
|
2121
|
+
return [];
|
|
2122
|
+
});
|
|
2123
|
+
}
|
|
1931
2124
|
function validateThis(this_, classType, humanName) {
|
|
1932
2125
|
if (!(this_ instanceof Object)) {
|
|
1933
2126
|
throwBindingError(humanName + ' with invalid "this": ' + this_);
|
|
@@ -1990,55 +2183,12 @@ var Module = (() => {
|
|
|
1990
2183
|
return [];
|
|
1991
2184
|
});
|
|
1992
2185
|
}
|
|
1993
|
-
var emval_free_list = [];
|
|
1994
|
-
var emval_handle_array = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }];
|
|
1995
2186
|
function __emval_decref(handle) {
|
|
1996
2187
|
if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
|
|
1997
2188
|
emval_handle_array[handle] = undefined;
|
|
1998
2189
|
emval_free_list.push(handle);
|
|
1999
2190
|
}
|
|
2000
2191
|
}
|
|
2001
|
-
function count_emval_handles() {
|
|
2002
|
-
var count = 0;
|
|
2003
|
-
for (var i = 5; i < emval_handle_array.length; ++i) {
|
|
2004
|
-
if (emval_handle_array[i] !== undefined) {
|
|
2005
|
-
++count;
|
|
2006
|
-
}
|
|
2007
|
-
}
|
|
2008
|
-
return count;
|
|
2009
|
-
}
|
|
2010
|
-
function get_first_emval() {
|
|
2011
|
-
for (var i = 5; i < emval_handle_array.length; ++i) {
|
|
2012
|
-
if (emval_handle_array[i] !== undefined) {
|
|
2013
|
-
return emval_handle_array[i];
|
|
2014
|
-
}
|
|
2015
|
-
}
|
|
2016
|
-
return null;
|
|
2017
|
-
}
|
|
2018
|
-
function init_emval() {
|
|
2019
|
-
Module['count_emval_handles'] = count_emval_handles;
|
|
2020
|
-
Module['get_first_emval'] = get_first_emval;
|
|
2021
|
-
}
|
|
2022
|
-
var Emval = { toValue: (handle) => {
|
|
2023
|
-
if (!handle) {
|
|
2024
|
-
throwBindingError('Cannot use deleted val. handle = ' + handle);
|
|
2025
|
-
}
|
|
2026
|
-
return emval_handle_array[handle].value;
|
|
2027
|
-
}, toHandle: (value) => {
|
|
2028
|
-
switch (value) {
|
|
2029
|
-
case undefined: return 1;
|
|
2030
|
-
case null: return 2;
|
|
2031
|
-
case true: return 3;
|
|
2032
|
-
case false: return 4;
|
|
2033
|
-
default: {
|
|
2034
|
-
var handle = emval_free_list.length ?
|
|
2035
|
-
emval_free_list.pop() :
|
|
2036
|
-
emval_handle_array.length;
|
|
2037
|
-
emval_handle_array[handle] = { refcount: 1, value: value };
|
|
2038
|
-
return handle;
|
|
2039
|
-
}
|
|
2040
|
-
}
|
|
2041
|
-
} };
|
|
2042
2192
|
function __embind_register_emval(rawType, name) {
|
|
2043
2193
|
name = readLatin1String(name);
|
|
2044
2194
|
registerType(rawType, {
|
|
@@ -2499,13 +2649,6 @@ var Module = (() => {
|
|
|
2499
2649
|
},
|
|
2500
2650
|
});
|
|
2501
2651
|
}
|
|
2502
|
-
function requireRegisteredType(rawType, humanName) {
|
|
2503
|
-
var impl = registeredTypes[rawType];
|
|
2504
|
-
if (undefined === impl) {
|
|
2505
|
-
throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
|
|
2506
|
-
}
|
|
2507
|
-
return impl;
|
|
2508
|
-
}
|
|
2509
2652
|
function __emval_as(handle, returnType, destructorsRef) {
|
|
2510
2653
|
handle = Emval.toValue(handle);
|
|
2511
2654
|
returnType = requireRegisteredType(returnType, 'emval::as');
|
|
@@ -2528,6 +2671,12 @@ var Module = (() => {
|
|
|
2528
2671
|
return symbol;
|
|
2529
2672
|
}
|
|
2530
2673
|
var emval_methodCallers = [];
|
|
2674
|
+
function __emval_call_method(caller, handle, methodName, destructorsRef, args) {
|
|
2675
|
+
caller = emval_methodCallers[caller];
|
|
2676
|
+
handle = Emval.toValue(handle);
|
|
2677
|
+
methodName = getStringOrSymbol(methodName);
|
|
2678
|
+
return caller(handle, methodName, emval_allocateDestructors(destructorsRef), args);
|
|
2679
|
+
}
|
|
2531
2680
|
function __emval_call_void_method(caller, handle, methodName, args) {
|
|
2532
2681
|
caller = emval_methodCallers[caller];
|
|
2533
2682
|
handle = Emval.toValue(handle);
|
|
@@ -2604,6 +2753,14 @@ var Module = (() => {
|
|
|
2604
2753
|
function __emval_new_array() {
|
|
2605
2754
|
return Emval.toHandle([]);
|
|
2606
2755
|
}
|
|
2756
|
+
function __emval_new_array_from_memory_view(view) {
|
|
2757
|
+
view = Emval.toValue(view);
|
|
2758
|
+
// using for..loop is faster than Array.from
|
|
2759
|
+
var a = new Array(view.length);
|
|
2760
|
+
for (var i = 0; i < view.length; i++)
|
|
2761
|
+
a[i] = view[i];
|
|
2762
|
+
return Emval.toHandle(a);
|
|
2763
|
+
}
|
|
2607
2764
|
function __emval_new_cstring(v) {
|
|
2608
2765
|
return Emval.toHandle(getStringOrSymbol(v));
|
|
2609
2766
|
}
|
|
@@ -3081,26 +3238,31 @@ var Module = (() => {
|
|
|
3081
3238
|
function _strftime_l(s, maxsize, format, tm, loc) {
|
|
3082
3239
|
return _strftime(s, maxsize, format, tm); // no locale support yet
|
|
3083
3240
|
}
|
|
3084
|
-
InternalError = Module['InternalError'] = extendError(Error, 'InternalError');
|
|
3085
|
-
;
|
|
3086
|
-
embind_init_charCodes();
|
|
3087
3241
|
BindingError = Module['BindingError'] = extendError(Error, 'BindingError');
|
|
3088
3242
|
;
|
|
3089
|
-
|
|
3243
|
+
init_emval();
|
|
3244
|
+
;
|
|
3245
|
+
PureVirtualError = Module['PureVirtualError'] = extendError(Error, 'PureVirtualError');
|
|
3246
|
+
;
|
|
3247
|
+
embind_init_charCodes();
|
|
3090
3248
|
init_embind();
|
|
3091
3249
|
;
|
|
3250
|
+
InternalError = Module['InternalError'] = extendError(Error, 'InternalError');
|
|
3251
|
+
;
|
|
3252
|
+
init_ClassHandle();
|
|
3092
3253
|
init_RegisteredPointer();
|
|
3093
3254
|
UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');
|
|
3094
3255
|
;
|
|
3095
|
-
init_emval();
|
|
3096
|
-
;
|
|
3097
3256
|
var wasmImports = {
|
|
3098
3257
|
"__assert_fail": ___assert_fail,
|
|
3258
|
+
"_embind_create_inheriting_constructor": __embind_create_inheriting_constructor,
|
|
3099
3259
|
"_embind_finalize_value_object": __embind_finalize_value_object,
|
|
3100
3260
|
"_embind_register_bigint": __embind_register_bigint,
|
|
3101
3261
|
"_embind_register_bool": __embind_register_bool,
|
|
3102
3262
|
"_embind_register_class": __embind_register_class,
|
|
3263
|
+
"_embind_register_class_class_function": __embind_register_class_class_function,
|
|
3103
3264
|
"_embind_register_class_constructor": __embind_register_class_constructor,
|
|
3265
|
+
"_embind_register_class_function": __embind_register_class_function,
|
|
3104
3266
|
"_embind_register_class_property": __embind_register_class_property,
|
|
3105
3267
|
"_embind_register_emval": __embind_register_emval,
|
|
3106
3268
|
"_embind_register_float": __embind_register_float,
|
|
@@ -3113,12 +3275,14 @@ var Module = (() => {
|
|
|
3113
3275
|
"_embind_register_value_object_field": __embind_register_value_object_field,
|
|
3114
3276
|
"_embind_register_void": __embind_register_void,
|
|
3115
3277
|
"_emval_as": __emval_as,
|
|
3278
|
+
"_emval_call_method": __emval_call_method,
|
|
3116
3279
|
"_emval_call_void_method": __emval_call_void_method,
|
|
3117
3280
|
"_emval_decref": __emval_decref,
|
|
3118
3281
|
"_emval_get_method_caller": __emval_get_method_caller,
|
|
3119
3282
|
"_emval_get_property": __emval_get_property,
|
|
3120
3283
|
"_emval_incref": __emval_incref,
|
|
3121
3284
|
"_emval_new_array": __emval_new_array,
|
|
3285
|
+
"_emval_new_array_from_memory_view": __emval_new_array_from_memory_view,
|
|
3122
3286
|
"_emval_new_cstring": __emval_new_cstring,
|
|
3123
3287
|
"_emval_run_destructors": __emval_run_destructors,
|
|
3124
3288
|
"_emval_take_value": __emval_take_value,
|
|
@@ -3127,9 +3291,7 @@ var Module = (() => {
|
|
|
3127
3291
|
"emscripten_resize_heap": _emscripten_resize_heap,
|
|
3128
3292
|
"environ_get": _environ_get,
|
|
3129
3293
|
"environ_sizes_get": _environ_sizes_get,
|
|
3130
|
-
"strftime_l": _strftime_l
|
|
3131
|
-
"wasm_loadfileproc": wasm_loadfileproc,
|
|
3132
|
-
"wasm_msgproc": wasm_msgproc
|
|
3294
|
+
"strftime_l": _strftime_l
|
|
3133
3295
|
};
|
|
3134
3296
|
var asm = createWasm();
|
|
3135
3297
|
/** @type {function(...*):?} */
|
|
@@ -3196,8 +3358,6 @@ var Module = (() => {
|
|
|
3196
3358
|
var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = function () {
|
|
3197
3359
|
return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["dynCall_iiiiiijj"]).apply(null, arguments);
|
|
3198
3360
|
};
|
|
3199
|
-
var ___start_em_js = Module['___start_em_js'] = 59888;
|
|
3200
|
-
var ___stop_em_js = Module['___stop_em_js'] = 60584;
|
|
3201
3361
|
// include: postamble.js
|
|
3202
3362
|
// === Auto-generated postamble setup entry stuff ===
|
|
3203
3363
|
Module["UTF8ToString"] = UTF8ToString;
|