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

Side by Side Diff: src/bootstrapper.cc

Issue 1779123003: [compiler] Sidestep optimizing of generator resumers. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_interpreter-generators-disable-1
Patch Set: Rebased. Created 4 years, 9 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 | « src/bailout-reason.h ('k') | src/compiler.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/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/extensions/externalize-string-extension.h" 10 #include "src/extensions/externalize-string-extension.h"
(...skipping 2727 matching lines...) Expand 10 before | Expand all | Expand 10 after
2738 JSFunction::EnsureHasInitialMap(function); 2738 JSFunction::EnsureHasInitialMap(function);
2739 function->initial_map()->set_instance_type(JS_PROMISE_TYPE); 2739 function->initial_map()->set_instance_type(JS_PROMISE_TYPE);
2740 function->shared()->set_construct_stub( 2740 function->shared()->set_construct_stub(
2741 *isolate()->builtins()->JSBuiltinsConstructStub()); 2741 *isolate()->builtins()->JSBuiltinsConstructStub());
2742 InstallWithIntrinsicDefaultProto(isolate(), function, 2742 InstallWithIntrinsicDefaultProto(isolate(), function,
2743 Context::PROMISE_FUNCTION_INDEX); 2743 Context::PROMISE_FUNCTION_INDEX);
2744 } 2744 }
2745 2745
2746 InstallBuiltinFunctionIds(); 2746 InstallBuiltinFunctionIds();
2747 2747
2748 // Also install builtin function ids to some generator object methods. These
2749 // three methods use the three resume operations (Runtime_GeneratorNext,
2750 // Runtime_GeneratorReturn, Runtime_GeneratorThrow) respectively. Those
2751 // operations are not supported by Crankshaft, TurboFan, nor Ignition.
2752 {
2753 Handle<JSObject> generator_object_prototype(JSObject::cast(
2754 native_context()->generator_object_prototype_map()->prototype()));
2755
2756 { // GeneratorObject.prototype.next
2757 Handle<String> key = factory()->next_string();
2758 Handle<JSFunction> function = Handle<JSFunction>::cast(
2759 JSReceiver::GetProperty(generator_object_prototype, key)
2760 .ToHandleChecked());
2761 function->shared()->set_builtin_function_id(kGeneratorObjectNext);
2762 }
2763 { // GeneratorObject.prototype.return
2764 Handle<String> key = factory()->NewStringFromAsciiChecked("return");
2765 Handle<JSFunction> function = Handle<JSFunction>::cast(
2766 JSReceiver::GetProperty(generator_object_prototype, key)
2767 .ToHandleChecked());
2768 function->shared()->set_builtin_function_id(kGeneratorObjectReturn);
2769 }
2770 { // GeneratorObject.prototype.throw
2771 Handle<String> key = factory()->throw_string();
2772 Handle<JSFunction> function = Handle<JSFunction>::cast(
2773 JSReceiver::GetProperty(generator_object_prototype, key)
2774 .ToHandleChecked());
2775 function->shared()->set_builtin_function_id(kGeneratorObjectThrow);
2776 }
2777 }
2778
2748 // Create a map for accessor property descriptors (a variant of JSObject 2779 // Create a map for accessor property descriptors (a variant of JSObject
2749 // that predefines four properties get, set, configurable and enumerable). 2780 // that predefines four properties get, set, configurable and enumerable).
2750 { 2781 {
2751 // AccessorPropertyDescriptor initial map. 2782 // AccessorPropertyDescriptor initial map.
2752 Handle<Map> map = 2783 Handle<Map> map =
2753 factory()->NewMap(JS_OBJECT_TYPE, JSAccessorPropertyDescriptor::kSize); 2784 factory()->NewMap(JS_OBJECT_TYPE, JSAccessorPropertyDescriptor::kSize);
2754 // Create the descriptor array for the property descriptor object. 2785 // Create the descriptor array for the property descriptor object.
2755 Map::EnsureDescriptorSlack(map, 4); 2786 Map::EnsureDescriptorSlack(map, 4);
2756 2787
2757 { // get 2788 { // get
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after
3630 } 3661 }
3631 3662
3632 3663
3633 // Called when the top-level V8 mutex is destroyed. 3664 // Called when the top-level V8 mutex is destroyed.
3634 void Bootstrapper::FreeThreadResources() { 3665 void Bootstrapper::FreeThreadResources() {
3635 DCHECK(!IsActive()); 3666 DCHECK(!IsActive());
3636 } 3667 }
3637 3668
3638 } // namespace internal 3669 } // namespace internal
3639 } // namespace v8 3670 } // namespace v8
OLDNEW
« no previous file with comments | « src/bailout-reason.h ('k') | src/compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698