| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 862afe5d3a644bdccc9f918236653baa31e5b03b..730af4a0d9d680c18760d2559cc0df697a15067d 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -6564,6 +6564,18 @@ void HGraphBuilder::GenerateValueOf(CallRuntime* call) {
|
| }
|
|
|
|
|
| +void HGraphBuilder::GenerateDateField(CallRuntime* call) {
|
| + ASSERT(call->arguments()->length() == 2);
|
| + ASSERT_NE(NULL, call->arguments()->at(1)->AsLiteral());
|
| + int index =
|
| + Smi::cast(*(call->arguments()->at(1)->AsLiteral()->handle()))->value();
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| + HValue* date = Pop();
|
| + HDateField* result = new(zone()) HDateField(date, index);
|
| + return ast_context()->ReturnInstruction(result, call->id());
|
| +}
|
| +
|
| +
|
| void HGraphBuilder::GenerateSetValueOf(CallRuntime* call) {
|
| ASSERT(call->arguments()->length() == 2);
|
| CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| @@ -6606,6 +6618,22 @@ void HGraphBuilder::GenerateSetValueOf(CallRuntime* call) {
|
| }
|
|
|
|
|
| +void HGraphBuilder::GenerateSetDateField(CallRuntime* call) {
|
| + ASSERT(call->arguments()->length() == 3);
|
| + ASSERT_NE(NULL, call->arguments()->at(1)->AsLiteral());
|
| + int index =
|
| + Smi::cast(*(call->arguments()->at(1)->AsLiteral()->handle()))->value();
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(2)));
|
| + HValue* value = Pop();
|
| + HValue* date = Pop();
|
| + HValue* context = environment()->LookupContext();
|
| + HSetDateField* result =
|
| + new(zone()) HSetDateField(context, date, value, index);
|
| + return ast_context()->ReturnInstruction(result, call->id());
|
| +}
|
| +
|
| +
|
| // Fast support for charCodeAt(n).
|
| void HGraphBuilder::GenerateStringCharCodeAt(CallRuntime* call) {
|
| ASSERT(call->arguments()->length() == 2);
|
|
|