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

Side by Side Diff: src/runtime/runtime-internal.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/runtime/runtime-i18n.cc ('k') | src/runtime/runtime-literals.cc » ('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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/runtime/runtime-utils.h" 5 #include "src/runtime/runtime-utils.h"
6 6
7 #include "src/arguments.h" 7 #include "src/arguments.h"
8 #include "src/ast/prettyprinter.h" 8 #include "src/ast/prettyprinter.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/conversions.h" 10 #include "src/conversions.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 252
253 RUNTIME_FUNCTION(Runtime_PromiseRejectEvent) { 253 RUNTIME_FUNCTION(Runtime_PromiseRejectEvent) {
254 DCHECK(args.length() == 3); 254 DCHECK(args.length() == 3);
255 HandleScope scope(isolate); 255 HandleScope scope(isolate);
256 CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0); 256 CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0);
257 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1); 257 CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
258 CONVERT_BOOLEAN_ARG_CHECKED(debug_event, 2); 258 CONVERT_BOOLEAN_ARG_CHECKED(debug_event, 2);
259 if (debug_event) isolate->debug()->OnPromiseReject(promise, value); 259 if (debug_event) isolate->debug()->OnPromiseReject(promise, value);
260 Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol(); 260 Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol();
261 // Do not report if we actually have a handler. 261 // Do not report if we actually have a handler.
262 if (JSReceiver::GetDataProperty(promise, key)->IsUndefined()) { 262 if (JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate)) {
263 isolate->ReportPromiseReject(promise, value, 263 isolate->ReportPromiseReject(promise, value,
264 v8::kPromiseRejectWithNoHandler); 264 v8::kPromiseRejectWithNoHandler);
265 } 265 }
266 return isolate->heap()->undefined_value(); 266 return isolate->heap()->undefined_value();
267 } 267 }
268 268
269 269
270 RUNTIME_FUNCTION(Runtime_PromiseRevokeReject) { 270 RUNTIME_FUNCTION(Runtime_PromiseRevokeReject) {
271 DCHECK(args.length() == 1); 271 DCHECK(args.length() == 1);
272 HandleScope scope(isolate); 272 HandleScope scope(isolate);
273 CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0); 273 CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0);
274 Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol(); 274 Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol();
275 // At this point, no revocation has been issued before 275 // At this point, no revocation has been issued before
276 RUNTIME_ASSERT(JSReceiver::GetDataProperty(promise, key)->IsUndefined()); 276 RUNTIME_ASSERT(
277 JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate));
277 isolate->ReportPromiseReject(promise, Handle<Object>(), 278 isolate->ReportPromiseReject(promise, Handle<Object>(),
278 v8::kPromiseHandlerAddedAfterReject); 279 v8::kPromiseHandlerAddedAfterReject);
279 return isolate->heap()->undefined_value(); 280 return isolate->heap()->undefined_value();
280 } 281 }
281 282
282 283
283 RUNTIME_FUNCTION(Runtime_StackGuard) { 284 RUNTIME_FUNCTION(Runtime_StackGuard) {
284 SealHandleScope shs(isolate); 285 SealHandleScope shs(isolate);
285 DCHECK(args.length() == 0); 286 DCHECK(args.length() == 0);
286 287
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 445
445 namespace { 446 namespace {
446 447
447 bool ComputeLocation(Isolate* isolate, MessageLocation* target) { 448 bool ComputeLocation(Isolate* isolate, MessageLocation* target) {
448 JavaScriptFrameIterator it(isolate); 449 JavaScriptFrameIterator it(isolate);
449 if (!it.done()) { 450 if (!it.done()) {
450 JavaScriptFrame* frame = it.frame(); 451 JavaScriptFrame* frame = it.frame();
451 JSFunction* fun = frame->function(); 452 JSFunction* fun = frame->function();
452 Object* script = fun->shared()->script(); 453 Object* script = fun->shared()->script();
453 if (script->IsScript() && 454 if (script->IsScript() &&
454 !(Script::cast(script)->source()->IsUndefined())) { 455 !(Script::cast(script)->source()->IsUndefined(isolate))) {
455 Handle<Script> casted_script(Script::cast(script)); 456 Handle<Script> casted_script(Script::cast(script), isolate);
456 // Compute the location from the function and the relocation info of the 457 // Compute the location from the function and the relocation info of the
457 // baseline code. For optimized code this will use the deoptimization 458 // baseline code. For optimized code this will use the deoptimization
458 // information to get canonical location information. 459 // information to get canonical location information.
459 List<FrameSummary> frames(FLAG_max_inlining_levels + 1); 460 List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
460 it.frame()->Summarize(&frames); 461 it.frame()->Summarize(&frames);
461 FrameSummary& summary = frames.last(); 462 FrameSummary& summary = frames.last();
462 int pos = summary.abstract_code()->SourcePosition(summary.code_offset()); 463 int pos = summary.abstract_code()->SourcePosition(summary.code_offset());
463 *target = MessageLocation(casted_script, pos, pos + 1, handle(fun)); 464 *target = MessageLocation(casted_script, pos, pos + 1, handle(fun));
464 return true; 465 return true;
465 } 466 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 HandleScope scope(isolate); 620 HandleScope scope(isolate);
620 DCHECK_EQ(1, args.length()); 621 DCHECK_EQ(1, args.length());
621 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 622 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
622 bool is_wasm_object = object->IsJSObject() && 623 bool is_wasm_object = object->IsJSObject() &&
623 wasm::IsWasmObject(Handle<JSObject>::cast(object)); 624 wasm::IsWasmObject(Handle<JSObject>::cast(object));
624 return *isolate->factory()->ToBoolean(is_wasm_object); 625 return *isolate->factory()->ToBoolean(is_wasm_object);
625 } 626 }
626 627
627 } // namespace internal 628 } // namespace internal
628 } // namespace v8 629 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime-i18n.cc ('k') | src/runtime/runtime-literals.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698