| OLD | NEW |
| 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 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ | 5 #ifndef V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| 6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ | 6 #define V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| 7 | 7 |
| 8 #include "src/ast/ast.h" | 8 #include "src/ast/ast.h" |
| 9 #include "src/compiler/compiler-source-position-table.h" | 9 #include "src/compiler/compiler-source-position-table.h" |
| 10 #include "src/compiler/js-graph.h" | 10 #include "src/compiler/js-graph.h" |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 // Builders for property loads and stores. | 281 // Builders for property loads and stores. |
| 282 Node* BuildKeyedLoad(Node* receiver, Node* key, | 282 Node* BuildKeyedLoad(Node* receiver, Node* key, |
| 283 const VectorSlotPair& feedback); | 283 const VectorSlotPair& feedback); |
| 284 Node* BuildNamedLoad(Node* receiver, Handle<Name> name, | 284 Node* BuildNamedLoad(Node* receiver, Handle<Name> name, |
| 285 const VectorSlotPair& feedback); | 285 const VectorSlotPair& feedback); |
| 286 Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, | 286 Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, |
| 287 const VectorSlotPair& feedback); | 287 const VectorSlotPair& feedback); |
| 288 Node* BuildNamedStore(Node* receiver, Handle<Name> name, Node* value, | 288 Node* BuildNamedStore(Node* receiver, Handle<Name> name, Node* value, |
| 289 const VectorSlotPair& feedback); | 289 const VectorSlotPair& feedback); |
| 290 | 290 |
| 291 // Builders for super property loads and stores. | |
| 292 Node* BuildKeyedSuperStore(Node* receiver, Node* home_object, Node* key, | |
| 293 Node* value); | |
| 294 Node* BuildNamedSuperStore(Node* receiver, Node* home_object, | |
| 295 Handle<Name> name, Node* value); | |
| 296 Node* BuildNamedSuperLoad(Node* receiver, Node* home_object, | |
| 297 Handle<Name> name, const VectorSlotPair& feedback); | |
| 298 Node* BuildKeyedSuperLoad(Node* receiver, Node* home_object, Node* key, | |
| 299 const VectorSlotPair& feedback); | |
| 300 | |
| 301 // Builders for global variable loads and stores. | 291 // Builders for global variable loads and stores. |
| 302 Node* BuildGlobalLoad(Handle<Name> name, const VectorSlotPair& feedback, | 292 Node* BuildGlobalLoad(Handle<Name> name, const VectorSlotPair& feedback, |
| 303 TypeofMode typeof_mode); | 293 TypeofMode typeof_mode); |
| 304 Node* BuildGlobalStore(Handle<Name> name, Node* value, | 294 Node* BuildGlobalStore(Handle<Name> name, Node* value, |
| 305 const VectorSlotPair& feedback); | 295 const VectorSlotPair& feedback); |
| 306 | 296 |
| 307 // Builders for accessing the function context. | 297 // Builders for accessing the function context. |
| 308 Node* BuildLoadGlobalObject(); | 298 Node* BuildLoadGlobalObject(); |
| 309 Node* BuildLoadNativeContextField(int index); | 299 Node* BuildLoadNativeContextField(int index); |
| 310 | 300 |
| 311 // Builders for automatic type conversion. | 301 // Builders for automatic type conversion. |
| 312 Node* BuildToBoolean(Node* input, TypeFeedbackId feedback_id); | 302 Node* BuildToBoolean(Node* input, TypeFeedbackId feedback_id); |
| 313 Node* BuildToObject(Node* input, BailoutId bailout_id); | 303 Node* BuildToObject(Node* input, BailoutId bailout_id); |
| 314 | 304 |
| 315 // Builder for adding the [[HomeObject]] to a value if the value came from a | 305 // Builder for adding the [[HomeObject]] to a value if the value came from a |
| 316 // function literal and needs a home object. Do nothing otherwise. | 306 // function literal and needs a home object. Do nothing otherwise. |
| 317 Node* BuildSetHomeObject(Node* value, Node* home_object, | 307 Node* BuildSetHomeObject(Node* value, Node* home_object, |
| 318 LiteralProperty* property, int slot_number = 0); | 308 LiteralProperty* property, int slot_number = 0); |
| 319 | 309 |
| 320 // Builders for error reporting at runtime. | 310 // Builders for error reporting at runtime. |
| 321 Node* BuildThrowError(Node* exception, BailoutId bailout_id); | 311 Node* BuildThrowError(Node* exception, BailoutId bailout_id); |
| 322 Node* BuildThrowReferenceError(Variable* var, BailoutId bailout_id); | 312 Node* BuildThrowReferenceError(Variable* var, BailoutId bailout_id); |
| 323 Node* BuildThrowConstAssignError(BailoutId bailout_id); | 313 Node* BuildThrowConstAssignError(BailoutId bailout_id); |
| 324 Node* BuildThrowUnsupportedSuperError(BailoutId bailout_id); | |
| 325 | 314 |
| 326 // Builders for dynamic hole-checks at runtime. | 315 // Builders for dynamic hole-checks at runtime. |
| 327 Node* BuildHoleCheckThenThrow(Node* value, Variable* var, Node* not_hole, | 316 Node* BuildHoleCheckThenThrow(Node* value, Variable* var, Node* not_hole, |
| 328 BailoutId bailout_id); | 317 BailoutId bailout_id); |
| 329 Node* BuildHoleCheckElseThrow(Node* value, Variable* var, Node* for_hole, | 318 Node* BuildHoleCheckElseThrow(Node* value, Variable* var, Node* for_hole, |
| 330 BailoutId bailout_id); | 319 BailoutId bailout_id); |
| 331 | 320 |
| 332 // Builders for non-local control flow. | 321 // Builders for non-local control flow. |
| 333 Node* BuildReturn(Node* return_value); | 322 Node* BuildReturn(Node* return_value); |
| 334 Node* BuildThrow(Node* exception_value); | 323 Node* BuildThrow(Node* exception_value); |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 private: | 585 private: |
| 597 SourcePositionTable* const source_positions_; | 586 SourcePositionTable* const source_positions_; |
| 598 SourcePosition const start_position_; | 587 SourcePosition const start_position_; |
| 599 }; | 588 }; |
| 600 | 589 |
| 601 } // namespace compiler | 590 } // namespace compiler |
| 602 } // namespace internal | 591 } // namespace internal |
| 603 } // namespace v8 | 592 } // namespace v8 |
| 604 | 593 |
| 605 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ | 594 #endif // V8_COMPILER_AST_GRAPH_BUILDER_H_ |
| OLD | NEW |