| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index 3ffe12ab6cf8822325c3acb8817b21ee668da1e3..cc92dbe68777cd834e8a8dfe5828a34b21a6593d 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -683,6 +683,18 @@ void StoreGlobalStub::InitializeInterfaceDescriptor(
|
| }
|
|
|
|
|
| +void GrowArrayElementsStub::InitializeInterfaceDescriptor(
|
| + CodeStubInterfaceDescriptor* descriptor) {
|
| + Register registers[] = { InterfaceDescriptor::ContextRegister(),
|
| + ObjectRegister(),
|
| + KeyRegister(),
|
| + CapacityRegister() };
|
| + Address deopt_handler = Runtime::FunctionForId(
|
| + Runtime::kGrowArrayElements)->entry;
|
| + descriptor->Initialize(ARRAY_SIZE(registers), registers, deopt_handler);
|
| +}
|
| +
|
| +
|
| void KeyedLoadDictionaryElementPlatformStub::Generate(
|
| MacroAssembler* masm) {
|
| KeyedLoadStubCompiler::GenerateLoadDictionaryElement(masm);
|
| @@ -695,6 +707,20 @@ void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
|
| }
|
|
|
|
|
| +void GrowArrayElementsStub::GenerateAheadOfTime(Isolate* isolate) {
|
| + // Generate for all elements kinds
|
| + int last_index = GetSequenceIndexFromFastElementsKind(
|
| + TERMINAL_FAST_ELEMENTS_KIND);
|
| + for (int i = 0; i <= last_index; ++i) {
|
| + ElementsKind kind = GetFastElementsKindFromSequenceIndex(i);
|
| + GrowArrayElementsStub stub1(isolate, true, kind);
|
| + stub1.GetCode();
|
| + GrowArrayElementsStub stub2(isolate, false, kind);
|
| + stub2.GetCode();
|
| + }
|
| +}
|
| +
|
| +
|
| void KeyedStoreElementStub::Generate(MacroAssembler* masm) {
|
| switch (elements_kind_) {
|
| case FAST_ELEMENTS:
|
|
|