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

Side by Side Diff: src/bootstrapper.cc

Issue 2222053002: [turbofan] Improve typing rules for various builtins. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/compiler/typer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/bootstrapper.h" 5 #include "src/bootstrapper.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api-natives.h" 8 #include "src/api-natives.h"
9 #include "src/base/ieee754.h" 9 #include "src/base/ieee754.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 445
446 Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base, 446 Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
447 const char* name, Builtins::Name call, 447 const char* name, Builtins::Name call,
448 int len, bool adapt, 448 int len, bool adapt,
449 PropertyAttributes attrs = DONT_ENUM) { 449 PropertyAttributes attrs = DONT_ENUM) {
450 Factory* const factory = base->GetIsolate()->factory(); 450 Factory* const factory = base->GetIsolate()->factory();
451 return SimpleInstallFunction(base, factory->InternalizeUtf8String(name), call, 451 return SimpleInstallFunction(base, factory->InternalizeUtf8String(name), call,
452 len, adapt, attrs); 452 len, adapt, attrs);
453 } 453 }
454 454
455 Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
456 const char* name, Builtins::Name call,
457 int len, bool adapt,
458 BuiltinFunctionId id) {
459 Handle<JSFunction> fun = SimpleInstallFunction(base, name, call, len, adapt);
460 fun->shared()->set_builtin_function_id(id);
461 return fun;
462 }
463
455 Handle<JSFunction> SimpleInstallGetter(Handle<JSObject> base, 464 Handle<JSFunction> SimpleInstallGetter(Handle<JSObject> base,
456 Handle<String> name, Builtins::Name call, 465 Handle<String> name, Builtins::Name call,
457 bool adapt) { 466 bool adapt) {
458 Isolate* const isolate = base->GetIsolate(); 467 Isolate* const isolate = base->GetIsolate();
459 Handle<String> fun_name = 468 Handle<String> fun_name =
460 Name::ToFunctionName(name, isolate->factory()->get_string()) 469 Name::ToFunctionName(name, isolate->factory()->get_string())
461 .ToHandleChecked(); 470 .ToHandleChecked();
462 Handle<JSFunction> fun = 471 Handle<JSFunction> fun =
463 SimpleCreateFunction(isolate, fun_name, call, 0, adapt); 472 SimpleCreateFunction(isolate, fun_name, call, 0, adapt);
464 InstallGetter(base, name, fun); 473 InstallGetter(base, name, fun);
(...skipping 2583 matching lines...) Expand 10 before | Expand all | Expand 10 after
3048 DCHECK(JSObject::cast( 3057 DCHECK(JSObject::cast(
3049 string_function->initial_map()->prototype())->HasFastProperties()); 3058 string_function->initial_map()->prototype())->HasFastProperties());
3050 native_context()->set_string_function_prototype_map( 3059 native_context()->set_string_function_prototype_map(
3051 HeapObject::cast(string_function->initial_map()->prototype())->map()); 3060 HeapObject::cast(string_function->initial_map()->prototype())->map());
3052 3061
3053 Handle<JSGlobalObject> global_object = 3062 Handle<JSGlobalObject> global_object =
3054 handle(native_context()->global_object()); 3063 handle(native_context()->global_object());
3055 3064
3056 // Install Global.decodeURI. 3065 // Install Global.decodeURI.
3057 SimpleInstallFunction(global_object, "decodeURI", Builtins::kGlobalDecodeURI, 3066 SimpleInstallFunction(global_object, "decodeURI", Builtins::kGlobalDecodeURI,
3058 1, false); 3067 1, false, kGlobalDecodeURI);
3059 3068
3060 // Install Global.decodeURIComponent. 3069 // Install Global.decodeURIComponent.
3061 SimpleInstallFunction(global_object, "decodeURIComponent", 3070 SimpleInstallFunction(global_object, "decodeURIComponent",
3062 Builtins::kGlobalDecodeURIComponent, 1, false); 3071 Builtins::kGlobalDecodeURIComponent, 1, false,
3072 kGlobalDecodeURIComponent);
3063 3073
3064 // Install Global.encodeURI. 3074 // Install Global.encodeURI.
3065 SimpleInstallFunction(global_object, "encodeURI", Builtins::kGlobalEncodeURI, 3075 SimpleInstallFunction(global_object, "encodeURI", Builtins::kGlobalEncodeURI,
3066 1, false); 3076 1, false, kGlobalEncodeURI);
3067 3077
3068 // Install Global.encodeURIComponent. 3078 // Install Global.encodeURIComponent.
3069 SimpleInstallFunction(global_object, "encodeURIComponent", 3079 SimpleInstallFunction(global_object, "encodeURIComponent",
3070 Builtins::kGlobalEncodeURIComponent, 1, false); 3080 Builtins::kGlobalEncodeURIComponent, 1, false,
3081 kGlobalEncodeURIComponent);
3071 3082
3072 // Install Global.escape. 3083 // Install Global.escape.
3073 SimpleInstallFunction(global_object, "escape", Builtins::kGlobalEscape, 1, 3084 SimpleInstallFunction(global_object, "escape", Builtins::kGlobalEscape, 1,
3074 false); 3085 false, kGlobalEscape);
3075 3086
3076 // Install Global.unescape. 3087 // Install Global.unescape.
3077 SimpleInstallFunction(global_object, "unescape", Builtins::kGlobalUnescape, 1, 3088 SimpleInstallFunction(global_object, "unescape", Builtins::kGlobalUnescape, 1,
3078 false); 3089 false, kGlobalUnescape);
3079 3090
3080 // Install Global.eval. 3091 // Install Global.eval.
3081 { 3092 {
3082 Handle<JSFunction> eval = 3093 Handle<JSFunction> eval =
3083 SimpleInstallFunction(global_object, factory()->eval_string(), 3094 SimpleInstallFunction(global_object, factory()->eval_string(),
3084 Builtins::kGlobalEval, 1, false); 3095 Builtins::kGlobalEval, 1, false);
3085 native_context()->set_global_eval_fun(*eval); 3096 native_context()->set_global_eval_fun(*eval);
3086 } 3097 }
3087 3098
3088 // Install Array.prototype.concat 3099 // Install Array.prototype.concat
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after
4077 } 4088 }
4078 4089
4079 4090
4080 // Called when the top-level V8 mutex is destroyed. 4091 // Called when the top-level V8 mutex is destroyed.
4081 void Bootstrapper::FreeThreadResources() { 4092 void Bootstrapper::FreeThreadResources() {
4082 DCHECK(!IsActive()); 4093 DCHECK(!IsActive());
4083 } 4094 }
4084 4095
4085 } // namespace internal 4096 } // namespace internal
4086 } // namespace v8 4097 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/typer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698