| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index 8d529506f22c352c8f6723c2341fdcf6859a512e..bf96c8cfc9b00068218fc332cc55e5c496892e06 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -353,7 +353,7 @@ static Handle<JSFunction> InstallFunction(Handle<JSObject> target,
|
| bool is_ecma_native) {
|
| Isolate* isolate = target->GetIsolate();
|
| Factory* factory = isolate->factory();
|
| - Handle<String> symbol = factory->LookupAsciiSymbol(name);
|
| + Handle<String> symbol = factory->LookupUtf8Symbol(name);
|
| Handle<Code> call_code = Handle<Code>(isolate->builtins()->builtin(call));
|
| Handle<JSFunction> function = prototype.is_null() ?
|
| factory->NewFunctionWithoutPrototype(symbol, call_code) :
|
| @@ -488,7 +488,8 @@ Handle<JSFunction> Genesis::CreateEmptyFunction(Isolate* isolate) {
|
|
|
| // Allocate the empty function as the prototype for function ECMAScript
|
| // 262 15.3.4.
|
| - Handle<String> symbol = factory->LookupAsciiSymbol("Empty");
|
| + Handle<String> symbol =
|
| + factory->LookupOneByteSymbol(STATIC_ASCII_VECTOR("Empty"));
|
| Handle<JSFunction> empty_function =
|
| factory->NewFunctionWithoutPrototype(symbol, CLASSIC_MODE);
|
|
|
| @@ -570,7 +571,8 @@ void Genesis::SetStrictFunctionInstanceDescriptor(
|
| // ECMAScript 5th Edition, 13.2.3
|
| Handle<JSFunction> Genesis::GetThrowTypeErrorFunction() {
|
| if (throw_type_error_function.is_null()) {
|
| - Handle<String> name = factory()->LookupAsciiSymbol("ThrowTypeError");
|
| + Handle<String> name = factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("ThrowTypeError"));
|
| throw_type_error_function =
|
| factory()->NewFunctionWithoutPrototype(name, CLASSIC_MODE);
|
| Handle<Code> code(isolate()->builtins()->builtin(
|
| @@ -771,7 +773,8 @@ Handle<JSGlobalProxy> Genesis::CreateNewGlobals(
|
| factory()->OuterGlobalObject);
|
| }
|
|
|
| - Handle<String> global_name = factory()->LookupAsciiSymbol("global");
|
| + Handle<String> global_name = factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("global"));
|
| global_proxy_function->shared()->set_instance_class_name(*global_name);
|
| global_proxy_function->initial_map()->set_is_access_check_needed(true);
|
|
|
| @@ -811,7 +814,8 @@ void Genesis::HookUpInnerGlobal(Handle<GlobalObject> inner_global) {
|
| static const PropertyAttributes attributes =
|
| static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE);
|
| ForceSetProperty(builtins_global,
|
| - factory()->LookupAsciiSymbol("global"),
|
| + factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("global")),
|
| inner_global,
|
| attributes);
|
| // Set up the reference from the global object to the builtins object.
|
| @@ -1049,7 +1053,8 @@ bool Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
| // Make sure we can recognize argument objects at runtime.
|
| // This is done by introducing an anonymous function with
|
| // class_name equals 'Arguments'.
|
| - Handle<String> symbol = factory->LookupAsciiSymbol("Arguments");
|
| + Handle<String> symbol = factory->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("Arguments"));
|
| Handle<Code> code = Handle<Code>(
|
| isolate->builtins()->builtin(Builtins::kIllegal));
|
| Handle<JSObject> prototype =
|
| @@ -1207,7 +1212,8 @@ bool Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
| code,
|
| true);
|
|
|
| - Handle<String> name = factory->LookupAsciiSymbol("context_extension");
|
| + Handle<String> name =
|
| + factory->LookupOneByteSymbol(STATIC_ASCII_VECTOR("context_extension"));
|
| context_extension_fun->shared()->set_instance_class_name(*name);
|
| native_context()->set_context_extension_function(*context_extension_fun);
|
| }
|
| @@ -1381,11 +1387,12 @@ bool Genesis::CompileScriptCached(Vector<const char> name,
|
| }
|
|
|
|
|
| -#define INSTALL_NATIVE(Type, name, var) \
|
| - Handle<String> var##_name = factory()->LookupAsciiSymbol(name); \
|
| - Object* var##_native = \
|
| - native_context()->builtins()->GetPropertyNoExceptionThrown( \
|
| - *var##_name); \
|
| +#define INSTALL_NATIVE(Type, name, var) \
|
| + Handle<String> var##_name = \
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR(name)); \
|
| + Object* var##_native = \
|
| + native_context()->builtins()->GetPropertyNoExceptionThrown( \
|
| + *var##_name); \
|
| native_context()->set_##var(Type::cast(var##_native));
|
|
|
|
|
| @@ -1439,7 +1446,8 @@ bool Genesis::InstallNatives() {
|
| JS_BUILTINS_OBJECT_TYPE,
|
| JSBuiltinsObject::kSize, code, true);
|
|
|
| - Handle<String> name = factory()->LookupAsciiSymbol("builtins");
|
| + Handle<String> name =
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("builtins"));
|
| builtins_fun->shared()->set_instance_class_name(*name);
|
| builtins_fun->initial_map()->set_dictionary_map(true);
|
| builtins_fun->initial_map()->set_prototype(heap()->null_value());
|
| @@ -1458,7 +1466,8 @@ bool Genesis::InstallNatives() {
|
| // global object.
|
| static const PropertyAttributes attributes =
|
| static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE);
|
| - Handle<String> global_symbol = factory()->LookupAsciiSymbol("global");
|
| + Handle<String> global_symbol =
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("global"));
|
| Handle<Object> global_obj(native_context()->global_object());
|
| CHECK_NOT_EMPTY_HANDLE(isolate(),
|
| JSObject::SetLocalPropertyIgnoreAttributes(
|
| @@ -1501,41 +1510,49 @@ bool Genesis::InstallNatives() {
|
| Handle<Foreign> script_source(
|
| factory()->NewForeign(&Accessors::ScriptSource));
|
| Handle<Foreign> script_name(factory()->NewForeign(&Accessors::ScriptName));
|
| - Handle<String> id_symbol(factory()->LookupAsciiSymbol("id"));
|
| + Handle<String> id_symbol(factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("id")));
|
| Handle<Foreign> script_id(factory()->NewForeign(&Accessors::ScriptId));
|
| Handle<String> line_offset_symbol(
|
| - factory()->LookupAsciiSymbol("line_offset"));
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("line_offset")));
|
| Handle<Foreign> script_line_offset(
|
| factory()->NewForeign(&Accessors::ScriptLineOffset));
|
| Handle<String> column_offset_symbol(
|
| - factory()->LookupAsciiSymbol("column_offset"));
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("column_offset")));
|
| Handle<Foreign> script_column_offset(
|
| factory()->NewForeign(&Accessors::ScriptColumnOffset));
|
| - Handle<String> data_symbol(factory()->LookupAsciiSymbol("data"));
|
| + Handle<String> data_symbol(factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("data")));
|
| Handle<Foreign> script_data(factory()->NewForeign(&Accessors::ScriptData));
|
| - Handle<String> type_symbol(factory()->LookupAsciiSymbol("type"));
|
| + Handle<String> type_symbol(factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("type")));
|
| Handle<Foreign> script_type(factory()->NewForeign(&Accessors::ScriptType));
|
| Handle<String> compilation_type_symbol(
|
| - factory()->LookupAsciiSymbol("compilation_type"));
|
| + factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("compilation_type")));
|
| Handle<Foreign> script_compilation_type(
|
| factory()->NewForeign(&Accessors::ScriptCompilationType));
|
| - Handle<String> line_ends_symbol(factory()->LookupAsciiSymbol("line_ends"));
|
| + Handle<String> line_ends_symbol(factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("line_ends")));
|
| Handle<Foreign> script_line_ends(
|
| factory()->NewForeign(&Accessors::ScriptLineEnds));
|
| Handle<String> context_data_symbol(
|
| - factory()->LookupAsciiSymbol("context_data"));
|
| + factory()->LookupOneByteSymbol(STATIC_ASCII_VECTOR("context_data")));
|
| Handle<Foreign> script_context_data(
|
| factory()->NewForeign(&Accessors::ScriptContextData));
|
| Handle<String> eval_from_script_symbol(
|
| - factory()->LookupAsciiSymbol("eval_from_script"));
|
| + factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("eval_from_script")));
|
| Handle<Foreign> script_eval_from_script(
|
| factory()->NewForeign(&Accessors::ScriptEvalFromScript));
|
| Handle<String> eval_from_script_position_symbol(
|
| - factory()->LookupAsciiSymbol("eval_from_script_position"));
|
| + factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("eval_from_script_position")));
|
| Handle<Foreign> script_eval_from_script_position(
|
| factory()->NewForeign(&Accessors::ScriptEvalFromScriptPosition));
|
| Handle<String> eval_from_function_name_symbol(
|
| - factory()->LookupAsciiSymbol("eval_from_function_name"));
|
| + factory()->LookupOneByteSymbol(
|
| + STATIC_ASCII_VECTOR("eval_from_function_name")));
|
| Handle<Foreign> script_eval_from_function_name(
|
| factory()->NewForeign(&Accessors::ScriptEvalFromFunctionName));
|
| PropertyAttributes attribs =
|
| @@ -1855,13 +1872,13 @@ static Handle<JSObject> ResolveBuiltinIdHolder(
|
| const char* period_pos = strchr(holder_expr, '.');
|
| if (period_pos == NULL) {
|
| return Handle<JSObject>::cast(
|
| - GetProperty(global, factory->LookupAsciiSymbol(holder_expr)));
|
| + GetProperty(global, factory->LookupUtf8Symbol(holder_expr)));
|
| }
|
| ASSERT_EQ(".prototype", period_pos);
|
| Vector<const char> property(holder_expr,
|
| static_cast<int>(period_pos - holder_expr));
|
| Handle<JSFunction> function = Handle<JSFunction>::cast(
|
| - GetProperty(global, factory->LookupSymbol(property)));
|
| + GetProperty(global, factory->LookupUtf8Symbol(property)));
|
| return Handle<JSObject>(JSObject::cast(function->prototype()));
|
| }
|
|
|
| @@ -1870,7 +1887,7 @@ static void InstallBuiltinFunctionId(Handle<JSObject> holder,
|
| const char* function_name,
|
| BuiltinFunctionId id) {
|
| Factory* factory = holder->GetIsolate()->factory();
|
| - Handle<String> name = factory->LookupAsciiSymbol(function_name);
|
| + Handle<String> name = factory->LookupUtf8Symbol(function_name);
|
| Object* function_object = holder->GetProperty(*name)->ToObjectUnchecked();
|
| Handle<JSFunction> function(JSFunction::cast(function_object));
|
| function->shared()->set_function_data(Smi::FromInt(id));
|
| @@ -1961,7 +1978,7 @@ void Genesis::InstallSpecialObjects(Handle<Context> native_context) {
|
| native_context->global_object()));
|
| // Expose the natives in global if a name for it is specified.
|
| if (FLAG_expose_natives_as != NULL && strlen(FLAG_expose_natives_as) != 0) {
|
| - Handle<String> natives = factory->LookupAsciiSymbol(FLAG_expose_natives_as);
|
| + Handle<String> natives = factory->LookupUtf8Symbol(FLAG_expose_natives_as);
|
| CHECK_NOT_EMPTY_HANDLE(isolate,
|
| JSObject::SetLocalPropertyIgnoreAttributes(
|
| global, natives,
|
| @@ -1971,7 +1988,8 @@ void Genesis::InstallSpecialObjects(Handle<Context> native_context) {
|
|
|
| Handle<Object> Error = GetProperty(global, "Error");
|
| if (Error->IsJSObject()) {
|
| - Handle<String> name = factory->LookupAsciiSymbol("stackTraceLimit");
|
| + Handle<String> name =
|
| + factory->LookupOneByteSymbol(STATIC_ASCII_VECTOR("stackTraceLimit"));
|
| Handle<Smi> stack_trace_limit(Smi::FromInt(FLAG_stack_trace_limit));
|
| CHECK_NOT_EMPTY_HANDLE(isolate,
|
| JSObject::SetLocalPropertyIgnoreAttributes(
|
| @@ -1993,7 +2011,7 @@ void Genesis::InstallSpecialObjects(Handle<Context> native_context) {
|
| native_context->security_token());
|
|
|
| Handle<String> debug_string =
|
| - factory->LookupAsciiSymbol(FLAG_expose_debug_as);
|
| + factory->LookupUtf8Symbol(FLAG_expose_debug_as);
|
| Handle<Object> global_proxy(debug->debug_context()->global_proxy());
|
| CHECK_NOT_EMPTY_HANDLE(isolate,
|
| JSObject::SetLocalPropertyIgnoreAttributes(
|
| @@ -2137,7 +2155,7 @@ bool Genesis::InstallJSBuiltins(Handle<JSBuiltinsObject> builtins) {
|
| Factory* factory = builtins->GetIsolate()->factory();
|
| for (int i = 0; i < Builtins::NumberOfJavaScriptBuiltins(); i++) {
|
| Builtins::JavaScript id = static_cast<Builtins::JavaScript>(i);
|
| - Handle<String> name = factory->LookupAsciiSymbol(Builtins::GetName(id));
|
| + Handle<String> name = factory->LookupUtf8Symbol(Builtins::GetName(id));
|
| Object* function_object = builtins->GetPropertyNoExceptionThrown(*name);
|
| Handle<JSFunction> function
|
| = Handle<JSFunction>(JSFunction::cast(function_object));
|
|
|