Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(987)

Unified Diff: src/heap/heap.cc

Issue 1744163002: [stubs] Introduce a proper ToBooleanStub. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix mips Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/heap-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.cc
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
index 2c7a1d0d29c777c983977a0eb1781a074539f431..3b5ee6e81b30516d5a29812269f8bb76a4ef3e45 100644
--- a/src/heap/heap.cc
+++ b/src/heap/heap.cc
@@ -2403,6 +2403,20 @@ bool Heap::CreateInitialMaps() {
#undef ALLOCATE_MAP
}
+ {
+ AllocationResult allocation = Allocate(boolean_map(), OLD_SPACE);
+ if (!allocation.To(&obj)) return false;
+ }
+ set_true_value(Oddball::cast(obj));
+ Oddball::cast(obj)->set_kind(Oddball::kTrue);
+
+ {
+ AllocationResult allocation = Allocate(boolean_map(), OLD_SPACE);
+ if (!allocation.To(&obj)) return false;
+ }
+ set_false_value(Oddball::cast(obj));
+ Oddball::cast(obj)->set_kind(Oddball::kFalse);
+
{ // Empty arrays
{
ByteArray* byte_array;
@@ -2620,48 +2634,54 @@ void Heap::CreateInitialObjects() {
// Allocate initial string table.
set_string_table(*StringTable::New(isolate(), kInitialStringTableSize));
+ // Allocate
+
// Finish initializing oddballs after creating the string table.
Oddball::Initialize(isolate(), factory->undefined_value(), "undefined",
- factory->nan_value(), "undefined", Oddball::kUndefined);
+ factory->nan_value(), false, "undefined",
+ Oddball::kUndefined);
// Initialize the null_value.
Oddball::Initialize(isolate(), factory->null_value(), "null",
- handle(Smi::FromInt(0), isolate()), "object",
+ handle(Smi::FromInt(0), isolate()), false, "object",
Oddball::kNull);
- set_true_value(*factory->NewOddball(factory->boolean_map(), "true",
- handle(Smi::FromInt(1), isolate()),
- "boolean", Oddball::kTrue));
+ // Initialize the true_value.
+ Oddball::Initialize(isolate(), factory->true_value(), "true",
+ handle(Smi::FromInt(1), isolate()), true, "boolean",
+ Oddball::kTrue);
- set_false_value(*factory->NewOddball(factory->boolean_map(), "false",
- handle(Smi::FromInt(0), isolate()),
- "boolean", Oddball::kFalse));
+ // Initialize the false_value.
+ Oddball::Initialize(isolate(), factory->false_value(), "false",
+ handle(Smi::FromInt(0), isolate()), false, "boolean",
+ Oddball::kFalse);
- set_the_hole_value(*factory->NewOddball(factory->the_hole_map(), "hole",
- handle(Smi::FromInt(-1), isolate()),
- "undefined", Oddball::kTheHole));
+ set_the_hole_value(*factory->NewOddball(
+ factory->the_hole_map(), "hole", handle(Smi::FromInt(-1), isolate()),
+ false, "undefined", Oddball::kTheHole));
set_uninitialized_value(
*factory->NewOddball(factory->uninitialized_map(), "uninitialized",
- handle(Smi::FromInt(-1), isolate()), "undefined",
- Oddball::kUninitialized));
+ handle(Smi::FromInt(-1), isolate()), false,
+ "undefined", Oddball::kUninitialized));
set_arguments_marker(
*factory->NewOddball(factory->arguments_marker_map(), "arguments_marker",
- handle(Smi::FromInt(-4), isolate()), "undefined",
- Oddball::kArgumentsMarker));
+ handle(Smi::FromInt(-4), isolate()), false,
+ "undefined", Oddball::kArgumentsMarker));
set_no_interceptor_result_sentinel(*factory->NewOddball(
factory->no_interceptor_result_sentinel_map(),
"no_interceptor_result_sentinel", handle(Smi::FromInt(-2), isolate()),
- "undefined", Oddball::kOther));
+ false, "undefined", Oddball::kOther));
set_termination_exception(*factory->NewOddball(
factory->termination_exception_map(), "termination_exception",
- handle(Smi::FromInt(-3), isolate()), "undefined", Oddball::kOther));
+ handle(Smi::FromInt(-3), isolate()), false, "undefined",
+ Oddball::kOther));
set_exception(*factory->NewOddball(factory->exception_map(), "exception",
- handle(Smi::FromInt(-5), isolate()),
+ handle(Smi::FromInt(-5), isolate()), false,
"undefined", Oddball::kException));
for (unsigned i = 0; i < arraysize(constant_string_table); i++) {
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/heap-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698