| Index: src/builtins/builtins-handler.cc
|
| diff --git a/src/builtins/builtins-handler.cc b/src/builtins/builtins-handler.cc
|
| index 16070de4bee9378b1c0f9e7edcc6c76ddcba5885..88597f8add9afc32824c39405d3d7661ae5495d7 100644
|
| --- a/src/builtins/builtins-handler.cc
|
| +++ b/src/builtins/builtins-handler.cc
|
| @@ -2,10 +2,11 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "src/builtins/builtins.h"
|
| #include "src/builtins/builtins-utils.h"
|
| +#include "src/builtins/builtins.h"
|
| #include "src/ic/handler-compiler.h"
|
| #include "src/ic/ic.h"
|
| +#include "src/ic/keyed-store-generic.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| @@ -40,6 +41,32 @@ void Builtins::Generate_KeyedStoreIC_Megamorphic_Strict(MacroAssembler* masm) {
|
| KeyedStoreIC::GenerateMegamorphic(masm, STRICT);
|
| }
|
|
|
| +void KeyedStoreICMegamorphic(CodeStubAssembler* assembler, LanguageMode mode) {
|
| + typedef compiler::Node Node;
|
| + typedef StoreWithVectorDescriptor Descriptor;
|
| +
|
| + Node* receiver = assembler->Parameter(Descriptor::kReceiver);
|
| + Node* name = assembler->Parameter(Descriptor::kName);
|
| + Node* value = assembler->Parameter(Descriptor::kValue);
|
| + Node* slot = assembler->Parameter(Descriptor::kSlot);
|
| + Node* vector = assembler->Parameter(Descriptor::kVector);
|
| + Node* context = assembler->Parameter(Descriptor::kContext);
|
| +
|
| + CodeStubAssembler::StoreICParameters p(context, receiver, name, value, slot,
|
| + vector);
|
| + KeyedStoreGenericGenerator::Generate(assembler, &p, mode);
|
| +}
|
| +
|
| +void Builtins::Generate_KeyedStoreIC_Megamorphic_TF(
|
| + CodeStubAssembler* assembler) {
|
| + KeyedStoreICMegamorphic(assembler, SLOPPY);
|
| +}
|
| +
|
| +void Builtins::Generate_KeyedStoreIC_Megamorphic_Strict_TF(
|
| + CodeStubAssembler* assembler) {
|
| + KeyedStoreICMegamorphic(assembler, STRICT);
|
| +}
|
| +
|
| void Builtins::Generate_KeyedStoreIC_Miss(MacroAssembler* masm) {
|
| KeyedStoreIC::GenerateMiss(masm);
|
| }
|
|
|