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/messages.cc b/src/messages.cc
index 6e7c495..0dffbb4 100644
--- a/src/messages.cc
+++ b/src/messages.cc
@@ -98,7 +98,7 @@
MaybeHandle<Object> maybe_stringified;
Handle<Object> stringified;
// Make sure we don't leak uncaught internally generated Error objects.
- if (Object::IsErrorObject(isolate, argument)) {
+ if (argument->IsJSError()) {
Handle<Object> args[] = {argument};
maybe_stringified = Execution::TryCall(
isolate, isolate->no_side_effects_to_string_fun(),
@@ -130,7 +130,7 @@
} else {
for (int i = 0; i < global_length; i++) {
HandleScope scope(isolate);
- if (global_listeners.get(i)->IsUndefined()) continue;
+ if (global_listeners.get(i)->IsUndefined(isolate)) continue;
v8::NeanderObject listener(JSObject::cast(global_listeners.get(i)));
Handle<Foreign> callback_obj(Foreign::cast(listener.get(0)));
v8::MessageCallback callback =
@@ -139,7 +139,7 @@
{
// Do not allow exceptions to propagate.
v8::TryCatch try_catch(reinterpret_cast<v8::Isolate*>(isolate));
- callback(api_message_obj, callback_data->IsUndefined()
+ callback(api_message_obj, callback_data->IsUndefined(isolate)
? api_exception_obj
: v8::Utils::ToLocal(callback_data));
}
@@ -205,12 +205,8 @@
Handle<Object> CallSite::GetFunctionName() {
if (IsWasm()) {
- if (wasm_obj_->IsUndefined()) return isolate_->factory()->null_value();
- // wasm_obj_ can be a String if we generate WASM code directly in a test
- // case.
- if (wasm_obj_->IsString()) return wasm_obj_;
- return wasm::GetWasmFunctionName(Handle<JSObject>::cast(wasm_obj_),
- wasm_func_index_);
+ return wasm::GetWasmFunctionNameOrNull(isolate_, wasm_obj_,
+ wasm_func_index_);
}
Handle<String> result = JSFunction::GetName(fun_);
if (result->length() != 0) return result;
@@ -253,7 +249,8 @@
Handle<Object> CallSite::GetMethodName() {
- if (!IsJavaScript() || receiver_->IsNull() || receiver_->IsUndefined()) {
+ if (!IsJavaScript() || receiver_->IsNull(isolate_) ||
+ receiver_->IsUndefined(isolate_)) {
return isolate_->factory()->null_value();
}
Handle<JSReceiver> receiver =
@@ -268,13 +265,11 @@
Handle<Name> name = Handle<Name>::cast(function_name);
// ES2015 gives getters and setters name prefixes which must
// be stripped to find the property name.
- if (name->IsString() && FLAG_harmony_function_name) {
- Handle<String> name_string = Handle<String>::cast(name);
- if (name_string->IsUtf8EqualTo(CStrVector("get "), true) ||
- name_string->IsUtf8EqualTo(CStrVector("set "), true)) {
- name = isolate_->factory()->NewProperSubString(name_string, 4,
- name_string->length());
- }
+ Handle<String> name_string = Handle<String>::cast(name);
+ if (name_string->IsUtf8EqualTo(CStrVector("get "), true) ||
+ name_string->IsUtf8EqualTo(CStrVector("set "), true)) {
+ name = isolate_->factory()->NewProperSubString(name_string, 4,
+ name_string->length());
}
if (CheckMethodName(isolate_, obj, name, fun_,
LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR)) {
@@ -284,9 +279,8 @@
HandleScope outer_scope(isolate_);
Handle<Object> result;
- for (PrototypeIterator iter(isolate_, obj,
- PrototypeIterator::START_AT_RECEIVER);
- !iter.IsAtEnd(); iter.Advance()) {
+ for (PrototypeIterator iter(isolate_, obj, kStartAtReceiver); !iter.IsAtEnd();
+ iter.Advance()) {
Handle<Object> current = PrototypeIterator::GetCurrent(iter);
if (!current->IsJSObject()) break;
Handle<JSObject> current_obj = Handle<JSObject>::cast(current);
@@ -345,8 +339,8 @@
bool CallSite::IsToplevel() {
if (IsWasm()) return false;
- return receiver_->IsJSGlobalProxy() || receiver_->IsNull() ||
- receiver_->IsUndefined();
+ return receiver_->IsJSGlobalProxy() || receiver_->IsNull(isolate_) ||
+ receiver_->IsUndefined(isolate_);
}