| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 4579)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -22,6 +22,7 @@
|
| // | StaticCall <Function> <Value> ...
|
| // | LoadLocal <LocalVariable>
|
| // | StoreLocal <LocalVariable> <Value>
|
| +// | StrictCompare <Token::kind> <Value> <Value>
|
| //
|
| // <Value> ::= Temp <int>
|
| // | Constant <Instance>
|
| @@ -77,6 +78,24 @@
|
| };
|
|
|
|
|
| +class StrictCompareComp : public Computation {
|
| + public:
|
| + StrictCompareComp(Token::Kind kind, Value* left, Value* right)
|
| + : kind_(kind), left_(left), right_(right) {
|
| + ASSERT((kind_ == Token::kEQ_STRICT) || (kind_ == Token::kNE_STRICT));
|
| + }
|
| +
|
| + virtual void Print() const;
|
| +
|
| + private:
|
| + const Token::Kind kind_;
|
| + Value* left_;
|
| + Value* right_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(StrictCompareComp);
|
| +};
|
| +
|
| +
|
| class StaticCallComp : public Computation {
|
| public:
|
| StaticCallComp(const Function& function, ZoneGrowableArray<Value*>* arguments)
|
| @@ -137,7 +156,9 @@
|
|
|
| class ConstantValue: public Value {
|
| public:
|
| - explicit ConstantValue(const Instance& instance) : instance_(instance) { }
|
| + explicit ConstantValue(const Instance& instance) : instance_(instance) {
|
| + ASSERT(instance.IsZoneHandle());
|
| + }
|
|
|
| virtual void Print() const;
|
|
|
|
|