| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index eb3bac8fbf4056609374e4c3f4fc44187e92f945..d65026b843ca4ec6d70947c7e03e39e18ccc5e18 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -594,6 +594,32 @@ Handle<Code> KeyedLoadFieldStub::GenerateCode(Isolate* isolate) {
|
| }
|
|
|
|
|
| +template<>
|
| +HValue* CodeStubGraphBuilder<KeyedArrayCallStub>::BuildCodeStub() {
|
| + int argc = casted_stub()->argc() + 1;
|
| + info()->set_parameter_count(argc);
|
| +
|
| + HValue* receiver = Add<HParameter>(1);
|
| +
|
| + // Load the expected initial array map from the context.
|
| + JSArrayBuilder array_builder(this, casted_stub()->elements_kind());
|
| + HValue* map = array_builder.EmitMapCode();
|
| +
|
| + HValue* checked_receiver = Add<HCheckMapValue>(receiver, map);
|
| +
|
| + HValue* function = BuildUncheckedMonomorphicElementAccess(
|
| + checked_receiver, GetParameter(0),
|
| + NULL, true, casted_stub()->elements_kind(),
|
| + false, NEVER_RETURN_HOLE, STANDARD_STORE);
|
| + return Add<HCallFunction>(function, argc, TAIL_CALL);
|
| +}
|
| +
|
| +
|
| +Handle<Code> KeyedArrayCallStub::GenerateCode(Isolate* isolate) {
|
| + return DoGenerateCode(isolate, this);
|
| +}
|
| +
|
| +
|
| template <>
|
| HValue* CodeStubGraphBuilder<KeyedStoreFastElementStub>::BuildCodeStub() {
|
| BuildUncheckedMonomorphicElementAccess(
|
|
|