| 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 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 CreateCatchContextParameters const& rhs); | 234 CreateCatchContextParameters const& rhs); |
| 235 | 235 |
| 236 size_t hash_value(CreateCatchContextParameters const& parameters); | 236 size_t hash_value(CreateCatchContextParameters const& parameters); |
| 237 | 237 |
| 238 std::ostream& operator<<(std::ostream& os, | 238 std::ostream& operator<<(std::ostream& os, |
| 239 CreateCatchContextParameters const& parameters); | 239 CreateCatchContextParameters const& parameters); |
| 240 | 240 |
| 241 CreateCatchContextParameters const& CreateCatchContextParametersOf( | 241 CreateCatchContextParameters const& CreateCatchContextParametersOf( |
| 242 Operator const*); | 242 Operator const*); |
| 243 | 243 |
| 244 // Defines the slot count and ScopeType for a new function or eval context. This |
| 245 // is used as a parameter by the JSCreateFunctionContext operator. |
| 246 class CreateFunctionContextParameters final { |
| 247 public: |
| 248 CreateFunctionContextParameters(int slot_count, ScopeType scope_type); |
| 249 |
| 250 int slot_count() const { return slot_count_; } |
| 251 ScopeType scope_type() const { return scope_type_; } |
| 252 |
| 253 private: |
| 254 int const slot_count_; |
| 255 ScopeType const scope_type_; |
| 256 }; |
| 257 |
| 258 bool operator==(CreateFunctionContextParameters const& lhs, |
| 259 CreateFunctionContextParameters const& rhs); |
| 260 bool operator!=(CreateFunctionContextParameters const& lhs, |
| 261 CreateFunctionContextParameters const& rhs); |
| 262 |
| 263 size_t hash_value(CreateFunctionContextParameters const& parameters); |
| 264 |
| 265 std::ostream& operator<<(std::ostream& os, |
| 266 CreateFunctionContextParameters const& parameters); |
| 267 |
| 268 CreateFunctionContextParameters const& CreateFunctionContextParametersOf( |
| 269 Operator const*); |
| 270 |
| 244 // Defines the property of an object for a named access. This is | 271 // Defines the property of an object for a named access. This is |
| 245 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. | 272 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. |
| 246 class NamedAccess final { | 273 class NamedAccess final { |
| 247 public: | 274 public: |
| 248 NamedAccess(LanguageMode language_mode, Handle<Name> name, | 275 NamedAccess(LanguageMode language_mode, Handle<Name> name, |
| 249 VectorSlotPair const& feedback) | 276 VectorSlotPair const& feedback) |
| 250 : name_(name), feedback_(feedback), language_mode_(language_mode) {} | 277 : name_(name), feedback_(feedback), language_mode_(language_mode) {} |
| 251 | 278 |
| 252 Handle<Name> name() const { return name_; } | 279 Handle<Name> name() const { return name_; } |
| 253 LanguageMode language_mode() const { return language_mode_; } | 280 LanguageMode language_mode() const { return language_mode_; } |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 | 573 |
| 547 // Used to implement Ignition's SuspendGenerator bytecode. | 574 // Used to implement Ignition's SuspendGenerator bytecode. |
| 548 const Operator* GeneratorStore(int register_count); | 575 const Operator* GeneratorStore(int register_count); |
| 549 | 576 |
| 550 // Used to implement Ignition's ResumeGenerator bytecode. | 577 // Used to implement Ignition's ResumeGenerator bytecode. |
| 551 const Operator* GeneratorRestoreContinuation(); | 578 const Operator* GeneratorRestoreContinuation(); |
| 552 const Operator* GeneratorRestoreRegister(int index); | 579 const Operator* GeneratorRestoreRegister(int index); |
| 553 | 580 |
| 554 const Operator* StackCheck(); | 581 const Operator* StackCheck(); |
| 555 | 582 |
| 556 const Operator* CreateFunctionContext(int slot_count); | 583 const Operator* CreateFunctionContext(int slot_count, ScopeType scope_type); |
| 557 const Operator* CreateCatchContext(const Handle<String>& name, | 584 const Operator* CreateCatchContext(const Handle<String>& name, |
| 558 const Handle<ScopeInfo>& scope_info); | 585 const Handle<ScopeInfo>& scope_info); |
| 559 const Operator* CreateWithContext(const Handle<ScopeInfo>& scope_info); | 586 const Operator* CreateWithContext(const Handle<ScopeInfo>& scope_info); |
| 560 const Operator* CreateBlockContext(const Handle<ScopeInfo>& scpope_info); | 587 const Operator* CreateBlockContext(const Handle<ScopeInfo>& scpope_info); |
| 561 const Operator* CreateModuleContext(); | 588 const Operator* CreateModuleContext(); |
| 562 const Operator* CreateScriptContext(const Handle<ScopeInfo>& scpope_info); | 589 const Operator* CreateScriptContext(const Handle<ScopeInfo>& scpope_info); |
| 563 | 590 |
| 564 private: | 591 private: |
| 565 Zone* zone() const { return zone_; } | 592 Zone* zone() const { return zone_; } |
| 566 | 593 |
| 567 const JSOperatorGlobalCache& cache_; | 594 const JSOperatorGlobalCache& cache_; |
| 568 Zone* const zone_; | 595 Zone* const zone_; |
| 569 | 596 |
| 570 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); | 597 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); |
| 571 }; | 598 }; |
| 572 | 599 |
| 573 } // namespace compiler | 600 } // namespace compiler |
| 574 } // namespace internal | 601 } // namespace internal |
| 575 } // namespace v8 | 602 } // namespace v8 |
| 576 | 603 |
| 577 #endif // V8_COMPILER_JS_OPERATOR_H_ | 604 #endif // V8_COMPILER_JS_OPERATOR_H_ |
| OLD | NEW |