Merge V8 5.3.332.45. DO NOT MERGE
Test: Manual
FPIIM-449
Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/runtime/runtime-function.cc b/src/runtime/runtime-function.cc
index 56cf3b6..3a66869 100644
--- a/src/runtime/runtime-function.cc
+++ b/src/runtime/runtime-function.cc
@@ -10,7 +10,6 @@
#include "src/frames-inl.h"
#include "src/isolate-inl.h"
#include "src/messages.h"
-#include "src/profiler/cpu-profiler.h"
#include "src/wasm/wasm-module.h"
namespace v8 {
@@ -21,15 +20,13 @@
DCHECK(args.length() == 1);
CONVERT_ARG_HANDLE_CHECKED(JSReceiver, function, 0);
- Handle<Object> result;
if (function->IsJSBoundFunction()) {
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, result, JSBoundFunction::GetName(
- isolate, Handle<JSBoundFunction>::cast(function)));
+ RETURN_RESULT_OR_FAILURE(
+ isolate, JSBoundFunction::GetName(
+ isolate, Handle<JSBoundFunction>::cast(function)));
} else {
- result = JSFunction::GetName(isolate, Handle<JSFunction>::cast(function));
+ return *JSFunction::GetName(isolate, Handle<JSFunction>::cast(function));
}
- return *result;
}
@@ -51,7 +48,7 @@
DCHECK(args.length() == 1);
CONVERT_ARG_CHECKED(JSFunction, f, 0);
- RUNTIME_ASSERT(f->RemovePrototype());
+ CHECK(f->RemovePrototype());
f->shared()->set_construct_stub(
*isolate->builtins()->ConstructedNonConstructable());
@@ -131,8 +128,7 @@
CONVERT_ARG_CHECKED(JSFunction, fun, 0);
CONVERT_SMI_ARG_CHECKED(length, 1);
- RUNTIME_ASSERT((length & 0xC0000000) == 0xC0000000 ||
- (length & 0xC0000000) == 0x0);
+ CHECK((length & 0xC0000000) == 0xC0000000 || (length & 0xC0000000) == 0x0);
fun->shared()->set_length(length);
return isolate->heap()->undefined_value();
}
@@ -144,7 +140,7 @@
CONVERT_ARG_HANDLE_CHECKED(JSFunction, fun, 0);
CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
- RUNTIME_ASSERT(fun->IsConstructor());
+ CHECK(fun->IsConstructor());
RETURN_FAILURE_ON_EXCEPTION(isolate,
Accessors::FunctionSetPrototype(fun, value));
return args[0]; // return TOS
@@ -189,7 +185,8 @@
}
target_shared->set_scope_info(source_shared->scope_info());
target_shared->set_length(source_shared->length());
- target_shared->set_feedback_vector(source_shared->feedback_vector());
+ target_shared->set_num_literals(source_shared->num_literals());
+ target_shared->set_feedback_metadata(source_shared->feedback_metadata());
target_shared->set_internal_formal_parameter_count(
source_shared->internal_formal_parameter_count());
target_shared->set_start_position_and_type(
@@ -206,21 +203,17 @@
// Set the code of the target function.
target->ReplaceCode(source_shared->code());
- DCHECK(target->next_function_link()->IsUndefined());
+ DCHECK(target->next_function_link()->IsUndefined(isolate));
- // Make sure we get a fresh copy of the literal vector to avoid cross
- // context contamination.
Handle<Context> context(source->context());
target->set_context(*context);
- int number_of_literals = source->NumberOfLiterals();
- Handle<LiteralsArray> literals =
- LiteralsArray::New(isolate, handle(target_shared->feedback_vector()),
- number_of_literals, TENURED);
- target->set_literals(*literals);
+ // Make sure we get a fresh copy of the literal vector to avoid cross
+ // context contamination, and that the literal vector makes it's way into
+ // the target_shared optimized code map.
+ JSFunction::EnsureLiterals(target);
- if (isolate->logger()->is_logging_code_events() ||
- isolate->cpu_profiler()->is_profiling()) {
+ if (isolate->logger()->is_logging_code_events() || isolate->is_profiling()) {
isolate->logger()->LogExistingFunction(
source_shared, Handle<AbstractCode>(source_shared->abstract_code()));
}
@@ -234,7 +227,7 @@
// into the global object when doing call and apply.
RUNTIME_FUNCTION(Runtime_SetNativeFlag) {
SealHandleScope shs(isolate);
- RUNTIME_ASSERT(args.length() == 1);
+ DCHECK_EQ(1, args.length());
CONVERT_ARG_CHECKED(Object, object, 0);
@@ -255,7 +248,7 @@
RUNTIME_FUNCTION(Runtime_SetForceInlineFlag) {
SealHandleScope shs(isolate);
- RUNTIME_ASSERT(args.length() == 1);
+ DCHECK_EQ(1, args.length());
CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
if (object->IsJSFunction()) {
@@ -276,11 +269,8 @@
for (int i = 0; i < argc; ++i) {
argv[i] = args.at<Object>(2 + i);
}
- Handle<Object> result;
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, result,
- Execution::Call(isolate, target, receiver, argc, argv.start()));
- return *result;
+ RETURN_RESULT_OR_FAILURE(
+ isolate, Execution::Call(isolate, target, receiver, argc, argv.start()));
}
@@ -311,15 +301,5 @@
: *JSFunction::ToString(Handle<JSFunction>::cast(function));
}
-RUNTIME_FUNCTION(Runtime_WasmGetFunctionName) {
- HandleScope scope(isolate);
- DCHECK_EQ(2, args.length());
-
- CONVERT_ARG_HANDLE_CHECKED(JSObject, wasm, 0);
- CONVERT_SMI_ARG_CHECKED(func_index, 1);
-
- return *wasm::GetWasmFunctionName(wasm, func_index);
-}
-
} // namespace internal
} // namespace v8