OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1840 Handle<String> name_; | 1840 Handle<String> name_; |
1841 const Runtime::Function* function_; | 1841 const Runtime::Function* function_; |
1842 ZoneList<Expression*>* arguments_; | 1842 ZoneList<Expression*>* arguments_; |
1843 }; | 1843 }; |
1844 | 1844 |
1845 | 1845 |
1846 class UnaryOperation: public Expression { | 1846 class UnaryOperation: public Expression { |
1847 public: | 1847 public: |
1848 DECLARE_NODE_TYPE(UnaryOperation) | 1848 DECLARE_NODE_TYPE(UnaryOperation) |
1849 | 1849 |
1850 virtual bool ResultOverwriteAllowed(); | |
1851 | |
1852 Token::Value op() const { return op_; } | 1850 Token::Value op() const { return op_; } |
1853 Expression* expression() const { return expression_; } | 1851 Expression* expression() const { return expression_; } |
1854 virtual int position() const { return pos_; } | 1852 virtual int position() const { return pos_; } |
1855 | 1853 |
1856 BailoutId MaterializeTrueId() { return materialize_true_id_; } | 1854 BailoutId MaterializeTrueId() { return materialize_true_id_; } |
1857 BailoutId MaterializeFalseId() { return materialize_false_id_; } | 1855 BailoutId MaterializeFalseId() { return materialize_false_id_; } |
1858 | 1856 |
1859 TypeFeedbackId UnaryOperationFeedbackId() const { return reuse(id()); } | |
1860 | |
1861 virtual void RecordToBooleanTypeFeedback(TypeFeedbackOracle* oracle); | 1857 virtual void RecordToBooleanTypeFeedback(TypeFeedbackOracle* oracle); |
1862 | 1858 |
1863 protected: | 1859 protected: |
1864 UnaryOperation(Isolate* isolate, | 1860 UnaryOperation(Isolate* isolate, |
1865 Token::Value op, | 1861 Token::Value op, |
1866 Expression* expression, | 1862 Expression* expression, |
1867 int pos) | 1863 int pos) |
1868 : Expression(isolate), | 1864 : Expression(isolate), |
1869 op_(op), | 1865 op_(op), |
1870 expression_(expression), | 1866 expression_(expression), |
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3229 private: | 3225 private: |
3230 Isolate* isolate_; | 3226 Isolate* isolate_; |
3231 Zone* zone_; | 3227 Zone* zone_; |
3232 Visitor visitor_; | 3228 Visitor visitor_; |
3233 }; | 3229 }; |
3234 | 3230 |
3235 | 3231 |
3236 } } // namespace v8::internal | 3232 } } // namespace v8::internal |
3237 | 3233 |
3238 #endif // V8_AST_H_ | 3234 #endif // V8_AST_H_ |
OLD | NEW |