| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index 374f55f06879ffe12ecf7685f39f450d4eaa98dc..785b9ca9ac679facf17147930569c054e5e7cecd 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -81,24 +81,6 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
|
| HContext* context() { return context_; }
|
| Isolate* isolate() { return info_.isolate(); }
|
|
|
| - class ArrayContextChecker {
|
| - public:
|
| - ArrayContextChecker(HGraphBuilder* builder, HValue* constructor,
|
| - HValue* array_function)
|
| - : checker_(builder) {
|
| - checker_.If<HCompareObjectEqAndBranch, HValue*>(constructor,
|
| - array_function);
|
| - checker_.Then();
|
| - }
|
| -
|
| - ~ArrayContextChecker() {
|
| - checker_.ElseDeopt("Array constructor called from different context");
|
| - checker_.End();
|
| - }
|
| - private:
|
| - IfBuilder checker_;
|
| - };
|
| -
|
| enum ArgumentClass {
|
| NONE,
|
| SINGLE,
|
| @@ -106,7 +88,6 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
|
| };
|
|
|
| HValue* BuildArrayConstructor(ElementsKind kind,
|
| - ContextCheckMode context_mode,
|
| AllocationSiteOverrideMode override_mode,
|
| ArgumentClass argument_class);
|
| HValue* BuildInternalArrayConstructor(ElementsKind kind,
|
| @@ -342,7 +323,7 @@ template <>
|
| HValue* CodeStubGraphBuilder<NumberToStringStub>::BuildCodeStub() {
|
| info()->MarkAsSavesCallerDoubles();
|
| HValue* number = GetParameter(NumberToStringStub::kNumber);
|
| - return BuildNumberToString(number, handle(Type::Number(), isolate()));
|
| + return BuildNumberToString(number, Type::Number(isolate()));
|
| }
|
|
|
|
|
| @@ -510,20 +491,16 @@ HValue* CodeStubGraphBuilder<CreateAllocationSiteStub>::BuildCodeStub() {
|
| AllocationSite::kNestedSiteOffset),
|
| graph()->GetConstant0());
|
|
|
| - // Pretenuring calculation fields.
|
| + // Pretenuring calculation field.
|
| Add<HStoreNamedField>(object,
|
| HObjectAccess::ForAllocationSiteOffset(
|
| - AllocationSite::kMementoFoundCountOffset),
|
| + AllocationSite::kPretenureDataOffset),
|
| graph()->GetConstant0());
|
|
|
| + // Pretenuring memento creation count field.
|
| Add<HStoreNamedField>(object,
|
| HObjectAccess::ForAllocationSiteOffset(
|
| - AllocationSite::kMementoCreateCountOffset),
|
| - graph()->GetConstant0());
|
| -
|
| - Add<HStoreNamedField>(object,
|
| - HObjectAccess::ForAllocationSiteOffset(
|
| - AllocationSite::kPretenureDecisionOffset),
|
| + AllocationSite::kPretenureCreateCountOffset),
|
| graph()->GetConstant0());
|
|
|
| // Store an empty fixed array for the code dependency.
|
| @@ -672,15 +649,9 @@ Handle<Code> TransitionElementsKindStub::GenerateCode(Isolate* isolate) {
|
|
|
| HValue* CodeStubGraphBuilderBase::BuildArrayConstructor(
|
| ElementsKind kind,
|
| - ContextCheckMode context_mode,
|
| AllocationSiteOverrideMode override_mode,
|
| ArgumentClass argument_class) {
|
| HValue* constructor = GetParameter(ArrayConstructorStubBase::kConstructor);
|
| - if (context_mode == CONTEXT_CHECK_REQUIRED) {
|
| - HInstruction* array_function = BuildGetArrayFunction();
|
| - ArrayContextChecker checker(this, constructor, array_function);
|
| - }
|
| -
|
| HValue* property_cell = GetParameter(ArrayConstructorStubBase::kPropertyCell);
|
| // Walk through the property cell to the AllocationSite
|
| HValue* alloc_site = Add<HLoadNamedField>(property_cell,
|
| @@ -787,9 +758,8 @@ HValue* CodeStubGraphBuilderBase::BuildArrayNArgumentsConstructor(
|
| template <>
|
| HValue* CodeStubGraphBuilder<ArrayNoArgumentConstructorStub>::BuildCodeStub() {
|
| ElementsKind kind = casted_stub()->elements_kind();
|
| - ContextCheckMode context_mode = casted_stub()->context_mode();
|
| AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
|
| - return BuildArrayConstructor(kind, context_mode, override_mode, NONE);
|
| + return BuildArrayConstructor(kind, override_mode, NONE);
|
| }
|
|
|
|
|
| @@ -802,9 +772,8 @@ template <>
|
| HValue* CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::
|
| BuildCodeStub() {
|
| ElementsKind kind = casted_stub()->elements_kind();
|
| - ContextCheckMode context_mode = casted_stub()->context_mode();
|
| AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
|
| - return BuildArrayConstructor(kind, context_mode, override_mode, SINGLE);
|
| + return BuildArrayConstructor(kind, override_mode, SINGLE);
|
| }
|
|
|
|
|
| @@ -817,9 +786,8 @@ Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode(
|
| template <>
|
| HValue* CodeStubGraphBuilder<ArrayNArgumentsConstructorStub>::BuildCodeStub() {
|
| ElementsKind kind = casted_stub()->elements_kind();
|
| - ContextCheckMode context_mode = casted_stub()->context_mode();
|
| AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
|
| - return BuildArrayConstructor(kind, context_mode, override_mode, MULTIPLE);
|
| + return BuildArrayConstructor(kind, override_mode, MULTIPLE);
|
| }
|
|
|
|
|
| @@ -924,7 +892,7 @@ HValue* CodeStubGraphBuilder<BinaryOpICStub>::BuildCodeInitializedStub() {
|
| {
|
| Push(BuildBinaryOperation(
|
| state.op(), left, right,
|
| - handle(Type::String(), isolate()), right_type,
|
| + Type::String(isolate()), right_type,
|
| result_type, state.fixed_right_arg(),
|
| allocation_mode));
|
| }
|
| @@ -944,7 +912,7 @@ HValue* CodeStubGraphBuilder<BinaryOpICStub>::BuildCodeInitializedStub() {
|
| {
|
| Push(BuildBinaryOperation(
|
| state.op(), left, right,
|
| - left_type, handle(Type::String(), isolate()),
|
| + left_type, Type::String(isolate()),
|
| result_type, state.fixed_right_arg(),
|
| allocation_mode));
|
| }
|
|
|