| Index: src/objects.h
 | 
| diff --git a/src/objects.h b/src/objects.h
 | 
| index 27ab86541832f88f6320286b40007dce0e7f9bb1..af077278043d75a52d073d5e2779921ae3f84f50 100644
 | 
| --- a/src/objects.h
 | 
| +++ b/src/objects.h
 | 
| @@ -1033,9 +1033,6 @@
 | 
|    // ES6, section 7.2.3 IsCallable.
 | 
|    INLINE(bool IsCallable() const);
 | 
|  
 | 
| -  // ES6, section 7.2.4 IsConstructor.
 | 
| -  INLINE(bool IsConstructor() const);
 | 
| -
 | 
|    INLINE(bool IsSpecObject()) const;
 | 
|    INLINE(bool IsTemplateInfo()) const;
 | 
|    INLINE(bool IsNameDictionary() const);
 | 
| @@ -5365,10 +5362,11 @@
 | 
|    inline void set_non_instance_prototype(bool value);
 | 
|    inline bool has_non_instance_prototype();
 | 
|  
 | 
| -  // Tells whether the instance has a [[Construct]] internal method.
 | 
| -  // This property is implemented according to ES6, section 7.2.4.
 | 
| -  inline void set_is_constructor(bool value);
 | 
| -  inline bool is_constructor() const;
 | 
| +  // Tells whether function has special prototype property. If not, prototype
 | 
| +  // property will not be created when accessed (will return undefined),
 | 
| +  // and construction from this function will not be allowed.
 | 
| +  inline void set_function_with_prototype(bool value);
 | 
| +  inline bool function_with_prototype();
 | 
|  
 | 
|    // Tells whether the instance with this map should be ignored by the
 | 
|    // Object.getPrototypeOf() function and the __proto__ accessor.
 | 
| @@ -5396,7 +5394,7 @@
 | 
|    inline void set_is_observed();
 | 
|    inline bool is_observed();
 | 
|  
 | 
| -  // Tells whether the instance has a [[Call]] internal method.
 | 
| +  // Tells whether the instance has a [[Call]] internal field.
 | 
|    // This property is implemented according to ES6, section 7.2.3.
 | 
|    inline void set_is_callable();
 | 
|    inline bool is_callable() const;
 | 
| @@ -5726,7 +5724,6 @@
 | 
|    inline bool IsPrimitiveMap();
 | 
|    inline bool IsJSObjectMap();
 | 
|    inline bool IsJSArrayMap();
 | 
| -  inline bool IsJSFunctionMap();
 | 
|    inline bool IsStringMap();
 | 
|    inline bool IsJSProxyMap();
 | 
|    inline bool IsJSGlobalProxyMap();
 | 
| @@ -5831,7 +5828,7 @@
 | 
|    static const int kIsUndetectable = 4;
 | 
|    static const int kIsObserved = 5;
 | 
|    static const int kIsAccessCheckNeeded = 6;
 | 
| -  static const int kIsConstructor = 7;
 | 
| +  class FunctionWithPrototype: public BitField<bool, 7,  1> {};
 | 
|  
 | 
|    // Bit positions for bit field 2
 | 
|    static const int kIsExtensible = 0;
 | 
| @@ -7133,6 +7130,7 @@
 | 
|    // After prototype is removed, it will not be created when accessed, and
 | 
|    // [[Construct]] from this function will not be allowed.
 | 
|    bool RemovePrototype();
 | 
| +  inline bool should_have_prototype();
 | 
|  
 | 
|    // Accessor for this function's initial map's [[class]]
 | 
|    // property. This is primarily used by ECMA native functions.  This
 | 
| 
 |