| Index: dart/runtime/vm/object.h
 | 
| ===================================================================
 | 
| --- dart/runtime/vm/object.h	(revision 31530)
 | 
| +++ dart/runtime/vm/object.h	(working copy)
 | 
| @@ -31,6 +31,7 @@
 | 
|  class Assembler;
 | 
|  class Closure;
 | 
|  class Code;
 | 
| +class DisassemblyFormatter;
 | 
|  class DeoptInstr;
 | 
|  class FinalizablePersistentHandle;
 | 
|  class LocalScope;
 | 
| @@ -878,6 +879,8 @@
 | 
|  
 | 
|    RawArray* fields() const { return raw_ptr()->fields_; }
 | 
|    void SetFields(const Array& value) const;
 | 
| +  intptr_t FindFieldIndex(const Field& field) const;
 | 
| +  RawField* FieldFromIndex(intptr_t idx) const;
 | 
|  
 | 
|    // Returns an array of all fields of this class and its superclasses indexed
 | 
|    // by offset in words.
 | 
| @@ -889,12 +892,18 @@
 | 
|    RawArray* functions() const { return raw_ptr()->functions_; }
 | 
|    void SetFunctions(const Array& value) const;
 | 
|    void AddFunction(const Function& function) const;
 | 
| +  intptr_t FindFunctionIndex(const Function& function) const;
 | 
| +  RawFunction* FunctionFromIndex(intptr_t idx) const;
 | 
| +  intptr_t FindImplicitClosureFunctionIndex(const Function& needle) const;
 | 
| +  RawFunction* ImplicitClosureFunctionFromIndex(intptr_t idx) const;
 | 
|  
 | 
|    RawGrowableObjectArray* closures() const {
 | 
|      return raw_ptr()->closure_functions_;
 | 
|    }
 | 
|    void AddClosureFunction(const Function& function) const;
 | 
|    RawFunction* LookupClosureFunction(intptr_t token_pos) const;
 | 
| +  intptr_t FindClosureIndex(const Function& function) const;
 | 
| +  RawFunction* ClosureFunctionFromIndex(intptr_t idx) const;
 | 
|  
 | 
|    RawFunction* LookupDynamicFunction(const String& name) const;
 | 
|    RawFunction* LookupDynamicFunctionAllowPrivate(const String& name) const;
 | 
| @@ -991,6 +1000,9 @@
 | 
|  
 | 
|    RawArray* constants() const;
 | 
|  
 | 
| +  intptr_t FindInvocationDispatcherFunctionIndex(const Function& needle) const;
 | 
| +  RawFunction* InvocationDispatcherFunctionFromIndex(intptr_t idx) const;
 | 
| +
 | 
|    RawFunction* GetInvocationDispatcher(const String& target_name,
 | 
|                                         const Array& args_desc,
 | 
|                                         RawFunction::Kind kind) const;
 | 
| @@ -1209,7 +1221,7 @@
 | 
|      return this->raw();
 | 
|    }
 | 
|  
 | 
| -  // Do not canonicalize InstantiatedTypeArguments or null vectors.
 | 
| +  // Null vectors are canonical.
 | 
|    virtual RawAbstractTypeArguments* Canonicalize() const { return this->raw(); }
 | 
|  
 | 
|    // The name of this type argument vector, e.g. "<T, dynamic, List<T>, Smi>".
 | 
| @@ -1383,6 +1395,7 @@
 | 
|      return false;
 | 
|    }
 | 
|    virtual bool IsBounded() const { return false; }  // Bounds were checked.
 | 
| +  virtual RawAbstractTypeArguments* Canonicalize() const;
 | 
|  
 | 
|    RawAbstractTypeArguments* uninstantiated_type_arguments() const {
 | 
|      return raw_ptr()->uninstantiated_type_arguments_;
 | 
| @@ -1595,6 +1608,8 @@
 | 
|      return KindBits::decode(raw_ptr()->kind_tag_);
 | 
|    }
 | 
|  
 | 
| +  static const char* KindToCString(RawFunction::Kind kind);
 | 
| +
 | 
|    bool is_static() const { return StaticBit::decode(raw_ptr()->kind_tag_); }
 | 
|    bool is_const() const { return ConstBit::decode(raw_ptr()->kind_tag_); }
 | 
|    bool is_external() const { return ExternalBit::decode(raw_ptr()->kind_tag_); }
 | 
| @@ -3238,7 +3253,7 @@
 | 
|    // Aborts if there is no static call at 'pc'.
 | 
|    void SetStaticCallTargetCodeAt(uword pc, const Code& code) const;
 | 
|  
 | 
| -  void Disassemble() const;
 | 
| +  void Disassemble(DisassemblyFormatter* formatter = NULL) const;
 | 
|  
 | 
|    class Comments : public ZoneAllocated {
 | 
|     public:
 | 
| @@ -3364,8 +3379,10 @@
 | 
|          : FindObjectVisitor(Isolate::Current()), pc_(pc) { }
 | 
|      virtual ~FindRawCodeVisitor() { }
 | 
|  
 | 
| +    virtual uword filter_addr() const { return pc_; }
 | 
| +
 | 
|      // Check if object matches find condition.
 | 
| -    virtual bool FindObject(RawObject* obj);
 | 
| +    virtual bool FindObject(RawObject* obj) const;
 | 
|  
 | 
|     private:
 | 
|      const uword pc_;
 | 
| @@ -5071,7 +5088,8 @@
 | 
|                     intptr_t len);
 | 
|  
 | 
|    static RawString* EscapeSpecialCharacters(const String& str);
 | 
| -
 | 
| +  static RawString* EncodeURI(const String& str);
 | 
| +  static RawString* DecodeURI(const String& str);
 | 
|    static RawString* Concat(const String& str1,
 | 
|                             const String& str2,
 | 
|                             Heap::Space space = Heap::kNew);
 | 
| @@ -5162,7 +5180,6 @@
 | 
|      *CharAddr(str, index) = code_point;
 | 
|    }
 | 
|    static RawOneByteString* EscapeSpecialCharacters(const String& str);
 | 
| -
 | 
|    // We use the same maximum elements for all strings.
 | 
|    static const intptr_t kBytesPerElement = 1;
 | 
|    static const intptr_t kMaxElements = String::kMaxElements;
 | 
| @@ -5386,6 +5403,8 @@
 | 
|    }
 | 
|  
 | 
|    static RawOneByteString* EscapeSpecialCharacters(const String& str);
 | 
| +  static RawOneByteString* EncodeURI(const String& str);
 | 
| +  static RawOneByteString* DecodeURI(const String& str);
 | 
|  
 | 
|    static const ClassId kClassId = kExternalOneByteStringCid;
 | 
|  
 | 
| 
 |