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

Unified Diff: src/bootstrapper.cc

Issue 2551763003: v8::Private::ForApi should be context-independent. (Closed)
Patch Set: fix Created 4 years 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/api.cc ('k') | src/builtins/builtins.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index 8a176cf99a42efc3c6f2481fde24c193902c2205..0242f56712b2616dcf9e09ae1867e13675fa44d4 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -507,6 +507,13 @@ Handle<JSFunction> SimpleInstallGetter(Handle<JSObject> base,
return fun;
}
+void InstallConstant(Isolate* isolate, Handle<JSObject> holder,
+ const char* name, Handle<Object> value) {
+ JSObject::AddProperty(
+ holder, isolate->factory()->NewStringFromAsciiChecked(name), value,
+ static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+}
+
} // namespace
Handle<JSFunction> Genesis::CreateEmptyFunction(Isolate* isolate) {
@@ -1624,6 +1631,30 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
symbol_fun->shared()->DontAdaptArguments();
native_context()->set_symbol_function(*symbol_fun);
+ // Install the Symbol.for and Symbol.keyFor functions.
+ SimpleInstallFunction(symbol_fun, "for", Builtins::kSymbolFor, 1, false);
+ SimpleInstallFunction(symbol_fun, "keyFor", Builtins::kSymbolKeyFor, 1,
+ false);
+
+ // Install well-known symbols.
+ InstallConstant(isolate, symbol_fun, "hasInstance",
+ factory->has_instance_symbol());
+ InstallConstant(isolate, symbol_fun, "isConcatSpreadable",
+ factory->is_concat_spreadable_symbol());
+ InstallConstant(isolate, symbol_fun, "iterator",
+ factory->iterator_symbol());
+ InstallConstant(isolate, symbol_fun, "match", factory->match_symbol());
+ InstallConstant(isolate, symbol_fun, "replace", factory->replace_symbol());
+ InstallConstant(isolate, symbol_fun, "search", factory->search_symbol());
+ InstallConstant(isolate, symbol_fun, "species", factory->species_symbol());
+ InstallConstant(isolate, symbol_fun, "split", factory->split_symbol());
+ InstallConstant(isolate, symbol_fun, "toPrimitive",
+ factory->to_primitive_symbol());
+ InstallConstant(isolate, symbol_fun, "toStringTag",
+ factory->to_string_tag_symbol());
+ InstallConstant(isolate, symbol_fun, "unscopables",
+ factory->unscopables_symbol());
+
// Install the @@toStringTag property on the {prototype}.
JSObject::AddProperty(
prototype, factory->to_string_tag_symbol(),
@@ -2201,36 +2232,19 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
// Install math constants.
double const kE = base::ieee754::exp(1.0);
double const kPI = 3.1415926535897932;
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("E"), factory->NewNumber(kE),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("LN10"),
- factory->NewNumber(base::ieee754::log(10.0)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("LN2"),
- factory->NewNumber(base::ieee754::log(2.0)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("LOG10E"),
- factory->NewNumber(base::ieee754::log10(kE)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("LOG2E"),
- factory->NewNumber(base::ieee754::log2(kE)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("PI"), factory->NewNumber(kPI),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("SQRT1_2"),
- factory->NewNumber(std::sqrt(0.5)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
- JSObject::AddProperty(
- math, factory->NewStringFromAsciiChecked("SQRT2"),
- factory->NewNumber(std::sqrt(2.0)),
- static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+ InstallConstant(isolate, math, "E", factory->NewNumber(kE));
+ InstallConstant(isolate, math, "LN10",
+ factory->NewNumber(base::ieee754::log(10.0)));
+ InstallConstant(isolate, math, "LN2",
+ factory->NewNumber(base::ieee754::log(2.0)));
+ InstallConstant(isolate, math, "LOG10E",
+ factory->NewNumber(base::ieee754::log10(kE)));
+ InstallConstant(isolate, math, "LOG2E",
+ factory->NewNumber(base::ieee754::log2(kE)));
+ InstallConstant(isolate, math, "PI", factory->NewNumber(kPI));
+ InstallConstant(isolate, math, "SQRT1_2",
+ factory->NewNumber(std::sqrt(0.5)));
+ InstallConstant(isolate, math, "SQRT2", factory->NewNumber(std::sqrt(2.0)));
JSObject::AddProperty(
math, factory->to_string_tag_symbol(),
factory->NewStringFromAsciiChecked("Math"),
« no previous file with comments | « src/api.cc ('k') | src/builtins/builtins.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698