Skip to content

Commit 0f3bfaf

Browse files
mi-acjasnell
authored andcommitted
v8: backport bd59e7452be from upstream v8
Original commit message: [PATCH] Merged: Make Object::GetOwnPropertyDescriptor() take a Name, not a String. Revision: b5e610c19208ef854755eec67011ca7aff008bf4 NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true [email protected] Bug: Change-Id: I396b559b28aab6afa138db747711e50cd0da3da7 Reviewed-on: https://chromium-review.googlesource.com/513927 Reviewed-by: Michael Achenbach <[email protected]> Cr-Commit-Position: refs/branch-heads/6.0@{#5} Cr-Branched-From: 97dbf624a5eeffb3a8df36d24cdb2a883137385f-refs/heads/6.0.286@{#1} Cr-Branched-From: 12e6f1cb5cd9616da7b9d4a7655c088778a6d415-refs/heads/master@{#45439} PR-URL: #13217 Reviewed-By: Franziska Hinkelmann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent ec7cbaf commit 0f3bfaf

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

deps/v8/include/v8.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -2973,12 +2973,12 @@ class V8_EXPORT Object : public Value {
29732973
Local<Context> context, Local<Value> key);
29742974

29752975
/**
2976-
* Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3.
2976+
* Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6.
29772977
*/
29782978
V8_DEPRECATED("Use maybe version",
2979-
Local<Value> GetOwnPropertyDescriptor(Local<String> key));
2979+
Local<Value> GetOwnPropertyDescriptor(Local<Name> key));
29802980
V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor(
2981-
Local<Context> context, Local<String> key);
2981+
Local<Context> context, Local<Name> key);
29822982

29832983
V8_DEPRECATE_SOON("Use maybe version", bool Has(Local<Value> key));
29842984
/**

deps/v8/src/api.cc

+3-5
Original file line numberDiff line numberDiff line change
@@ -4443,12 +4443,11 @@ PropertyAttribute v8::Object::GetPropertyAttributes(v8::Local<Value> key) {
44434443
.FromMaybe(static_cast<PropertyAttribute>(i::NONE));
44444444
}
44454445

4446-
44474446
MaybeLocal<Value> v8::Object::GetOwnPropertyDescriptor(Local<Context> context,
4448-
Local<String> key) {
4447+
Local<Name> key) {
44494448
PREPARE_FOR_EXECUTION(context, Object, GetOwnPropertyDescriptor, Value);
44504449
i::Handle<i::JSReceiver> obj = Utils::OpenHandle(this);
4451-
i::Handle<i::String> key_name = Utils::OpenHandle(*key);
4450+
i::Handle<i::Name> key_name = Utils::OpenHandle(*key);
44524451

44534452
i::PropertyDescriptor desc;
44544453
Maybe<bool> found =
@@ -4461,8 +4460,7 @@ MaybeLocal<Value> v8::Object::GetOwnPropertyDescriptor(Local<Context> context,
44614460
RETURN_ESCAPED(Utils::ToLocal(desc.ToObject(isolate)));
44624461
}
44634462

4464-
4465-
Local<Value> v8::Object::GetOwnPropertyDescriptor(Local<String> key) {
4463+
Local<Value> v8::Object::GetOwnPropertyDescriptor(Local<Name> key) {
44664464
auto context = ContextFromHeapObject(Utils::OpenHandle(this));
44674465
RETURN_TO_LOCAL_UNCHECKED(GetOwnPropertyDescriptor(context, key), Value);
44684466
}

deps/v8/test/cctest/test-api.cc

+15-6
Original file line numberDiff line numberDiff line change
@@ -24375,12 +24375,13 @@ TEST(GetOwnPropertyDescriptor) {
2437524375
v8::Isolate* isolate = env->GetIsolate();
2437624376
v8::HandleScope scope(isolate);
2437724377
CompileRun(
24378-
"var x = { value : 13};"
24379-
"Object.defineProperty(x, 'p0', {value : 12});"
24380-
"Object.defineProperty(x, 'p1', {"
24381-
" set : function(value) { this.value = value; },"
24382-
" get : function() { return this.value; },"
24383-
"});");
24378+
"var x = { value : 13};"
24379+
"Object.defineProperty(x, 'p0', {value : 12});"
24380+
"Object.defineProperty(x, Symbol.toStringTag, {value: 'foo'});"
24381+
"Object.defineProperty(x, 'p1', {"
24382+
" set : function(value) { this.value = value; },"
24383+
" get : function() { return this.value; },"
24384+
"});");
2438424385
Local<Object> x = Local<Object>::Cast(
2438524386
env->Global()->Get(env.local(), v8_str("x")).ToLocalChecked());
2438624387
Local<Value> desc =
@@ -24414,6 +24415,14 @@ TEST(GetOwnPropertyDescriptor) {
2441424415
->Equals(env.local(),
2441524416
get->Call(env.local(), x, 0, NULL).ToLocalChecked())
2441624417
.FromJust());
24418+
desc =
24419+
x->GetOwnPropertyDescriptor(env.local(), Symbol::GetToStringTag(isolate))
24420+
.ToLocalChecked();
24421+
CHECK(v8_str("foo")
24422+
->Equals(env.local(), Local<Object>::Cast(desc)
24423+
->Get(env.local(), v8_str("value"))
24424+
.ToLocalChecked())
24425+
.FromJust());
2441724426
}
2441824427

2441924428

0 commit comments

Comments
 (0)