OLD | NEW |
1 // Copyright 2007-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 class Context; | 106 class Context; |
107 class String; | 107 class String; |
108 class Value; | 108 class Value; |
109 class Utils; | 109 class Utils; |
110 class Number; | 110 class Number; |
111 class Object; | 111 class Object; |
112 class Array; | 112 class Array; |
113 class Int32; | 113 class Int32; |
114 class Uint32; | 114 class Uint32; |
115 class External; | 115 class External; |
| 116 class Blob; |
116 class Primitive; | 117 class Primitive; |
117 class Boolean; | 118 class Boolean; |
118 class Integer; | 119 class Integer; |
119 class Function; | 120 class Function; |
120 class Date; | 121 class Date; |
121 class ImplementationUtilities; | 122 class ImplementationUtilities; |
122 class Signature; | 123 class Signature; |
123 template <class T> class Handle; | 124 template <class T> class Handle; |
124 template <class T> class Local; | 125 template <class T> class Local; |
125 template <class T> class Persistent; | 126 template <class T> class Persistent; |
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 * Returns true if this value is a number. | 718 * Returns true if this value is a number. |
718 */ | 719 */ |
719 bool IsNumber() const; | 720 bool IsNumber() const; |
720 | 721 |
721 /** | 722 /** |
722 * Returns true if this value is external. | 723 * Returns true if this value is external. |
723 */ | 724 */ |
724 bool IsExternal() const; | 725 bool IsExternal() const; |
725 | 726 |
726 /** | 727 /** |
| 728 * Returns true if this value is blob. |
| 729 */ |
| 730 bool IsBlob() const; |
| 731 |
| 732 /** |
727 * Returns true if this value is a 32-bit signed integer. | 733 * Returns true if this value is a 32-bit signed integer. |
728 */ | 734 */ |
729 bool IsInt32() const; | 735 bool IsInt32() const; |
730 | 736 |
731 /** | 737 /** |
732 * Returns true if this value is a Date. | 738 * Returns true if this value is a Date. |
733 */ | 739 */ |
734 bool IsDate() const; | 740 bool IsDate() const; |
735 | 741 |
736 Local<Boolean> ToBoolean() const; | 742 Local<Boolean> ToBoolean() const; |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1374 static inline External* Cast(Value* obj); | 1380 static inline External* Cast(Value* obj); |
1375 void* Value() const; | 1381 void* Value() const; |
1376 private: | 1382 private: |
1377 External(); | 1383 External(); |
1378 static void CheckCast(v8::Value* obj); | 1384 static void CheckCast(v8::Value* obj); |
1379 static inline void* QuickUnwrap(Handle<v8::Value> obj); | 1385 static inline void* QuickUnwrap(Handle<v8::Value> obj); |
1380 static void* FullUnwrap(Handle<v8::Value> obj); | 1386 static void* FullUnwrap(Handle<v8::Value> obj); |
1381 }; | 1387 }; |
1382 | 1388 |
1383 | 1389 |
| 1390 /** |
| 1391 * A JavaScript value that wraps a ByteArray. |
| 1392 */ |
| 1393 class V8EXPORT Blob : public Value { |
| 1394 public: |
| 1395 // Create a Blob with room for 'length' bytes. |
| 1396 static Local<Blob> New(int length); |
| 1397 static inline Blob* Cast(Value* obj); |
| 1398 |
| 1399 // Read the index'th byte integer |
| 1400 uint8_t GetByte(int index); |
| 1401 // Write the index'th byte |
| 1402 void SetByte(int index, uint8_t value); |
| 1403 // Get access to the raw memory |
| 1404 uint8_t* GetAddress(); |
| 1405 int ByteCount(); |
| 1406 private: |
| 1407 Blob(); |
| 1408 static void CheckCast(v8::Value* obj); |
| 1409 }; |
| 1410 |
| 1411 |
1384 // --- T e m p l a t e s --- | 1412 // --- T e m p l a t e s --- |
1385 | 1413 |
1386 | 1414 |
1387 /** | 1415 /** |
1388 * The superclass of object and function templates. | 1416 * The superclass of object and function templates. |
1389 */ | 1417 */ |
1390 class V8EXPORT Template : public Data { | 1418 class V8EXPORT Template : public Data { |
1391 public: | 1419 public: |
1392 /** Adds a property to each instance created by this template.*/ | 1420 /** Adds a property to each instance created by this template.*/ |
1393 void Set(Handle<String> name, Handle<Data> value, | 1421 void Set(Handle<String> name, Handle<Data> value, |
(...skipping 1776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3170 | 3198 |
3171 | 3199 |
3172 External* External::Cast(v8::Value* value) { | 3200 External* External::Cast(v8::Value* value) { |
3173 #ifdef V8_ENABLE_CHECKS | 3201 #ifdef V8_ENABLE_CHECKS |
3174 CheckCast(value); | 3202 CheckCast(value); |
3175 #endif | 3203 #endif |
3176 return static_cast<External*>(value); | 3204 return static_cast<External*>(value); |
3177 } | 3205 } |
3178 | 3206 |
3179 | 3207 |
| 3208 Blob* Blob::Cast(v8::Value* value) { |
| 3209 #ifdef V8_ENABLE_CHECKS |
| 3210 CheckCast(value); |
| 3211 #endif |
| 3212 return static_cast<Blob*>(value); |
| 3213 } |
| 3214 |
| 3215 |
3180 Local<Value> AccessorInfo::Data() const { | 3216 Local<Value> AccessorInfo::Data() const { |
3181 return Local<Value>(reinterpret_cast<Value*>(&args_[-3])); | 3217 return Local<Value>(reinterpret_cast<Value*>(&args_[-3])); |
3182 } | 3218 } |
3183 | 3219 |
3184 | 3220 |
3185 Local<Object> AccessorInfo::This() const { | 3221 Local<Object> AccessorInfo::This() const { |
3186 return Local<Object>(reinterpret_cast<Object*>(&args_[0])); | 3222 return Local<Object>(reinterpret_cast<Object*>(&args_[0])); |
3187 } | 3223 } |
3188 | 3224 |
3189 | 3225 |
(...skipping 16 matching lines...) Expand all Loading... |
3206 | 3242 |
3207 } // namespace v8 | 3243 } // namespace v8 |
3208 | 3244 |
3209 | 3245 |
3210 #undef V8EXPORT | 3246 #undef V8EXPORT |
3211 #undef V8EXPORT_INLINE | 3247 #undef V8EXPORT_INLINE |
3212 #undef TYPE_CHECK | 3248 #undef TYPE_CHECK |
3213 | 3249 |
3214 | 3250 |
3215 #endif // V8_H_ | 3251 #endif // V8_H_ |
OLD | NEW |