| Index: src/heap.cc
|
| ===================================================================
|
| --- src/heap.cc (revision 9511)
|
| +++ src/heap.cc (working copy)
|
| @@ -1804,9 +1804,16 @@
|
| { MaybeObject* maybe_obj = Allocate(oddball_map(), OLD_POINTER_SPACE);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_null_value(obj);
|
| + set_null_value(Oddball::cast(obj));
|
| Oddball::cast(obj)->set_kind(Oddball::kNull);
|
|
|
| + { MaybeObject* maybe_obj = Allocate(oddball_map(), OLD_POINTER_SPACE);
|
| + if (!maybe_obj->ToObject(&obj)) return false;
|
| + }
|
| + set_undefined_value(Oddball::cast(obj));
|
| + Oddball::cast(obj)->set_kind(Oddball::kUndefined);
|
| + ASSERT(!InNewSpace(undefined_value()));
|
| +
|
| // Allocate the empty descriptor array.
|
| { MaybeObject* maybe_obj = AllocateEmptyFixedArray();
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| @@ -2178,26 +2185,19 @@
|
| { MaybeObject* maybe_obj = AllocateHeapNumber(-0.0, TENURED);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_minus_zero_value(obj);
|
| + set_minus_zero_value(HeapNumber::cast(obj));
|
| ASSERT(signbit(minus_zero_value()->Number()) != 0);
|
|
|
| { MaybeObject* maybe_obj = AllocateHeapNumber(OS::nan_value(), TENURED);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_nan_value(obj);
|
| + set_nan_value(HeapNumber::cast(obj));
|
|
|
| { MaybeObject* maybe_obj = AllocateHeapNumber(V8_INFINITY, TENURED);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_infinity_value(obj);
|
| + set_infinity_value(HeapNumber::cast(obj));
|
|
|
| - { MaybeObject* maybe_obj = Allocate(oddball_map(), OLD_POINTER_SPACE);
|
| - if (!maybe_obj->ToObject(&obj)) return false;
|
| - }
|
| - set_undefined_value(obj);
|
| - Oddball::cast(obj)->set_kind(Oddball::kUndefined);
|
| - ASSERT(!InNewSpace(undefined_value()));
|
| -
|
| // Allocate initial symbol table.
|
| { MaybeObject* maybe_obj = SymbolTable::Allocate(kInitialSymbolTableSize);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| @@ -2205,19 +2205,17 @@
|
| // Don't use set_symbol_table() due to asserts.
|
| roots_[kSymbolTableRootIndex] = obj;
|
|
|
| - // Assign the print strings for oddballs after creating symboltable.
|
| - Object* symbol;
|
| - { MaybeObject* maybe_symbol = LookupAsciiSymbol("undefined");
|
| - if (!maybe_symbol->ToObject(&symbol)) return false;
|
| + // Finish initializing oddballs after creating symboltable.
|
| + { MaybeObject* maybe_obj =
|
| + undefined_value()->Initialize("undefined",
|
| + nan_value(),
|
| + Oddball::kUndefined);
|
| + if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - Oddball::cast(undefined_value())->set_to_string(String::cast(symbol));
|
| - Oddball::cast(undefined_value())->set_to_number(nan_value());
|
|
|
| - // Allocate the null_value
|
| + // Initialize the null_value.
|
| { MaybeObject* maybe_obj =
|
| - Oddball::cast(null_value())->Initialize("null",
|
| - Smi::FromInt(0),
|
| - Oddball::kNull);
|
| + null_value()->Initialize("null", Smi::FromInt(0), Oddball::kNull);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
|
|
| @@ -2226,28 +2224,28 @@
|
| Oddball::kTrue);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_true_value(obj);
|
| + set_true_value(Oddball::cast(obj));
|
|
|
| { MaybeObject* maybe_obj = CreateOddball("false",
|
| Smi::FromInt(0),
|
| Oddball::kFalse);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_false_value(obj);
|
| + set_false_value(Oddball::cast(obj));
|
|
|
| { MaybeObject* maybe_obj = CreateOddball("hole",
|
| Smi::FromInt(-1),
|
| Oddball::kTheHole);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_the_hole_value(obj);
|
| + set_the_hole_value(Oddball::cast(obj));
|
|
|
| { MaybeObject* maybe_obj = CreateOddball("arguments_marker",
|
| Smi::FromInt(-2),
|
| Oddball::kArgumentMarker);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_arguments_marker(obj);
|
| + set_arguments_marker(Oddball::cast(obj));
|
|
|
| { MaybeObject* maybe_obj = CreateOddball("no_interceptor_result_sentinel",
|
| Smi::FromInt(-3),
|
| @@ -2268,7 +2266,7 @@
|
| Oddball::kOther);
|
| if (!maybe_obj->ToObject(&obj)) return false;
|
| }
|
| - set_frame_alignment_marker(obj);
|
| + set_frame_alignment_marker(Oddball::cast(obj));
|
| STATIC_ASSERT(Oddball::kLeastHiddenOddballNumber == -5);
|
|
|
| // Allocate the empty string.
|
|
|