| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 601 CONVERT_ARG_HANDLE_CHECKED(FixedArray, elements, 2); | 601 CONVERT_ARG_HANDLE_CHECKED(FixedArray, elements, 2); |
| 602 | 602 |
| 603 return CreateArrayLiteralImpl(isolate, literals, literals_index, elements, | 603 return CreateArrayLiteralImpl(isolate, literals, literals_index, elements, |
| 604 ArrayLiteral::kShallowElements); | 604 ArrayLiteral::kShallowElements); |
| 605 } | 605 } |
| 606 | 606 |
| 607 | 607 |
| 608 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateSymbol) { | 608 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateSymbol) { |
| 609 HandleScope scope(isolate); | 609 HandleScope scope(isolate); |
| 610 ASSERT(args.length() == 1); | 610 ASSERT(args.length() == 1); |
| 611 Handle<Object> name(args[0], isolate); | 611 Handle<Object> name = args.at<Object>(0); |
| 612 RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); | 612 RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); |
| 613 Symbol* symbol; | 613 Handle<Symbol> symbol = isolate->factory()->NewSymbol(); |
| 614 MaybeObject* maybe = isolate->heap()->AllocateSymbol(); | |
| 615 if (!maybe->To(&symbol)) return maybe; | |
| 616 if (name->IsString()) symbol->set_name(*name); | 614 if (name->IsString()) symbol->set_name(*name); |
| 617 return symbol; | 615 return *symbol; |
| 618 } | 616 } |
| 619 | 617 |
| 620 | 618 |
| 621 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreatePrivateSymbol) { | 619 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreatePrivateSymbol) { |
| 622 HandleScope scope(isolate); | 620 HandleScope scope(isolate); |
| 623 ASSERT(args.length() == 1); | 621 ASSERT(args.length() == 1); |
| 624 Handle<Object> name(args[0], isolate); | 622 Handle<Object> name = args.at<Object>(0); |
| 625 RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); | 623 RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); |
| 626 Symbol* symbol; | 624 Handle<Symbol> symbol = isolate->factory()->NewPrivateSymbol(); |
| 627 MaybeObject* maybe = isolate->heap()->AllocatePrivateSymbol(); | |
| 628 if (!maybe->To(&symbol)) return maybe; | |
| 629 if (name->IsString()) symbol->set_name(*name); | 625 if (name->IsString()) symbol->set_name(*name); |
| 630 return symbol; | 626 return *symbol; |
| 631 } | 627 } |
| 632 | 628 |
| 633 | 629 |
| 634 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateGlobalPrivateSymbol) { | 630 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateGlobalPrivateSymbol) { |
| 635 HandleScope scope(isolate); | 631 HandleScope scope(isolate); |
| 636 ASSERT(args.length() == 1); | 632 ASSERT(args.length() == 1); |
| 637 CONVERT_ARG_HANDLE_CHECKED(String, name, 0); | 633 CONVERT_ARG_HANDLE_CHECKED(String, name, 0); |
| 638 Handle<JSObject> registry = isolate->GetSymbolRegistry(); | 634 Handle<JSObject> registry = isolate->GetSymbolRegistry(); |
| 639 Handle<String> part = isolate->factory()->private_intern_string(); | 635 Handle<String> part = isolate->factory()->private_intern_string(); |
| 640 Handle<Object> privates; | 636 Handle<Object> privates; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 | 675 |
| 680 RUNTIME_FUNCTION(MaybeObject*, Runtime_SymbolIsPrivate) { | 676 RUNTIME_FUNCTION(MaybeObject*, Runtime_SymbolIsPrivate) { |
| 681 SealHandleScope shs(isolate); | 677 SealHandleScope shs(isolate); |
| 682 ASSERT(args.length() == 1); | 678 ASSERT(args.length() == 1); |
| 683 CONVERT_ARG_CHECKED(Symbol, symbol, 0); | 679 CONVERT_ARG_CHECKED(Symbol, symbol, 0); |
| 684 return isolate->heap()->ToBoolean(symbol->is_private()); | 680 return isolate->heap()->ToBoolean(symbol->is_private()); |
| 685 } | 681 } |
| 686 | 682 |
| 687 | 683 |
| 688 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSProxy) { | 684 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSProxy) { |
| 689 SealHandleScope shs(isolate); | 685 HandleScope scope(isolate); |
| 690 ASSERT(args.length() == 2); | 686 ASSERT(args.length() == 2); |
| 691 CONVERT_ARG_CHECKED(JSReceiver, handler, 0); | 687 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, handler, 0); |
| 692 Object* prototype = args[1]; | 688 Handle<Object> prototype = args.at<Object>(1); |
| 693 Object* used_prototype = | 689 if (!prototype->IsJSReceiver()) prototype = isolate->factory()->null_value(); |
| 694 prototype->IsJSReceiver() ? prototype : isolate->heap()->null_value(); | 690 return *isolate->factory()->NewJSProxy(handler, prototype); |
| 695 return isolate->heap()->AllocateJSProxy(handler, used_prototype); | |
| 696 } | 691 } |
| 697 | 692 |
| 698 | 693 |
| 699 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSFunctionProxy) { | 694 RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSFunctionProxy) { |
| 700 SealHandleScope shs(isolate); | 695 HandleScope scope(isolate); |
| 701 ASSERT(args.length() == 4); | 696 ASSERT(args.length() == 4); |
| 702 CONVERT_ARG_CHECKED(JSReceiver, handler, 0); | 697 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, handler, 0); |
| 703 Object* call_trap = args[1]; | 698 Handle<Object> call_trap = args.at<Object>(1); |
| 704 RUNTIME_ASSERT(call_trap->IsJSFunction() || call_trap->IsJSFunctionProxy()); | 699 RUNTIME_ASSERT(call_trap->IsJSFunction() || call_trap->IsJSFunctionProxy()); |
| 705 CONVERT_ARG_CHECKED(JSFunction, construct_trap, 2); | 700 CONVERT_ARG_HANDLE_CHECKED(JSFunction, construct_trap, 2); |
| 706 Object* prototype = args[3]; | 701 Handle<Object> prototype = args.at<Object>(3); |
| 707 Object* used_prototype = | 702 if (!prototype->IsJSReceiver()) prototype = isolate->factory()->null_value(); |
| 708 prototype->IsJSReceiver() ? prototype : isolate->heap()->null_value(); | 703 return *isolate->factory()->NewJSFunctionProxy( |
| 709 return isolate->heap()->AllocateJSFunctionProxy( | 704 handler, call_trap, construct_trap, prototype); |
| 710 handler, call_trap, construct_trap, used_prototype); | |
| 711 } | 705 } |
| 712 | 706 |
| 713 | 707 |
| 714 RUNTIME_FUNCTION(MaybeObject*, Runtime_IsJSProxy) { | 708 RUNTIME_FUNCTION(MaybeObject*, Runtime_IsJSProxy) { |
| 715 SealHandleScope shs(isolate); | 709 SealHandleScope shs(isolate); |
| 716 ASSERT(args.length() == 1); | 710 ASSERT(args.length() == 1); |
| 717 Object* obj = args[0]; | 711 Object* obj = args[0]; |
| 718 return isolate->heap()->ToBoolean(obj->IsJSProxy()); | 712 return isolate->heap()->ToBoolean(obj->IsJSProxy()); |
| 719 } | 713 } |
| 720 | 714 |
| (...skipping 2393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3114 generator->set_receiver(frame->receiver()); | 3108 generator->set_receiver(frame->receiver()); |
| 3115 generator->set_continuation(0); | 3109 generator->set_continuation(0); |
| 3116 generator->set_operand_stack(isolate->heap()->empty_fixed_array()); | 3110 generator->set_operand_stack(isolate->heap()->empty_fixed_array()); |
| 3117 generator->set_stack_handler_index(-1); | 3111 generator->set_stack_handler_index(-1); |
| 3118 | 3112 |
| 3119 return *generator; | 3113 return *generator; |
| 3120 } | 3114 } |
| 3121 | 3115 |
| 3122 | 3116 |
| 3123 RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_SuspendJSGeneratorObject) { | 3117 RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_SuspendJSGeneratorObject) { |
| 3124 SealHandleScope shs(isolate); | 3118 HandleScope handle_scope(isolate); |
| 3125 ASSERT(args.length() == 1); | 3119 ASSERT(args.length() == 1); |
| 3126 CONVERT_ARG_CHECKED(JSGeneratorObject, generator_object, 0); | 3120 CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator_object, 0); |
| 3127 | 3121 |
| 3128 JavaScriptFrameIterator stack_iterator(isolate); | 3122 JavaScriptFrameIterator stack_iterator(isolate); |
| 3129 JavaScriptFrame* frame = stack_iterator.frame(); | 3123 JavaScriptFrame* frame = stack_iterator.frame(); |
| 3130 RUNTIME_ASSERT(frame->function()->shared()->is_generator()); | 3124 RUNTIME_ASSERT(frame->function()->shared()->is_generator()); |
| 3131 ASSERT_EQ(frame->function(), generator_object->function()); | 3125 ASSERT_EQ(frame->function(), generator_object->function()); |
| 3132 | 3126 |
| 3133 // The caller should have saved the context and continuation already. | 3127 // The caller should have saved the context and continuation already. |
| 3134 ASSERT_EQ(generator_object->context(), Context::cast(frame->context())); | 3128 ASSERT_EQ(generator_object->context(), Context::cast(frame->context())); |
| 3135 ASSERT_LT(0, generator_object->continuation()); | 3129 ASSERT_LT(0, generator_object->continuation()); |
| 3136 | 3130 |
| 3137 // We expect there to be at least two values on the operand stack: the return | 3131 // We expect there to be at least two values on the operand stack: the return |
| 3138 // value of the yield expression, and the argument to this runtime call. | 3132 // value of the yield expression, and the argument to this runtime call. |
| 3139 // Neither of those should be saved. | 3133 // Neither of those should be saved. |
| 3140 int operands_count = frame->ComputeOperandsCount(); | 3134 int operands_count = frame->ComputeOperandsCount(); |
| 3141 ASSERT_GE(operands_count, 2); | 3135 ASSERT_GE(operands_count, 2); |
| 3142 operands_count -= 2; | 3136 operands_count -= 2; |
| 3143 | 3137 |
| 3144 if (operands_count == 0) { | 3138 if (operands_count == 0) { |
| 3145 // Although it's semantically harmless to call this function with an | 3139 // Although it's semantically harmless to call this function with an |
| 3146 // operands_count of zero, it is also unnecessary. | 3140 // operands_count of zero, it is also unnecessary. |
| 3147 ASSERT_EQ(generator_object->operand_stack(), | 3141 ASSERT_EQ(generator_object->operand_stack(), |
| 3148 isolate->heap()->empty_fixed_array()); | 3142 isolate->heap()->empty_fixed_array()); |
| 3149 ASSERT_EQ(generator_object->stack_handler_index(), -1); | 3143 ASSERT_EQ(generator_object->stack_handler_index(), -1); |
| 3150 // If there are no operands on the stack, there shouldn't be a handler | 3144 // If there are no operands on the stack, there shouldn't be a handler |
| 3151 // active either. | 3145 // active either. |
| 3152 ASSERT(!frame->HasHandler()); | 3146 ASSERT(!frame->HasHandler()); |
| 3153 } else { | 3147 } else { |
| 3154 int stack_handler_index = -1; | 3148 int stack_handler_index = -1; |
| 3155 MaybeObject* alloc = isolate->heap()->AllocateFixedArray(operands_count); | 3149 Handle<FixedArray> operand_stack = |
| 3156 FixedArray* operand_stack; | 3150 isolate->factory()->NewFixedArray(operands_count); |
| 3157 if (!alloc->To(&operand_stack)) return alloc; | 3151 frame->SaveOperandStack(*operand_stack, &stack_handler_index); |
| 3158 frame->SaveOperandStack(operand_stack, &stack_handler_index); | 3152 generator_object->set_operand_stack(*operand_stack); |
| 3159 generator_object->set_operand_stack(operand_stack); | |
| 3160 generator_object->set_stack_handler_index(stack_handler_index); | 3153 generator_object->set_stack_handler_index(stack_handler_index); |
| 3161 } | 3154 } |
| 3162 | 3155 |
| 3163 return isolate->heap()->undefined_value(); | 3156 return isolate->heap()->undefined_value(); |
| 3164 } | 3157 } |
| 3165 | 3158 |
| 3166 | 3159 |
| 3167 // Note that this function is the slow path for resuming generators. It is only | 3160 // Note that this function is the slow path for resuming generators. It is only |
| 3168 // called if the suspended activation had operands on the stack, stack handlers | 3161 // called if the suspended activation had operands on the stack, stack handlers |
| 3169 // needing rewinding, or if the resume should throw an exception. The fast path | 3162 // needing rewinding, or if the resume should throw an exception. The fast path |
| (...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4765 return SearchRegExpMultiple<false>( | 4758 return SearchRegExpMultiple<false>( |
| 4766 isolate, subject, regexp, last_match_info, result_array); | 4759 isolate, subject, regexp, last_match_info, result_array); |
| 4767 } else { | 4760 } else { |
| 4768 return SearchRegExpMultiple<true>( | 4761 return SearchRegExpMultiple<true>( |
| 4769 isolate, subject, regexp, last_match_info, result_array); | 4762 isolate, subject, regexp, last_match_info, result_array); |
| 4770 } | 4763 } |
| 4771 } | 4764 } |
| 4772 | 4765 |
| 4773 | 4766 |
| 4774 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToRadixString) { | 4767 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToRadixString) { |
| 4775 SealHandleScope shs(isolate); | 4768 HandleScope scope(isolate); |
| 4776 ASSERT(args.length() == 2); | 4769 ASSERT(args.length() == 2); |
| 4777 CONVERT_SMI_ARG_CHECKED(radix, 1); | 4770 CONVERT_SMI_ARG_CHECKED(radix, 1); |
| 4778 RUNTIME_ASSERT(2 <= radix && radix <= 36); | 4771 RUNTIME_ASSERT(2 <= radix && radix <= 36); |
| 4779 | 4772 |
| 4780 // Fast case where the result is a one character string. | 4773 // Fast case where the result is a one character string. |
| 4781 if (args[0]->IsSmi()) { | 4774 if (args[0]->IsSmi()) { |
| 4782 int value = args.smi_at(0); | 4775 int value = args.smi_at(0); |
| 4783 if (value >= 0 && value < radix) { | 4776 if (value >= 0 && value < radix) { |
| 4784 // Character array used for conversion. | 4777 // Character array used for conversion. |
| 4785 static const char kCharTable[] = "0123456789abcdefghijklmnopqrstuvwxyz"; | 4778 static const char kCharTable[] = "0123456789abcdefghijklmnopqrstuvwxyz"; |
| 4786 return isolate->heap()-> | 4779 return *isolate->factory()-> |
| 4787 LookupSingleCharacterStringFromCode(kCharTable[value]); | 4780 LookupSingleCharacterStringFromCode(kCharTable[value]); |
| 4788 } | 4781 } |
| 4789 } | 4782 } |
| 4790 | 4783 |
| 4791 // Slow case. | 4784 // Slow case. |
| 4792 CONVERT_DOUBLE_ARG_CHECKED(value, 0); | 4785 CONVERT_DOUBLE_ARG_CHECKED(value, 0); |
| 4793 if (std::isnan(value)) { | 4786 if (std::isnan(value)) { |
| 4794 return *isolate->factory()->nan_string(); | 4787 return isolate->heap()->nan_string(); |
| 4795 } | 4788 } |
| 4796 if (std::isinf(value)) { | 4789 if (std::isinf(value)) { |
| 4797 if (value < 0) { | 4790 if (value < 0) { |
| 4798 return *isolate->factory()->minus_infinity_string(); | 4791 return isolate->heap()->minus_infinity_string(); |
| 4799 } | 4792 } |
| 4800 return *isolate->factory()->infinity_string(); | 4793 return isolate->heap()->infinity_string(); |
| 4801 } | 4794 } |
| 4802 char* str = DoubleToRadixCString(value, radix); | 4795 char* str = DoubleToRadixCString(value, radix); |
| 4803 MaybeObject* result = | 4796 Handle<String> result = |
| 4804 isolate->heap()->AllocateStringFromOneByte(CStrVector(str)); | 4797 isolate->factory()->NewStringFromOneByte(OneByteVector(str)); |
| 4805 DeleteArray(str); | 4798 DeleteArray(str); |
| 4806 return result; | 4799 return *result; |
| 4807 } | 4800 } |
| 4808 | 4801 |
| 4809 | 4802 |
| 4810 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToFixed) { | 4803 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToFixed) { |
| 4811 SealHandleScope shs(isolate); | 4804 HandleScope scope(isolate); |
| 4812 ASSERT(args.length() == 2); | 4805 ASSERT(args.length() == 2); |
| 4813 | 4806 |
| 4814 CONVERT_DOUBLE_ARG_CHECKED(value, 0); | 4807 CONVERT_DOUBLE_ARG_CHECKED(value, 0); |
| 4815 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); | 4808 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); |
| 4816 int f = FastD2IChecked(f_number); | 4809 int f = FastD2IChecked(f_number); |
| 4817 RUNTIME_ASSERT(f >= 0); | 4810 RUNTIME_ASSERT(f >= 0); |
| 4818 char* str = DoubleToFixedCString(value, f); | 4811 char* str = DoubleToFixedCString(value, f); |
| 4819 MaybeObject* res = | 4812 Handle<String> result = |
| 4820 isolate->heap()->AllocateStringFromOneByte(CStrVector(str)); | 4813 isolate->factory()->NewStringFromOneByte(OneByteVector(str)); |
| 4821 DeleteArray(str); | 4814 DeleteArray(str); |
| 4822 return res; | 4815 return *result; |
| 4823 } | 4816 } |
| 4824 | 4817 |
| 4825 | 4818 |
| 4826 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToExponential) { | 4819 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToExponential) { |
| 4827 SealHandleScope shs(isolate); | 4820 HandleScope scope(isolate); |
| 4828 ASSERT(args.length() == 2); | 4821 ASSERT(args.length() == 2); |
| 4829 | 4822 |
| 4830 CONVERT_DOUBLE_ARG_CHECKED(value, 0); | 4823 CONVERT_DOUBLE_ARG_CHECKED(value, 0); |
| 4831 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); | 4824 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); |
| 4832 int f = FastD2IChecked(f_number); | 4825 int f = FastD2IChecked(f_number); |
| 4833 RUNTIME_ASSERT(f >= -1 && f <= 20); | 4826 RUNTIME_ASSERT(f >= -1 && f <= 20); |
| 4834 char* str = DoubleToExponentialCString(value, f); | 4827 char* str = DoubleToExponentialCString(value, f); |
| 4835 MaybeObject* res = | 4828 Handle<String> result = |
| 4836 isolate->heap()->AllocateStringFromOneByte(CStrVector(str)); | 4829 isolate->factory()->NewStringFromOneByte(OneByteVector(str)); |
| 4837 DeleteArray(str); | 4830 DeleteArray(str); |
| 4838 return res; | 4831 return *result; |
| 4839 } | 4832 } |
| 4840 | 4833 |
| 4841 | 4834 |
| 4842 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToPrecision) { | 4835 RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToPrecision) { |
| 4843 SealHandleScope shs(isolate); | 4836 HandleScope scope(isolate); |
| 4844 ASSERT(args.length() == 2); | 4837 ASSERT(args.length() == 2); |
| 4845 | 4838 |
| 4846 CONVERT_DOUBLE_ARG_CHECKED(value, 0); | 4839 CONVERT_DOUBLE_ARG_CHECKED(value, 0); |
| 4847 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); | 4840 CONVERT_DOUBLE_ARG_CHECKED(f_number, 1); |
| 4848 int f = FastD2IChecked(f_number); | 4841 int f = FastD2IChecked(f_number); |
| 4849 RUNTIME_ASSERT(f >= 1 && f <= 21); | 4842 RUNTIME_ASSERT(f >= 1 && f <= 21); |
| 4850 char* str = DoubleToPrecisionCString(value, f); | 4843 char* str = DoubleToPrecisionCString(value, f); |
| 4851 MaybeObject* res = | 4844 Handle<String> result = |
| 4852 isolate->heap()->AllocateStringFromOneByte(CStrVector(str)); | 4845 isolate->factory()->NewStringFromOneByte(OneByteVector(str)); |
| 4853 DeleteArray(str); | 4846 DeleteArray(str); |
| 4854 return res; | 4847 return *result; |
| 4855 } | 4848 } |
| 4856 | 4849 |
| 4857 | 4850 |
| 4858 RUNTIME_FUNCTION(MaybeObject*, Runtime_IsValidSmi) { | 4851 RUNTIME_FUNCTION(MaybeObject*, Runtime_IsValidSmi) { |
| 4859 HandleScope shs(isolate); | 4852 SealHandleScope shs(isolate); |
| 4860 ASSERT(args.length() == 1); | 4853 ASSERT(args.length() == 1); |
| 4861 | 4854 |
| 4862 CONVERT_NUMBER_CHECKED(int32_t, number, Int32, args[0]); | 4855 CONVERT_NUMBER_CHECKED(int32_t, number, Int32, args[0]); |
| 4863 if (Smi::IsValid(number)) { | 4856 if (Smi::IsValid(number)) { |
| 4864 return isolate->heap()->true_value(); | 4857 return isolate->heap()->true_value(); |
| 4865 } else { | 4858 } else { |
| 4866 return isolate->heap()->false_value(); | 4859 return isolate->heap()->false_value(); |
| 4867 } | 4860 } |
| 4868 } | 4861 } |
| 4869 | 4862 |
| (...skipping 10234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15104 } | 15097 } |
| 15105 } | 15098 } |
| 15106 | 15099 |
| 15107 | 15100 |
| 15108 void Runtime::OutOfMemory() { | 15101 void Runtime::OutOfMemory() { |
| 15109 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); | 15102 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); |
| 15110 UNREACHABLE(); | 15103 UNREACHABLE(); |
| 15111 } | 15104 } |
| 15112 | 15105 |
| 15113 } } // namespace v8::internal | 15106 } } // namespace v8::internal |
| OLD | NEW |