Commit 468160f8 authored by Yuki Shiino's avatar Yuki Shiino Committed by Commit Bot

v8binding: Make the wrapper check stricter.

Uses a new V8 API, v8::Object::IsApiWrapper, to improve the
check to determine whether a given v8::Value is a wrapper
object or not.

Bug: 999262
Change-Id: I844b20e6a36e1126fdbaf203db75b4c669ba385f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1777354Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarHitoshi Yoshida <peria@chromium.org>
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692629}
parent cf14d4a9
......@@ -73,7 +73,10 @@ v8::Local<v8::Object> V8DOMWrapper::CreateWrapper(
bool V8DOMWrapper::IsWrapper(v8::Isolate* isolate, v8::Local<v8::Value> value) {
if (value.IsEmpty() || !value->IsObject())
return false;
v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value);
if (!object->IsApiWrapper())
return false;
if (object->InternalFieldCount() < kV8DefaultWrapperInternalFieldCount)
return false;
......@@ -89,7 +92,10 @@ bool V8DOMWrapper::IsWrapper(v8::Isolate* isolate, v8::Local<v8::Value> value) {
bool V8DOMWrapper::HasInternalFieldsSet(v8::Local<v8::Value> value) {
if (value.IsEmpty() || !value->IsObject())
return false;
v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value);
if (!object->IsApiWrapper())
return false;
if (object->InternalFieldCount() < kV8DefaultWrapperInternalFieldCount)
return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment