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

Side by Side Diff: src/isolate.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 unified diff | Download patch
« no previous file with comments | « src/interpreter/bytecode-generator.cc ('k') | src/isolate-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/isolate.h" 5 #include "src/isolate.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include <fstream> // NOLINT(readability/streams) 9 #include <fstream> // NOLINT(readability/streams)
10 #include <sstream> 10 #include <sstream>
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 return stack_frame; 600 return stack_frame;
601 } 601 }
602 602
603 Handle<JSObject> NewStackFrameObject(WasmFrame* frame) { 603 Handle<JSObject> NewStackFrameObject(WasmFrame* frame) {
604 Handle<JSObject> stack_frame = 604 Handle<JSObject> stack_frame =
605 factory()->NewJSObject(isolate_->object_function()); 605 factory()->NewJSObject(isolate_->object_function());
606 606
607 if (!function_key_.is_null()) { 607 if (!function_key_.is_null()) {
608 Object* wasm_object = frame->wasm_obj(); 608 Object* wasm_object = frame->wasm_obj();
609 Handle<String> name; 609 Handle<String> name;
610 if (!wasm_object->IsUndefined()) { 610 if (!wasm_object->IsUndefined(isolate_)) {
611 Handle<JSObject> wasm = handle(JSObject::cast(wasm_object)); 611 Handle<JSObject> wasm = handle(JSObject::cast(wasm_object));
612 wasm::GetWasmFunctionName(wasm, frame->function_index()) 612 wasm::GetWasmFunctionName(wasm, frame->function_index())
613 .ToHandle(&name); 613 .ToHandle(&name);
614 } 614 }
615 if (name.is_null()) { 615 if (name.is_null()) {
616 name = isolate_->factory()->NewStringFromStaticChars("<WASM UNNAMED>"); 616 name = isolate_->factory()->NewStringFromStaticChars("<WASM UNNAMED>");
617 } 617 }
618 JSObject::AddProperty(stack_frame, function_key_, name, NONE); 618 JSObject::AddProperty(stack_frame, function_key_, name, NONE);
619 } 619 }
620 // Encode the function index as line number. 620 // Encode the function index as line number.
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 808
809 static inline AccessCheckInfo* GetAccessCheckInfo(Isolate* isolate, 809 static inline AccessCheckInfo* GetAccessCheckInfo(Isolate* isolate,
810 Handle<JSObject> receiver) { 810 Handle<JSObject> receiver) {
811 Object* maybe_constructor = receiver->map()->GetConstructor(); 811 Object* maybe_constructor = receiver->map()->GetConstructor();
812 if (!maybe_constructor->IsJSFunction()) return NULL; 812 if (!maybe_constructor->IsJSFunction()) return NULL;
813 JSFunction* constructor = JSFunction::cast(maybe_constructor); 813 JSFunction* constructor = JSFunction::cast(maybe_constructor);
814 if (!constructor->shared()->IsApiFunction()) return NULL; 814 if (!constructor->shared()->IsApiFunction()) return NULL;
815 815
816 Object* data_obj = 816 Object* data_obj =
817 constructor->shared()->get_api_func_data()->access_check_info(); 817 constructor->shared()->get_api_func_data()->access_check_info();
818 if (data_obj == isolate->heap()->undefined_value()) return NULL; 818 if (data_obj->IsUndefined(isolate)) return NULL;
819 819
820 return AccessCheckInfo::cast(data_obj); 820 return AccessCheckInfo::cast(data_obj);
821 } 821 }
822 822
823 823
824 void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) { 824 void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) {
825 if (!thread_local_top()->failed_access_check_callback_) { 825 if (!thread_local_top()->failed_access_check_callback_) {
826 return ScheduleThrow(*factory()->NewTypeError(MessageTemplate::kNoAccess)); 826 return ScheduleThrow(*factory()->NewTypeError(MessageTemplate::kNoAccess));
827 } 827 }
828 828
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 } 1316 }
1317 } 1317 }
1318 1318
1319 1319
1320 void Isolate::RestorePendingMessageFromTryCatch(v8::TryCatch* handler) { 1320 void Isolate::RestorePendingMessageFromTryCatch(v8::TryCatch* handler) {
1321 DCHECK(handler == try_catch_handler()); 1321 DCHECK(handler == try_catch_handler());
1322 DCHECK(handler->HasCaught()); 1322 DCHECK(handler->HasCaught());
1323 DCHECK(handler->rethrow_); 1323 DCHECK(handler->rethrow_);
1324 DCHECK(handler->capture_message_); 1324 DCHECK(handler->capture_message_);
1325 Object* message = reinterpret_cast<Object*>(handler->message_obj_); 1325 Object* message = reinterpret_cast<Object*>(handler->message_obj_);
1326 DCHECK(message->IsJSMessageObject() || message->IsTheHole()); 1326 DCHECK(message->IsJSMessageObject() || message->IsTheHole(this));
1327 thread_local_top()->pending_message_obj_ = message; 1327 thread_local_top()->pending_message_obj_ = message;
1328 } 1328 }
1329 1329
1330 1330
1331 void Isolate::CancelScheduledExceptionFromTryCatch(v8::TryCatch* handler) { 1331 void Isolate::CancelScheduledExceptionFromTryCatch(v8::TryCatch* handler) {
1332 DCHECK(has_scheduled_exception()); 1332 DCHECK(has_scheduled_exception());
1333 if (scheduled_exception() == handler->exception_) { 1333 if (scheduled_exception() == handler->exception_) {
1334 DCHECK(scheduled_exception() != heap()->termination_exception()); 1334 DCHECK(scheduled_exception() != heap()->termination_exception());
1335 clear_scheduled_exception(); 1335 clear_scheduled_exception();
1336 } 1336 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 } 1385 }
1386 1386
1387 bool Isolate::ComputeLocation(MessageLocation* target) { 1387 bool Isolate::ComputeLocation(MessageLocation* target) {
1388 StackTraceFrameIterator it(this); 1388 StackTraceFrameIterator it(this);
1389 if (it.done()) return false; 1389 if (it.done()) return false;
1390 StandardFrame* frame = it.frame(); 1390 StandardFrame* frame = it.frame();
1391 // TODO(clemensh): handle wasm frames 1391 // TODO(clemensh): handle wasm frames
1392 if (!frame->is_java_script()) return false; 1392 if (!frame->is_java_script()) return false;
1393 JSFunction* fun = JavaScriptFrame::cast(frame)->function(); 1393 JSFunction* fun = JavaScriptFrame::cast(frame)->function();
1394 Object* script = fun->shared()->script(); 1394 Object* script = fun->shared()->script();
1395 if (!script->IsScript() || (Script::cast(script)->source()->IsUndefined())) { 1395 if (!script->IsScript() ||
1396 (Script::cast(script)->source()->IsUndefined(this))) {
1396 return false; 1397 return false;
1397 } 1398 }
1398 Handle<Script> casted_script(Script::cast(script)); 1399 Handle<Script> casted_script(Script::cast(script));
1399 // Compute the location from the function and the relocation info of the 1400 // Compute the location from the function and the relocation info of the
1400 // baseline code. For optimized code this will use the deoptimization 1401 // baseline code. For optimized code this will use the deoptimization
1401 // information to get canonical location information. 1402 // information to get canonical location information.
1402 List<FrameSummary> frames(FLAG_max_inlining_levels + 1); 1403 List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
1403 JavaScriptFrame::cast(frame)->Summarize(&frames); 1404 JavaScriptFrame::cast(frame)->Summarize(&frames);
1404 FrameSummary& summary = frames.last(); 1405 FrameSummary& summary = frames.last();
1405 int pos = summary.abstract_code()->SourcePosition(summary.code_offset()); 1406 int pos = summary.abstract_code()->SourcePosition(summary.code_offset());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 Handle<Object> fun_obj = handle(elements->get(i + 1), this); 1451 Handle<Object> fun_obj = handle(elements->get(i + 1), this);
1451 if (fun_obj->IsSmi()) { 1452 if (fun_obj->IsSmi()) {
1452 // TODO(clemensh): handle wasm frames 1453 // TODO(clemensh): handle wasm frames
1453 return false; 1454 return false;
1454 } 1455 }
1455 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj); 1456 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj);
1456 if (!fun->shared()->IsSubjectToDebugging()) continue; 1457 if (!fun->shared()->IsSubjectToDebugging()) continue;
1457 1458
1458 Object* script = fun->shared()->script(); 1459 Object* script = fun->shared()->script();
1459 if (script->IsScript() && 1460 if (script->IsScript() &&
1460 !(Script::cast(script)->source()->IsUndefined())) { 1461 !(Script::cast(script)->source()->IsUndefined(this))) {
1461 int pos = PositionFromStackTrace(elements, i); 1462 int pos = PositionFromStackTrace(elements, i);
1462 Handle<Script> casted_script(Script::cast(script)); 1463 Handle<Script> casted_script(Script::cast(script));
1463 *target = MessageLocation(casted_script, pos, pos + 1); 1464 *target = MessageLocation(casted_script, pos, pos + 1);
1464 return true; 1465 return true;
1465 } 1466 }
1466 } 1467 }
1467 return false; 1468 return false;
1468 } 1469 }
1469 1470
1470 1471
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1574 bool should_report_exception; 1575 bool should_report_exception;
1575 if (IsExternalHandlerOnTop(exception)) { 1576 if (IsExternalHandlerOnTop(exception)) {
1576 // Only report the exception if the external handler is verbose. 1577 // Only report the exception if the external handler is verbose.
1577 should_report_exception = try_catch_handler()->is_verbose_; 1578 should_report_exception = try_catch_handler()->is_verbose_;
1578 } else { 1579 } else {
1579 // Report the exception if it isn't caught by JavaScript code. 1580 // Report the exception if it isn't caught by JavaScript code.
1580 should_report_exception = !IsJavaScriptHandlerOnTop(exception); 1581 should_report_exception = !IsJavaScriptHandlerOnTop(exception);
1581 } 1582 }
1582 1583
1583 // Actually report the pending message to all message handlers. 1584 // Actually report the pending message to all message handlers.
1584 if (!message_obj->IsTheHole() && should_report_exception) { 1585 if (!message_obj->IsTheHole(this) && should_report_exception) {
1585 HandleScope scope(this); 1586 HandleScope scope(this);
1586 Handle<JSMessageObject> message(JSMessageObject::cast(message_obj)); 1587 Handle<JSMessageObject> message(JSMessageObject::cast(message_obj));
1587 Handle<JSValue> script_wrapper(JSValue::cast(message->script())); 1588 Handle<JSValue> script_wrapper(JSValue::cast(message->script()));
1588 Handle<Script> script(Script::cast(script_wrapper->value())); 1589 Handle<Script> script(Script::cast(script_wrapper->value()));
1589 int start_pos = message->start_position(); 1590 int start_pos = message->start_position();
1590 int end_pos = message->end_position(); 1591 int end_pos = message->end_position();
1591 MessageLocation location(script, start_pos, end_pos); 1592 MessageLocation location(script, start_pos, end_pos);
1592 MessageHandler::ReportMessage(this, &location, message); 1593 MessageHandler::ReportMessage(this, &location, message);
1593 } 1594 }
1594 } 1595 }
1595 1596
1596 1597
1597 MessageLocation Isolate::GetMessageLocation() { 1598 MessageLocation Isolate::GetMessageLocation() {
1598 DCHECK(has_pending_exception()); 1599 DCHECK(has_pending_exception());
1599 1600
1600 if (thread_local_top_.pending_exception_ != heap()->termination_exception() && 1601 if (thread_local_top_.pending_exception_ != heap()->termination_exception() &&
1601 !thread_local_top_.pending_message_obj_->IsTheHole()) { 1602 !thread_local_top_.pending_message_obj_->IsTheHole(this)) {
1602 Handle<JSMessageObject> message_obj( 1603 Handle<JSMessageObject> message_obj(
1603 JSMessageObject::cast(thread_local_top_.pending_message_obj_)); 1604 JSMessageObject::cast(thread_local_top_.pending_message_obj_));
1604 Handle<JSValue> script_wrapper(JSValue::cast(message_obj->script())); 1605 Handle<JSValue> script_wrapper(JSValue::cast(message_obj->script()));
1605 Handle<Script> script(Script::cast(script_wrapper->value())); 1606 Handle<Script> script(Script::cast(script_wrapper->value()));
1606 int start_pos = message_obj->start_position(); 1607 int start_pos = message_obj->start_position();
1607 int end_pos = message_obj->end_position(); 1608 int end_pos = message_obj->end_position();
1608 return MessageLocation(script, start_pos, end_pos); 1609 return MessageLocation(script, start_pos, end_pos);
1609 } 1610 }
1610 1611
1611 return MessageLocation(); 1612 return MessageLocation();
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
2158 } 2159 }
2159 2160
2160 thread_local_top_.external_caught_exception_ = true; 2161 thread_local_top_.external_caught_exception_ = true;
2161 if (!is_catchable_by_javascript(exception)) { 2162 if (!is_catchable_by_javascript(exception)) {
2162 try_catch_handler()->can_continue_ = false; 2163 try_catch_handler()->can_continue_ = false;
2163 try_catch_handler()->has_terminated_ = true; 2164 try_catch_handler()->has_terminated_ = true;
2164 try_catch_handler()->exception_ = heap()->null_value(); 2165 try_catch_handler()->exception_ = heap()->null_value();
2165 } else { 2166 } else {
2166 v8::TryCatch* handler = try_catch_handler(); 2167 v8::TryCatch* handler = try_catch_handler();
2167 DCHECK(thread_local_top_.pending_message_obj_->IsJSMessageObject() || 2168 DCHECK(thread_local_top_.pending_message_obj_->IsJSMessageObject() ||
2168 thread_local_top_.pending_message_obj_->IsTheHole()); 2169 thread_local_top_.pending_message_obj_->IsTheHole(this));
2169 handler->can_continue_ = true; 2170 handler->can_continue_ = true;
2170 handler->has_terminated_ = false; 2171 handler->has_terminated_ = false;
2171 handler->exception_ = pending_exception(); 2172 handler->exception_ = pending_exception();
2172 // Propagate to the external try-catch only if we got an actual message. 2173 // Propagate to the external try-catch only if we got an actual message.
2173 if (thread_local_top_.pending_message_obj_->IsTheHole()) return true; 2174 if (thread_local_top_.pending_message_obj_->IsTheHole(this)) return true;
2174 2175
2175 handler->message_obj_ = thread_local_top_.pending_message_obj_; 2176 handler->message_obj_ = thread_local_top_.pending_message_obj_;
2176 } 2177 }
2177 return true; 2178 return true;
2178 } 2179 }
2179 2180
2180 2181
2181 void Isolate::InitializeLoggingAndCounters() { 2182 void Isolate::InitializeLoggingAndCounters() {
2182 if (logger_ == NULL) { 2183 if (logger_ == NULL) {
2183 logger_ = new Logger(this); 2184 logger_ = new Logger(this);
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
2505 CodeTracer* Isolate::GetCodeTracer() { 2506 CodeTracer* Isolate::GetCodeTracer() {
2506 if (code_tracer() == NULL) set_code_tracer(new CodeTracer(id())); 2507 if (code_tracer() == NULL) set_code_tracer(new CodeTracer(id()));
2507 return code_tracer(); 2508 return code_tracer();
2508 } 2509 }
2509 2510
2510 Map* Isolate::get_initial_js_array_map(ElementsKind kind) { 2511 Map* Isolate::get_initial_js_array_map(ElementsKind kind) {
2511 if (IsFastElementsKind(kind)) { 2512 if (IsFastElementsKind(kind)) {
2512 DisallowHeapAllocation no_gc; 2513 DisallowHeapAllocation no_gc;
2513 Object* const initial_js_array_map = 2514 Object* const initial_js_array_map =
2514 context()->native_context()->get(Context::ArrayMapIndex(kind)); 2515 context()->native_context()->get(Context::ArrayMapIndex(kind));
2515 if (!initial_js_array_map->IsUndefined()) { 2516 if (!initial_js_array_map->IsUndefined(this)) {
2516 return Map::cast(initial_js_array_map); 2517 return Map::cast(initial_js_array_map);
2517 } 2518 }
2518 } 2519 }
2519 return nullptr; 2520 return nullptr;
2520 } 2521 }
2521 2522
2522 2523
2523 bool Isolate::use_crankshaft() const { 2524 bool Isolate::use_crankshaft() const {
2524 return FLAG_crankshaft && 2525 return FLAG_crankshaft &&
2525 !serializer_enabled_ && 2526 !serializer_enabled_ &&
2526 CpuFeatures::SupportsCrankshaft(); 2527 CpuFeatures::SupportsCrankshaft();
2527 } 2528 }
2528 2529
2529 bool Isolate::IsArrayOrObjectPrototype(Object* object) { 2530 bool Isolate::IsArrayOrObjectPrototype(Object* object) {
2530 Object* context = heap()->native_contexts_list(); 2531 Object* context = heap()->native_contexts_list();
2531 while (context != heap()->undefined_value()) { 2532 while (!context->IsUndefined(this)) {
2532 Context* current_context = Context::cast(context); 2533 Context* current_context = Context::cast(context);
2533 if (current_context->initial_object_prototype() == object || 2534 if (current_context->initial_object_prototype() == object ||
2534 current_context->initial_array_prototype() == object) { 2535 current_context->initial_array_prototype() == object) {
2535 return true; 2536 return true;
2536 } 2537 }
2537 context = current_context->next_context_link(); 2538 context = current_context->next_context_link();
2538 } 2539 }
2539 return false; 2540 return false;
2540 } 2541 }
2541 2542
2542 bool Isolate::IsInAnyContext(Object* object, uint32_t index) { 2543 bool Isolate::IsInAnyContext(Object* object, uint32_t index) {
2543 DisallowHeapAllocation no_gc; 2544 DisallowHeapAllocation no_gc;
2544 Object* context = heap()->native_contexts_list(); 2545 Object* context = heap()->native_contexts_list();
2545 while (context != heap()->undefined_value()) { 2546 while (!context->IsUndefined(this)) {
2546 Context* current_context = Context::cast(context); 2547 Context* current_context = Context::cast(context);
2547 if (current_context->get(index) == object) { 2548 if (current_context->get(index) == object) {
2548 return true; 2549 return true;
2549 } 2550 }
2550 context = current_context->next_context_link(); 2551 context = current_context->next_context_link();
2551 } 2552 }
2552 return false; 2553 return false;
2553 } 2554 }
2554 2555
2555 bool Isolate::IsFastArrayConstructorPrototypeChainIntact() { 2556 bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2619 #ifdef DEBUG 2620 #ifdef DEBUG
2620 Map* root_array_map = get_initial_js_array_map(GetInitialFastElementsKind()); 2621 Map* root_array_map = get_initial_js_array_map(GetInitialFastElementsKind());
2621 if (root_array_map == NULL) { 2622 if (root_array_map == NULL) {
2622 // Ignore the value of is_concat_spreadable during bootstrap. 2623 // Ignore the value of is_concat_spreadable during bootstrap.
2623 return !is_is_concat_spreadable_set; 2624 return !is_is_concat_spreadable_set;
2624 } 2625 }
2625 Handle<Object> array_prototype(array_function()->prototype(), this); 2626 Handle<Object> array_prototype(array_function()->prototype(), this);
2626 Handle<Symbol> key = factory()->is_concat_spreadable_symbol(); 2627 Handle<Symbol> key = factory()->is_concat_spreadable_symbol();
2627 Handle<Object> value; 2628 Handle<Object> value;
2628 LookupIterator it(array_prototype, key); 2629 LookupIterator it(array_prototype, key);
2629 if (it.IsFound() && !JSReceiver::GetDataProperty(&it)->IsUndefined()) { 2630 if (it.IsFound() && !JSReceiver::GetDataProperty(&it)->IsUndefined(this)) {
2630 // TODO(cbruni): Currently we do not revert if we unset the 2631 // TODO(cbruni): Currently we do not revert if we unset the
2631 // @@isConcatSpreadable property on Array.prototype or Object.prototype 2632 // @@isConcatSpreadable property on Array.prototype or Object.prototype
2632 // hence the reverse implication doesn't hold. 2633 // hence the reverse implication doesn't hold.
2633 DCHECK(is_is_concat_spreadable_set); 2634 DCHECK(is_is_concat_spreadable_set);
2634 return false; 2635 return false;
2635 } 2636 }
2636 #endif // DEBUG 2637 #endif // DEBUG
2637 2638
2638 return !is_is_concat_spreadable_set; 2639 return !is_is_concat_spreadable_set;
2639 } 2640 }
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
2825 Handle<FixedArray> queue(heap()->microtask_queue(), this); 2826 Handle<FixedArray> queue(heap()->microtask_queue(), this);
2826 int num_tasks = pending_microtask_count(); 2827 int num_tasks = pending_microtask_count();
2827 DCHECK(num_tasks <= queue->length()); 2828 DCHECK(num_tasks <= queue->length());
2828 if (num_tasks == 0) { 2829 if (num_tasks == 0) {
2829 queue = factory()->NewFixedArray(8); 2830 queue = factory()->NewFixedArray(8);
2830 heap()->set_microtask_queue(*queue); 2831 heap()->set_microtask_queue(*queue);
2831 } else if (num_tasks == queue->length()) { 2832 } else if (num_tasks == queue->length()) {
2832 queue = factory()->CopyFixedArrayAndGrow(queue, num_tasks); 2833 queue = factory()->CopyFixedArrayAndGrow(queue, num_tasks);
2833 heap()->set_microtask_queue(*queue); 2834 heap()->set_microtask_queue(*queue);
2834 } 2835 }
2835 DCHECK(queue->get(num_tasks)->IsUndefined()); 2836 DCHECK(queue->get(num_tasks)->IsUndefined(this));
2836 queue->set(num_tasks, *microtask); 2837 queue->set(num_tasks, *microtask);
2837 set_pending_microtask_count(num_tasks + 1); 2838 set_pending_microtask_count(num_tasks + 1);
2838 } 2839 }
2839 2840
2840 2841
2841 void Isolate::RunMicrotasks() { 2842 void Isolate::RunMicrotasks() {
2842 // Increase call depth to prevent recursive callbacks. 2843 // Increase call depth to prevent recursive callbacks.
2843 v8::Isolate::SuppressMicrotaskExecutionScope suppress( 2844 v8::Isolate::SuppressMicrotaskExecutionScope suppress(
2844 reinterpret_cast<v8::Isolate*>(this)); 2845 reinterpret_cast<v8::Isolate*>(this));
2845 is_running_microtasks_ = true; 2846 is_running_microtasks_ = true;
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
3064 // Then check whether this scope intercepts. 3065 // Then check whether this scope intercepts.
3065 if ((flag & intercept_mask_)) { 3066 if ((flag & intercept_mask_)) {
3066 intercepted_flags_ |= flag; 3067 intercepted_flags_ |= flag;
3067 return true; 3068 return true;
3068 } 3069 }
3069 return false; 3070 return false;
3070 } 3071 }
3071 3072
3072 } // namespace internal 3073 } // namespace internal
3073 } // namespace v8 3074 } // namespace v8
OLDNEW
« no previous file with comments | « src/interpreter/bytecode-generator.cc ('k') | src/isolate-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698