| 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 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 6196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6207 typedef internal::Internals I; | 6207 typedef internal::Internals I; |
| 6208 I::CheckInitialized(isolate); | 6208 I::CheckInitialized(isolate); |
| 6209 S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); | 6209 S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); |
| 6210 return Local<String>(reinterpret_cast<String*>(slot)); | 6210 return Local<String>(reinterpret_cast<String*>(slot)); |
| 6211 } | 6211 } |
| 6212 | 6212 |
| 6213 | 6213 |
| 6214 String::ExternalStringResource* String::GetExternalStringResource() const { | 6214 String::ExternalStringResource* String::GetExternalStringResource() const { |
| 6215 typedef internal::Object O; | 6215 typedef internal::Object O; |
| 6216 typedef internal::Internals I; | 6216 typedef internal::Internals I; |
| 6217 O* obj = *reinterpret_cast<O**>(const_cast<String*>(this)); | 6217 O* obj = *reinterpret_cast<O* const*>(this); |
| 6218 String::ExternalStringResource* result; | 6218 String::ExternalStringResource* result; |
| 6219 if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) { | 6219 if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) { |
| 6220 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset); | 6220 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset); |
| 6221 result = reinterpret_cast<String::ExternalStringResource*>(value); | 6221 result = reinterpret_cast<String::ExternalStringResource*>(value); |
| 6222 } else { | 6222 } else { |
| 6223 result = NULL; | 6223 result = NULL; |
| 6224 } | 6224 } |
| 6225 #ifdef V8_ENABLE_CHECKS | 6225 #ifdef V8_ENABLE_CHECKS |
| 6226 VerifyExternalStringResource(result); | 6226 VerifyExternalStringResource(result); |
| 6227 #endif | 6227 #endif |
| 6228 return result; | 6228 return result; |
| 6229 } | 6229 } |
| 6230 | 6230 |
| 6231 | 6231 |
| 6232 String::ExternalStringResourceBase* String::GetExternalStringResourceBase( | 6232 String::ExternalStringResourceBase* String::GetExternalStringResourceBase( |
| 6233 String::Encoding* encoding_out) const { | 6233 String::Encoding* encoding_out) const { |
| 6234 typedef internal::Object O; | 6234 typedef internal::Object O; |
| 6235 typedef internal::Internals I; | 6235 typedef internal::Internals I; |
| 6236 O* obj = *reinterpret_cast<O**>(const_cast<String*>(this)); | 6236 O* obj = *reinterpret_cast<O* const*>(this); |
| 6237 int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; | 6237 int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; |
| 6238 *encoding_out = static_cast<Encoding>(type & I::kStringEncodingMask); | 6238 *encoding_out = static_cast<Encoding>(type & I::kStringEncodingMask); |
| 6239 ExternalStringResourceBase* resource = NULL; | 6239 ExternalStringResourceBase* resource = NULL; |
| 6240 if (type == I::kExternalAsciiRepresentationTag || | 6240 if (type == I::kExternalAsciiRepresentationTag || |
| 6241 type == I::kExternalTwoByteRepresentationTag) { | 6241 type == I::kExternalTwoByteRepresentationTag) { |
| 6242 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset); | 6242 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset); |
| 6243 resource = static_cast<ExternalStringResourceBase*>(value); | 6243 resource = static_cast<ExternalStringResourceBase*>(value); |
| 6244 } | 6244 } |
| 6245 #ifdef V8_ENABLE_CHECKS | 6245 #ifdef V8_ENABLE_CHECKS |
| 6246 VerifyExternalStringResourceBase(resource, *encoding_out); | 6246 VerifyExternalStringResourceBase(resource, *encoding_out); |
| 6247 #endif | 6247 #endif |
| 6248 return resource; | 6248 return resource; |
| 6249 } | 6249 } |
| 6250 | 6250 |
| 6251 | 6251 |
| 6252 bool Value::IsUndefined() const { | 6252 bool Value::IsUndefined() const { |
| 6253 #ifdef V8_ENABLE_CHECKS | 6253 #ifdef V8_ENABLE_CHECKS |
| 6254 return FullIsUndefined(); | 6254 return FullIsUndefined(); |
| 6255 #else | 6255 #else |
| 6256 return QuickIsUndefined(); | 6256 return QuickIsUndefined(); |
| 6257 #endif | 6257 #endif |
| 6258 } | 6258 } |
| 6259 | 6259 |
| 6260 bool Value::QuickIsUndefined() const { | 6260 bool Value::QuickIsUndefined() const { |
| 6261 typedef internal::Object O; | 6261 typedef internal::Object O; |
| 6262 typedef internal::Internals I; | 6262 typedef internal::Internals I; |
| 6263 O* obj = *reinterpret_cast<O**>(const_cast<Value*>(this)); | 6263 O* obj = *reinterpret_cast<O* const*>(this); |
| 6264 if (!I::HasHeapObjectTag(obj)) return false; | 6264 if (!I::HasHeapObjectTag(obj)) return false; |
| 6265 if (I::GetInstanceType(obj) != I::kOddballType) return false; | 6265 if (I::GetInstanceType(obj) != I::kOddballType) return false; |
| 6266 return (I::GetOddballKind(obj) == I::kUndefinedOddballKind); | 6266 return (I::GetOddballKind(obj) == I::kUndefinedOddballKind); |
| 6267 } | 6267 } |
| 6268 | 6268 |
| 6269 | 6269 |
| 6270 bool Value::IsNull() const { | 6270 bool Value::IsNull() const { |
| 6271 #ifdef V8_ENABLE_CHECKS | 6271 #ifdef V8_ENABLE_CHECKS |
| 6272 return FullIsNull(); | 6272 return FullIsNull(); |
| 6273 #else | 6273 #else |
| 6274 return QuickIsNull(); | 6274 return QuickIsNull(); |
| 6275 #endif | 6275 #endif |
| 6276 } | 6276 } |
| 6277 | 6277 |
| 6278 bool Value::QuickIsNull() const { | 6278 bool Value::QuickIsNull() const { |
| 6279 typedef internal::Object O; | 6279 typedef internal::Object O; |
| 6280 typedef internal::Internals I; | 6280 typedef internal::Internals I; |
| 6281 O* obj = *reinterpret_cast<O**>(const_cast<Value*>(this)); | 6281 O* obj = *reinterpret_cast<O* const*>(this); |
| 6282 if (!I::HasHeapObjectTag(obj)) return false; | 6282 if (!I::HasHeapObjectTag(obj)) return false; |
| 6283 if (I::GetInstanceType(obj) != I::kOddballType) return false; | 6283 if (I::GetInstanceType(obj) != I::kOddballType) return false; |
| 6284 return (I::GetOddballKind(obj) == I::kNullOddballKind); | 6284 return (I::GetOddballKind(obj) == I::kNullOddballKind); |
| 6285 } | 6285 } |
| 6286 | 6286 |
| 6287 | 6287 |
| 6288 bool Value::IsString() const { | 6288 bool Value::IsString() const { |
| 6289 #ifdef V8_ENABLE_CHECKS | 6289 #ifdef V8_ENABLE_CHECKS |
| 6290 return FullIsString(); | 6290 return FullIsString(); |
| 6291 #else | 6291 #else |
| 6292 return QuickIsString(); | 6292 return QuickIsString(); |
| 6293 #endif | 6293 #endif |
| 6294 } | 6294 } |
| 6295 | 6295 |
| 6296 bool Value::QuickIsString() const { | 6296 bool Value::QuickIsString() const { |
| 6297 typedef internal::Object O; | 6297 typedef internal::Object O; |
| 6298 typedef internal::Internals I; | 6298 typedef internal::Internals I; |
| 6299 O* obj = *reinterpret_cast<O**>(const_cast<Value*>(this)); | 6299 O* obj = *reinterpret_cast<O* const*>(this); |
| 6300 if (!I::HasHeapObjectTag(obj)) return false; | 6300 if (!I::HasHeapObjectTag(obj)) return false; |
| 6301 return (I::GetInstanceType(obj) < I::kFirstNonstringType); | 6301 return (I::GetInstanceType(obj) < I::kFirstNonstringType); |
| 6302 } | 6302 } |
| 6303 | 6303 |
| 6304 | 6304 |
| 6305 template <class T> Value* Value::Cast(T* value) { | 6305 template <class T> Value* Value::Cast(T* value) { |
| 6306 return static_cast<Value*>(value); | 6306 return static_cast<Value*>(value); |
| 6307 } | 6307 } |
| 6308 | 6308 |
| 6309 | 6309 |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6701 */ | 6701 */ |
| 6702 | 6702 |
| 6703 | 6703 |
| 6704 } // namespace v8 | 6704 } // namespace v8 |
| 6705 | 6705 |
| 6706 | 6706 |
| 6707 #undef TYPE_CHECK | 6707 #undef TYPE_CHECK |
| 6708 | 6708 |
| 6709 | 6709 |
| 6710 #endif // V8_H_ | 6710 #endif // V8_H_ |
| OLD | NEW |