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/string-stream.cc b/src/string-stream.cc
index 02f6f1c..781f8cd 100644
--- a/src/string-stream.cc
+++ b/src/string-stream.cc
@@ -378,14 +378,14 @@
void StringStream::PrintFixedArray(FixedArray* array, unsigned int limit) {
- Heap* heap = array->GetHeap();
+ Isolate* isolate = array->GetIsolate();
for (unsigned int i = 0; i < 10 && i < limit; i++) {
Object* element = array->get(i);
- if (element != heap->the_hole_value()) {
- for (int len = 1; len < 18; len++)
- Put(' ');
- Add("%d: %o\n", i, array->get(i));
+ if (element->IsTheHole(isolate)) continue;
+ for (int len = 1; len < 18; len++) {
+ Put(' ');
}
+ Add("%d: %o\n", i, array->get(i));
}
if (limit >= 10) {
Add(" ...\n");
@@ -527,19 +527,20 @@
Object* name = fun->shared()->name();
bool print_name = false;
Isolate* isolate = fun->GetIsolate();
- if (receiver->IsNull() || receiver->IsUndefined() || receiver->IsJSProxy()) {
+ if (receiver->IsNull(isolate) || receiver->IsUndefined(isolate) ||
+ receiver->IsTheHole(isolate) || receiver->IsJSProxy()) {
print_name = true;
- } else {
+ } else if (isolate->context() != nullptr) {
if (!receiver->IsJSObject()) {
receiver = receiver->GetRootMap(isolate)->prototype();
}
for (PrototypeIterator iter(isolate, JSObject::cast(receiver),
- PrototypeIterator::START_AT_RECEIVER);
+ kStartAtReceiver);
!iter.IsAtEnd(); iter.Advance()) {
if (iter.GetCurrent()->IsJSProxy()) break;
Object* key = iter.GetCurrent<JSObject>()->SlowReverseLookup(fun);
- if (!key->IsUndefined()) {
+ if (!key->IsUndefined(isolate)) {
if (!name->IsString() ||
!key->IsString() ||
!String::cast(name)->Equals(String::cast(key))) {