| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 869253741702f8596dd45b59517bb816437b3414..0c9a6d20f0d29cd7e66f33d9f8f9b78d264f1a96 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1016,7 +1016,11 @@ class Object {
|
| STRUCT_LIST(DECLARE_STRUCT_PREDICATE)
|
| #undef DECLARE_STRUCT_PREDICATE
|
|
|
| + // ES6, section 7.2.3 IsCallable.
|
| + INLINE(bool IsCallable() const);
|
| +
|
| INLINE(bool IsSpecObject()) const;
|
| + // TODO(rossberg): IsSpecFunction should be removed in favor of IsCallable.
|
| INLINE(bool IsSpecFunction()) const;
|
| INLINE(bool IsTemplateInfo()) const;
|
| INLINE(bool IsNameDictionary() const);
|
| @@ -1025,7 +1029,6 @@ class Object {
|
| INLINE(bool IsUnseededNumberDictionary() const);
|
| INLINE(bool IsOrderedHashSet() const);
|
| INLINE(bool IsOrderedHashMap() const);
|
| - bool IsCallable() const;
|
| static bool IsPromise(Handle<Object> object);
|
|
|
| // Oddball testing.
|
| @@ -1107,6 +1110,9 @@ class Object {
|
| MUST_USE_RESULT static MaybeHandle<Object> GetMethod(
|
| Handle<JSReceiver> receiver, Handle<Name> name);
|
|
|
| + // ES6 section 12.5.6 The typeof Operator
|
| + static Handle<String> TypeOf(Isolate* isolate, Handle<Object> object);
|
| +
|
| MUST_USE_RESULT static MaybeHandle<Object> GetProperty(
|
| LookupIterator* it, LanguageMode language_mode = SLOPPY);
|
|
|
| @@ -5233,7 +5239,7 @@ class Map: public HeapObject {
|
| STATIC_ASSERT(kDescriptorIndexBitCount + kDescriptorIndexBitCount == 20);
|
| class DictionaryMap : public BitField<bool, 20, 1> {};
|
| class OwnsDescriptors : public BitField<bool, 21, 1> {};
|
| - class HasInstanceCallHandler : public BitField<bool, 22, 1> {};
|
| + class IsHiddenPrototype : public BitField<bool, 22, 1> {};
|
| class Deprecated : public BitField<bool, 23, 1> {};
|
| class IsUnstable : public BitField<bool, 24, 1> {};
|
| class IsMigrationTarget : public BitField<bool, 25, 1> {};
|
| @@ -5268,7 +5274,7 @@ class Map: public HeapObject {
|
| // Tells whether the instance with this map should be ignored by the
|
| // Object.getPrototypeOf() function and the __proto__ accessor.
|
| inline void set_is_hidden_prototype();
|
| - inline bool is_hidden_prototype();
|
| + inline bool is_hidden_prototype() const;
|
|
|
| // Records and queries whether the instance has a named interceptor.
|
| inline void set_has_named_interceptor();
|
| @@ -5291,6 +5297,11 @@ class Map: public HeapObject {
|
| inline void set_is_observed();
|
| inline bool is_observed();
|
|
|
| + // 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;
|
| +
|
| inline void set_is_strong();
|
| inline bool is_strong();
|
| inline void set_is_extensible(bool value);
|
| @@ -5466,8 +5477,6 @@ class Map: public HeapObject {
|
|
|
| inline bool owns_descriptors();
|
| inline void set_owns_descriptors(bool owns_descriptors);
|
| - inline bool has_instance_call_handler();
|
| - inline void set_has_instance_call_handler();
|
| inline void mark_unstable();
|
| inline bool is_stable();
|
| inline void set_migration_target(bool value);
|
| @@ -5716,7 +5725,7 @@ class Map: public HeapObject {
|
|
|
| // Bit positions for bit field.
|
| static const int kHasNonInstancePrototype = 0;
|
| - static const int kIsHiddenPrototype = 1;
|
| + static const int kIsCallable = 1;
|
| static const int kHasNamedInterceptor = 2;
|
| static const int kHasIndexedInterceptor = 3;
|
| static const int kIsUndetectable = 4;
|
| @@ -9298,7 +9307,7 @@ class JSProxy: public JSReceiver {
|
| class JSFunctionProxy: public JSProxy {
|
| public:
|
| // [call_trap]: The call trap.
|
| - DECL_ACCESSORS(call_trap, Object)
|
| + DECL_ACCESSORS(call_trap, JSReceiver)
|
|
|
| // [construct_trap]: The construct trap.
|
| DECL_ACCESSORS(construct_trap, Object)
|
|
|