OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
172 return Object::IsHeapObject() && | 172 return Object::IsHeapObject() && |
173 HeapObject::cast(this)->map()->instance_type() <= LAST_NAME_TYPE; | 173 HeapObject::cast(this)->map()->instance_type() <= LAST_NAME_TYPE; |
174 } | 174 } |
175 | 175 |
176 | 176 |
177 bool Object::IsUniqueName() const { | 177 bool Object::IsUniqueName() const { |
178 return IsInternalizedString() || IsSymbol(); | 178 return IsInternalizedString() || IsSymbol(); |
179 } | 179 } |
180 | 180 |
181 | 181 |
182 Maybe<bool> Object::IsArray() const { | |
Benedikt Meurer
2015/12/03 10:38:53
Mhm, given that this can throw, we probably should
jochen (gone - plz use gerrit)
2015/12/03 10:40:53
there needs to be a way to figure out whether some
| |
183 if (this->IsJSArray()) return Just(true); | |
184 if (this->IsJSProxy()) { | |
185 const JSProxy* proxy = JSProxy::cast(this); | |
186 if (proxy->IsRevoked()) { | |
187 Isolate* isolate = proxy->GetIsolate(); | |
188 isolate->Throw(*isolate->factory()->NewTypeError( | |
189 MessageTemplate::kProxyRevoked, | |
190 isolate->factory()->NewStringFromAsciiChecked("IsArray"))); | |
191 return Nothing<bool>(); | |
192 } | |
193 return proxy->target()->IsArray(); | |
194 } | |
195 return Just(false); | |
196 } | |
197 | |
198 | |
182 bool Object::IsCallable() const { | 199 bool Object::IsCallable() const { |
183 return Object::IsHeapObject() && HeapObject::cast(this)->map()->is_callable(); | 200 return Object::IsHeapObject() && HeapObject::cast(this)->map()->is_callable(); |
184 } | 201 } |
185 | 202 |
186 | 203 |
187 bool Object::IsConstructor() const { | 204 bool Object::IsConstructor() const { |
188 return Object::IsHeapObject() && | 205 return Object::IsHeapObject() && |
189 HeapObject::cast(this)->map()->is_constructor(); | 206 HeapObject::cast(this)->map()->is_constructor(); |
190 } | 207 } |
191 | 208 |
(...skipping 7657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7849 #undef WRITE_INT64_FIELD | 7866 #undef WRITE_INT64_FIELD |
7850 #undef READ_BYTE_FIELD | 7867 #undef READ_BYTE_FIELD |
7851 #undef WRITE_BYTE_FIELD | 7868 #undef WRITE_BYTE_FIELD |
7852 #undef NOBARRIER_READ_BYTE_FIELD | 7869 #undef NOBARRIER_READ_BYTE_FIELD |
7853 #undef NOBARRIER_WRITE_BYTE_FIELD | 7870 #undef NOBARRIER_WRITE_BYTE_FIELD |
7854 | 7871 |
7855 } // namespace internal | 7872 } // namespace internal |
7856 } // namespace v8 | 7873 } // namespace v8 |
7857 | 7874 |
7858 #endif // V8_OBJECTS_INL_H_ | 7875 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |