| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 4aa0ea18b56950802b79c2c1c82f2a5091b28fa6..2efd7ef6597a5e9cb174a9a2301eb6898a3ec28d 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -192,6 +192,12 @@ bool Object::IsCallable() const {
|
| }
|
|
|
|
|
| +bool Object::IsConstructor() const {
|
| + return Object::IsHeapObject() &&
|
| + HeapObject::cast(this)->map()->is_constructor();
|
| +}
|
| +
|
| +
|
| bool Object::IsSpecObject() const {
|
| return Object::IsHeapObject()
|
| && HeapObject::cast(this)->map()->instance_type() >= FIRST_SPEC_OBJECT_TYPE;
|
| @@ -4532,13 +4538,17 @@ bool Map::has_non_instance_prototype() {
|
| }
|
|
|
|
|
| -void Map::set_function_with_prototype(bool value) {
|
| - set_bit_field(FunctionWithPrototype::update(bit_field(), value));
|
| +void Map::set_is_constructor(bool value) {
|
| + if (value) {
|
| + set_bit_field(bit_field() | (1 << kIsConstructor));
|
| + } else {
|
| + set_bit_field(bit_field() & ~(1 << kIsConstructor));
|
| + }
|
| }
|
|
|
|
|
| -bool Map::function_with_prototype() {
|
| - return FunctionWithPrototype::decode(bit_field());
|
| +bool Map::is_constructor() const {
|
| + return ((1 << kIsConstructor) & bit_field()) != 0;
|
| }
|
|
|
|
|
| @@ -4795,6 +4805,7 @@ bool Map::IsJSObjectMap() {
|
| return instance_type() >= FIRST_JS_OBJECT_TYPE;
|
| }
|
| bool Map::IsJSArrayMap() { return instance_type() == JS_ARRAY_TYPE; }
|
| +bool Map::IsJSFunctionMap() { return instance_type() == JS_FUNCTION_TYPE; }
|
| bool Map::IsStringMap() { return instance_type() < FIRST_NONSTRING_TYPE; }
|
| bool Map::IsJSProxyMap() {
|
| InstanceType type = instance_type();
|
| @@ -6256,11 +6267,6 @@ Object* JSFunction::prototype() {
|
| }
|
|
|
|
|
| -bool JSFunction::should_have_prototype() {
|
| - return map()->function_with_prototype();
|
| -}
|
| -
|
| -
|
| bool JSFunction::is_compiled() {
|
| Builtins* builtins = GetIsolate()->builtins();
|
| return code() != builtins->builtin(Builtins::kCompileLazy) &&
|
|
|