| Index: src/crankshaft/hydrogen.cc
|
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
|
| index ea10da4e4a774838bef3c55db024fb170ab19a73..7182b6586c9f4a17af0bffc7b13373a80a4a4065 100644
|
| --- a/src/crankshaft/hydrogen.cc
|
| +++ b/src/crankshaft/hydrogen.cc
|
| @@ -1844,67 +1844,6 @@ HValue* HGraphBuilder::BuildCreateIterResultObject(HValue* value,
|
| }
|
|
|
|
|
| -HValue* HGraphBuilder::BuildRegExpConstructResult(HValue* length,
|
| - HValue* index,
|
| - HValue* input) {
|
| - NoObservableSideEffectsScope scope(this);
|
| - HConstant* max_length = Add<HConstant>(JSArray::kInitialMaxFastElementArray);
|
| - Add<HBoundsCheck>(length, max_length);
|
| -
|
| - // Generate size calculation code here in order to make it dominate
|
| - // the JSRegExpResult allocation.
|
| - ElementsKind elements_kind = FAST_ELEMENTS;
|
| - HValue* size = BuildCalculateElementsSize(elements_kind, length);
|
| -
|
| - // Allocate the JSRegExpResult and the FixedArray in one step.
|
| - HValue* result =
|
| - Add<HAllocate>(Add<HConstant>(JSRegExpResult::kSize), HType::JSArray(),
|
| - NOT_TENURED, JS_ARRAY_TYPE, graph()->GetConstant0());
|
| -
|
| - // Initialize the JSRegExpResult header.
|
| - HValue* native_context = Add<HLoadNamedField>(
|
| - context(), nullptr,
|
| - HObjectAccess::ForContextSlot(Context::NATIVE_CONTEXT_INDEX));
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForMap(),
|
| - Add<HLoadNamedField>(
|
| - native_context, nullptr,
|
| - HObjectAccess::ForContextSlot(Context::REGEXP_RESULT_MAP_INDEX)));
|
| - HConstant* empty_fixed_array =
|
| - Add<HConstant>(isolate()->factory()->empty_fixed_array());
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSArray::kPropertiesOffset),
|
| - empty_fixed_array);
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSArray::kElementsOffset),
|
| - empty_fixed_array);
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSArray::kLengthOffset), length);
|
| -
|
| - // Initialize the additional fields.
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kIndexOffset),
|
| - index);
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kInputOffset),
|
| - input);
|
| -
|
| - // Allocate and initialize the elements header.
|
| - HAllocate* elements = BuildAllocateElements(elements_kind, size);
|
| - BuildInitializeElementsHeader(elements, elements_kind, length);
|
| -
|
| - Add<HStoreNamedField>(
|
| - result, HObjectAccess::ForJSArrayOffset(JSArray::kElementsOffset),
|
| - elements);
|
| -
|
| - // Initialize the elements contents with undefined.
|
| - BuildFillElementsWithValue(
|
| - elements, elements_kind, graph()->GetConstant0(), length,
|
| - graph()->GetConstantUndefined());
|
| -
|
| - return result;
|
| -}
|
| -
|
| HValue* HGraphBuilder::BuildNumberToString(HValue* object, AstType* type) {
|
| NoObservableSideEffectsScope scope(this);
|
|
|
| @@ -12168,40 +12107,6 @@ void HOptimizedGraphBuilder::GenerateRegExpExec(CallRuntime* call) {
|
| }
|
|
|
|
|
| -void HOptimizedGraphBuilder::GenerateRegExpFlags(CallRuntime* call) {
|
| - DCHECK_EQ(1, call->arguments()->length());
|
| - CHECK_ALIVE(VisitExpressions(call->arguments()));
|
| - HValue* regexp = Pop();
|
| - HInstruction* result =
|
| - New<HLoadNamedField>(regexp, nullptr, HObjectAccess::ForJSRegExpFlags());
|
| - return ast_context()->ReturnInstruction(result, call->id());
|
| -}
|
| -
|
| -
|
| -void HOptimizedGraphBuilder::GenerateRegExpSource(CallRuntime* call) {
|
| - DCHECK_EQ(1, call->arguments()->length());
|
| - CHECK_ALIVE(VisitExpressions(call->arguments()));
|
| - HValue* regexp = Pop();
|
| - HInstruction* result =
|
| - New<HLoadNamedField>(regexp, nullptr, HObjectAccess::ForJSRegExpSource());
|
| - return ast_context()->ReturnInstruction(result, call->id());
|
| -}
|
| -
|
| -
|
| -// Construct a RegExp exec result with two in-object properties.
|
| -void HOptimizedGraphBuilder::GenerateRegExpConstructResult(CallRuntime* call) {
|
| - DCHECK_EQ(3, call->arguments()->length());
|
| - CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| - CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
|
| - CHECK_ALIVE(VisitForValue(call->arguments()->at(2)));
|
| - HValue* input = Pop();
|
| - HValue* index = Pop();
|
| - HValue* length = Pop();
|
| - HValue* result = BuildRegExpConstructResult(length, index, input);
|
| - return ast_context()->ReturnValue(result);
|
| -}
|
| -
|
| -
|
| // Fast support for number to string.
|
| void HOptimizedGraphBuilder::GenerateNumberToString(CallRuntime* call) {
|
| DCHECK_EQ(1, call->arguments()->length());
|
|
|