Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 4462) |
+++ src/objects.h (working copy) |
@@ -2854,6 +2854,12 @@ |
inline void set_non_instance_prototype(bool value); |
inline bool has_non_instance_prototype(); |
+ // 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 |
// __proto__ accessor. |
inline void set_is_hidden_prototype() { |
@@ -3030,6 +3036,7 @@ |
// Bit positions for bit field 2 |
static const int kIsExtensible = 0; |
+ static const int kFunctionWithPrototype = 1; |
// Layout of the default cache. It holds alternating name and code objects. |
static const int kCodeCacheEntrySize = 2; |
@@ -3396,6 +3403,11 @@ |
Object* SetInstancePrototype(Object* value); |
Object* SetPrototype(Object* value); |
+ // After prototype is removed, it will not be created when accessed, and |
+ // [[Construct]] from this function will not be allowed. |
+ Object* 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 |
// method sets the class_name field of this function's initial map |