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

Side by Side Diff: src/ic/keyed-store-generic.cc

Issue 2525253002: Revert of [stubs] Fix AccessorInfo mixup in KeyedStoreGeneric (Closed)
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « src/code-stub-assembler.h ('k') | test/mjsunit/regress/regress-crbug-668101.js » ('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 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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/ic/keyed-store-generic.h" 5 #include "src/ic/keyed-store-generic.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/code-stub-assembler.h" 8 #include "src/code-stub-assembler.h"
9 #include "src/contexts.h" 9 #include "src/contexts.h"
10 #include "src/ic/accessor-assembler-impl.h" 10 #include "src/ic/accessor-assembler-impl.h"
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 &readonly, slow); 669 &readonly, slow);
670 Add<NameDictionary>(properties, p->name, p->value, slow); 670 Add<NameDictionary>(properties, p->name, p->value, slow);
671 Return(p->value); 671 Return(p->value);
672 } 672 }
673 } 673 }
674 674
675 Bind(&accessor); 675 Bind(&accessor);
676 { 676 {
677 Label not_callable(this); 677 Label not_callable(this);
678 Node* accessor_pair = var_accessor_pair.value(); 678 Node* accessor_pair = var_accessor_pair.value();
679 GotoIf(IsAccessorInfoMap(LoadMap(accessor_pair)), slow); 679 GotoIf(IsAccessorPairMap(LoadMap(accessor_pair)), slow);
680 CSA_ASSERT(this, HasInstanceType(accessor_pair, ACCESSOR_PAIR_TYPE)); 680 CSA_ASSERT(this, HasInstanceType(accessor_pair, ACCESSOR_PAIR_TYPE));
681 Node* setter = LoadObjectField(accessor_pair, AccessorPair::kSetterOffset); 681 Node* setter = LoadObjectField(accessor_pair, AccessorPair::kSetterOffset);
682 Node* setter_map = LoadMap(setter); 682 Node* setter_map = LoadMap(setter);
683 // FunctionTemplateInfo setters are not supported yet. 683 // FunctionTemplateInfo setters are not supported yet.
684 GotoIf(IsFunctionTemplateInfoMap(setter_map), slow); 684 GotoIf(IsFunctionTemplateInfoMap(setter_map), slow);
685 GotoUnless(IsCallableMap(setter_map), &not_callable); 685 GotoUnless(IsCallableMap(setter_map), &not_callable);
686 686
687 Callable callable = CodeFactory::Call(isolate()); 687 Callable callable = CodeFactory::Call(isolate());
688 CallJS(callable, p->context, setter, receiver, p->value); 688 CallJS(callable, p->context, setter, receiver, p->value);
689 Return(p->value); 689 Return(p->value);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 Bind(&slow); 779 Bind(&slow);
780 { 780 {
781 Comment("KeyedStoreGeneric_slow"); 781 Comment("KeyedStoreGeneric_slow");
782 TailCallRuntime(Runtime::kSetProperty, context, receiver, name, value, 782 TailCallRuntime(Runtime::kSetProperty, context, receiver, name, value,
783 SmiConstant(language_mode)); 783 SmiConstant(language_mode));
784 } 784 }
785 } 785 }
786 786
787 } // namespace internal 787 } // namespace internal
788 } // namespace v8 788 } // namespace v8
OLDNEW
« no previous file with comments | « src/code-stub-assembler.h ('k') | test/mjsunit/regress/regress-crbug-668101.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698