| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_JS_OPERATOR_H_ | 5 #ifndef V8_COMPILER_JS_OPERATOR_H_ |
| 6 #define V8_COMPILER_JS_OPERATOR_H_ | 6 #define V8_COMPILER_JS_OPERATOR_H_ |
| 7 | 7 |
| 8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" |
| 9 #include "src/globals.h" | 9 #include "src/globals.h" |
| 10 #include "src/runtime/runtime.h" | 10 #include "src/runtime/runtime.h" |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 CreateFunctionContextParameters const& rhs); | 261 CreateFunctionContextParameters const& rhs); |
| 262 | 262 |
| 263 size_t hash_value(CreateFunctionContextParameters const& parameters); | 263 size_t hash_value(CreateFunctionContextParameters const& parameters); |
| 264 | 264 |
| 265 std::ostream& operator<<(std::ostream& os, | 265 std::ostream& operator<<(std::ostream& os, |
| 266 CreateFunctionContextParameters const& parameters); | 266 CreateFunctionContextParameters const& parameters); |
| 267 | 267 |
| 268 CreateFunctionContextParameters const& CreateFunctionContextParametersOf( | 268 CreateFunctionContextParameters const& CreateFunctionContextParametersOf( |
| 269 Operator const*); | 269 Operator const*); |
| 270 | 270 |
| 271 // Defines the feedback, i.e., vector and index, for storing a data property in |
| 272 // an object literal. This is |
| 273 // used as a parameter by the JSStoreDataPropertyInLiteral operator. |
| 274 class DataPropertyParameters final { |
| 275 public: |
| 276 explicit DataPropertyParameters(VectorSlotPair const& feedback) |
| 277 : feedback_(feedback) {} |
| 278 |
| 279 VectorSlotPair const& feedback() const { return feedback_; } |
| 280 |
| 281 private: |
| 282 VectorSlotPair const feedback_; |
| 283 }; |
| 284 |
| 285 bool operator==(DataPropertyParameters const&, DataPropertyParameters const&); |
| 286 bool operator!=(DataPropertyParameters const&, DataPropertyParameters const&); |
| 287 |
| 288 size_t hash_value(DataPropertyParameters const&); |
| 289 |
| 290 std::ostream& operator<<(std::ostream&, DataPropertyParameters const&); |
| 291 |
| 292 const DataPropertyParameters& DataPropertyParametersOf(const Operator* op); |
| 293 |
| 271 // Defines the property of an object for a named access. This is | 294 // Defines the property of an object for a named access. This is |
| 272 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. | 295 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. |
| 273 class NamedAccess final { | 296 class NamedAccess final { |
| 274 public: | 297 public: |
| 275 NamedAccess(LanguageMode language_mode, Handle<Name> name, | 298 NamedAccess(LanguageMode language_mode, Handle<Name> name, |
| 276 VectorSlotPair const& feedback) | 299 VectorSlotPair const& feedback) |
| 277 : name_(name), feedback_(feedback), language_mode_(language_mode) {} | 300 : name_(name), feedback_(feedback), language_mode_(language_mode) {} |
| 278 | 301 |
| 279 Handle<Name> name() const { return name_; } | 302 Handle<Name> name() const { return name_; } |
| 280 LanguageMode language_mode() const { return language_mode_; } | 303 LanguageMode language_mode() const { return language_mode_; } |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 535 const Operator* ConvertReceiver(ConvertReceiverMode convert_mode); | 558 const Operator* ConvertReceiver(ConvertReceiverMode convert_mode); |
| 536 | 559 |
| 537 const Operator* LoadProperty(VectorSlotPair const& feedback); | 560 const Operator* LoadProperty(VectorSlotPair const& feedback); |
| 538 const Operator* LoadNamed(Handle<Name> name, VectorSlotPair const& feedback); | 561 const Operator* LoadNamed(Handle<Name> name, VectorSlotPair const& feedback); |
| 539 | 562 |
| 540 const Operator* StoreProperty(LanguageMode language_mode, | 563 const Operator* StoreProperty(LanguageMode language_mode, |
| 541 VectorSlotPair const& feedback); | 564 VectorSlotPair const& feedback); |
| 542 const Operator* StoreNamed(LanguageMode language_mode, Handle<Name> name, | 565 const Operator* StoreNamed(LanguageMode language_mode, Handle<Name> name, |
| 543 VectorSlotPair const& feedback); | 566 VectorSlotPair const& feedback); |
| 544 | 567 |
| 545 const Operator* StoreDataPropertyInLiteral(); | 568 const Operator* StoreDataPropertyInLiteral(const VectorSlotPair& feedback); |
| 546 | 569 |
| 547 const Operator* DeleteProperty(LanguageMode language_mode); | 570 const Operator* DeleteProperty(LanguageMode language_mode); |
| 548 | 571 |
| 549 const Operator* HasProperty(); | 572 const Operator* HasProperty(); |
| 550 | 573 |
| 551 const Operator* GetSuperConstructor(); | 574 const Operator* GetSuperConstructor(); |
| 552 | 575 |
| 553 const Operator* LoadGlobal(const Handle<Name>& name, | 576 const Operator* LoadGlobal(const Handle<Name>& name, |
| 554 const VectorSlotPair& feedback, | 577 const VectorSlotPair& feedback, |
| 555 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); | 578 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 Zone* const zone_; | 620 Zone* const zone_; |
| 598 | 621 |
| 599 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); | 622 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); |
| 600 }; | 623 }; |
| 601 | 624 |
| 602 } // namespace compiler | 625 } // namespace compiler |
| 603 } // namespace internal | 626 } // namespace internal |
| 604 } // namespace v8 | 627 } // namespace v8 |
| 605 | 628 |
| 606 #endif // V8_COMPILER_JS_OPERATOR_H_ | 629 #endif // V8_COMPILER_JS_OPERATOR_H_ |
| OLD | NEW |