Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Unified Diff: src/fast-accessor-assembler.cc

Issue 1844413002: Use EmbedderHeapTracer instead of object grouping when trace_embedder_heap flag is set (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move logic from heap to mark compact Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/api-natives.cc ('k') | src/heap/heap.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/fast-accessor-assembler.cc
diff --git a/src/fast-accessor-assembler.cc b/src/fast-accessor-assembler.cc
index cd2910ca132214374d7bc857099bdcb36370db0e..1bbb1504d3dae1b949089508045c399485cce959 100644
--- a/src/fast-accessor-assembler.cc
+++ b/src/fast-accessor-assembler.cc
@@ -56,12 +56,13 @@ FastAccessorAssembler::ValueId FastAccessorAssembler::LoadInternalField(
CodeStubAssembler::Variable result(assembler_.get(),
MachineRepresentation::kTagged);
CodeStubAssembler::Label is_jsobject(assembler_.get());
+ CodeStubAssembler::Label maybe_api_object(assembler_.get());
CodeStubAssembler::Label is_not_jsobject(assembler_.get());
CodeStubAssembler::Label merge(assembler_.get(), &result);
assembler_->Branch(
assembler_->WordEqual(
instance_type, assembler_->IntPtrConstant(Internals::kJSObjectType)),
- &is_jsobject, &is_not_jsobject);
+ &is_jsobject, &maybe_api_object);
// JSObject? Then load the internal field field_no.
assembler_->Bind(&is_jsobject);
@@ -71,6 +72,12 @@ FastAccessorAssembler::ValueId FastAccessorAssembler::LoadInternalField(
result.Bind(internal_field);
assembler_->Goto(&merge);
+ assembler_->Bind(&maybe_api_object);
+ assembler_->Branch(
+ assembler_->WordEqual(instance_type, assembler_->IntPtrConstant(
+ Internals::kJSApiObjectType)),
+ &is_jsobject, &is_not_jsobject);
+
// No JSObject? Return undefined.
// TODO(vogelheim): Check whether this is the appropriate action, or whether
// the method should take a label instead.
« no previous file with comments | « src/api-natives.cc ('k') | src/heap/heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698