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

Side by Side Diff: src/runtime/runtime-internal.cc

Issue 2057543002: [runtime] Deprecate RUNTIME_ASSERT from internal ops. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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 | « no previous file | no next file » | 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"
11 #include "src/debug/debug.h" 11 #include "src/debug/debug.h"
12 #include "src/frames-inl.h" 12 #include "src/frames-inl.h"
13 #include "src/isolate-inl.h" 13 #include "src/isolate-inl.h"
14 #include "src/messages.h" 14 #include "src/messages.h"
15 #include "src/parsing/parser.h" 15 #include "src/parsing/parser.h"
16 #include "src/wasm/wasm-module.h" 16 #include "src/wasm/wasm-module.h"
17 17
18 namespace v8 { 18 namespace v8 {
19 namespace internal { 19 namespace internal {
20 20
21 RUNTIME_FUNCTION(Runtime_CheckIsBootstrapping) { 21 RUNTIME_FUNCTION(Runtime_CheckIsBootstrapping) {
22 SealHandleScope shs(isolate); 22 SealHandleScope shs(isolate);
23 DCHECK(args.length() == 0); 23 DCHECK(args.length() == 0);
24 RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); 24 CHECK(isolate->bootstrapper()->IsActive());
25 return isolate->heap()->undefined_value(); 25 return isolate->heap()->undefined_value();
26 } 26 }
27 27
28 28
29 RUNTIME_FUNCTION(Runtime_ExportFromRuntime) { 29 RUNTIME_FUNCTION(Runtime_ExportFromRuntime) {
30 HandleScope scope(isolate); 30 HandleScope scope(isolate);
31 DCHECK(args.length() == 1); 31 DCHECK(args.length() == 1);
32 CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0); 32 CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0);
33 RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); 33 CHECK(isolate->bootstrapper()->IsActive());
34 JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10, 34 JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10,
35 "ExportFromRuntime"); 35 "ExportFromRuntime");
36 Bootstrapper::ExportFromRuntime(isolate, container); 36 Bootstrapper::ExportFromRuntime(isolate, container);
37 JSObject::MigrateSlowToFast(container, 0, "ExportFromRuntime"); 37 JSObject::MigrateSlowToFast(container, 0, "ExportFromRuntime");
38 return *container; 38 return *container;
39 } 39 }
40 40
41 41
42 RUNTIME_FUNCTION(Runtime_ExportExperimentalFromRuntime) { 42 RUNTIME_FUNCTION(Runtime_ExportExperimentalFromRuntime) {
43 HandleScope scope(isolate); 43 HandleScope scope(isolate);
44 DCHECK(args.length() == 1); 44 DCHECK(args.length() == 1);
45 CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0); 45 CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0);
46 RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); 46 CHECK(isolate->bootstrapper()->IsActive());
47 JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10, 47 JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10,
48 "ExportExperimentalFromRuntime"); 48 "ExportExperimentalFromRuntime");
49 Bootstrapper::ExportExperimentalFromRuntime(isolate, container); 49 Bootstrapper::ExportExperimentalFromRuntime(isolate, container);
50 JSObject::MigrateSlowToFast(container, 0, "ExportExperimentalFromRuntime"); 50 JSObject::MigrateSlowToFast(container, 0, "ExportExperimentalFromRuntime");
51 return *container; 51 return *container;
52 } 52 }
53 53
54 54
55 RUNTIME_FUNCTION(Runtime_InstallToContext) { 55 RUNTIME_FUNCTION(Runtime_InstallToContext) {
56 HandleScope scope(isolate); 56 HandleScope scope(isolate);
57 DCHECK(args.length() == 1); 57 DCHECK(args.length() == 1);
58 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0); 58 CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
59 RUNTIME_ASSERT(array->HasFastElements()); 59 CHECK(array->HasFastElements());
60 RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); 60 CHECK(isolate->bootstrapper()->IsActive());
61 Handle<Context> native_context = isolate->native_context(); 61 Handle<Context> native_context = isolate->native_context();
62 Handle<FixedArray> fixed_array(FixedArray::cast(array->elements())); 62 Handle<FixedArray> fixed_array(FixedArray::cast(array->elements()));
63 int length = Smi::cast(array->length())->value(); 63 int length = Smi::cast(array->length())->value();
64 for (int i = 0; i < length; i += 2) { 64 for (int i = 0; i < length; i += 2) {
65 RUNTIME_ASSERT(fixed_array->get(i)->IsString()); 65 CHECK(fixed_array->get(i)->IsString());
66 Handle<String> name(String::cast(fixed_array->get(i))); 66 Handle<String> name(String::cast(fixed_array->get(i)));
67 RUNTIME_ASSERT(fixed_array->get(i + 1)->IsJSObject()); 67 CHECK(fixed_array->get(i + 1)->IsJSObject());
68 Handle<JSObject> object(JSObject::cast(fixed_array->get(i + 1))); 68 Handle<JSObject> object(JSObject::cast(fixed_array->get(i + 1)));
69 int index = Context::ImportedFieldIndexForName(name); 69 int index = Context::ImportedFieldIndexForName(name);
70 if (index == Context::kNotFound) { 70 if (index == Context::kNotFound) {
71 index = Context::IntrinsicIndexForName(name); 71 index = Context::IntrinsicIndexForName(name);
72 } 72 }
73 RUNTIME_ASSERT(index != Context::kNotFound); 73 CHECK(index != Context::kNotFound);
74 native_context->set(index, *object); 74 native_context->set(index, *object);
75 } 75 }
76 return isolate->heap()->undefined_value(); 76 return isolate->heap()->undefined_value();
77 } 77 }
78 78
79 79
80 RUNTIME_FUNCTION(Runtime_Throw) { 80 RUNTIME_FUNCTION(Runtime_Throw) {
81 HandleScope scope(isolate); 81 HandleScope scope(isolate);
82 DCHECK(args.length() == 1); 82 DCHECK(args.length() == 1);
83 return isolate->Throw(args[0]); 83 return isolate->Throw(args[0]);
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
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( 276 CHECK(JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate));
277 JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate));
278 isolate->ReportPromiseReject(promise, Handle<Object>(), 277 isolate->ReportPromiseReject(promise, Handle<Object>(),
279 v8::kPromiseHandlerAddedAfterReject); 278 v8::kPromiseHandlerAddedAfterReject);
280 return isolate->heap()->undefined_value(); 279 return isolate->heap()->undefined_value();
281 } 280 }
282 281
283 282
284 RUNTIME_FUNCTION(Runtime_StackGuard) { 283 RUNTIME_FUNCTION(Runtime_StackGuard) {
285 SealHandleScope shs(isolate); 284 SealHandleScope shs(isolate);
286 DCHECK(args.length() == 0); 285 DCHECK(args.length() == 0);
287 286
(...skipping 11 matching lines...) Expand all
299 SealHandleScope shs(isolate); 298 SealHandleScope shs(isolate);
300 DCHECK(args.length() == 0); 299 DCHECK(args.length() == 0);
301 return isolate->stack_guard()->HandleInterrupts(); 300 return isolate->stack_guard()->HandleInterrupts();
302 } 301 }
303 302
304 303
305 RUNTIME_FUNCTION(Runtime_AllocateInNewSpace) { 304 RUNTIME_FUNCTION(Runtime_AllocateInNewSpace) {
306 HandleScope scope(isolate); 305 HandleScope scope(isolate);
307 DCHECK(args.length() == 1); 306 DCHECK(args.length() == 1);
308 CONVERT_SMI_ARG_CHECKED(size, 0); 307 CONVERT_SMI_ARG_CHECKED(size, 0);
309 RUNTIME_ASSERT(IsAligned(size, kPointerSize)); 308 CHECK(IsAligned(size, kPointerSize));
310 RUNTIME_ASSERT(size > 0); 309 CHECK(size > 0);
311 RUNTIME_ASSERT(size <= Page::kMaxRegularHeapObjectSize); 310 CHECK(size <= Page::kMaxRegularHeapObjectSize);
312 return *isolate->factory()->NewFillerObject(size, false, NEW_SPACE); 311 return *isolate->factory()->NewFillerObject(size, false, NEW_SPACE);
313 } 312 }
314 313
315 314
316 RUNTIME_FUNCTION(Runtime_AllocateInTargetSpace) { 315 RUNTIME_FUNCTION(Runtime_AllocateInTargetSpace) {
317 HandleScope scope(isolate); 316 HandleScope scope(isolate);
318 DCHECK(args.length() == 2); 317 DCHECK(args.length() == 2);
319 CONVERT_SMI_ARG_CHECKED(size, 0); 318 CONVERT_SMI_ARG_CHECKED(size, 0);
320 CONVERT_SMI_ARG_CHECKED(flags, 1); 319 CONVERT_SMI_ARG_CHECKED(flags, 1);
321 RUNTIME_ASSERT(IsAligned(size, kPointerSize)); 320 CHECK(IsAligned(size, kPointerSize));
322 RUNTIME_ASSERT(size > 0); 321 CHECK(size > 0);
323 RUNTIME_ASSERT(size <= Page::kMaxRegularHeapObjectSize); 322 CHECK(size <= Page::kMaxRegularHeapObjectSize);
324 bool double_align = AllocateDoubleAlignFlag::decode(flags); 323 bool double_align = AllocateDoubleAlignFlag::decode(flags);
325 AllocationSpace space = AllocateTargetSpace::decode(flags); 324 AllocationSpace space = AllocateTargetSpace::decode(flags);
326 return *isolate->factory()->NewFillerObject(size, double_align, space); 325 return *isolate->factory()->NewFillerObject(size, double_align, space);
327 } 326 }
328 327
329 RUNTIME_FUNCTION(Runtime_AllocateSeqOneByteString) { 328 RUNTIME_FUNCTION(Runtime_AllocateSeqOneByteString) {
330 HandleScope scope(isolate); 329 HandleScope scope(isolate);
331 DCHECK_EQ(1, args.length()); 330 DCHECK_EQ(1, args.length());
332 CONVERT_SMI_ARG_CHECKED(length, 0); 331 CONVERT_SMI_ARG_CHECKED(length, 0);
333 Handle<SeqOneByteString> result; 332 Handle<SeqOneByteString> result;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 DCHECK(args.length() == 4); 387 DCHECK(args.length() == 4);
389 CONVERT_INT32_ARG_CHECKED(template_index, 0); 388 CONVERT_INT32_ARG_CHECKED(template_index, 0);
390 CONVERT_ARG_HANDLE_CHECKED(String, arg0, 1); 389 CONVERT_ARG_HANDLE_CHECKED(String, arg0, 1);
391 CONVERT_ARG_HANDLE_CHECKED(String, arg1, 2); 390 CONVERT_ARG_HANDLE_CHECKED(String, arg1, 2);
392 CONVERT_ARG_HANDLE_CHECKED(String, arg2, 3); 391 CONVERT_ARG_HANDLE_CHECKED(String, arg2, 3);
393 isolate->native_context()->IncrementErrorsThrown(); 392 isolate->native_context()->IncrementErrorsThrown();
394 RETURN_RESULT_OR_FAILURE(isolate, MessageTemplate::FormatMessage( 393 RETURN_RESULT_OR_FAILURE(isolate, MessageTemplate::FormatMessage(
395 template_index, arg0, arg1, arg2)); 394 template_index, arg0, arg1, arg2));
396 } 395 }
397 396
398 #define CALLSITE_GET(NAME, RETURN) \ 397 #define CALLSITE_GET(NAME, RETURN) \
399 RUNTIME_FUNCTION(Runtime_CallSite##NAME##RT) { \ 398 RUNTIME_FUNCTION(Runtime_CallSite##NAME##RT) { \
400 HandleScope scope(isolate); \ 399 HandleScope scope(isolate); \
401 DCHECK(args.length() == 1); \ 400 DCHECK(args.length() == 1); \
402 CONVERT_ARG_HANDLE_CHECKED(JSObject, call_site_obj, 0); \ 401 CONVERT_ARG_HANDLE_CHECKED(JSObject, call_site_obj, 0); \
403 Handle<String> result; \ 402 Handle<String> result; \
404 CallSite call_site(isolate, call_site_obj); \ 403 CallSite call_site(isolate, call_site_obj); \
405 RUNTIME_ASSERT(call_site.IsJavaScript() || call_site.IsWasm()); \ 404 CHECK(call_site.IsJavaScript() || call_site.IsWasm()); \
406 return RETURN(call_site.NAME(), isolate); \ 405 return RETURN(call_site.NAME(), isolate); \
407 } 406 }
408 407
409 static inline Object* ReturnDereferencedHandle(Handle<Object> obj, 408 static inline Object* ReturnDereferencedHandle(Handle<Object> obj,
410 Isolate* isolate) { 409 Isolate* isolate) {
411 return *obj; 410 return *obj;
412 } 411 }
413 412
414 413
415 static inline Object* ReturnPositiveNumberOrNull(int value, Isolate* isolate) { 414 static inline Object* ReturnPositiveNumberOrNull(int value, Isolate* isolate) {
416 if (value >= 0) return *isolate->factory()->NewNumberFromInt(value); 415 if (value >= 0) return *isolate->factory()->NewNumberFromInt(value);
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 HandleScope scope(isolate); 619 HandleScope scope(isolate);
621 DCHECK_EQ(1, args.length()); 620 DCHECK_EQ(1, args.length());
622 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 621 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
623 bool is_wasm_object = object->IsJSObject() && 622 bool is_wasm_object = object->IsJSObject() &&
624 wasm::IsWasmObject(Handle<JSObject>::cast(object)); 623 wasm::IsWasmObject(Handle<JSObject>::cast(object));
625 return *isolate->factory()->ToBoolean(is_wasm_object); 624 return *isolate->factory()->ToBoolean(is_wasm_object);
626 } 625 }
627 626
628 } // namespace internal 627 } // namespace internal
629 } // namespace v8 628 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698