OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_AST_H_ | 5 #ifndef V8_AST_H_ |
6 #define V8_AST_H_ | 6 #define V8_AST_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
(...skipping 1829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1840 VariableProxy* proxy = expression_->AsVariableProxy(); | 1840 VariableProxy* proxy = expression_->AsVariableProxy(); |
1841 return proxy != NULL && proxy->var()->IsUnallocated(); | 1841 return proxy != NULL && proxy->var()->IsUnallocated(); |
1842 } | 1842 } |
1843 | 1843 |
1844 bool known_global_function() const { | 1844 bool known_global_function() const { |
1845 return global_call() && !target_.is_null(); | 1845 return global_call() && !target_.is_null(); |
1846 } | 1846 } |
1847 | 1847 |
1848 Handle<JSFunction> target() { return target_; } | 1848 Handle<JSFunction> target() { return target_; } |
1849 | 1849 |
1850 Handle<Cell> cell() { return cell_; } | |
1851 | |
1852 Handle<AllocationSite> allocation_site() { return allocation_site_; } | 1850 Handle<AllocationSite> allocation_site() { return allocation_site_; } |
1853 | 1851 |
1854 void set_target(Handle<JSFunction> target) { target_ = target; } | 1852 void set_target(Handle<JSFunction> target) { target_ = target; } |
1855 void set_allocation_site(Handle<AllocationSite> site) { | 1853 void set_allocation_site(Handle<AllocationSite> site) { |
1856 allocation_site_ = site; | 1854 allocation_site_ = site; |
1857 } | 1855 } |
1858 bool ComputeGlobalTarget(Handle<GlobalObject> global, LookupIterator* it); | 1856 bool ComputeGlobalTarget(Handle<GlobalObject> global, LookupIterator* it); |
1859 | 1857 |
1860 static int num_ids() { return parent_num_ids() + 2; } | 1858 static int num_ids() { return parent_num_ids() + 2; } |
1861 BailoutId ReturnId() const { return BailoutId(local_id(0)); } | 1859 BailoutId ReturnId() const { return BailoutId(local_id(0)); } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1903 | 1901 |
1904 private: | 1902 private: |
1905 int local_id(int n) const { return base_id() + parent_num_ids() + n; } | 1903 int local_id(int n) const { return base_id() + parent_num_ids() + n; } |
1906 | 1904 |
1907 // We store this as an integer because we don't know if we have a slot or | 1905 // We store this as an integer because we don't know if we have a slot or |
1908 // an ic slot until scoping time. | 1906 // an ic slot until scoping time. |
1909 int ic_slot_or_slot_; | 1907 int ic_slot_or_slot_; |
1910 Expression* expression_; | 1908 Expression* expression_; |
1911 ZoneList<Expression*>* arguments_; | 1909 ZoneList<Expression*>* arguments_; |
1912 Handle<JSFunction> target_; | 1910 Handle<JSFunction> target_; |
1913 Handle<Cell> cell_; | |
1914 Handle<AllocationSite> allocation_site_; | 1911 Handle<AllocationSite> allocation_site_; |
1915 class IsUninitializedField : public BitField8<bool, 0, 1> {}; | 1912 class IsUninitializedField : public BitField8<bool, 0, 1> {}; |
1916 uint8_t bit_field_; | 1913 uint8_t bit_field_; |
1917 }; | 1914 }; |
1918 | 1915 |
1919 | 1916 |
1920 class CallNew FINAL : public Expression { | 1917 class CallNew FINAL : public Expression { |
1921 public: | 1918 public: |
1922 DECLARE_NODE_TYPE(CallNew) | 1919 DECLARE_NODE_TYPE(CallNew) |
1923 | 1920 |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3532 | 3529 |
3533 private: | 3530 private: |
3534 Zone* zone_; | 3531 Zone* zone_; |
3535 AstValueFactory* ast_value_factory_; | 3532 AstValueFactory* ast_value_factory_; |
3536 }; | 3533 }; |
3537 | 3534 |
3538 | 3535 |
3539 } } // namespace v8::internal | 3536 } } // namespace v8::internal |
3540 | 3537 |
3541 #endif // V8_AST_H_ | 3538 #endif // V8_AST_H_ |
OLD | NEW |