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

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

Issue 667253002: Speed up creation of Objects whose prototype has dictionary elements (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 months 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 | Annotate | Revision Log
« no previous file with comments | « src/arm64/full-codegen-arm64.cc ('k') | src/ia32/full-codegen-ia32.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/compiler.h" 7 #include "src/compiler.h"
8 #include "src/compiler/control-builders.h" 8 #include "src/compiler/control-builders.h"
9 #include "src/compiler/machine-operator.h" 9 #include "src/compiler/machine-operator.h"
10 #include "src/compiler/node-properties.h" 10 #include "src/compiler/node-properties.h"
(...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 } 935 }
936 break; 936 break;
937 } 937 }
938 case ObjectLiteral::Property::PROTOTYPE: { 938 case ObjectLiteral::Property::PROTOTYPE: {
939 environment()->Push(literal); // Duplicate receiver. 939 environment()->Push(literal); // Duplicate receiver.
940 VisitForValue(property->value()); 940 VisitForValue(property->value());
941 Node* value = environment()->Pop(); 941 Node* value = environment()->Pop();
942 Node* receiver = environment()->Pop(); 942 Node* receiver = environment()->Pop();
943 if (property->emit_store()) { 943 if (property->emit_store()) {
944 const Operator* op = 944 const Operator* op =
945 javascript()->CallRuntime(Runtime::kSetPrototype, 2); 945 javascript()->CallRuntime(Runtime::kInternalSetPrototype, 2);
946 NewNode(op, receiver, value); 946 NewNode(op, receiver, value);
947 } 947 }
948 break; 948 break;
949 } 949 }
950 case ObjectLiteral::Property::GETTER: 950 case ObjectLiteral::Property::GETTER:
951 accessor_table.lookup(key)->second->getter = property->value(); 951 accessor_table.lookup(key)->second->getter = property->value();
952 break; 952 break;
953 case ObjectLiteral::Property::SETTER: 953 case ObjectLiteral::Property::SETTER:
954 accessor_table.lookup(key)->second->setter = property->value(); 954 accessor_table.lookup(key)->second->setter = property->value();
955 break; 955 break;
(...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 DCHECK(NodeProperties::GetFrameStateInput(node)->opcode() == 2119 DCHECK(NodeProperties::GetFrameStateInput(node)->opcode() ==
2120 IrOpcode::kDead); 2120 IrOpcode::kDead);
2121 NodeProperties::ReplaceFrameStateInput( 2121 NodeProperties::ReplaceFrameStateInput(
2122 node, environment()->Checkpoint(ast_id, combine)); 2122 node, environment()->Checkpoint(ast_id, combine));
2123 } 2123 }
2124 } 2124 }
2125 2125
2126 } 2126 }
2127 } 2127 }
2128 } // namespace v8::internal::compiler 2128 } // namespace v8::internal::compiler
OLDNEW
« no previous file with comments | « src/arm64/full-codegen-arm64.cc ('k') | src/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698