Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: src/compiler/ast-graph-builder.cc

Issue 2480253006: Only treat lookup-slot-calls going through 'with' special (Closed)
Patch Set: rebaseline expectations Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ast/ast.cc ('k') | src/full-codegen/full-codegen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/ast-graph-builder.h" 5 #include "src/compiler/ast-graph-builder.h"
6 6
7 #include "src/ast/compile-time-value.h" 7 #include "src/ast/compile-time-value.h"
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/compilation-info.h" 9 #include "src/compilation-info.h"
10 #include "src/compiler.h" 10 #include "src/compiler.h"
(...skipping 2279 matching lines...) Expand 10 before | Expand all | Expand 10 after
2290 case Call::GLOBAL_CALL: { 2290 case Call::GLOBAL_CALL: {
2291 VariableProxy* proxy = callee->AsVariableProxy(); 2291 VariableProxy* proxy = callee->AsVariableProxy();
2292 VectorSlotPair pair = CreateVectorSlotPair(proxy->VariableFeedbackSlot()); 2292 VectorSlotPair pair = CreateVectorSlotPair(proxy->VariableFeedbackSlot());
2293 PrepareEagerCheckpoint(BeforeId(proxy)); 2293 PrepareEagerCheckpoint(BeforeId(proxy));
2294 callee_value = BuildVariableLoad(proxy->var(), expr->expression()->id(), 2294 callee_value = BuildVariableLoad(proxy->var(), expr->expression()->id(),
2295 pair, OutputFrameStateCombine::Push()); 2295 pair, OutputFrameStateCombine::Push());
2296 receiver_hint = ConvertReceiverMode::kNullOrUndefined; 2296 receiver_hint = ConvertReceiverMode::kNullOrUndefined;
2297 receiver_value = jsgraph()->UndefinedConstant(); 2297 receiver_value = jsgraph()->UndefinedConstant();
2298 break; 2298 break;
2299 } 2299 }
2300 case Call::LOOKUP_SLOT_CALL: { 2300 case Call::WITH_CALL: {
2301 Variable* variable = callee->AsVariableProxy()->var(); 2301 Variable* variable = callee->AsVariableProxy()->var();
2302 DCHECK(variable->location() == VariableLocation::LOOKUP); 2302 DCHECK(variable->location() == VariableLocation::LOOKUP);
2303 Node* name = jsgraph()->Constant(variable->name()); 2303 Node* name = jsgraph()->Constant(variable->name());
2304 const Operator* op = 2304 const Operator* op =
2305 javascript()->CallRuntime(Runtime::kLoadLookupSlotForCall); 2305 javascript()->CallRuntime(Runtime::kLoadLookupSlotForCall);
2306 Node* pair = NewNode(op, name); 2306 Node* pair = NewNode(op, name);
2307 callee_value = NewNode(common()->Projection(0), pair); 2307 callee_value = NewNode(common()->Projection(0), pair);
2308 receiver_value = NewNode(common()->Projection(1), pair); 2308 receiver_value = NewNode(common()->Projection(1), pair);
2309 PrepareFrameState(pair, expr->LookupId(), 2309 PrepareFrameState(pair, expr->LookupId(),
2310 OutputFrameStateCombine::Push(2)); 2310 OutputFrameStateCombine::Push(2));
(...skipping 2048 matching lines...) Expand 10 before | Expand all | Expand 10 after
4359 // Phi does not exist yet, introduce one. 4359 // Phi does not exist yet, introduce one.
4360 value = NewPhi(inputs, value, control); 4360 value = NewPhi(inputs, value, control);
4361 value->ReplaceInput(inputs - 1, other); 4361 value->ReplaceInput(inputs - 1, other);
4362 } 4362 }
4363 return value; 4363 return value;
4364 } 4364 }
4365 4365
4366 } // namespace compiler 4366 } // namespace compiler
4367 } // namespace internal 4367 } // namespace internal
4368 } // namespace v8 4368 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/ast.cc ('k') | src/full-codegen/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698