Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 1590ab36698d9d5b98605111966ed17b8c7bc2a8..99009699b2598ca60ddb31dd7adeb96bae2c285d 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -9125,6 +9125,37 @@ void HGraphBuilder::GenerateDateField(CallRuntime* call) { |
} |
+void HGraphBuilder::GenerateOneByteSeqStringSetChar(CallRuntime* call) { |
+ ASSERT(call->arguments()->length() == 3); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(1))); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(2))); |
+ HValue* value = Pop(); |
+ HValue* index = Pop(); |
+ HValue* string = Pop(); |
+ HSeqStringSetChar* result = |
+ new(zone()) HSeqStringSetChar(true, string, index, value); |
+ return ast_context()->ReturnInstruction(result, call->id()); |
+} |
+ |
+ |
+void HGraphBuilder::GenerateTwoByteSeqStringSetChar(CallRuntime* call) { |
+ ASSERT(call->arguments()->length() == 3); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(1))); |
+ CHECK_ALIVE(VisitForValue(call->arguments()->at(2))); |
+ HValue* value = Pop(); |
+ HValue* index = Pop(); |
+ HValue* string = Pop(); |
+ HValue* context = environment()->LookupContext(); |
+ HStringCharCodeAt* char_code = BuildStringCharCodeAt(context, string, index); |
+ AddInstruction(char_code); |
+ HSeqStringSetChar* result = |
+ new(zone()) HSeqStringSetChar(false, string, index, value); |
+ return ast_context()->ReturnInstruction(result, call->id()); |
+} |
+ |
+ |
void HGraphBuilder::GenerateSetValueOf(CallRuntime* call) { |
ASSERT(call->arguments()->length() == 2); |
CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |