| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Pick up V8 4.8 branch-head. This branch brings in @@isConcatSpreadable, @@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html v8/v8@fa163e2 Ref: nodejs#4399
Original commit message:
This commit adds some postmortem data that is otherwise unavailable.
I have discovered need in those values when writing:
https://github.com/indutny/llnode
BUG=
Review URL: https://codereview.chromium.org/1436473002
Cr-Commit-Position: refs/heads/master@{nodejs#31947}
This postmortem information is useful for both object inspection, and
function's context variables inspection.
Ref: nodejs#3779
PR-URL: nodejs#4106
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>
Original commit message: [tools] Make gen-postmortem-metadata.py more reliable Instead of basing matches off of whitespace, walk the inheritance chain and include any classes that inherit from Object. R=machenbach@chromium.org,jkummerow@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1435643002 Cr-Commit-Position: refs/heads/master@{nodejs#31964} This adds some missing classes to postmortem info like JSMap and JSSet. Ref: nodejs#3792 PR-URL: nodejs#4106 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>
The error message returned on ArrayBuffer allocation failure is now different as per https://codereview.chromium.org/1393263003. Ref: nodejs#4399
|
Seems SetHiddenValue and GetHiddenValue have been marked deprecate soon. Take care of that now, or worry about it later? |
Sorry, something went wrong.
|
@trevnorris mind if I work on updating the uses in /src? |
Sorry, something went wrong.
|
@cjihrig Be my guest. The usage is slightly different and doubt it'll change how we use it, but figured I'd mention it. |
Sorry, something went wrong.
|
FYI @nodejs/v8 I turned on nightlies for master recently, you can grab binaries from https://nodejs.org/download/nightly/ if you want to work on the cutting edge. They should work with native addons too as long as NAN is doing the right thing and the addons are coded properly. It'd be great to have some folks regularly using these. I'm also working up a canary-like strategy and will post a strawman soon but wanted to get the nightlies on your radar before we get to that. FWIW this is a script I regularly use to upgrade my Node install and it can also do nightlies: https://gist.github.com/rvagg/742f811be491a49ba0b9. Since I turned on master nightlies it defaults to those as the latest (currently it doesn't have a way to select the 5.x nightlies). |
Sorry, something went wrong.
|
LGTM. CI: https://ci.nodejs.org/job/node-test-pull-request/1340/ @indutny You should check if postmortem still works. |
Sorry, something went wrong.
|
From a very basic test with llnode, seems to be working fine. EDIT: Actually, I was using the nightly. Disregard my noise please |
Sorry, something went wrong.
|
I also started a CI yesterday: https://ci.nodejs.org/job/node-test-pull-request/1330/. I will restart the arm-fanned subset, but it seems like they are failing on every build? @rvagg thanks for setting up the nightlies. Looking forward to the canary strawman. BTW, I have been using llnode for day-to-day development on V8 ToT and it seems to work okay, although I don't test every feature. |
Sorry, something went wrong.
|
Restarted arm-fanned subset: https://ci.nodejs.org/job/node-test-commit-arm-fanned/1240/ |
Sorry, something went wrong.
|
The lone failure on arm is test-http-exit-delay.js which looks flaky as it is failing in other builds too: AssertionError: Entire test should take less than one second. |
Sorry, something went wrong.
Sorry, something went wrong.
Pick up V8 4.8 branch-head. This branch brings in @@isConcatSpreadable, @@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html v8/v8@fa163e2 Ref: #4399 PR-URL: #4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
The error message returned on ArrayBuffer allocation failure is now different as per https://codereview.chromium.org/1393263003. Ref: #4399 PR-URL: #4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
|
Landed as 5f6dfab...db9e122. |
Sorry, something went wrong.
|
@trevnorris I started looking into SetPrivate() and GetPrivate(), the new alternatives to SetHiddenValue() and GetHiddenValue(). Seems like they work like symbols now. From what I can tell, this will cause problems if you try to retrieve a hidden value without access to the original Local<Private>. In the past you could just provide the same string anywhere in the program. Hopefully I'm wrong. If not, I guess we could use Private::ForApi, which are global symbols. Thoughts? |
Sorry, something went wrong.
|
v8::Private is kind of annoying because it's not a v8::Value; you can't export it to JS land. It's doubly annoying because under the hood it's just a v8::Symbol, which is a v8::Value. One possible workaround is to export numeric ids that map to v8::Private handles in C++ land and pass those to .getHiddenValue() and .setHiddenValue(). |
Sorry, something went wrong.
|
@bnoordhuis when you say it is a v8::Symbol does that mean it can be reinterpret_cast'd, or just that they're similar? (doing this from phone, will refresh on the API later) |
Sorry, something went wrong.
|
Yes, it's literally a reinterpret_casted v8::Symbol. We could cast it back but that's relying on an implementation detail, of course. |
Sorry, something went wrong.
|
Please don't do that. The existence of native node packages that did that reinterpret_cast was part of the reason v8::Private was removed in the 4.5 (IIRC) timeframe. It is only back now because the need in Blink became more urgent, but that kind of abuse will cause complications... In the browser, it's imperative for security reasons that private symbols never be exposed to JS code. In Node, Node core and/or any native modules are already running native code on your machine, so you are already in not-great-shape if they want to do something malicious; I doubt the security argument applies. But it still breaks a bunch of invariants V8 relies on to maintain a consistent internal state. |
Sorry, something went wrong.
|
Is there any reason we shouldn't use the Private::ForApi functionality? It seems like the implementation would be much simpler. We wouldn't want to ever expose it as public API, as the global symbols are never collected, but for our internal use it should be fine (we currently only have a handful of unique hidden values). |
Sorry, something went wrong.
Heh. Didn't think we should, just wanted to better understand the scope of the problem. :) |
Sorry, something went wrong.
I thought Privates are separate from v8 internal private symbols
Wow. I guess it was me: https://github.com/vkurchatkin/private-symbol )
Why? They are exposed to C++ code so the still can be used, but API would be uglier. |
Sorry, something went wrong.
Sorry, something went wrong.
Pick up V8 4.8 branch-head. This branch brings in @@isConcatSpreadable, @@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html v8/v8@fa163e2 Ref: nodejs#4399 PR-URL: nodejs#4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
The error message returned on ArrayBuffer allocation failure is now different as per https://codereview.chromium.org/1393263003. Ref: nodejs#4399 PR-URL: nodejs#4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
| Back | FazBrowse Home | New Git URL |
V8 4.8 is now stable with the stable update of Chrome 48: http://googlechromereleases.blogspot.com/2016/01/stable-channel-update_20.html
Pick up V8 4.8 branch-head [ https://github.com/v8/v8/commit/fa163e2]. This branch brings in @@isConcatSpreadable,@@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html
/cc @nodejs/v8