summaryrefslogtreecommitdiffstats
path: root/V8Binding/v8/src/bootstrapper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'V8Binding/v8/src/bootstrapper.cc')
-rw-r--r--V8Binding/v8/src/bootstrapper.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/V8Binding/v8/src/bootstrapper.cc b/V8Binding/v8/src/bootstrapper.cc
index 89c92b0..ffd432a 100644
--- a/V8Binding/v8/src/bootstrapper.cc
+++ b/V8Binding/v8/src/bootstrapper.cc
@@ -580,8 +580,7 @@ void Genesis::CreateRoots(v8::Handle<v8::ObjectTemplate> global_template,
js_global_function->initial_map()->set_is_hidden_prototype();
SetExpectedNofProperties(js_global_function, 100);
- object = Handle<JSGlobalObject>::cast(
- Factory::NewJSObject(js_global_function, TENURED));
+ object = Factory::NewJSGlobalObject(js_global_function);
}
// Set the global context for the global object.
@@ -1113,8 +1112,8 @@ bool Genesis::InstallNatives() {
}
#ifdef V8_HOST_ARCH_64_BIT
- // TODO(X64): Reenable remaining initialization when code generation works.
- return true;
+ // TODO(X64): Remove this when inline caches work.
+ FLAG_use_ic = false;
#endif // V8_HOST_ARCH_64_BIT
@@ -1214,6 +1213,17 @@ bool Genesis::InstallSpecialObjects() {
Handle<JSObject>(js_global->builtins()), DONT_ENUM);
}
+ if (FLAG_capture_stack_traces) {
+ Handle<Object> Error = GetProperty(js_global, "Error");
+ if (Error->IsJSObject()) {
+ Handle<String> name = Factory::LookupAsciiSymbol("captureStackTraces");
+ SetProperty(Handle<JSObject>::cast(Error),
+ name,
+ Factory::true_value(),
+ NONE);
+ }
+ }
+
#ifdef ENABLE_DEBUGGER_SUPPORT
// Expose the debug global object in global if a name for it is specified.
if (FLAG_expose_debug_as != NULL && strlen(FLAG_expose_debug_as) != 0) {
@@ -1445,6 +1455,9 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
// Set the property.
Handle<String> key = Handle<String>(String::cast(raw_key));
Handle<Object> value = Handle<Object>(properties->ValueAt(i));
+ if (value->IsJSGlobalPropertyCell()) {
+ value = Handle<Object>(JSGlobalPropertyCell::cast(*value)->value());
+ }
PropertyDetails details = properties->DetailsAt(i);
SetProperty(to, key, value, details.attributes());
}