Commit a9e04c5f authored by Adam Klein's avatar Adam Klein Committed by Commit Bot

Move setup of Object.prototype.toString to bootstrapper

Also simplify usage of Object.prototype methods in JS natives: now
that they're added in bootstrapper, no need to import them.

Change-Id: I0db53dd5acaed3aa0a5b46f730b31baa376e282d
Reviewed-on: https://chromium-review.googlesource.com/478574
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44659}
parent 003f818a
......@@ -1326,6 +1326,10 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
SimpleInstallFunction(
isolate->initial_object_prototype(), "propertyIsEnumerable",
Builtins::kObjectPrototypePropertyIsEnumerable, 1, false);
Handle<JSFunction> object_to_string = SimpleInstallFunction(
isolate->initial_object_prototype(), factory->toString_string(),
Builtins::kObjectProtoToString, 0, true);
native_context()->set_object_to_string(*object_to_string);
Handle<JSFunction> object_value_of = SimpleInstallFunction(
isolate->initial_object_prototype(), "valueOf",
Builtins::kObjectPrototypeValueOf, 0, true);
......@@ -3404,15 +3408,6 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
WELL_KNOWN_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL)
#undef EXPORT_PUBLIC_SYMBOL
{
Handle<JSFunction> to_string = InstallFunction(
container, "object_to_string", JS_OBJECT_TYPE, JSObject::kHeaderSize,
MaybeHandle<JSObject>(), Builtins::kObjectProtoToString);
to_string->shared()->set_internal_formal_parameter_count(0);
to_string->shared()->set_length(0);
native_context->set_object_to_string(*to_string);
}
Handle<JSObject> iterator_prototype(
native_context->initial_iterator_prototype());
......
......@@ -18,8 +18,8 @@ var InternalArray = utils.InternalArray;
var InternalPackedArray = utils.InternalPackedArray;
var MaxSimple;
var MinSimple;
var ObjectHasOwnProperty;
var ObjectToString = utils.ImportNow("object_to_string");
var ObjectHasOwnProperty = global.Object.prototype.hasOwnProperty;
var ObjectToString = global.Object.prototype.toString;
var iteratorSymbol = utils.ImportNow("iterator_symbol");
var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
......@@ -28,7 +28,6 @@ utils.Import(function(from) {
GetMethod = from.GetMethod;
MaxSimple = from.MaxSimple;
MinSimple = from.MinSimple;
ObjectHasOwnProperty = from.ObjectHasOwnProperty;
});
// -------------------------------------------------------------------
......
......@@ -33,7 +33,7 @@ var InstallFunctions = utils.InstallFunctions;
var InstallGetter = utils.InstallGetter;
var InternalArray = utils.InternalArray;
var MaxSimple;
var ObjectHasOwnProperty = utils.ImportNow("ObjectHasOwnProperty");
var ObjectHasOwnProperty = global.Object.prototype.hasOwnProperty;
var OverrideFunction = utils.OverrideFunction;
var patternSymbol = utils.ImportNow("intl_pattern_symbol");
var resolvedSymbol = utils.ImportNow("intl_resolved_symbol");
......
......@@ -11,14 +11,6 @@
var GlobalObject = global.Object;
var iteratorSymbol = utils.ImportNow("iterator_symbol");
var ObjectToString = utils.ImportNow("object_to_string");
// ----------------------------------------------------------------------------
// Set up global object.
var attributes = DONT_ENUM | DONT_DELETE | READ_ONLY;
// ----------------------------------------------------------------------------
// Object
......@@ -67,7 +59,7 @@ function ObjectConstructor(x) {
// Set up non-enumerable functions on the Object.prototype object.
utils.InstallFunctions(GlobalObject.prototype, DONT_ENUM, [
"toString", ObjectToString,
// toString is added in bootstrapper.cc
"toLocaleString", ObjectToLocaleString,
// valueOf is added in bootstrapper.cc.
"isPrototypeOf", ObjectIsPrototypeOf,
......@@ -103,7 +95,6 @@ function GetIterator(obj, method) {
utils.Export(function(to) {
to.GetIterator = GetIterator;
to.GetMethod = GetMethod;
to.ObjectHasOwnProperty = GlobalObject.prototype.hasOwnProperty;
});
})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment