-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update mdb_v8 for V8 4.6.x #36
Labels
Comments
8 tasks
Metadata was updated with https://codereview.chromium.org/1308113007. |
misterdjules
pushed a commit
to misterdjules/mdb_v8
that referenced
this issue
Sep 25, 2015
This change makes mdb_v8's test suite pass with https://github.com/nodejs/node/tree/vee-eight-4.6, which is the branch where V8 4.6.x is integrated into node's master. There are two main changes. The first one is that Map's "inobject_properties" property has been renamed to "inobject_properties_or_constructor_function_index". Since mdb_v8's doesn't support new V8 primitives yet, we only care about using the proper name for this property, not about the fact that it has a different semantic for these new V8 primitives. The second one is that typed arrays, which are used to represent Buffer instances since node v4.0.0, store their underlying storage slightly differently. For V8 versions 4.6 and later, we know use the JSArrayBufferView and the JSArrayBuffer properties to get access to that underlying storage, as it seems more reliable and less likely to change than accessing the first elements' slot, whose representation has changed between V8 4.5 and 4.6. It used to be a ExternalUint8Array, and it is now a FixedTypedArray casted as a FixedTypedArrayBase.
misterdjules
pushed a commit
to misterdjules/mdb_v8
that referenced
this issue
Sep 25, 2015
This change makes mdb_v8's test suite pass with https://github.com/nodejs/node/tree/vee-eight-4.6, which is the branch where V8 4.6.x is integrated into node's master. There are two main changes. The first one is that Map's "inobject_properties" property has been renamed to "inobject_properties_or_constructor_function_index". Since mdb_v8's doesn't support new V8 primitives yet, we only care about using the proper name for this property, not about the fact that it has a different semantic for these new V8 primitives. The second one is that typed arrays, which are used to represent Buffer instances since node v4.0.0, store their underlying storage slightly differently. For V8 versions 4.6 and later, we now use the JSArrayBufferView and the JSArrayBuffer properties to get access to that underlying storage, as it seems more reliable and less likely to change than accessing the first elements' slot, whose representation has changed between V8 4.5 and 4.6. It used to be a ExternalUint8Array, and it is now a FixedTypedArray casted as a FixedTypedArrayBase.
misterdjules
pushed a commit
to misterdjules/mdb_v8
that referenced
this issue
Oct 2, 2015
Merged via #37. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
nodejs/node will likely ship node v5.x with V8 4.6.x, and currently mdb_v8's tests (from a build of #33, that is with mdb_v8 updates for V8 4.5.x) do not pass with that version of V8:
It seems that these failures are due to recent changes in the objects' Map data structure to replace the
inobject_properties
field withinobject_properties_or_constructor_function_index
:There could be other breaking changes in V4.6.x, but it's a starting point.
The text was updated successfully, but these errors were encountered: