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

Unified Diff: src/contexts.cc

Issue 2028983002: Introduce IsUndefined(Isolate*) and IsTheHole(Isolate*) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase master Created 4 years, 6 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/compiler/pipeline.cc ('k') | src/contexts-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/contexts.cc
diff --git a/src/contexts.cc b/src/contexts.cc
index 392a3ccaa01c336ffdc044ed63dac8794c9144e1..aa46b4793170a41c755d3f5c8b86f4678c0ba8f8 100644
--- a/src/contexts.cc
+++ b/src/contexts.cc
@@ -92,7 +92,7 @@ Context* Context::closure_context() {
JSObject* Context::extension_object() {
DCHECK(IsNativeContext() || IsFunctionContext() || IsBlockContext());
HeapObject* object = extension();
- if (object->IsTheHole()) return nullptr;
+ if (object->IsTheHole(GetIsolate())) return nullptr;
if (IsBlockContext()) {
if (!object->IsSloppyBlockWithEvalContextExtension()) return nullptr;
object = SloppyBlockWithEvalContextExtension::cast(object)->extension();
@@ -443,10 +443,11 @@ void Context::InitializeGlobalSlots() {
void Context::AddOptimizedFunction(JSFunction* function) {
DCHECK(IsNativeContext());
+ Isolate* isolate = GetIsolate();
#ifdef ENABLE_SLOW_DCHECKS
if (FLAG_enable_slow_asserts) {
Object* element = get(OPTIMIZED_FUNCTIONS_LIST);
- while (!element->IsUndefined()) {
+ while (!element->IsUndefined(isolate)) {
CHECK(element != function);
element = JSFunction::cast(element)->next_function_link();
}
@@ -454,8 +455,8 @@ void Context::AddOptimizedFunction(JSFunction* function) {
// Check that the context belongs to the weak native contexts list.
bool found = false;
- Object* context = GetHeap()->native_contexts_list();
- while (!context->IsUndefined()) {
+ Object* context = isolate->heap()->native_contexts_list();
+ while (!context->IsUndefined(isolate)) {
if (context == this) {
found = true;
break;
@@ -467,12 +468,12 @@ void Context::AddOptimizedFunction(JSFunction* function) {
// If the function link field is already used then the function was
// enqueued as a code flushing candidate and we remove it now.
- if (!function->next_function_link()->IsUndefined()) {
+ if (!function->next_function_link()->IsUndefined(isolate)) {
CodeFlusher* flusher = GetHeap()->mark_compact_collector()->code_flusher();
flusher->EvictCandidate(function);
}
- DCHECK(function->next_function_link()->IsUndefined());
+ DCHECK(function->next_function_link()->IsUndefined(isolate));
function->set_next_function_link(get(OPTIMIZED_FUNCTIONS_LIST),
UPDATE_WEAK_WRITE_BARRIER);
@@ -484,9 +485,10 @@ void Context::RemoveOptimizedFunction(JSFunction* function) {
DCHECK(IsNativeContext());
Object* element = get(OPTIMIZED_FUNCTIONS_LIST);
JSFunction* prev = NULL;
- while (!element->IsUndefined()) {
+ Isolate* isolate = function->GetIsolate();
+ while (!element->IsUndefined(isolate)) {
JSFunction* element_function = JSFunction::cast(element);
- DCHECK(element_function->next_function_link()->IsUndefined() ||
+ DCHECK(element_function->next_function_link()->IsUndefined(isolate) ||
element_function->next_function_link()->IsJSFunction());
if (element_function == function) {
if (prev == NULL) {
@@ -522,7 +524,7 @@ Object* Context::OptimizedFunctionsListHead() {
void Context::AddOptimizedCode(Code* code) {
DCHECK(IsNativeContext());
DCHECK(code->kind() == Code::OPTIMIZED_FUNCTION);
- DCHECK(code->next_code_link()->IsUndefined());
+ DCHECK(code->next_code_link()->IsUndefined(GetIsolate()));
code->set_next_code_link(get(OPTIMIZED_CODE_LIST));
set(OPTIMIZED_CODE_LIST, code, UPDATE_WEAK_WRITE_BARRIER);
}
@@ -555,7 +557,7 @@ Object* Context::DeoptimizedCodeListHead() {
Handle<Object> Context::ErrorMessageForCodeGenerationFromStrings() {
Isolate* isolate = GetIsolate();
Handle<Object> result(error_message_for_code_gen_from_strings(), isolate);
- if (!result->IsUndefined()) return result;
+ if (!result->IsUndefined(isolate)) return result;
return isolate->factory()->NewStringFromStaticChars(
"Code generation from strings disallowed for this context");
}
« no previous file with comments | « src/compiler/pipeline.cc ('k') | src/contexts-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698