aboutsummaryrefslogtreecommitdiff
path: root/src/embind/embind.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/embind/embind.js')
-rwxr-xr-xsrc/embind/embind.js8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/embind/embind.js b/src/embind/embind.js
index 48bf2a7f..5dd631ff 100755
--- a/src/embind/embind.js
+++ b/src/embind/embind.js
@@ -339,10 +339,12 @@ function __embind_register_tuple_element(
memberPointer = copyMemberPointer(memberPointer, memberPointerSize);
var tupleType = requireRegisteredType(rawTupleType, 'tuple');
- // TODO: this could register elements out of order
+ var index = tupleType.elements.length;
+ tupleType.elements.push(undefined);
+
whenDependentTypesAreResolved([rawType], function(type) {
type = type[0];
- tupleType.elements.push({
+ tupleType.elements[index] = {
read: function(ptr) {
return type.fromWireType(getter(ptr, memberPointer));
},
@@ -351,7 +353,7 @@ function __embind_register_tuple_element(
setter(ptr, memberPointer, type.toWireType(destructors, o));
runDestructors(destructors);
}
- });
+ };
});
}