Files
node/src
Gabriel Schulhof d5b397c9b6 n-api: Implement stricter wrapping
Use a stronger criterion to identify objects in the prototype chain that store
pointers to native data that were added by previous calls to `napi_wrap()`.

Whereas the old criterion for identifying `napi_wrap()`-injected prototype
chain objects was to consider an object with an internal field
count of 1 to be such an object, the new criterion is to consider an object
with an internal field count of 2 such that the second field holds a
`v8::External` which itself contains a pointer to a global static string unique
to N-API to be a `napi_wrap()`-injected prototype chain object.

This greatly reduces the possibility of returning a pointer that was not
previously added with `napi_wrap()`, and it allows us to recognize that an
object has already undergone `napi_wrap()` and we can thus prevent a chain of
wrappers only the first of which is accessible from appearing in the prototype
chain, as would be the result of multiple calls to `napi_wrap()` using the same
object.

PR-URL: https://github.com/nodejs/node/pull/13872
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
2017-07-12 12:05:44 -04:00
..
2017-06-06 11:16:58 -04:00
2017-07-12 12:05:44 -04:00
2017-07-06 15:25:30 -04:00
2017-06-13 11:48:59 -07:00
2017-06-06 23:33:56 -07:00
2016-06-28 21:21:21 +02:00
2017-05-09 15:01:41 +02:00
2017-06-13 11:48:59 -07:00
2017-07-06 08:20:03 +02:00
2017-05-22 16:09:27 -04:00
2017-05-22 16:09:27 -04:00
2017-04-14 22:47:29 +02:00
2016-06-28 21:21:21 +02:00