Chromium Code Reviews| Index: src/code-stubs.cc |
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
| index 051dd45dd99273969a22591920b9484c539b13c3..e3f281b86424a325a1ecef9cee6e3b18caa35e3a 100644 |
| --- a/src/code-stubs.cc |
| +++ b/src/code-stubs.cc |
| @@ -1208,10 +1208,31 @@ void InternalArrayConstructorStubBase::InstallDescriptors(Isolate* isolate) { |
| InstallDescriptor(isolate, &stub3); |
| } |
| + |
| InternalArrayConstructorStub::InternalArrayConstructorStub( |
| Isolate* isolate) { |
| InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
| } |
| +void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime( |
| + Isolate* isolate) { |
| + ElementsKind kinds[3] = |
|
Sven Panne
2013/11/21 08:09:27
Drop the "3"...
|
| + { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS, FAST_DOUBLE_ELEMENTS }; |
| + for (int i = 0; i < 3; i++) { |
|
Sven Panne
2013/11/21 08:09:27
... and use
for (size_t i = 0; i < ARRAY_SIZE(
|
| + // For internal arrays we only need a few things |
| + InternalArrayNoArgumentConstructorStub stubh1(kinds[i]); |
| + stubh1.GetCode(isolate)->set_is_pregenerated(true); |
| + InternalArraySingleArgumentConstructorStub stubh2(kinds[i]); |
| + stubh2.GetCode(isolate)->set_is_pregenerated(true); |
| + InternalArrayNArgumentsConstructorStub stubh3(kinds[i]); |
| + stubh3.GetCode(isolate)->set_is_pregenerated(true); |
| + } |
| + |
| + // This is needed by the InternalDoubleArray. |
| + // See InternalArrayConstructorStub::GenerateCase. |
| + InternalArraySingleArgumentConstructorStub stub(FAST_HOLEY_DOUBLE_ELEMENTS); |
| + stub.GetCode(isolate)->set_is_pregenerated(true); |
| +} |
| + |
| } } // namespace v8::internal |