| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 22 matching lines...) Expand all  Loading... | 
| 33  * V8 header file, include/v8.h. | 33  * V8 header file, include/v8.h. | 
| 34  * | 34  * | 
| 35  * For other documentation see http://code.google.com/apis/v8/ | 35  * For other documentation see http://code.google.com/apis/v8/ | 
| 36  */ | 36  */ | 
| 37 | 37 | 
| 38 #ifndef V8_H_ | 38 #ifndef V8_H_ | 
| 39 #define V8_H_ | 39 #define V8_H_ | 
| 40 | 40 | 
| 41 #include "v8stdint.h" | 41 #include "v8stdint.h" | 
| 42 | 42 | 
|  | 43 // We reserve the V8_* prefix for macros defined in V8 public API and | 
|  | 44 // assume there are no name conflicts with the embedder's code. | 
|  | 45 | 
| 43 #ifdef _WIN32 | 46 #ifdef _WIN32 | 
| 44 | 47 | 
| 45 // Setup for Windows DLL export/import. When building the V8 DLL the | 48 // Setup for Windows DLL export/import. When building the V8 DLL the | 
| 46 // BUILDING_V8_SHARED needs to be defined. When building a program which uses | 49 // BUILDING_V8_SHARED needs to be defined. When building a program which uses | 
| 47 // the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8 | 50 // the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8 | 
| 48 // static library or building a program which uses the V8 static library neither | 51 // static library or building a program which uses the V8 static library neither | 
| 49 // BUILDING_V8_SHARED nor USING_V8_SHARED should be defined. | 52 // BUILDING_V8_SHARED nor USING_V8_SHARED should be defined. | 
| 50 #if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED) | 53 #if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED) | 
| 51 #error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\ | 54 #error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\ | 
| 52   build configuration to ensure that at most one of these is set | 55   build configuration to ensure that at most one of these is set | 
| 53 #endif | 56 #endif | 
| 54 | 57 | 
| 55 #ifdef BUILDING_V8_SHARED | 58 #ifdef BUILDING_V8_SHARED | 
| 56 #define V8EXPORT __declspec(dllexport) | 59 #define V8_EXPORT __declspec(dllexport) | 
| 57 #elif USING_V8_SHARED | 60 #elif USING_V8_SHARED | 
| 58 #define V8EXPORT __declspec(dllimport) | 61 #define V8_EXPORT __declspec(dllimport) | 
| 59 #else | 62 #else | 
| 60 #define V8EXPORT | 63 #define V8_EXPORT | 
| 61 #endif  // BUILDING_V8_SHARED | 64 #endif  // BUILDING_V8_SHARED | 
| 62 | 65 | 
| 63 #else  // _WIN32 | 66 #else  // _WIN32 | 
| 64 | 67 | 
| 65 // Setup for Linux shared library export. | 68 // Setup for Linux shared library export. | 
| 66 #if defined(__GNUC__) && ((__GNUC__ >= 4) || \ | 69 #if defined(__GNUC__) && ((__GNUC__ >= 4) || \ | 
| 67     (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(V8_SHARED) | 70     (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(V8_SHARED) | 
| 68 #ifdef BUILDING_V8_SHARED | 71 #ifdef BUILDING_V8_SHARED | 
| 69 #define V8EXPORT __attribute__ ((visibility("default"))) | 72 #define V8_EXPORT __attribute__ ((visibility("default"))) | 
| 70 #else | 73 #else | 
| 71 #define V8EXPORT | 74 #define V8_EXPORT | 
| 72 #endif | 75 #endif | 
| 73 #else | 76 #else | 
| 74 #define V8EXPORT | 77 #define V8_EXPORT | 
| 75 #endif | 78 #endif | 
| 76 | 79 | 
| 77 #endif  // _WIN32 | 80 #endif  // _WIN32 | 
| 78 | 81 | 
| 79 #if defined(__GNUC__) && !defined(DEBUG) | 82 #if defined(__GNUC__) && !defined(DEBUG) | 
| 80 #define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator | 83 #define V8_INLINE(declarator) inline __attribute__((always_inline)) declarator | 
| 81 #elif defined(_MSC_VER) && !defined(DEBUG) | 84 #elif defined(_MSC_VER) && !defined(DEBUG) | 
| 82 #define V8_INLINE(declarator) __forceinline declarator | 85 #define V8_INLINE(declarator) __forceinline declarator | 
| 83 #else | 86 #else | 
| 84 #define V8_INLINE(declarator) inline declarator | 87 #define V8_INLINE(declarator) inline declarator | 
| (...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 794  * deleted or another handle scope is created.  If there is already a | 797  * deleted or another handle scope is created.  If there is already a | 
| 795  * handle scope and a new one is created, all allocations will take | 798  * handle scope and a new one is created, all allocations will take | 
| 796  * place in the new handle scope until it is deleted.  After that, | 799  * place in the new handle scope until it is deleted.  After that, | 
| 797  * new handles will again be allocated in the original handle scope. | 800  * new handles will again be allocated in the original handle scope. | 
| 798  * | 801  * | 
| 799  * After the handle scope of a local handle has been deleted the | 802  * After the handle scope of a local handle has been deleted the | 
| 800  * garbage collector will no longer track the object stored in the | 803  * garbage collector will no longer track the object stored in the | 
| 801  * handle and may deallocate it.  The behavior of accessing a handle | 804  * handle and may deallocate it.  The behavior of accessing a handle | 
| 802  * for which the handle scope has been deleted is undefined. | 805  * for which the handle scope has been deleted is undefined. | 
| 803  */ | 806  */ | 
| 804 class V8EXPORT HandleScope { | 807 class V8_EXPORT HandleScope { | 
| 805  public: | 808  public: | 
| 806   // TODO(svenpanne) Deprecate me when Chrome is fixed! | 809   // TODO(svenpanne) Deprecate me when Chrome is fixed! | 
| 807   HandleScope(); | 810   HandleScope(); | 
| 808 | 811 | 
| 809   HandleScope(Isolate* isolate); | 812   HandleScope(Isolate* isolate); | 
| 810 | 813 | 
| 811   ~HandleScope(); | 814   ~HandleScope(); | 
| 812 | 815 | 
| 813   /** | 816   /** | 
| 814    * Closes the handle scope and returns the value as a handle in the | 817    * Closes the handle scope and returns the value as a handle in the | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 833  private: | 836  private: | 
| 834   // Make it hard to create heap-allocated or illegal handle scopes by | 837   // Make it hard to create heap-allocated or illegal handle scopes by | 
| 835   // disallowing certain operations. | 838   // disallowing certain operations. | 
| 836   HandleScope(const HandleScope&); | 839   HandleScope(const HandleScope&); | 
| 837   void operator=(const HandleScope&); | 840   void operator=(const HandleScope&); | 
| 838   void* operator new(size_t size); | 841   void* operator new(size_t size); | 
| 839   void operator delete(void*, size_t); | 842   void operator delete(void*, size_t); | 
| 840 | 843 | 
| 841   // This Data class is accessible internally as HandleScopeData through a | 844   // This Data class is accessible internally as HandleScopeData through a | 
| 842   // typedef in the ImplementationUtilities class. | 845   // typedef in the ImplementationUtilities class. | 
| 843   class V8EXPORT Data { | 846   class V8_EXPORT Data { | 
| 844    public: | 847    public: | 
| 845     internal::Object** next; | 848     internal::Object** next; | 
| 846     internal::Object** limit; | 849     internal::Object** limit; | 
| 847     int level; | 850     int level; | 
| 848     V8_INLINE(void Initialize()) { | 851     V8_INLINE(void Initialize()) { | 
| 849       next = limit = NULL; | 852       next = limit = NULL; | 
| 850       level = 0; | 853       level = 0; | 
| 851     } | 854     } | 
| 852   }; | 855   }; | 
| 853 | 856 | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 866   friend class ImplementationUtilities; | 869   friend class ImplementationUtilities; | 
| 867 }; | 870 }; | 
| 868 | 871 | 
| 869 | 872 | 
| 870 // --- Special objects --- | 873 // --- Special objects --- | 
| 871 | 874 | 
| 872 | 875 | 
| 873 /** | 876 /** | 
| 874  * The superclass of values and API object templates. | 877  * The superclass of values and API object templates. | 
| 875  */ | 878  */ | 
| 876 class V8EXPORT Data { | 879 class V8_EXPORT Data { | 
| 877  private: | 880  private: | 
| 878   Data(); | 881   Data(); | 
| 879 }; | 882 }; | 
| 880 | 883 | 
| 881 | 884 | 
| 882 /** | 885 /** | 
| 883  * Pre-compilation data that can be associated with a script.  This | 886  * Pre-compilation data that can be associated with a script.  This | 
| 884  * data can be calculated for a script in advance of actually | 887  * data can be calculated for a script in advance of actually | 
| 885  * compiling it, and can be stored between compilations.  When script | 888  * compiling it, and can be stored between compilations.  When script | 
| 886  * data is given to the compile method compilation will be faster. | 889  * data is given to the compile method compilation will be faster. | 
| 887  */ | 890  */ | 
| 888 class V8EXPORT ScriptData {  // NOLINT | 891 class V8_EXPORT ScriptData {  // NOLINT | 
| 889  public: | 892  public: | 
| 890   virtual ~ScriptData() { } | 893   virtual ~ScriptData() { } | 
| 891 | 894 | 
| 892   /** | 895   /** | 
| 893    * Pre-compiles the specified script (context-independent). | 896    * Pre-compiles the specified script (context-independent). | 
| 894    * | 897    * | 
| 895    * \param input Pointer to UTF-8 script source code. | 898    * \param input Pointer to UTF-8 script source code. | 
| 896    * \param length Length of UTF-8 script source code. | 899    * \param length Length of UTF-8 script source code. | 
| 897    */ | 900    */ | 
| 898   static ScriptData* PreCompile(const char* input, int length); | 901   static ScriptData* PreCompile(const char* input, int length); | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 956   Handle<Value> resource_name_; | 959   Handle<Value> resource_name_; | 
| 957   Handle<Integer> resource_line_offset_; | 960   Handle<Integer> resource_line_offset_; | 
| 958   Handle<Integer> resource_column_offset_; | 961   Handle<Integer> resource_column_offset_; | 
| 959   Handle<Boolean> resource_is_shared_cross_origin_; | 962   Handle<Boolean> resource_is_shared_cross_origin_; | 
| 960 }; | 963 }; | 
| 961 | 964 | 
| 962 | 965 | 
| 963 /** | 966 /** | 
| 964  * A compiled JavaScript script. | 967  * A compiled JavaScript script. | 
| 965  */ | 968  */ | 
| 966 class V8EXPORT Script { | 969 class V8_EXPORT Script { | 
| 967  public: | 970  public: | 
| 968   /** | 971   /** | 
| 969    * Compiles the specified script (context-independent). | 972    * Compiles the specified script (context-independent). | 
| 970    * | 973    * | 
| 971    * \param source Script source code. | 974    * \param source Script source code. | 
| 972    * \param origin Script origin, owned by caller, no references are kept | 975    * \param origin Script origin, owned by caller, no references are kept | 
| 973    *   when New() returns | 976    *   when New() returns | 
| 974    * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile() | 977    * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile() | 
| 975    *   using pre_data speeds compilation if it's done multiple times. | 978    *   using pre_data speeds compilation if it's done multiple times. | 
| 976    *   Owned by caller, no references are kept when New() returns. | 979    *   Owned by caller, no references are kept when New() returns. | 
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1074    */ | 1077    */ | 
| 1075   int GetLineNumber(int code_pos); | 1078   int GetLineNumber(int code_pos); | 
| 1076 | 1079 | 
| 1077   static const int kNoScriptId = 0; | 1080   static const int kNoScriptId = 0; | 
| 1078 }; | 1081 }; | 
| 1079 | 1082 | 
| 1080 | 1083 | 
| 1081 /** | 1084 /** | 
| 1082  * An error message. | 1085  * An error message. | 
| 1083  */ | 1086  */ | 
| 1084 class V8EXPORT Message { | 1087 class V8_EXPORT Message { | 
| 1085  public: | 1088  public: | 
| 1086   Local<String> Get() const; | 1089   Local<String> Get() const; | 
| 1087   Local<String> GetSourceLine() const; | 1090   Local<String> GetSourceLine() const; | 
| 1088 | 1091 | 
| 1089   /** | 1092   /** | 
| 1090    * Returns the resource name for the script from where the function causing | 1093    * Returns the resource name for the script from where the function causing | 
| 1091    * the error originates. | 1094    * the error originates. | 
| 1092    */ | 1095    */ | 
| 1093   Handle<Value> GetScriptResourceName() const; | 1096   Handle<Value> GetScriptResourceName() const; | 
| 1094 | 1097 | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1146   static const int kNoLineNumberInfo = 0; | 1149   static const int kNoLineNumberInfo = 0; | 
| 1147   static const int kNoColumnInfo = 0; | 1150   static const int kNoColumnInfo = 0; | 
| 1148 }; | 1151 }; | 
| 1149 | 1152 | 
| 1150 | 1153 | 
| 1151 /** | 1154 /** | 
| 1152  * Representation of a JavaScript stack trace. The information collected is a | 1155  * Representation of a JavaScript stack trace. The information collected is a | 
| 1153  * snapshot of the execution stack and the information remains valid after | 1156  * snapshot of the execution stack and the information remains valid after | 
| 1154  * execution continues. | 1157  * execution continues. | 
| 1155  */ | 1158  */ | 
| 1156 class V8EXPORT StackTrace { | 1159 class V8_EXPORT StackTrace { | 
| 1157  public: | 1160  public: | 
| 1158   /** | 1161   /** | 
| 1159    * Flags that determine what information is placed captured for each | 1162    * Flags that determine what information is placed captured for each | 
| 1160    * StackFrame when grabbing the current stack trace. | 1163    * StackFrame when grabbing the current stack trace. | 
| 1161    */ | 1164    */ | 
| 1162   enum StackTraceOptions { | 1165   enum StackTraceOptions { | 
| 1163     kLineNumber = 1, | 1166     kLineNumber = 1, | 
| 1164     kColumnOffset = 1 << 1 | kLineNumber, | 1167     kColumnOffset = 1 << 1 | kLineNumber, | 
| 1165     kScriptName = 1 << 2, | 1168     kScriptName = 1 << 2, | 
| 1166     kFunctionName = 1 << 3, | 1169     kFunctionName = 1 << 3, | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 1195    */ | 1198    */ | 
| 1196   static Local<StackTrace> CurrentStackTrace( | 1199   static Local<StackTrace> CurrentStackTrace( | 
| 1197       int frame_limit, | 1200       int frame_limit, | 
| 1198       StackTraceOptions options = kOverview); | 1201       StackTraceOptions options = kOverview); | 
| 1199 }; | 1202 }; | 
| 1200 | 1203 | 
| 1201 | 1204 | 
| 1202 /** | 1205 /** | 
| 1203  * A single JavaScript stack frame. | 1206  * A single JavaScript stack frame. | 
| 1204  */ | 1207  */ | 
| 1205 class V8EXPORT StackFrame { | 1208 class V8_EXPORT StackFrame { | 
| 1206  public: | 1209  public: | 
| 1207   /** | 1210   /** | 
| 1208    * Returns the number, 1-based, of the line for the associate function call. | 1211    * Returns the number, 1-based, of the line for the associate function call. | 
| 1209    * This method will return Message::kNoLineNumberInfo if it is unable to | 1212    * This method will return Message::kNoLineNumberInfo if it is unable to | 
| 1210    * retrieve the line number, or if kLineNumber was not passed as an option | 1213    * retrieve the line number, or if kLineNumber was not passed as an option | 
| 1211    * when capturing the StackTrace. | 1214    * when capturing the StackTrace. | 
| 1212    */ | 1215    */ | 
| 1213   int GetLineNumber() const; | 1216   int GetLineNumber() const; | 
| 1214 | 1217 | 
| 1215   /** | 1218   /** | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1250    * Returns whether or not the associated function is called as a | 1253    * Returns whether or not the associated function is called as a | 
| 1251    * constructor via "new". | 1254    * constructor via "new". | 
| 1252    */ | 1255    */ | 
| 1253   bool IsConstructor() const; | 1256   bool IsConstructor() const; | 
| 1254 }; | 1257 }; | 
| 1255 | 1258 | 
| 1256 | 1259 | 
| 1257 /** | 1260 /** | 
| 1258  * A JSON Parser. | 1261  * A JSON Parser. | 
| 1259  */ | 1262  */ | 
| 1260 class V8EXPORT JSON { | 1263 class V8_EXPORT JSON { | 
| 1261  public: | 1264  public: | 
| 1262   /** | 1265   /** | 
| 1263    * Tries to parse the string |json_string| and returns it as object if | 1266    * Tries to parse the string |json_string| and returns it as object if | 
| 1264    * successful. | 1267    * successful. | 
| 1265    * | 1268    * | 
| 1266    * \param json_string The string to parse. | 1269    * \param json_string The string to parse. | 
| 1267    * \return The corresponding object if successfully parsed. | 1270    * \return The corresponding object if successfully parsed. | 
| 1268    */ | 1271    */ | 
| 1269   static Local<Object> Parse(Local<String> json_string); | 1272   static Local<Object> Parse(Local<String> json_string); | 
| 1270 }; | 1273 }; | 
| 1271 | 1274 | 
| 1272 | 1275 | 
| 1273 // --- Value --- | 1276 // --- Value --- | 
| 1274 | 1277 | 
| 1275 | 1278 | 
| 1276 /** | 1279 /** | 
| 1277  * The superclass of all JavaScript values and objects. | 1280  * The superclass of all JavaScript values and objects. | 
| 1278  */ | 1281  */ | 
| 1279 class V8EXPORT Value : public Data { | 1282 class V8_EXPORT Value : public Data { | 
| 1280  public: | 1283  public: | 
| 1281   /** | 1284   /** | 
| 1282    * Returns true if this value is the undefined value.  See ECMA-262 | 1285    * Returns true if this value is the undefined value.  See ECMA-262 | 
| 1283    * 4.3.10. | 1286    * 4.3.10. | 
| 1284    */ | 1287    */ | 
| 1285   V8_INLINE(bool IsUndefined() const); | 1288   V8_INLINE(bool IsUndefined() const); | 
| 1286 | 1289 | 
| 1287   /** | 1290   /** | 
| 1288    * Returns true if this value is the null value.  See ECMA-262 | 1291    * Returns true if this value is the null value.  See ECMA-262 | 
| 1289    * 4.3.11. | 1292    * 4.3.11. | 
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1500   V8_INLINE(bool QuickIsString() const); | 1503   V8_INLINE(bool QuickIsString() const); | 
| 1501   bool FullIsUndefined() const; | 1504   bool FullIsUndefined() const; | 
| 1502   bool FullIsNull() const; | 1505   bool FullIsNull() const; | 
| 1503   bool FullIsString() const; | 1506   bool FullIsString() const; | 
| 1504 }; | 1507 }; | 
| 1505 | 1508 | 
| 1506 | 1509 | 
| 1507 /** | 1510 /** | 
| 1508  * The superclass of primitive values.  See ECMA-262 4.3.2. | 1511  * The superclass of primitive values.  See ECMA-262 4.3.2. | 
| 1509  */ | 1512  */ | 
| 1510 class V8EXPORT Primitive : public Value { }; | 1513 class V8_EXPORT Primitive : public Value { }; | 
| 1511 | 1514 | 
| 1512 | 1515 | 
| 1513 /** | 1516 /** | 
| 1514  * A primitive boolean value (ECMA-262, 4.3.14).  Either the true | 1517  * A primitive boolean value (ECMA-262, 4.3.14).  Either the true | 
| 1515  * or false value. | 1518  * or false value. | 
| 1516  */ | 1519  */ | 
| 1517 class V8EXPORT Boolean : public Primitive { | 1520 class V8_EXPORT Boolean : public Primitive { | 
| 1518  public: | 1521  public: | 
| 1519   bool Value() const; | 1522   bool Value() const; | 
| 1520   V8_INLINE(static Handle<Boolean> New(bool value)); | 1523   V8_INLINE(static Handle<Boolean> New(bool value)); | 
| 1521 }; | 1524 }; | 
| 1522 | 1525 | 
| 1523 | 1526 | 
| 1524 /** | 1527 /** | 
| 1525  * A JavaScript string value (ECMA-262, 4.3.17). | 1528  * A JavaScript string value (ECMA-262, 4.3.17). | 
| 1526  */ | 1529  */ | 
| 1527 class V8EXPORT String : public Primitive { | 1530 class V8_EXPORT String : public Primitive { | 
| 1528  public: | 1531  public: | 
| 1529   enum Encoding { | 1532   enum Encoding { | 
| 1530     UNKNOWN_ENCODING = 0x1, | 1533     UNKNOWN_ENCODING = 0x1, | 
| 1531     TWO_BYTE_ENCODING = 0x0, | 1534     TWO_BYTE_ENCODING = 0x0, | 
| 1532     ASCII_ENCODING = 0x4, | 1535     ASCII_ENCODING = 0x4, | 
| 1533     ONE_BYTE_ENCODING = 0x4 | 1536     ONE_BYTE_ENCODING = 0x4 | 
| 1534   }; | 1537   }; | 
| 1535   /** | 1538   /** | 
| 1536    * Returns the number of characters in this string. | 1539    * Returns the number of characters in this string. | 
| 1537    */ | 1540    */ | 
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1623   /** | 1626   /** | 
| 1624    * Returns true if the string is external | 1627    * Returns true if the string is external | 
| 1625    */ | 1628    */ | 
| 1626   bool IsExternal() const; | 1629   bool IsExternal() const; | 
| 1627 | 1630 | 
| 1628   /** | 1631   /** | 
| 1629    * Returns true if the string is both external and ASCII | 1632    * Returns true if the string is both external and ASCII | 
| 1630    */ | 1633    */ | 
| 1631   bool IsExternalAscii() const; | 1634   bool IsExternalAscii() const; | 
| 1632 | 1635 | 
| 1633   class V8EXPORT ExternalStringResourceBase {  // NOLINT | 1636   class V8_EXPORT ExternalStringResourceBase {  // NOLINT | 
| 1634    public: | 1637    public: | 
| 1635     virtual ~ExternalStringResourceBase() {} | 1638     virtual ~ExternalStringResourceBase() {} | 
| 1636 | 1639 | 
| 1637    protected: | 1640    protected: | 
| 1638     ExternalStringResourceBase() {} | 1641     ExternalStringResourceBase() {} | 
| 1639 | 1642 | 
| 1640     /** | 1643     /** | 
| 1641      * Internally V8 will call this Dispose method when the external string | 1644      * Internally V8 will call this Dispose method when the external string | 
| 1642      * resource is no longer needed. The default implementation will use the | 1645      * resource is no longer needed. The default implementation will use the | 
| 1643      * delete operator. This method can be overridden in subclasses to | 1646      * delete operator. This method can be overridden in subclasses to | 
| 1644      * control how allocated external string resources are disposed. | 1647      * control how allocated external string resources are disposed. | 
| 1645      */ | 1648      */ | 
| 1646     virtual void Dispose() { delete this; } | 1649     virtual void Dispose() { delete this; } | 
| 1647 | 1650 | 
| 1648    private: | 1651    private: | 
| 1649     // Disallow copying and assigning. | 1652     // Disallow copying and assigning. | 
| 1650     ExternalStringResourceBase(const ExternalStringResourceBase&); | 1653     ExternalStringResourceBase(const ExternalStringResourceBase&); | 
| 1651     void operator=(const ExternalStringResourceBase&); | 1654     void operator=(const ExternalStringResourceBase&); | 
| 1652 | 1655 | 
| 1653     friend class v8::internal::Heap; | 1656     friend class v8::internal::Heap; | 
| 1654   }; | 1657   }; | 
| 1655 | 1658 | 
| 1656   /** | 1659   /** | 
| 1657    * An ExternalStringResource is a wrapper around a two-byte string | 1660    * An ExternalStringResource is a wrapper around a two-byte string | 
| 1658    * buffer that resides outside V8's heap. Implement an | 1661    * buffer that resides outside V8's heap. Implement an | 
| 1659    * ExternalStringResource to manage the life cycle of the underlying | 1662    * ExternalStringResource to manage the life cycle of the underlying | 
| 1660    * buffer.  Note that the string data must be immutable. | 1663    * buffer.  Note that the string data must be immutable. | 
| 1661    */ | 1664    */ | 
| 1662   class V8EXPORT ExternalStringResource | 1665   class V8_EXPORT ExternalStringResource | 
| 1663       : public ExternalStringResourceBase { | 1666       : public ExternalStringResourceBase { | 
| 1664    public: | 1667    public: | 
| 1665     /** | 1668     /** | 
| 1666      * Override the destructor to manage the life cycle of the underlying | 1669      * Override the destructor to manage the life cycle of the underlying | 
| 1667      * buffer. | 1670      * buffer. | 
| 1668      */ | 1671      */ | 
| 1669     virtual ~ExternalStringResource() {} | 1672     virtual ~ExternalStringResource() {} | 
| 1670 | 1673 | 
| 1671     /** | 1674     /** | 
| 1672      * The string data from the underlying buffer. | 1675      * The string data from the underlying buffer. | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 1686    * An ExternalAsciiStringResource is a wrapper around an ASCII | 1689    * An ExternalAsciiStringResource is a wrapper around an ASCII | 
| 1687    * string buffer that resides outside V8's heap. Implement an | 1690    * string buffer that resides outside V8's heap. Implement an | 
| 1688    * ExternalAsciiStringResource to manage the life cycle of the | 1691    * ExternalAsciiStringResource to manage the life cycle of the | 
| 1689    * underlying buffer.  Note that the string data must be immutable | 1692    * underlying buffer.  Note that the string data must be immutable | 
| 1690    * and that the data must be strict (7-bit) ASCII, not Latin-1 or | 1693    * and that the data must be strict (7-bit) ASCII, not Latin-1 or | 
| 1691    * UTF-8, which would require special treatment internally in the | 1694    * UTF-8, which would require special treatment internally in the | 
| 1692    * engine and, in the case of UTF-8, do not allow efficient indexing. | 1695    * engine and, in the case of UTF-8, do not allow efficient indexing. | 
| 1693    * Use String::New or convert to 16 bit data for non-ASCII. | 1696    * Use String::New or convert to 16 bit data for non-ASCII. | 
| 1694    */ | 1697    */ | 
| 1695 | 1698 | 
| 1696   class V8EXPORT ExternalAsciiStringResource | 1699   class V8_EXPORT ExternalAsciiStringResource | 
| 1697       : public ExternalStringResourceBase { | 1700       : public ExternalStringResourceBase { | 
| 1698    public: | 1701    public: | 
| 1699     /** | 1702     /** | 
| 1700      * Override the destructor to manage the life cycle of the underlying | 1703      * Override the destructor to manage the life cycle of the underlying | 
| 1701      * buffer. | 1704      * buffer. | 
| 1702      */ | 1705      */ | 
| 1703     virtual ~ExternalAsciiStringResource() {} | 1706     virtual ~ExternalAsciiStringResource() {} | 
| 1704     /** The string data from the underlying buffer.*/ | 1707     /** The string data from the underlying buffer.*/ | 
| 1705     virtual const char* data() const = 0; | 1708     virtual const char* data() const = 0; | 
| 1706     /** The number of ASCII characters in the string.*/ | 1709     /** The number of ASCII characters in the string.*/ | 
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1839   V8_INLINE(static Local<String> NewUndetectable( | 1842   V8_INLINE(static Local<String> NewUndetectable( | 
| 1840       const uint16_t* data, int length = -1)); | 1843       const uint16_t* data, int length = -1)); | 
| 1841 | 1844 | 
| 1842   /** | 1845   /** | 
| 1843    * Converts an object to a UTF-8-encoded character array.  Useful if | 1846    * Converts an object to a UTF-8-encoded character array.  Useful if | 
| 1844    * you want to print the object.  If conversion to a string fails | 1847    * you want to print the object.  If conversion to a string fails | 
| 1845    * (e.g. due to an exception in the toString() method of the object) | 1848    * (e.g. due to an exception in the toString() method of the object) | 
| 1846    * then the length() method returns 0 and the * operator returns | 1849    * then the length() method returns 0 and the * operator returns | 
| 1847    * NULL. | 1850    * NULL. | 
| 1848    */ | 1851    */ | 
| 1849   class V8EXPORT Utf8Value { | 1852   class V8_EXPORT Utf8Value { | 
| 1850    public: | 1853    public: | 
| 1851     explicit Utf8Value(Handle<v8::Value> obj); | 1854     explicit Utf8Value(Handle<v8::Value> obj); | 
| 1852     ~Utf8Value(); | 1855     ~Utf8Value(); | 
| 1853     char* operator*() { return str_; } | 1856     char* operator*() { return str_; } | 
| 1854     const char* operator*() const { return str_; } | 1857     const char* operator*() const { return str_; } | 
| 1855     int length() const { return length_; } | 1858     int length() const { return length_; } | 
| 1856    private: | 1859    private: | 
| 1857     char* str_; | 1860     char* str_; | 
| 1858     int length_; | 1861     int length_; | 
| 1859 | 1862 | 
| 1860     // Disallow copying and assigning. | 1863     // Disallow copying and assigning. | 
| 1861     Utf8Value(const Utf8Value&); | 1864     Utf8Value(const Utf8Value&); | 
| 1862     void operator=(const Utf8Value&); | 1865     void operator=(const Utf8Value&); | 
| 1863   }; | 1866   }; | 
| 1864 | 1867 | 
| 1865   /** | 1868   /** | 
| 1866    * Converts an object to an ASCII string. | 1869    * Converts an object to an ASCII string. | 
| 1867    * Useful if you want to print the object. | 1870    * Useful if you want to print the object. | 
| 1868    * If conversion to a string fails (eg. due to an exception in the toString() | 1871    * If conversion to a string fails (eg. due to an exception in the toString() | 
| 1869    * method of the object) then the length() method returns 0 and the * operator | 1872    * method of the object) then the length() method returns 0 and the * operator | 
| 1870    * returns NULL. | 1873    * returns NULL. | 
| 1871    */ | 1874    */ | 
| 1872   class V8EXPORT AsciiValue { | 1875   class V8_EXPORT AsciiValue { | 
| 1873    public: | 1876    public: | 
| 1874     // TODO(dcarney): deprecate | 1877     // TODO(dcarney): deprecate | 
| 1875     explicit AsciiValue(Handle<v8::Value> obj); | 1878     explicit AsciiValue(Handle<v8::Value> obj); | 
| 1876     ~AsciiValue(); | 1879     ~AsciiValue(); | 
| 1877     char* operator*() { return str_; } | 1880     char* operator*() { return str_; } | 
| 1878     const char* operator*() const { return str_; } | 1881     const char* operator*() const { return str_; } | 
| 1879     int length() const { return length_; } | 1882     int length() const { return length_; } | 
| 1880    private: | 1883    private: | 
| 1881     char* str_; | 1884     char* str_; | 
| 1882     int length_; | 1885     int length_; | 
| 1883 | 1886 | 
| 1884     // Disallow copying and assigning. | 1887     // Disallow copying and assigning. | 
| 1885     AsciiValue(const AsciiValue&); | 1888     AsciiValue(const AsciiValue&); | 
| 1886     void operator=(const AsciiValue&); | 1889     void operator=(const AsciiValue&); | 
| 1887   }; | 1890   }; | 
| 1888 | 1891 | 
| 1889   /** | 1892   /** | 
| 1890    * Converts an object to a two-byte string. | 1893    * Converts an object to a two-byte string. | 
| 1891    * If conversion to a string fails (eg. due to an exception in the toString() | 1894    * If conversion to a string fails (eg. due to an exception in the toString() | 
| 1892    * method of the object) then the length() method returns 0 and the * operator | 1895    * method of the object) then the length() method returns 0 and the * operator | 
| 1893    * returns NULL. | 1896    * returns NULL. | 
| 1894    */ | 1897    */ | 
| 1895   class V8EXPORT Value { | 1898   class V8_EXPORT Value { | 
| 1896    public: | 1899    public: | 
| 1897     explicit Value(Handle<v8::Value> obj); | 1900     explicit Value(Handle<v8::Value> obj); | 
| 1898     ~Value(); | 1901     ~Value(); | 
| 1899     uint16_t* operator*() { return str_; } | 1902     uint16_t* operator*() { return str_; } | 
| 1900     const uint16_t* operator*() const { return str_; } | 1903     const uint16_t* operator*() const { return str_; } | 
| 1901     int length() const { return length_; } | 1904     int length() const { return length_; } | 
| 1902    private: | 1905    private: | 
| 1903     uint16_t* str_; | 1906     uint16_t* str_; | 
| 1904     int length_; | 1907     int length_; | 
| 1905 | 1908 | 
| 1906     // Disallow copying and assigning. | 1909     // Disallow copying and assigning. | 
| 1907     Value(const Value&); | 1910     Value(const Value&); | 
| 1908     void operator=(const Value&); | 1911     void operator=(const Value&); | 
| 1909   }; | 1912   }; | 
| 1910 | 1913 | 
| 1911  private: | 1914  private: | 
| 1912   void VerifyExternalStringResourceBase(ExternalStringResourceBase* v, | 1915   void VerifyExternalStringResourceBase(ExternalStringResourceBase* v, | 
| 1913                                         Encoding encoding) const; | 1916                                         Encoding encoding) const; | 
| 1914   void VerifyExternalStringResource(ExternalStringResource* val) const; | 1917   void VerifyExternalStringResource(ExternalStringResource* val) const; | 
| 1915   static void CheckCast(v8::Value* obj); | 1918   static void CheckCast(v8::Value* obj); | 
| 1916 }; | 1919 }; | 
| 1917 | 1920 | 
| 1918 | 1921 | 
| 1919 /** | 1922 /** | 
| 1920  * A JavaScript symbol (ECMA-262 edition 6) | 1923  * A JavaScript symbol (ECMA-262 edition 6) | 
| 1921  * | 1924  * | 
| 1922  * This is an experimental feature. Use at your own risk. | 1925  * This is an experimental feature. Use at your own risk. | 
| 1923  */ | 1926  */ | 
| 1924 class V8EXPORT Symbol : public Primitive { | 1927 class V8_EXPORT Symbol : public Primitive { | 
| 1925  public: | 1928  public: | 
| 1926   // Returns the print name string of the symbol, or undefined if none. | 1929   // Returns the print name string of the symbol, or undefined if none. | 
| 1927   Local<Value> Name() const; | 1930   Local<Value> Name() const; | 
| 1928 | 1931 | 
| 1929   // Create a symbol without a print name. | 1932   // Create a symbol without a print name. | 
| 1930   static Local<Symbol> New(Isolate* isolate); | 1933   static Local<Symbol> New(Isolate* isolate); | 
| 1931 | 1934 | 
| 1932   // Create a symbol with a print name. | 1935   // Create a symbol with a print name. | 
| 1933   static Local<Symbol> New(Isolate *isolate, const char* data, int length = -1); | 1936   static Local<Symbol> New(Isolate *isolate, const char* data, int length = -1); | 
| 1934 | 1937 | 
| 1935   V8_INLINE(static Symbol* Cast(v8::Value* obj)); | 1938   V8_INLINE(static Symbol* Cast(v8::Value* obj)); | 
| 1936  private: | 1939  private: | 
| 1937   Symbol(); | 1940   Symbol(); | 
| 1938   static void CheckCast(v8::Value* obj); | 1941   static void CheckCast(v8::Value* obj); | 
| 1939 }; | 1942 }; | 
| 1940 | 1943 | 
| 1941 | 1944 | 
| 1942 /** | 1945 /** | 
| 1943  * A JavaScript number value (ECMA-262, 4.3.20) | 1946  * A JavaScript number value (ECMA-262, 4.3.20) | 
| 1944  */ | 1947  */ | 
| 1945 class V8EXPORT Number : public Primitive { | 1948 class V8_EXPORT Number : public Primitive { | 
| 1946  public: | 1949  public: | 
| 1947   double Value() const; | 1950   double Value() const; | 
| 1948   static Local<Number> New(double value); | 1951   static Local<Number> New(double value); | 
| 1949   static Local<Number> New(Isolate* isolate, double value); | 1952   static Local<Number> New(Isolate* isolate, double value); | 
| 1950   V8_INLINE(static Number* Cast(v8::Value* obj)); | 1953   V8_INLINE(static Number* Cast(v8::Value* obj)); | 
| 1951  private: | 1954  private: | 
| 1952   Number(); | 1955   Number(); | 
| 1953   static void CheckCast(v8::Value* obj); | 1956   static void CheckCast(v8::Value* obj); | 
| 1954 }; | 1957 }; | 
| 1955 | 1958 | 
| 1956 | 1959 | 
| 1957 /** | 1960 /** | 
| 1958  * A JavaScript value representing a signed integer. | 1961  * A JavaScript value representing a signed integer. | 
| 1959  */ | 1962  */ | 
| 1960 class V8EXPORT Integer : public Number { | 1963 class V8_EXPORT Integer : public Number { | 
| 1961  public: | 1964  public: | 
| 1962   static Local<Integer> New(int32_t value); | 1965   static Local<Integer> New(int32_t value); | 
| 1963   static Local<Integer> NewFromUnsigned(uint32_t value); | 1966   static Local<Integer> NewFromUnsigned(uint32_t value); | 
| 1964   static Local<Integer> New(int32_t value, Isolate*); | 1967   static Local<Integer> New(int32_t value, Isolate*); | 
| 1965   static Local<Integer> NewFromUnsigned(uint32_t value, Isolate*); | 1968   static Local<Integer> NewFromUnsigned(uint32_t value, Isolate*); | 
| 1966   int64_t Value() const; | 1969   int64_t Value() const; | 
| 1967   V8_INLINE(static Integer* Cast(v8::Value* obj)); | 1970   V8_INLINE(static Integer* Cast(v8::Value* obj)); | 
| 1968  private: | 1971  private: | 
| 1969   Integer(); | 1972   Integer(); | 
| 1970   static void CheckCast(v8::Value* obj); | 1973   static void CheckCast(v8::Value* obj); | 
| 1971 }; | 1974 }; | 
| 1972 | 1975 | 
| 1973 | 1976 | 
| 1974 /** | 1977 /** | 
| 1975  * A JavaScript value representing a 32-bit signed integer. | 1978  * A JavaScript value representing a 32-bit signed integer. | 
| 1976  */ | 1979  */ | 
| 1977 class V8EXPORT Int32 : public Integer { | 1980 class V8_EXPORT Int32 : public Integer { | 
| 1978  public: | 1981  public: | 
| 1979   int32_t Value() const; | 1982   int32_t Value() const; | 
| 1980  private: | 1983  private: | 
| 1981   Int32(); | 1984   Int32(); | 
| 1982 }; | 1985 }; | 
| 1983 | 1986 | 
| 1984 | 1987 | 
| 1985 /** | 1988 /** | 
| 1986  * A JavaScript value representing a 32-bit unsigned integer. | 1989  * A JavaScript value representing a 32-bit unsigned integer. | 
| 1987  */ | 1990  */ | 
| 1988 class V8EXPORT Uint32 : public Integer { | 1991 class V8_EXPORT Uint32 : public Integer { | 
| 1989  public: | 1992  public: | 
| 1990   uint32_t Value() const; | 1993   uint32_t Value() const; | 
| 1991  private: | 1994  private: | 
| 1992   Uint32(); | 1995   Uint32(); | 
| 1993 }; | 1996 }; | 
| 1994 | 1997 | 
| 1995 | 1998 | 
| 1996 enum PropertyAttribute { | 1999 enum PropertyAttribute { | 
| 1997   None       = 0, | 2000   None       = 0, | 
| 1998   ReadOnly   = 1 << 0, | 2001   ReadOnly   = 1 << 0, | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2050   DEFAULT               = 0, | 2053   DEFAULT               = 0, | 
| 2051   ALL_CAN_READ          = 1, | 2054   ALL_CAN_READ          = 1, | 
| 2052   ALL_CAN_WRITE         = 1 << 1, | 2055   ALL_CAN_WRITE         = 1 << 1, | 
| 2053   PROHIBITS_OVERWRITING = 1 << 2 | 2056   PROHIBITS_OVERWRITING = 1 << 2 | 
| 2054 }; | 2057 }; | 
| 2055 | 2058 | 
| 2056 | 2059 | 
| 2057 /** | 2060 /** | 
| 2058  * A JavaScript object (ECMA-262, 4.3.3) | 2061  * A JavaScript object (ECMA-262, 4.3.3) | 
| 2059  */ | 2062  */ | 
| 2060 class V8EXPORT Object : public Value { | 2063 class V8_EXPORT Object : public Value { | 
| 2061  public: | 2064  public: | 
| 2062   bool Set(Handle<Value> key, | 2065   bool Set(Handle<Value> key, | 
| 2063            Handle<Value> value, | 2066            Handle<Value> value, | 
| 2064            PropertyAttribute attribs = None); | 2067            PropertyAttribute attribs = None); | 
| 2065 | 2068 | 
| 2066   bool Set(uint32_t index, Handle<Value> value); | 2069   bool Set(uint32_t index, Handle<Value> value); | 
| 2067 | 2070 | 
| 2068   // Sets a local property on this object bypassing interceptors and | 2071   // Sets a local property on this object bypassing interceptors and | 
| 2069   // overriding accessors or read-only properties. | 2072   // overriding accessors or read-only properties. | 
| 2070   // | 2073   // | 
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2322   Object(); | 2325   Object(); | 
| 2323   static void CheckCast(Value* obj); | 2326   static void CheckCast(Value* obj); | 
| 2324   Local<Value> SlowGetInternalField(int index); | 2327   Local<Value> SlowGetInternalField(int index); | 
| 2325   void* SlowGetAlignedPointerFromInternalField(int index); | 2328   void* SlowGetAlignedPointerFromInternalField(int index); | 
| 2326 }; | 2329 }; | 
| 2327 | 2330 | 
| 2328 | 2331 | 
| 2329 /** | 2332 /** | 
| 2330  * An instance of the built-in array constructor (ECMA-262, 15.4.2). | 2333  * An instance of the built-in array constructor (ECMA-262, 15.4.2). | 
| 2331  */ | 2334  */ | 
| 2332 class V8EXPORT Array : public Object { | 2335 class V8_EXPORT Array : public Object { | 
| 2333  public: | 2336  public: | 
| 2334   uint32_t Length() const; | 2337   uint32_t Length() const; | 
| 2335 | 2338 | 
| 2336   /** | 2339   /** | 
| 2337    * Clones an element at index |index|.  Returns an empty | 2340    * Clones an element at index |index|.  Returns an empty | 
| 2338    * handle if cloning fails (for any reason). | 2341    * handle if cloning fails (for any reason). | 
| 2339    */ | 2342    */ | 
| 2340   Local<Object> CloneElementAt(uint32_t index); | 2343   Local<Object> CloneElementAt(uint32_t index); | 
| 2341 | 2344 | 
| 2342   /** | 2345   /** | 
| 2343    * Creates a JavaScript array with the given length. If the length | 2346    * Creates a JavaScript array with the given length. If the length | 
| 2344    * is negative the returned array will have length 0. | 2347    * is negative the returned array will have length 0. | 
| 2345    */ | 2348    */ | 
| 2346   static Local<Array> New(int length = 0); | 2349   static Local<Array> New(int length = 0); | 
| 2347 | 2350 | 
| 2348   V8_INLINE(static Array* Cast(Value* obj)); | 2351   V8_INLINE(static Array* Cast(Value* obj)); | 
| 2349  private: | 2352  private: | 
| 2350   Array(); | 2353   Array(); | 
| 2351   static void CheckCast(Value* obj); | 2354   static void CheckCast(Value* obj); | 
| 2352 }; | 2355 }; | 
| 2353 | 2356 | 
| 2354 | 2357 | 
| 2355 /** | 2358 /** | 
| 2356  * A JavaScript function object (ECMA-262, 15.3). | 2359  * A JavaScript function object (ECMA-262, 15.3). | 
| 2357  */ | 2360  */ | 
| 2358 class V8EXPORT Function : public Object { | 2361 class V8_EXPORT Function : public Object { | 
| 2359  public: | 2362  public: | 
| 2360   Local<Object> NewInstance() const; | 2363   Local<Object> NewInstance() const; | 
| 2361   Local<Object> NewInstance(int argc, Handle<Value> argv[]) const; | 2364   Local<Object> NewInstance(int argc, Handle<Value> argv[]) const; | 
| 2362   Local<Value> Call(Handle<Object> recv, int argc, Handle<Value> argv[]); | 2365   Local<Value> Call(Handle<Object> recv, int argc, Handle<Value> argv[]); | 
| 2363   void SetName(Handle<String> name); | 2366   void SetName(Handle<String> name); | 
| 2364   Handle<Value> GetName() const; | 2367   Handle<Value> GetName() const; | 
| 2365 | 2368 | 
| 2366   /** | 2369   /** | 
| 2367    * Name inferred from variable or property assignment of this function. | 2370    * Name inferred from variable or property assignment of this function. | 
| 2368    * Used to facilitate debugging and profiling of JavaScript code written | 2371    * Used to facilitate debugging and profiling of JavaScript code written | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2404 | 2407 | 
| 2405 #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT | 2408 #ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT | 
| 2406 // The number of required internal fields can be defined by embedder. | 2409 // The number of required internal fields can be defined by embedder. | 
| 2407 #define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2 | 2410 #define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2 | 
| 2408 #endif | 2411 #endif | 
| 2409 | 2412 | 
| 2410 /** | 2413 /** | 
| 2411  * An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5). | 2414  * An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5). | 
| 2412  * This API is experimental and may change significantly. | 2415  * This API is experimental and may change significantly. | 
| 2413  */ | 2416  */ | 
| 2414 class V8EXPORT ArrayBuffer : public Object { | 2417 class V8_EXPORT ArrayBuffer : public Object { | 
| 2415  public: | 2418  public: | 
| 2416   /** | 2419   /** | 
| 2417    * Allocator that V8 uses to allocate |ArrayBuffer|'s memory. | 2420    * Allocator that V8 uses to allocate |ArrayBuffer|'s memory. | 
| 2418    * The allocator is a global V8 setting. It should be set with | 2421    * The allocator is a global V8 setting. It should be set with | 
| 2419    * V8::SetArrayBufferAllocator prior to creation of a first ArrayBuffer. | 2422    * V8::SetArrayBufferAllocator prior to creation of a first ArrayBuffer. | 
| 2420    * | 2423    * | 
| 2421    * This API is experimental and may change significantly. | 2424    * This API is experimental and may change significantly. | 
| 2422    */ | 2425    */ | 
| 2423   class V8EXPORT Allocator { // NOLINT | 2426   class V8_EXPORT Allocator { // NOLINT | 
| 2424    public: | 2427    public: | 
| 2425     virtual ~Allocator() {} | 2428     virtual ~Allocator() {} | 
| 2426 | 2429 | 
| 2427     /** | 2430     /** | 
| 2428      * Allocate |length| bytes. Return NULL if allocation is not successful. | 2431      * Allocate |length| bytes. Return NULL if allocation is not successful. | 
| 2429      * Memory should be initialized to zeroes. | 2432      * Memory should be initialized to zeroes. | 
| 2430      */ | 2433      */ | 
| 2431     virtual void* Allocate(size_t length) = 0; | 2434     virtual void* Allocate(size_t length) = 0; | 
| 2432 | 2435 | 
| 2433     /** | 2436     /** | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 2460   /** | 2463   /** | 
| 2461    * The contents of an |ArrayBuffer|. Externalization of |ArrayBuffer| | 2464    * The contents of an |ArrayBuffer|. Externalization of |ArrayBuffer| | 
| 2462    * returns an instance of this class, populated, with a pointer to data | 2465    * returns an instance of this class, populated, with a pointer to data | 
| 2463    * and byte length. | 2466    * and byte length. | 
| 2464    * | 2467    * | 
| 2465    * The Data pointer of ArrayBuffer::Contents is always allocated with | 2468    * The Data pointer of ArrayBuffer::Contents is always allocated with | 
| 2466    * Allocator::Allocate that is set with V8::SetArrayBufferAllocator. | 2469    * Allocator::Allocate that is set with V8::SetArrayBufferAllocator. | 
| 2467    * | 2470    * | 
| 2468    * This API is experimental and may change significantly. | 2471    * This API is experimental and may change significantly. | 
| 2469    */ | 2472    */ | 
| 2470   class V8EXPORT Contents { // NOLINT | 2473   class V8_EXPORT Contents { // NOLINT | 
| 2471    public: | 2474    public: | 
| 2472     Contents() : data_(NULL), byte_length_(0) {} | 2475     Contents() : data_(NULL), byte_length_(0) {} | 
| 2473 | 2476 | 
| 2474     void* Data() const { return data_; } | 2477     void* Data() const { return data_; } | 
| 2475     size_t ByteLength() const { return byte_length_; } | 2478     size_t ByteLength() const { return byte_length_; } | 
| 2476 | 2479 | 
| 2477    private: | 2480    private: | 
| 2478     void* data_; | 2481     void* data_; | 
| 2479     size_t byte_length_; | 2482     size_t byte_length_; | 
| 2480 | 2483 | 
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2543 #define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2 | 2546 #define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT 2 | 
| 2544 #endif | 2547 #endif | 
| 2545 | 2548 | 
| 2546 | 2549 | 
| 2547 /** | 2550 /** | 
| 2548  * A base class for an instance of one of "views" over ArrayBuffer, | 2551  * A base class for an instance of one of "views" over ArrayBuffer, | 
| 2549  * including TypedArrays and DataView (ES6 draft 15.13). | 2552  * including TypedArrays and DataView (ES6 draft 15.13). | 
| 2550  * | 2553  * | 
| 2551  * This API is experimental and may change significantly. | 2554  * This API is experimental and may change significantly. | 
| 2552  */ | 2555  */ | 
| 2553 class V8EXPORT ArrayBufferView : public Object { | 2556 class V8_EXPORT ArrayBufferView : public Object { | 
| 2554  public: | 2557  public: | 
| 2555   /** | 2558   /** | 
| 2556    * Returns underlying ArrayBuffer. | 2559    * Returns underlying ArrayBuffer. | 
| 2557    */ | 2560    */ | 
| 2558   Local<ArrayBuffer> Buffer(); | 2561   Local<ArrayBuffer> Buffer(); | 
| 2559   /** | 2562   /** | 
| 2560    * Byte offset in |Buffer|. | 2563    * Byte offset in |Buffer|. | 
| 2561    */ | 2564    */ | 
| 2562   size_t ByteOffset(); | 2565   size_t ByteOffset(); | 
| 2563   /** | 2566   /** | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 2578   ArrayBufferView(); | 2581   ArrayBufferView(); | 
| 2579   static void CheckCast(Value* obj); | 2582   static void CheckCast(Value* obj); | 
| 2580 }; | 2583 }; | 
| 2581 | 2584 | 
| 2582 | 2585 | 
| 2583 /** | 2586 /** | 
| 2584  * A base class for an instance of TypedArray series of constructors | 2587  * A base class for an instance of TypedArray series of constructors | 
| 2585  * (ES6 draft 15.13.6). | 2588  * (ES6 draft 15.13.6). | 
| 2586  * This API is experimental and may change significantly. | 2589  * This API is experimental and may change significantly. | 
| 2587  */ | 2590  */ | 
| 2588 class V8EXPORT TypedArray : public ArrayBufferView { | 2591 class V8_EXPORT TypedArray : public ArrayBufferView { | 
| 2589  public: | 2592  public: | 
| 2590   /** | 2593   /** | 
| 2591    * Number of elements in this typed array | 2594    * Number of elements in this typed array | 
| 2592    * (e.g. for Int16Array, |ByteLength|/2). | 2595    * (e.g. for Int16Array, |ByteLength|/2). | 
| 2593    */ | 2596    */ | 
| 2594   size_t Length(); | 2597   size_t Length(); | 
| 2595 | 2598 | 
| 2596   V8_INLINE(static TypedArray* Cast(Value* obj)); | 2599   V8_INLINE(static TypedArray* Cast(Value* obj)); | 
| 2597 | 2600 | 
| 2598  private: | 2601  private: | 
| 2599   TypedArray(); | 2602   TypedArray(); | 
| 2600   static void CheckCast(Value* obj); | 2603   static void CheckCast(Value* obj); | 
| 2601 }; | 2604 }; | 
| 2602 | 2605 | 
| 2603 | 2606 | 
| 2604 /** | 2607 /** | 
| 2605  * An instance of Uint8Array constructor (ES6 draft 15.13.6). | 2608  * An instance of Uint8Array constructor (ES6 draft 15.13.6). | 
| 2606  * This API is experimental and may change significantly. | 2609  * This API is experimental and may change significantly. | 
| 2607  */ | 2610  */ | 
| 2608 class V8EXPORT Uint8Array : public TypedArray { | 2611 class V8_EXPORT Uint8Array : public TypedArray { | 
| 2609  public: | 2612  public: | 
| 2610   static Local<Uint8Array> New(Handle<ArrayBuffer> array_buffer, | 2613   static Local<Uint8Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2611                                size_t byte_offset, size_t length); | 2614                                size_t byte_offset, size_t length); | 
| 2612   V8_INLINE(static Uint8Array* Cast(Value* obj)); | 2615   V8_INLINE(static Uint8Array* Cast(Value* obj)); | 
| 2613 | 2616 | 
| 2614  private: | 2617  private: | 
| 2615   Uint8Array(); | 2618   Uint8Array(); | 
| 2616   static void CheckCast(Value* obj); | 2619   static void CheckCast(Value* obj); | 
| 2617 }; | 2620 }; | 
| 2618 | 2621 | 
| 2619 | 2622 | 
| 2620 /** | 2623 /** | 
| 2621  * An instance of Uint8ClampedArray constructor (ES6 draft 15.13.6). | 2624  * An instance of Uint8ClampedArray constructor (ES6 draft 15.13.6). | 
| 2622  * This API is experimental and may change significantly. | 2625  * This API is experimental and may change significantly. | 
| 2623  */ | 2626  */ | 
| 2624 class V8EXPORT Uint8ClampedArray : public TypedArray { | 2627 class V8_EXPORT Uint8ClampedArray : public TypedArray { | 
| 2625  public: | 2628  public: | 
| 2626   static Local<Uint8ClampedArray> New(Handle<ArrayBuffer> array_buffer, | 2629   static Local<Uint8ClampedArray> New(Handle<ArrayBuffer> array_buffer, | 
| 2627                                size_t byte_offset, size_t length); | 2630                                size_t byte_offset, size_t length); | 
| 2628   V8_INLINE(static Uint8ClampedArray* Cast(Value* obj)); | 2631   V8_INLINE(static Uint8ClampedArray* Cast(Value* obj)); | 
| 2629 | 2632 | 
| 2630  private: | 2633  private: | 
| 2631   Uint8ClampedArray(); | 2634   Uint8ClampedArray(); | 
| 2632   static void CheckCast(Value* obj); | 2635   static void CheckCast(Value* obj); | 
| 2633 }; | 2636 }; | 
| 2634 | 2637 | 
| 2635 /** | 2638 /** | 
| 2636  * An instance of Int8Array constructor (ES6 draft 15.13.6). | 2639  * An instance of Int8Array constructor (ES6 draft 15.13.6). | 
| 2637  * This API is experimental and may change significantly. | 2640  * This API is experimental and may change significantly. | 
| 2638  */ | 2641  */ | 
| 2639 class V8EXPORT Int8Array : public TypedArray { | 2642 class V8_EXPORT Int8Array : public TypedArray { | 
| 2640  public: | 2643  public: | 
| 2641   static Local<Int8Array> New(Handle<ArrayBuffer> array_buffer, | 2644   static Local<Int8Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2642                                size_t byte_offset, size_t length); | 2645                                size_t byte_offset, size_t length); | 
| 2643   V8_INLINE(static Int8Array* Cast(Value* obj)); | 2646   V8_INLINE(static Int8Array* Cast(Value* obj)); | 
| 2644 | 2647 | 
| 2645  private: | 2648  private: | 
| 2646   Int8Array(); | 2649   Int8Array(); | 
| 2647   static void CheckCast(Value* obj); | 2650   static void CheckCast(Value* obj); | 
| 2648 }; | 2651 }; | 
| 2649 | 2652 | 
| 2650 | 2653 | 
| 2651 /** | 2654 /** | 
| 2652  * An instance of Uint16Array constructor (ES6 draft 15.13.6). | 2655  * An instance of Uint16Array constructor (ES6 draft 15.13.6). | 
| 2653  * This API is experimental and may change significantly. | 2656  * This API is experimental and may change significantly. | 
| 2654  */ | 2657  */ | 
| 2655 class V8EXPORT Uint16Array : public TypedArray { | 2658 class V8_EXPORT Uint16Array : public TypedArray { | 
| 2656  public: | 2659  public: | 
| 2657   static Local<Uint16Array> New(Handle<ArrayBuffer> array_buffer, | 2660   static Local<Uint16Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2658                                size_t byte_offset, size_t length); | 2661                                size_t byte_offset, size_t length); | 
| 2659   V8_INLINE(static Uint16Array* Cast(Value* obj)); | 2662   V8_INLINE(static Uint16Array* Cast(Value* obj)); | 
| 2660 | 2663 | 
| 2661  private: | 2664  private: | 
| 2662   Uint16Array(); | 2665   Uint16Array(); | 
| 2663   static void CheckCast(Value* obj); | 2666   static void CheckCast(Value* obj); | 
| 2664 }; | 2667 }; | 
| 2665 | 2668 | 
| 2666 | 2669 | 
| 2667 /** | 2670 /** | 
| 2668  * An instance of Int16Array constructor (ES6 draft 15.13.6). | 2671  * An instance of Int16Array constructor (ES6 draft 15.13.6). | 
| 2669  * This API is experimental and may change significantly. | 2672  * This API is experimental and may change significantly. | 
| 2670  */ | 2673  */ | 
| 2671 class V8EXPORT Int16Array : public TypedArray { | 2674 class V8_EXPORT Int16Array : public TypedArray { | 
| 2672  public: | 2675  public: | 
| 2673   static Local<Int16Array> New(Handle<ArrayBuffer> array_buffer, | 2676   static Local<Int16Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2674                                size_t byte_offset, size_t length); | 2677                                size_t byte_offset, size_t length); | 
| 2675   V8_INLINE(static Int16Array* Cast(Value* obj)); | 2678   V8_INLINE(static Int16Array* Cast(Value* obj)); | 
| 2676 | 2679 | 
| 2677  private: | 2680  private: | 
| 2678   Int16Array(); | 2681   Int16Array(); | 
| 2679   static void CheckCast(Value* obj); | 2682   static void CheckCast(Value* obj); | 
| 2680 }; | 2683 }; | 
| 2681 | 2684 | 
| 2682 | 2685 | 
| 2683 /** | 2686 /** | 
| 2684  * An instance of Uint32Array constructor (ES6 draft 15.13.6). | 2687  * An instance of Uint32Array constructor (ES6 draft 15.13.6). | 
| 2685  * This API is experimental and may change significantly. | 2688  * This API is experimental and may change significantly. | 
| 2686  */ | 2689  */ | 
| 2687 class V8EXPORT Uint32Array : public TypedArray { | 2690 class V8_EXPORT Uint32Array : public TypedArray { | 
| 2688  public: | 2691  public: | 
| 2689   static Local<Uint32Array> New(Handle<ArrayBuffer> array_buffer, | 2692   static Local<Uint32Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2690                                size_t byte_offset, size_t length); | 2693                                size_t byte_offset, size_t length); | 
| 2691   V8_INLINE(static Uint32Array* Cast(Value* obj)); | 2694   V8_INLINE(static Uint32Array* Cast(Value* obj)); | 
| 2692 | 2695 | 
| 2693  private: | 2696  private: | 
| 2694   Uint32Array(); | 2697   Uint32Array(); | 
| 2695   static void CheckCast(Value* obj); | 2698   static void CheckCast(Value* obj); | 
| 2696 }; | 2699 }; | 
| 2697 | 2700 | 
| 2698 | 2701 | 
| 2699 /** | 2702 /** | 
| 2700  * An instance of Int32Array constructor (ES6 draft 15.13.6). | 2703  * An instance of Int32Array constructor (ES6 draft 15.13.6). | 
| 2701  * This API is experimental and may change significantly. | 2704  * This API is experimental and may change significantly. | 
| 2702  */ | 2705  */ | 
| 2703 class V8EXPORT Int32Array : public TypedArray { | 2706 class V8_EXPORT Int32Array : public TypedArray { | 
| 2704  public: | 2707  public: | 
| 2705   static Local<Int32Array> New(Handle<ArrayBuffer> array_buffer, | 2708   static Local<Int32Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2706                                size_t byte_offset, size_t length); | 2709                                size_t byte_offset, size_t length); | 
| 2707   V8_INLINE(static Int32Array* Cast(Value* obj)); | 2710   V8_INLINE(static Int32Array* Cast(Value* obj)); | 
| 2708 | 2711 | 
| 2709  private: | 2712  private: | 
| 2710   Int32Array(); | 2713   Int32Array(); | 
| 2711   static void CheckCast(Value* obj); | 2714   static void CheckCast(Value* obj); | 
| 2712 }; | 2715 }; | 
| 2713 | 2716 | 
| 2714 | 2717 | 
| 2715 /** | 2718 /** | 
| 2716  * An instance of Float32Array constructor (ES6 draft 15.13.6). | 2719  * An instance of Float32Array constructor (ES6 draft 15.13.6). | 
| 2717  * This API is experimental and may change significantly. | 2720  * This API is experimental and may change significantly. | 
| 2718  */ | 2721  */ | 
| 2719 class V8EXPORT Float32Array : public TypedArray { | 2722 class V8_EXPORT Float32Array : public TypedArray { | 
| 2720  public: | 2723  public: | 
| 2721   static Local<Float32Array> New(Handle<ArrayBuffer> array_buffer, | 2724   static Local<Float32Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2722                                size_t byte_offset, size_t length); | 2725                                size_t byte_offset, size_t length); | 
| 2723   V8_INLINE(static Float32Array* Cast(Value* obj)); | 2726   V8_INLINE(static Float32Array* Cast(Value* obj)); | 
| 2724 | 2727 | 
| 2725  private: | 2728  private: | 
| 2726   Float32Array(); | 2729   Float32Array(); | 
| 2727   static void CheckCast(Value* obj); | 2730   static void CheckCast(Value* obj); | 
| 2728 }; | 2731 }; | 
| 2729 | 2732 | 
| 2730 | 2733 | 
| 2731 /** | 2734 /** | 
| 2732  * An instance of Float64Array constructor (ES6 draft 15.13.6). | 2735  * An instance of Float64Array constructor (ES6 draft 15.13.6). | 
| 2733  * This API is experimental and may change significantly. | 2736  * This API is experimental and may change significantly. | 
| 2734  */ | 2737  */ | 
| 2735 class V8EXPORT Float64Array : public TypedArray { | 2738 class V8_EXPORT Float64Array : public TypedArray { | 
| 2736  public: | 2739  public: | 
| 2737   static Local<Float64Array> New(Handle<ArrayBuffer> array_buffer, | 2740   static Local<Float64Array> New(Handle<ArrayBuffer> array_buffer, | 
| 2738                                size_t byte_offset, size_t length); | 2741                                size_t byte_offset, size_t length); | 
| 2739   V8_INLINE(static Float64Array* Cast(Value* obj)); | 2742   V8_INLINE(static Float64Array* Cast(Value* obj)); | 
| 2740 | 2743 | 
| 2741  private: | 2744  private: | 
| 2742   Float64Array(); | 2745   Float64Array(); | 
| 2743   static void CheckCast(Value* obj); | 2746   static void CheckCast(Value* obj); | 
| 2744 }; | 2747 }; | 
| 2745 | 2748 | 
| 2746 | 2749 | 
| 2747 /** | 2750 /** | 
| 2748  * An instance of DataView constructor (ES6 draft 15.13.7). | 2751  * An instance of DataView constructor (ES6 draft 15.13.7). | 
| 2749  * This API is experimental and may change significantly. | 2752  * This API is experimental and may change significantly. | 
| 2750  */ | 2753  */ | 
| 2751 class V8EXPORT DataView : public ArrayBufferView { | 2754 class V8_EXPORT DataView : public ArrayBufferView { | 
| 2752  public: | 2755  public: | 
| 2753   static Local<DataView> New(Handle<ArrayBuffer> array_buffer, | 2756   static Local<DataView> New(Handle<ArrayBuffer> array_buffer, | 
| 2754                              size_t byte_offset, size_t length); | 2757                              size_t byte_offset, size_t length); | 
| 2755   V8_INLINE(static DataView* Cast(Value* obj)); | 2758   V8_INLINE(static DataView* Cast(Value* obj)); | 
| 2756 | 2759 | 
| 2757  private: | 2760  private: | 
| 2758   DataView(); | 2761   DataView(); | 
| 2759   static void CheckCast(Value* obj); | 2762   static void CheckCast(Value* obj); | 
| 2760 }; | 2763 }; | 
| 2761 | 2764 | 
| 2762 | 2765 | 
| 2763 /** | 2766 /** | 
| 2764  * An instance of the built-in Date constructor (ECMA-262, 15.9). | 2767  * An instance of the built-in Date constructor (ECMA-262, 15.9). | 
| 2765  */ | 2768  */ | 
| 2766 class V8EXPORT Date : public Object { | 2769 class V8_EXPORT Date : public Object { | 
| 2767  public: | 2770  public: | 
| 2768   static Local<Value> New(double time); | 2771   static Local<Value> New(double time); | 
| 2769 | 2772 | 
| 2770   // Deprecated, use Date::ValueOf() instead. | 2773   // Deprecated, use Date::ValueOf() instead. | 
| 2771   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 2774   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 
| 2772   double NumberValue() const { return ValueOf(); } | 2775   double NumberValue() const { return ValueOf(); } | 
| 2773 | 2776 | 
| 2774   /** | 2777   /** | 
| 2775    * A specialization of Value::NumberValue that is more efficient | 2778    * A specialization of Value::NumberValue that is more efficient | 
| 2776    * because we know the structure of this object. | 2779    * because we know the structure of this object. | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 2794   static void DateTimeConfigurationChangeNotification(); | 2797   static void DateTimeConfigurationChangeNotification(); | 
| 2795 | 2798 | 
| 2796  private: | 2799  private: | 
| 2797   static void CheckCast(v8::Value* obj); | 2800   static void CheckCast(v8::Value* obj); | 
| 2798 }; | 2801 }; | 
| 2799 | 2802 | 
| 2800 | 2803 | 
| 2801 /** | 2804 /** | 
| 2802  * A Number object (ECMA-262, 4.3.21). | 2805  * A Number object (ECMA-262, 4.3.21). | 
| 2803  */ | 2806  */ | 
| 2804 class V8EXPORT NumberObject : public Object { | 2807 class V8_EXPORT NumberObject : public Object { | 
| 2805  public: | 2808  public: | 
| 2806   static Local<Value> New(double value); | 2809   static Local<Value> New(double value); | 
| 2807 | 2810 | 
| 2808   // Deprecated, use NumberObject::ValueOf() instead. | 2811   // Deprecated, use NumberObject::ValueOf() instead. | 
| 2809   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 2812   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 
| 2810   double NumberValue() const { return ValueOf(); } | 2813   double NumberValue() const { return ValueOf(); } | 
| 2811 | 2814 | 
| 2812   /** | 2815   /** | 
| 2813    * Returns the Number held by the object. | 2816    * Returns the Number held by the object. | 
| 2814    */ | 2817    */ | 
| 2815   double ValueOf() const; | 2818   double ValueOf() const; | 
| 2816 | 2819 | 
| 2817   V8_INLINE(static NumberObject* Cast(v8::Value* obj)); | 2820   V8_INLINE(static NumberObject* Cast(v8::Value* obj)); | 
| 2818 | 2821 | 
| 2819  private: | 2822  private: | 
| 2820   static void CheckCast(v8::Value* obj); | 2823   static void CheckCast(v8::Value* obj); | 
| 2821 }; | 2824 }; | 
| 2822 | 2825 | 
| 2823 | 2826 | 
| 2824 /** | 2827 /** | 
| 2825  * A Boolean object (ECMA-262, 4.3.15). | 2828  * A Boolean object (ECMA-262, 4.3.15). | 
| 2826  */ | 2829  */ | 
| 2827 class V8EXPORT BooleanObject : public Object { | 2830 class V8_EXPORT BooleanObject : public Object { | 
| 2828  public: | 2831  public: | 
| 2829   static Local<Value> New(bool value); | 2832   static Local<Value> New(bool value); | 
| 2830 | 2833 | 
| 2831   // Deprecated, use BooleanObject::ValueOf() instead. | 2834   // Deprecated, use BooleanObject::ValueOf() instead. | 
| 2832   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 2835   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 
| 2833   bool BooleanValue() const { return ValueOf(); } | 2836   bool BooleanValue() const { return ValueOf(); } | 
| 2834 | 2837 | 
| 2835   /** | 2838   /** | 
| 2836    * Returns the Boolean held by the object. | 2839    * Returns the Boolean held by the object. | 
| 2837    */ | 2840    */ | 
| 2838   bool ValueOf() const; | 2841   bool ValueOf() const; | 
| 2839 | 2842 | 
| 2840   V8_INLINE(static BooleanObject* Cast(v8::Value* obj)); | 2843   V8_INLINE(static BooleanObject* Cast(v8::Value* obj)); | 
| 2841 | 2844 | 
| 2842  private: | 2845  private: | 
| 2843   static void CheckCast(v8::Value* obj); | 2846   static void CheckCast(v8::Value* obj); | 
| 2844 }; | 2847 }; | 
| 2845 | 2848 | 
| 2846 | 2849 | 
| 2847 /** | 2850 /** | 
| 2848  * A String object (ECMA-262, 4.3.18). | 2851  * A String object (ECMA-262, 4.3.18). | 
| 2849  */ | 2852  */ | 
| 2850 class V8EXPORT StringObject : public Object { | 2853 class V8_EXPORT StringObject : public Object { | 
| 2851  public: | 2854  public: | 
| 2852   static Local<Value> New(Handle<String> value); | 2855   static Local<Value> New(Handle<String> value); | 
| 2853 | 2856 | 
| 2854   // Deprecated, use StringObject::ValueOf() instead. | 2857   // Deprecated, use StringObject::ValueOf() instead. | 
| 2855   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 2858   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 
| 2856   Local<String> StringValue() const { return ValueOf(); } | 2859   Local<String> StringValue() const { return ValueOf(); } | 
| 2857 | 2860 | 
| 2858   /** | 2861   /** | 
| 2859    * Returns the String held by the object. | 2862    * Returns the String held by the object. | 
| 2860    */ | 2863    */ | 
| 2861   Local<String> ValueOf() const; | 2864   Local<String> ValueOf() const; | 
| 2862 | 2865 | 
| 2863   V8_INLINE(static StringObject* Cast(v8::Value* obj)); | 2866   V8_INLINE(static StringObject* Cast(v8::Value* obj)); | 
| 2864 | 2867 | 
| 2865  private: | 2868  private: | 
| 2866   static void CheckCast(v8::Value* obj); | 2869   static void CheckCast(v8::Value* obj); | 
| 2867 }; | 2870 }; | 
| 2868 | 2871 | 
| 2869 | 2872 | 
| 2870 /** | 2873 /** | 
| 2871  * A Symbol object (ECMA-262 edition 6). | 2874  * A Symbol object (ECMA-262 edition 6). | 
| 2872  * | 2875  * | 
| 2873  * This is an experimental feature. Use at your own risk. | 2876  * This is an experimental feature. Use at your own risk. | 
| 2874  */ | 2877  */ | 
| 2875 class V8EXPORT SymbolObject : public Object { | 2878 class V8_EXPORT SymbolObject : public Object { | 
| 2876  public: | 2879  public: | 
| 2877   static Local<Value> New(Isolate* isolate, Handle<Symbol> value); | 2880   static Local<Value> New(Isolate* isolate, Handle<Symbol> value); | 
| 2878 | 2881 | 
| 2879   // Deprecated, use SymbolObject::ValueOf() instead. | 2882   // Deprecated, use SymbolObject::ValueOf() instead. | 
| 2880   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 2883   // TODO(svenpanne) Actually deprecate when Chrome is adapted. | 
| 2881   Local<Symbol> SymbolValue() const { return ValueOf(); } | 2884   Local<Symbol> SymbolValue() const { return ValueOf(); } | 
| 2882 | 2885 | 
| 2883   /** | 2886   /** | 
| 2884    * Returns the Symbol held by the object. | 2887    * Returns the Symbol held by the object. | 
| 2885    */ | 2888    */ | 
| 2886   Local<Symbol> ValueOf() const; | 2889   Local<Symbol> ValueOf() const; | 
| 2887 | 2890 | 
| 2888   V8_INLINE(static SymbolObject* Cast(v8::Value* obj)); | 2891   V8_INLINE(static SymbolObject* Cast(v8::Value* obj)); | 
| 2889 | 2892 | 
| 2890  private: | 2893  private: | 
| 2891   static void CheckCast(v8::Value* obj); | 2894   static void CheckCast(v8::Value* obj); | 
| 2892 }; | 2895 }; | 
| 2893 | 2896 | 
| 2894 | 2897 | 
| 2895 /** | 2898 /** | 
| 2896  * An instance of the built-in RegExp constructor (ECMA-262, 15.10). | 2899  * An instance of the built-in RegExp constructor (ECMA-262, 15.10). | 
| 2897  */ | 2900  */ | 
| 2898 class V8EXPORT RegExp : public Object { | 2901 class V8_EXPORT RegExp : public Object { | 
| 2899  public: | 2902  public: | 
| 2900   /** | 2903   /** | 
| 2901    * Regular expression flag bits. They can be or'ed to enable a set | 2904    * Regular expression flag bits. They can be or'ed to enable a set | 
| 2902    * of flags. | 2905    * of flags. | 
| 2903    */ | 2906    */ | 
| 2904   enum Flags { | 2907   enum Flags { | 
| 2905     kNone = 0, | 2908     kNone = 0, | 
| 2906     kGlobal = 1, | 2909     kGlobal = 1, | 
| 2907     kIgnoreCase = 2, | 2910     kIgnoreCase = 2, | 
| 2908     kMultiline = 4 | 2911     kMultiline = 4 | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 2935 | 2938 | 
| 2936  private: | 2939  private: | 
| 2937   static void CheckCast(v8::Value* obj); | 2940   static void CheckCast(v8::Value* obj); | 
| 2938 }; | 2941 }; | 
| 2939 | 2942 | 
| 2940 | 2943 | 
| 2941 /** | 2944 /** | 
| 2942  * A JavaScript value that wraps a C++ void*. This type of value is mainly used | 2945  * A JavaScript value that wraps a C++ void*. This type of value is mainly used | 
| 2943  * to associate C++ data structures with JavaScript objects. | 2946  * to associate C++ data structures with JavaScript objects. | 
| 2944  */ | 2947  */ | 
| 2945 class V8EXPORT External : public Value { | 2948 class V8_EXPORT External : public Value { | 
| 2946  public: | 2949  public: | 
| 2947   static Local<External> New(void* value); | 2950   static Local<External> New(void* value); | 
| 2948   V8_INLINE(static External* Cast(Value* obj)); | 2951   V8_INLINE(static External* Cast(Value* obj)); | 
| 2949   void* Value() const; | 2952   void* Value() const; | 
| 2950  private: | 2953  private: | 
| 2951   static void CheckCast(v8::Value* obj); | 2954   static void CheckCast(v8::Value* obj); | 
| 2952 }; | 2955 }; | 
| 2953 | 2956 | 
| 2954 | 2957 | 
| 2955 // --- Templates --- | 2958 // --- Templates --- | 
| 2956 | 2959 | 
| 2957 | 2960 | 
| 2958 /** | 2961 /** | 
| 2959  * The superclass of object and function templates. | 2962  * The superclass of object and function templates. | 
| 2960  */ | 2963  */ | 
| 2961 class V8EXPORT Template : public Data { | 2964 class V8_EXPORT Template : public Data { | 
| 2962  public: | 2965  public: | 
| 2963   /** Adds a property to each instance created by this template.*/ | 2966   /** Adds a property to each instance created by this template.*/ | 
| 2964   void Set(Handle<String> name, Handle<Data> value, | 2967   void Set(Handle<String> name, Handle<Data> value, | 
| 2965            PropertyAttribute attributes = None); | 2968            PropertyAttribute attributes = None); | 
| 2966   V8_INLINE(void Set(const char* name, Handle<Data> value)); | 2969   V8_INLINE(void Set(const char* name, Handle<Data> value)); | 
| 2967  private: | 2970  private: | 
| 2968   Template(); | 2971   Template(); | 
| 2969 | 2972 | 
| 2970   friend class ObjectTemplate; | 2973   friend class ObjectTemplate; | 
| 2971   friend class FunctionTemplate; | 2974   friend class FunctionTemplate; | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3039                    internal::Object** values, | 3042                    internal::Object** values, | 
| 3040                    int length, | 3043                    int length, | 
| 3041                    bool is_construct_call)); | 3044                    bool is_construct_call)); | 
| 3042   internal::Object** implicit_args_; | 3045   internal::Object** implicit_args_; | 
| 3043   internal::Object** values_; | 3046   internal::Object** values_; | 
| 3044   int length_; | 3047   int length_; | 
| 3045   bool is_construct_call_; | 3048   bool is_construct_call_; | 
| 3046 }; | 3049 }; | 
| 3047 | 3050 | 
| 3048 | 3051 | 
| 3049 class V8EXPORT Arguments : public FunctionCallbackInfo<Value> { | 3052 class V8_EXPORT Arguments : public FunctionCallbackInfo<Value> { | 
| 3050  private: | 3053  private: | 
| 3051   friend class internal::FunctionCallbackArguments; | 3054   friend class internal::FunctionCallbackArguments; | 
| 3052   V8_INLINE(Arguments(internal::Object** implicit_args, | 3055   V8_INLINE(Arguments(internal::Object** implicit_args, | 
| 3053                       internal::Object** values, | 3056                       internal::Object** values, | 
| 3054                       int length, | 3057                       int length, | 
| 3055                       bool is_construct_call)); | 3058                       bool is_construct_call)); | 
| 3056 }; | 3059 }; | 
| 3057 | 3060 | 
| 3058 /** | 3061 /** | 
| 3059  * The information passed to a property callback about the context | 3062  * The information passed to a property callback about the context | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 3080   static const int kReturnValueIndex = -3; | 3083   static const int kReturnValueIndex = -3; | 
| 3081   static const int kReturnValueDefaultValueIndex = -4; | 3084   static const int kReturnValueDefaultValueIndex = -4; | 
| 3082   static const int kIsolateIndex = -5; | 3085   static const int kIsolateIndex = -5; | 
| 3083 | 3086 | 
| 3084   V8_INLINE(PropertyCallbackInfo(internal::Object** args)) | 3087   V8_INLINE(PropertyCallbackInfo(internal::Object** args)) | 
| 3085       : args_(args) { } | 3088       : args_(args) { } | 
| 3086   internal::Object** args_; | 3089   internal::Object** args_; | 
| 3087 }; | 3090 }; | 
| 3088 | 3091 | 
| 3089 | 3092 | 
| 3090 class V8EXPORT AccessorInfo : public PropertyCallbackInfo<Value> { | 3093 class V8_EXPORT AccessorInfo : public PropertyCallbackInfo<Value> { | 
| 3091  private: | 3094  private: | 
| 3092   friend class internal::PropertyCallbackArguments; | 3095   friend class internal::PropertyCallbackArguments; | 
| 3093   V8_INLINE(AccessorInfo(internal::Object** args)) | 3096   V8_INLINE(AccessorInfo(internal::Object** args)) | 
| 3094       : PropertyCallbackInfo<Value>(args) { } | 3097       : PropertyCallbackInfo<Value>(args) { } | 
| 3095 }; | 3098 }; | 
| 3096 | 3099 | 
| 3097 | 3100 | 
| 3098 typedef Handle<Value> (*InvocationCallback)(const Arguments& args); | 3101 typedef Handle<Value> (*InvocationCallback)(const Arguments& args); | 
| 3099 typedef void (*FunctionCallback)(const FunctionCallbackInfo<Value>& info); | 3102 typedef void (*FunctionCallback)(const FunctionCallbackInfo<Value>& info); | 
| 3100 | 3103 | 
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3328  * | 3331  * | 
| 3329  * The Child function and Child instance will have the following | 3332  * The Child function and Child instance will have the following | 
| 3330  * properties: | 3333  * properties: | 
| 3331  * | 3334  * | 
| 3332  * \code | 3335  * \code | 
| 3333  *   child_func.prototype.__proto__ == function.prototype; | 3336  *   child_func.prototype.__proto__ == function.prototype; | 
| 3334  *   child_instance.instance_accessor calls 'InstanceAccessorCallback' | 3337  *   child_instance.instance_accessor calls 'InstanceAccessorCallback' | 
| 3335  *   child_instance.instance_property == 3; | 3338  *   child_instance.instance_property == 3; | 
| 3336  * \endcode | 3339  * \endcode | 
| 3337  */ | 3340  */ | 
| 3338 class V8EXPORT FunctionTemplate : public Template { | 3341 class V8_EXPORT FunctionTemplate : public Template { | 
| 3339  public: | 3342  public: | 
| 3340   /** Creates a function template.*/ | 3343   /** Creates a function template.*/ | 
| 3341   V8_DEPRECATED(static Local<FunctionTemplate> New( | 3344   V8_DEPRECATED(static Local<FunctionTemplate> New( | 
| 3342       InvocationCallback callback, | 3345       InvocationCallback callback, | 
| 3343       Handle<Value> data = Handle<Value>(), | 3346       Handle<Value> data = Handle<Value>(), | 
| 3344       Handle<Signature> signature = Handle<Signature>(), | 3347       Handle<Signature> signature = Handle<Signature>(), | 
| 3345       int length = 0)); | 3348       int length = 0)); | 
| 3346   static Local<FunctionTemplate> New( | 3349   static Local<FunctionTemplate> New( | 
| 3347       FunctionCallback callback = 0, | 3350       FunctionCallback callback = 0, | 
| 3348       Handle<Value> data = Handle<Value>(), | 3351       Handle<Value> data = Handle<Value>(), | 
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3419   friend class ObjectTemplate; | 3422   friend class ObjectTemplate; | 
| 3420 }; | 3423 }; | 
| 3421 | 3424 | 
| 3422 | 3425 | 
| 3423 /** | 3426 /** | 
| 3424  * An ObjectTemplate is used to create objects at runtime. | 3427  * An ObjectTemplate is used to create objects at runtime. | 
| 3425  * | 3428  * | 
| 3426  * Properties added to an ObjectTemplate are added to each object | 3429  * Properties added to an ObjectTemplate are added to each object | 
| 3427  * created from the ObjectTemplate. | 3430  * created from the ObjectTemplate. | 
| 3428  */ | 3431  */ | 
| 3429 class V8EXPORT ObjectTemplate : public Template { | 3432 class V8_EXPORT ObjectTemplate : public Template { | 
| 3430  public: | 3433  public: | 
| 3431   /** Creates an ObjectTemplate. */ | 3434   /** Creates an ObjectTemplate. */ | 
| 3432   static Local<ObjectTemplate> New(); | 3435   static Local<ObjectTemplate> New(); | 
| 3433 | 3436 | 
| 3434   /** Creates a new instance of this template.*/ | 3437   /** Creates a new instance of this template.*/ | 
| 3435   Local<Object> NewInstance(); | 3438   Local<Object> NewInstance(); | 
| 3436 | 3439 | 
| 3437   /** | 3440   /** | 
| 3438    * Sets an accessor on the object template. | 3441    * Sets an accessor on the object template. | 
| 3439    * | 3442    * | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3605   ObjectTemplate(); | 3608   ObjectTemplate(); | 
| 3606   static Local<ObjectTemplate> New(Handle<FunctionTemplate> constructor); | 3609   static Local<ObjectTemplate> New(Handle<FunctionTemplate> constructor); | 
| 3607   friend class FunctionTemplate; | 3610   friend class FunctionTemplate; | 
| 3608 }; | 3611 }; | 
| 3609 | 3612 | 
| 3610 | 3613 | 
| 3611 /** | 3614 /** | 
| 3612  * A Signature specifies which receivers and arguments are valid | 3615  * A Signature specifies which receivers and arguments are valid | 
| 3613  * parameters to a function. | 3616  * parameters to a function. | 
| 3614  */ | 3617  */ | 
| 3615 class V8EXPORT Signature : public Data { | 3618 class V8_EXPORT Signature : public Data { | 
| 3616  public: | 3619  public: | 
| 3617   static Local<Signature> New(Handle<FunctionTemplate> receiver = | 3620   static Local<Signature> New(Handle<FunctionTemplate> receiver = | 
| 3618                                   Handle<FunctionTemplate>(), | 3621                                   Handle<FunctionTemplate>(), | 
| 3619                               int argc = 0, | 3622                               int argc = 0, | 
| 3620                               Handle<FunctionTemplate> argv[] = 0); | 3623                               Handle<FunctionTemplate> argv[] = 0); | 
| 3621  private: | 3624  private: | 
| 3622   Signature(); | 3625   Signature(); | 
| 3623 }; | 3626 }; | 
| 3624 | 3627 | 
| 3625 | 3628 | 
| 3626 /** | 3629 /** | 
| 3627  * An AccessorSignature specifies which receivers are valid parameters | 3630  * An AccessorSignature specifies which receivers are valid parameters | 
| 3628  * to an accessor callback. | 3631  * to an accessor callback. | 
| 3629  */ | 3632  */ | 
| 3630 class V8EXPORT AccessorSignature : public Data { | 3633 class V8_EXPORT AccessorSignature : public Data { | 
| 3631  public: | 3634  public: | 
| 3632   static Local<AccessorSignature> New(Handle<FunctionTemplate> receiver = | 3635   static Local<AccessorSignature> New(Handle<FunctionTemplate> receiver = | 
| 3633                                           Handle<FunctionTemplate>()); | 3636                                           Handle<FunctionTemplate>()); | 
| 3634  private: | 3637  private: | 
| 3635   AccessorSignature(); | 3638   AccessorSignature(); | 
| 3636 }; | 3639 }; | 
| 3637 | 3640 | 
| 3638 | 3641 | 
| 3639 class V8EXPORT DeclaredAccessorDescriptor : public Data { | 3642 class V8_EXPORT DeclaredAccessorDescriptor : public Data { | 
| 3640  private: | 3643  private: | 
| 3641   DeclaredAccessorDescriptor(); | 3644   DeclaredAccessorDescriptor(); | 
| 3642 }; | 3645 }; | 
| 3643 | 3646 | 
| 3644 | 3647 | 
| 3645 class V8EXPORT ObjectOperationDescriptor : public Data { | 3648 class V8_EXPORT ObjectOperationDescriptor : public Data { | 
| 3646  public: | 3649  public: | 
| 3647   // This function is not yet stable and should not be used at this time. | 3650   // This function is not yet stable and should not be used at this time. | 
| 3648   static Local<RawOperationDescriptor> NewInternalFieldDereference( | 3651   static Local<RawOperationDescriptor> NewInternalFieldDereference( | 
| 3649       Isolate* isolate, | 3652       Isolate* isolate, | 
| 3650       int internal_field); | 3653       int internal_field); | 
| 3651  private: | 3654  private: | 
| 3652   ObjectOperationDescriptor(); | 3655   ObjectOperationDescriptor(); | 
| 3653 }; | 3656 }; | 
| 3654 | 3657 | 
| 3655 | 3658 | 
| 3656 enum DeclaredAccessorDescriptorDataType { | 3659 enum DeclaredAccessorDescriptorDataType { | 
| 3657     kDescriptorBoolType, | 3660     kDescriptorBoolType, | 
| 3658     kDescriptorInt8Type, kDescriptorUint8Type, | 3661     kDescriptorInt8Type, kDescriptorUint8Type, | 
| 3659     kDescriptorInt16Type, kDescriptorUint16Type, | 3662     kDescriptorInt16Type, kDescriptorUint16Type, | 
| 3660     kDescriptorInt32Type, kDescriptorUint32Type, | 3663     kDescriptorInt32Type, kDescriptorUint32Type, | 
| 3661     kDescriptorFloatType, kDescriptorDoubleType | 3664     kDescriptorFloatType, kDescriptorDoubleType | 
| 3662 }; | 3665 }; | 
| 3663 | 3666 | 
| 3664 | 3667 | 
| 3665 class V8EXPORT RawOperationDescriptor : public Data { | 3668 class V8_EXPORT RawOperationDescriptor : public Data { | 
| 3666  public: | 3669  public: | 
| 3667   Local<DeclaredAccessorDescriptor> NewHandleDereference(Isolate* isolate); | 3670   Local<DeclaredAccessorDescriptor> NewHandleDereference(Isolate* isolate); | 
| 3668   Local<RawOperationDescriptor> NewRawDereference(Isolate* isolate); | 3671   Local<RawOperationDescriptor> NewRawDereference(Isolate* isolate); | 
| 3669   Local<RawOperationDescriptor> NewRawShift(Isolate* isolate, | 3672   Local<RawOperationDescriptor> NewRawShift(Isolate* isolate, | 
| 3670                                             int16_t byte_offset); | 3673                                             int16_t byte_offset); | 
| 3671   Local<DeclaredAccessorDescriptor> NewPointerCompare(Isolate* isolate, | 3674   Local<DeclaredAccessorDescriptor> NewPointerCompare(Isolate* isolate, | 
| 3672                                                       void* compare_value); | 3675                                                       void* compare_value); | 
| 3673   Local<DeclaredAccessorDescriptor> NewPrimitiveValue( | 3676   Local<DeclaredAccessorDescriptor> NewPrimitiveValue( | 
| 3674       Isolate* isolate, | 3677       Isolate* isolate, | 
| 3675       DeclaredAccessorDescriptorDataType data_type, | 3678       DeclaredAccessorDescriptorDataType data_type, | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 3688 | 3691 | 
| 3689  private: | 3692  private: | 
| 3690   RawOperationDescriptor(); | 3693   RawOperationDescriptor(); | 
| 3691 }; | 3694 }; | 
| 3692 | 3695 | 
| 3693 | 3696 | 
| 3694 /** | 3697 /** | 
| 3695  * A utility for determining the type of objects based on the template | 3698  * A utility for determining the type of objects based on the template | 
| 3696  * they were constructed from. | 3699  * they were constructed from. | 
| 3697  */ | 3700  */ | 
| 3698 class V8EXPORT TypeSwitch : public Data { | 3701 class V8_EXPORT TypeSwitch : public Data { | 
| 3699  public: | 3702  public: | 
| 3700   static Local<TypeSwitch> New(Handle<FunctionTemplate> type); | 3703   static Local<TypeSwitch> New(Handle<FunctionTemplate> type); | 
| 3701   static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); | 3704   static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); | 
| 3702   int match(Handle<Value> value); | 3705   int match(Handle<Value> value); | 
| 3703  private: | 3706  private: | 
| 3704   TypeSwitch(); | 3707   TypeSwitch(); | 
| 3705 }; | 3708 }; | 
| 3706 | 3709 | 
| 3707 | 3710 | 
| 3708 // --- Extensions --- | 3711 // --- Extensions --- | 
| 3709 | 3712 | 
| 3710 class V8EXPORT ExternalAsciiStringResourceImpl | 3713 class V8_EXPORT ExternalAsciiStringResourceImpl | 
| 3711     : public String::ExternalAsciiStringResource { | 3714     : public String::ExternalAsciiStringResource { | 
| 3712  public: | 3715  public: | 
| 3713   ExternalAsciiStringResourceImpl() : data_(0), length_(0) {} | 3716   ExternalAsciiStringResourceImpl() : data_(0), length_(0) {} | 
| 3714   ExternalAsciiStringResourceImpl(const char* data, size_t length) | 3717   ExternalAsciiStringResourceImpl(const char* data, size_t length) | 
| 3715       : data_(data), length_(length) {} | 3718       : data_(data), length_(length) {} | 
| 3716   const char* data() const { return data_; } | 3719   const char* data() const { return data_; } | 
| 3717   size_t length() const { return length_; } | 3720   size_t length() const { return length_; } | 
| 3718 | 3721 | 
| 3719  private: | 3722  private: | 
| 3720   const char* data_; | 3723   const char* data_; | 
| 3721   size_t length_; | 3724   size_t length_; | 
| 3722 }; | 3725 }; | 
| 3723 | 3726 | 
| 3724 /** | 3727 /** | 
| 3725  * Ignore | 3728  * Ignore | 
| 3726  */ | 3729  */ | 
| 3727 class V8EXPORT Extension {  // NOLINT | 3730 class V8_EXPORT Extension {  // NOLINT | 
| 3728  public: | 3731  public: | 
| 3729   // Note that the strings passed into this constructor must live as long | 3732   // Note that the strings passed into this constructor must live as long | 
| 3730   // as the Extension itself. | 3733   // as the Extension itself. | 
| 3731   Extension(const char* name, | 3734   Extension(const char* name, | 
| 3732             const char* source = 0, | 3735             const char* source = 0, | 
| 3733             int dep_count = 0, | 3736             int dep_count = 0, | 
| 3734             const char** deps = 0, | 3737             const char** deps = 0, | 
| 3735             int source_length = -1); | 3738             int source_length = -1); | 
| 3736   virtual ~Extension() { } | 3739   virtual ~Extension() { } | 
| 3737   virtual v8::Handle<v8::FunctionTemplate> | 3740   virtual v8::Handle<v8::FunctionTemplate> | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 3755   int dep_count_; | 3758   int dep_count_; | 
| 3756   const char** deps_; | 3759   const char** deps_; | 
| 3757   bool auto_enable_; | 3760   bool auto_enable_; | 
| 3758 | 3761 | 
| 3759   // Disallow copying and assigning. | 3762   // Disallow copying and assigning. | 
| 3760   Extension(const Extension&); | 3763   Extension(const Extension&); | 
| 3761   void operator=(const Extension&); | 3764   void operator=(const Extension&); | 
| 3762 }; | 3765 }; | 
| 3763 | 3766 | 
| 3764 | 3767 | 
| 3765 void V8EXPORT RegisterExtension(Extension* extension); | 3768 void V8_EXPORT RegisterExtension(Extension* extension); | 
| 3766 | 3769 | 
| 3767 | 3770 | 
| 3768 /** | 3771 /** | 
| 3769  * Ignore | 3772  * Ignore | 
| 3770  */ | 3773  */ | 
| 3771 class V8EXPORT DeclareExtension { | 3774 class V8_EXPORT DeclareExtension { | 
| 3772  public: | 3775  public: | 
| 3773   V8_INLINE(DeclareExtension(Extension* extension)) { | 3776   V8_INLINE(DeclareExtension(Extension* extension)) { | 
| 3774     RegisterExtension(extension); | 3777     RegisterExtension(extension); | 
| 3775   } | 3778   } | 
| 3776 }; | 3779 }; | 
| 3777 | 3780 | 
| 3778 | 3781 | 
| 3779 // --- Statics --- | 3782 // --- Statics --- | 
| 3780 | 3783 | 
| 3781 | 3784 | 
| 3782 Handle<Primitive> V8EXPORT Undefined(); | 3785 Handle<Primitive> V8_EXPORT Undefined(); | 
| 3783 Handle<Primitive> V8EXPORT Null(); | 3786 Handle<Primitive> V8_EXPORT Null(); | 
| 3784 Handle<Boolean> V8EXPORT True(); | 3787 Handle<Boolean> V8_EXPORT True(); | 
| 3785 Handle<Boolean> V8EXPORT False(); | 3788 Handle<Boolean> V8_EXPORT False(); | 
| 3786 | 3789 | 
| 3787 V8_INLINE(Handle<Primitive> Undefined(Isolate* isolate)); | 3790 V8_INLINE(Handle<Primitive> Undefined(Isolate* isolate)); | 
| 3788 V8_INLINE(Handle<Primitive> Null(Isolate* isolate)); | 3791 V8_INLINE(Handle<Primitive> Null(Isolate* isolate)); | 
| 3789 V8_INLINE(Handle<Boolean> True(Isolate* isolate)); | 3792 V8_INLINE(Handle<Boolean> True(Isolate* isolate)); | 
| 3790 V8_INLINE(Handle<Boolean> False(Isolate* isolate)); | 3793 V8_INLINE(Handle<Boolean> False(Isolate* isolate)); | 
| 3791 | 3794 | 
| 3792 | 3795 | 
| 3793 /** | 3796 /** | 
| 3794  * A set of constraints that specifies the limits of the runtime's memory use. | 3797  * A set of constraints that specifies the limits of the runtime's memory use. | 
| 3795  * You must set the heap size before initializing the VM - the size cannot be | 3798  * You must set the heap size before initializing the VM - the size cannot be | 
| 3796  * adjusted after the VM is initialized. | 3799  * adjusted after the VM is initialized. | 
| 3797  * | 3800  * | 
| 3798  * If you are using threads then you should hold the V8::Locker lock while | 3801  * If you are using threads then you should hold the V8::Locker lock while | 
| 3799  * setting the stack limit and you must set a non-default stack limit separately | 3802  * setting the stack limit and you must set a non-default stack limit separately | 
| 3800  * for each thread. | 3803  * for each thread. | 
| 3801  */ | 3804  */ | 
| 3802 class V8EXPORT ResourceConstraints { | 3805 class V8_EXPORT ResourceConstraints { | 
| 3803  public: | 3806  public: | 
| 3804   ResourceConstraints(); | 3807   ResourceConstraints(); | 
| 3805   int max_young_space_size() const { return max_young_space_size_; } | 3808   int max_young_space_size() const { return max_young_space_size_; } | 
| 3806   void set_max_young_space_size(int value) { max_young_space_size_ = value; } | 3809   void set_max_young_space_size(int value) { max_young_space_size_ = value; } | 
| 3807   int max_old_space_size() const { return max_old_space_size_; } | 3810   int max_old_space_size() const { return max_old_space_size_; } | 
| 3808   void set_max_old_space_size(int value) { max_old_space_size_ = value; } | 3811   void set_max_old_space_size(int value) { max_old_space_size_ = value; } | 
| 3809   int max_executable_size() { return max_executable_size_; } | 3812   int max_executable_size() { return max_executable_size_; } | 
| 3810   void set_max_executable_size(int value) { max_executable_size_ = value; } | 3813   void set_max_executable_size(int value) { max_executable_size_ = value; } | 
| 3811   uint32_t* stack_limit() const { return stack_limit_; } | 3814   uint32_t* stack_limit() const { return stack_limit_; } | 
| 3812   // Sets an address beyond which the VM's stack may not grow. | 3815   // Sets an address beyond which the VM's stack may not grow. | 
| 3813   void set_stack_limit(uint32_t* value) { stack_limit_ = value; } | 3816   void set_stack_limit(uint32_t* value) { stack_limit_ = value; } | 
| 3814  private: | 3817  private: | 
| 3815   int max_young_space_size_; | 3818   int max_young_space_size_; | 
| 3816   int max_old_space_size_; | 3819   int max_old_space_size_; | 
| 3817   int max_executable_size_; | 3820   int max_executable_size_; | 
| 3818   uint32_t* stack_limit_; | 3821   uint32_t* stack_limit_; | 
| 3819 }; | 3822 }; | 
| 3820 | 3823 | 
| 3821 | 3824 | 
| 3822 bool V8EXPORT SetResourceConstraints(ResourceConstraints* constraints); | 3825 bool V8_EXPORT SetResourceConstraints(ResourceConstraints* constraints); | 
| 3823 | 3826 | 
| 3824 | 3827 | 
| 3825 // --- Exceptions --- | 3828 // --- Exceptions --- | 
| 3826 | 3829 | 
| 3827 | 3830 | 
| 3828 typedef void (*FatalErrorCallback)(const char* location, const char* message); | 3831 typedef void (*FatalErrorCallback)(const char* location, const char* message); | 
| 3829 | 3832 | 
| 3830 | 3833 | 
| 3831 typedef void (*MessageCallback)(Handle<Message> message, Handle<Value> error); | 3834 typedef void (*MessageCallback)(Handle<Message> message, Handle<Value> error); | 
| 3832 | 3835 | 
| 3833 | 3836 | 
| 3834 /** | 3837 /** | 
| 3835  * Schedules an exception to be thrown when returning to JavaScript.  When an | 3838  * Schedules an exception to be thrown when returning to JavaScript.  When an | 
| 3836  * exception has been scheduled it is illegal to invoke any JavaScript | 3839  * exception has been scheduled it is illegal to invoke any JavaScript | 
| 3837  * operation; the caller must return immediately and only after the exception | 3840  * operation; the caller must return immediately and only after the exception | 
| 3838  * has been handled does it become legal to invoke JavaScript operations. | 3841  * has been handled does it become legal to invoke JavaScript operations. | 
| 3839  */ | 3842  */ | 
| 3840 Handle<Value> V8EXPORT ThrowException(Handle<Value> exception); | 3843 Handle<Value> V8_EXPORT ThrowException(Handle<Value> exception); | 
| 3841 | 3844 | 
| 3842 /** | 3845 /** | 
| 3843  * Create new error objects by calling the corresponding error object | 3846  * Create new error objects by calling the corresponding error object | 
| 3844  * constructor with the message. | 3847  * constructor with the message. | 
| 3845  */ | 3848  */ | 
| 3846 class V8EXPORT Exception { | 3849 class V8_EXPORT Exception { | 
| 3847  public: | 3850  public: | 
| 3848   static Local<Value> RangeError(Handle<String> message); | 3851   static Local<Value> RangeError(Handle<String> message); | 
| 3849   static Local<Value> ReferenceError(Handle<String> message); | 3852   static Local<Value> ReferenceError(Handle<String> message); | 
| 3850   static Local<Value> SyntaxError(Handle<String> message); | 3853   static Local<Value> SyntaxError(Handle<String> message); | 
| 3851   static Local<Value> TypeError(Handle<String> message); | 3854   static Local<Value> TypeError(Handle<String> message); | 
| 3852   static Local<Value> Error(Handle<String> message); | 3855   static Local<Value> Error(Handle<String> message); | 
| 3853 }; | 3856 }; | 
| 3854 | 3857 | 
| 3855 | 3858 | 
| 3856 // --- Counters Callbacks --- | 3859 // --- Counters Callbacks --- | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3930 | 3933 | 
| 3931 typedef void (*GCCallback)(); | 3934 typedef void (*GCCallback)(); | 
| 3932 | 3935 | 
| 3933 | 3936 | 
| 3934 /** | 3937 /** | 
| 3935  * Collection of V8 heap information. | 3938  * Collection of V8 heap information. | 
| 3936  * | 3939  * | 
| 3937  * Instances of this class can be passed to v8::V8::HeapStatistics to | 3940  * Instances of this class can be passed to v8::V8::HeapStatistics to | 
| 3938  * get heap statistics from V8. | 3941  * get heap statistics from V8. | 
| 3939  */ | 3942  */ | 
| 3940 class V8EXPORT HeapStatistics { | 3943 class V8_EXPORT HeapStatistics { | 
| 3941  public: | 3944  public: | 
| 3942   HeapStatistics(); | 3945   HeapStatistics(); | 
| 3943   size_t total_heap_size() { return total_heap_size_; } | 3946   size_t total_heap_size() { return total_heap_size_; } | 
| 3944   size_t total_heap_size_executable() { return total_heap_size_executable_; } | 3947   size_t total_heap_size_executable() { return total_heap_size_executable_; } | 
| 3945   size_t total_physical_size() { return total_physical_size_; } | 3948   size_t total_physical_size() { return total_physical_size_; } | 
| 3946   size_t used_heap_size() { return used_heap_size_; } | 3949   size_t used_heap_size() { return used_heap_size_; } | 
| 3947   size_t heap_size_limit() { return heap_size_limit_; } | 3950   size_t heap_size_limit() { return heap_size_limit_; } | 
| 3948 | 3951 | 
| 3949  private: | 3952  private: | 
| 3950   size_t total_heap_size_; | 3953   size_t total_heap_size_; | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 3962 | 3965 | 
| 3963 /** | 3966 /** | 
| 3964  * Isolate represents an isolated instance of the V8 engine.  V8 | 3967  * Isolate represents an isolated instance of the V8 engine.  V8 | 
| 3965  * isolates have completely separate states.  Objects from one isolate | 3968  * isolates have completely separate states.  Objects from one isolate | 
| 3966  * must not be used in other isolates.  When V8 is initialized a | 3969  * must not be used in other isolates.  When V8 is initialized a | 
| 3967  * default isolate is implicitly created and entered.  The embedder | 3970  * default isolate is implicitly created and entered.  The embedder | 
| 3968  * can create additional isolates and use them in parallel in multiple | 3971  * can create additional isolates and use them in parallel in multiple | 
| 3969  * threads.  An isolate can be entered by at most one thread at any | 3972  * threads.  An isolate can be entered by at most one thread at any | 
| 3970  * given time.  The Locker/Unlocker API must be used to synchronize. | 3973  * given time.  The Locker/Unlocker API must be used to synchronize. | 
| 3971  */ | 3974  */ | 
| 3972 class V8EXPORT Isolate { | 3975 class V8_EXPORT Isolate { | 
| 3973  public: | 3976  public: | 
| 3974   /** | 3977   /** | 
| 3975    * Stack-allocated class which sets the isolate for all operations | 3978    * Stack-allocated class which sets the isolate for all operations | 
| 3976    * executed within a local scope. | 3979    * executed within a local scope. | 
| 3977    */ | 3980    */ | 
| 3978   class V8EXPORT Scope { | 3981   class V8_EXPORT Scope { | 
| 3979    public: | 3982    public: | 
| 3980     explicit Scope(Isolate* isolate) : isolate_(isolate) { | 3983     explicit Scope(Isolate* isolate) : isolate_(isolate) { | 
| 3981       isolate->Enter(); | 3984       isolate->Enter(); | 
| 3982     } | 3985     } | 
| 3983 | 3986 | 
| 3984     ~Scope() { isolate_->Exit(); } | 3987     ~Scope() { isolate_->Exit(); } | 
| 3985 | 3988 | 
| 3986    private: | 3989    private: | 
| 3987     Isolate* const isolate_; | 3990     Isolate* const isolate_; | 
| 3988 | 3991 | 
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4116  private: | 4119  private: | 
| 4117   Isolate(); | 4120   Isolate(); | 
| 4118   Isolate(const Isolate&); | 4121   Isolate(const Isolate&); | 
| 4119   ~Isolate(); | 4122   ~Isolate(); | 
| 4120   Isolate& operator=(const Isolate&); | 4123   Isolate& operator=(const Isolate&); | 
| 4121   void* operator new(size_t size); | 4124   void* operator new(size_t size); | 
| 4122   void operator delete(void*, size_t); | 4125   void operator delete(void*, size_t); | 
| 4123 }; | 4126 }; | 
| 4124 | 4127 | 
| 4125 | 4128 | 
| 4126 class V8EXPORT StartupData { | 4129 class V8_EXPORT StartupData { | 
| 4127  public: | 4130  public: | 
| 4128   enum CompressionAlgorithm { | 4131   enum CompressionAlgorithm { | 
| 4129     kUncompressed, | 4132     kUncompressed, | 
| 4130     kBZip2 | 4133     kBZip2 | 
| 4131   }; | 4134   }; | 
| 4132 | 4135 | 
| 4133   const char* data; | 4136   const char* data; | 
| 4134   int compressed_size; | 4137   int compressed_size; | 
| 4135   int raw_size; | 4138   int raw_size; | 
| 4136 }; | 4139 }; | 
| 4137 | 4140 | 
| 4138 | 4141 | 
| 4139 /** | 4142 /** | 
| 4140  * A helper class for driving V8 startup data decompression.  It is based on | 4143  * A helper class for driving V8 startup data decompression.  It is based on | 
| 4141  * "CompressedStartupData" API functions from the V8 class.  It isn't mandatory | 4144  * "CompressedStartupData" API functions from the V8 class.  It isn't mandatory | 
| 4142  * for an embedder to use this class, instead, API functions can be used | 4145  * for an embedder to use this class, instead, API functions can be used | 
| 4143  * directly. | 4146  * directly. | 
| 4144  * | 4147  * | 
| 4145  * For an example of the class usage, see the "shell.cc" sample application. | 4148  * For an example of the class usage, see the "shell.cc" sample application. | 
| 4146  */ | 4149  */ | 
| 4147 class V8EXPORT StartupDataDecompressor {  // NOLINT | 4150 class V8_EXPORT StartupDataDecompressor {  // NOLINT | 
| 4148  public: | 4151  public: | 
| 4149   StartupDataDecompressor(); | 4152   StartupDataDecompressor(); | 
| 4150   virtual ~StartupDataDecompressor(); | 4153   virtual ~StartupDataDecompressor(); | 
| 4151   int Decompress(); | 4154   int Decompress(); | 
| 4152 | 4155 | 
| 4153  protected: | 4156  protected: | 
| 4154   virtual int DecompressData(char* raw_data, | 4157   virtual int DecompressData(char* raw_data, | 
| 4155                              int* raw_data_size, | 4158                              int* raw_data_size, | 
| 4156                              const char* compressed_data, | 4159                              const char* compressed_data, | 
| 4157                              int compressed_data_size) = 0; | 4160                              int compressed_data_size) = 0; | 
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4281  * Callback function passed to SetJitCodeEventHandler. | 4284  * Callback function passed to SetJitCodeEventHandler. | 
| 4282  * | 4285  * | 
| 4283  * \param event code add, move or removal event. | 4286  * \param event code add, move or removal event. | 
| 4284  */ | 4287  */ | 
| 4285 typedef void (*JitCodeEventHandler)(const JitCodeEvent* event); | 4288 typedef void (*JitCodeEventHandler)(const JitCodeEvent* event); | 
| 4286 | 4289 | 
| 4287 | 4290 | 
| 4288 /** | 4291 /** | 
| 4289  * Interface for iterating through all external resources in the heap. | 4292  * Interface for iterating through all external resources in the heap. | 
| 4290  */ | 4293  */ | 
| 4291 class V8EXPORT ExternalResourceVisitor {  // NOLINT | 4294 class V8_EXPORT ExternalResourceVisitor {  // NOLINT | 
| 4292  public: | 4295  public: | 
| 4293   virtual ~ExternalResourceVisitor() {} | 4296   virtual ~ExternalResourceVisitor() {} | 
| 4294   virtual void VisitExternalString(Handle<String> string) {} | 4297   virtual void VisitExternalString(Handle<String> string) {} | 
| 4295 }; | 4298 }; | 
| 4296 | 4299 | 
| 4297 | 4300 | 
| 4298 /** | 4301 /** | 
| 4299  * Interface for iterating through all the persistent handles in the heap. | 4302  * Interface for iterating through all the persistent handles in the heap. | 
| 4300  */ | 4303  */ | 
| 4301 class V8EXPORT PersistentHandleVisitor {  // NOLINT | 4304 class V8_EXPORT PersistentHandleVisitor {  // NOLINT | 
| 4302  public: | 4305  public: | 
| 4303   virtual ~PersistentHandleVisitor() {} | 4306   virtual ~PersistentHandleVisitor() {} | 
| 4304   virtual void VisitPersistentHandle(Persistent<Value>* value, | 4307   virtual void VisitPersistentHandle(Persistent<Value>* value, | 
| 4305                                      uint16_t class_id) {} | 4308                                      uint16_t class_id) {} | 
| 4306 }; | 4309 }; | 
| 4307 | 4310 | 
| 4308 | 4311 | 
| 4309 /** | 4312 /** | 
| 4310  * Asserts that no action is performed that could cause a handle's value | 4313  * Asserts that no action is performed that could cause a handle's value | 
| 4311  * to be modified. Useful when otherwise unsafe handle operations need to | 4314  * to be modified. Useful when otherwise unsafe handle operations need to | 
| 4312  * be performed. | 4315  * be performed. | 
| 4313  */ | 4316  */ | 
| 4314 class V8EXPORT AssertNoGCScope { | 4317 class V8_EXPORT AssertNoGCScope { | 
| 4315 #ifndef DEBUG | 4318 #ifndef DEBUG | 
| 4316   // TODO(yangguo): remove isolate argument. | 4319   // TODO(yangguo): remove isolate argument. | 
| 4317   V8_INLINE(AssertNoGCScope(Isolate* isolate)) { } | 4320   V8_INLINE(AssertNoGCScope(Isolate* isolate)) { } | 
| 4318 #else | 4321 #else | 
| 4319   AssertNoGCScope(Isolate* isolate); | 4322   AssertNoGCScope(Isolate* isolate); | 
| 4320   ~AssertNoGCScope(); | 4323   ~AssertNoGCScope(); | 
| 4321  private: | 4324  private: | 
| 4322   void* disallow_heap_allocation_; | 4325   void* disallow_heap_allocation_; | 
| 4323 #endif | 4326 #endif | 
| 4324 }; | 4327 }; | 
| 4325 | 4328 | 
| 4326 | 4329 | 
| 4327 /** | 4330 /** | 
| 4328  * Container class for static utility functions. | 4331  * Container class for static utility functions. | 
| 4329  */ | 4332  */ | 
| 4330 class V8EXPORT V8 { | 4333 class V8_EXPORT V8 { | 
| 4331  public: | 4334  public: | 
| 4332   /** Set the callback to invoke in case of fatal errors. */ | 4335   /** Set the callback to invoke in case of fatal errors. */ | 
| 4333   static void SetFatalErrorHandler(FatalErrorCallback that); | 4336   static void SetFatalErrorHandler(FatalErrorCallback that); | 
| 4334 | 4337 | 
| 4335   /** | 4338   /** | 
| 4336    * Set the callback to invoke to check if code generation from | 4339    * Set the callback to invoke to check if code generation from | 
| 4337    * strings should be allowed. | 4340    * strings should be allowed. | 
| 4338    */ | 4341    */ | 
| 4339   static void SetAllowCodeGenerationFromStringsCallback( | 4342   static void SetAllowCodeGenerationFromStringsCallback( | 
| 4340       AllowCodeGenerationFromStringsCallback that); | 4343       AllowCodeGenerationFromStringsCallback that); | 
| (...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4788   template <class T> friend class Handle; | 4791   template <class T> friend class Handle; | 
| 4789   template <class T> friend class Local; | 4792   template <class T> friend class Local; | 
| 4790   template <class T> friend class Persistent; | 4793   template <class T> friend class Persistent; | 
| 4791   friend class Context; | 4794   friend class Context; | 
| 4792 }; | 4795 }; | 
| 4793 | 4796 | 
| 4794 | 4797 | 
| 4795 /** | 4798 /** | 
| 4796  * An external exception handler. | 4799  * An external exception handler. | 
| 4797  */ | 4800  */ | 
| 4798 class V8EXPORT TryCatch { | 4801 class V8_EXPORT TryCatch { | 
| 4799  public: | 4802  public: | 
| 4800   /** | 4803   /** | 
| 4801    * Creates a new try/catch block and registers it with v8.  Note that | 4804    * Creates a new try/catch block and registers it with v8.  Note that | 
| 4802    * all TryCatch blocks should be stack allocated because the memory | 4805    * all TryCatch blocks should be stack allocated because the memory | 
| 4803    * location itself is compared against JavaScript try/catch blocks. | 4806    * location itself is compared against JavaScript try/catch blocks. | 
| 4804    */ | 4807    */ | 
| 4805   TryCatch(); | 4808   TryCatch(); | 
| 4806 | 4809 | 
| 4807   /** | 4810   /** | 
| 4808    * Unregisters and deletes this try/catch block. | 4811    * Unregisters and deletes this try/catch block. | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4921   friend class v8::internal::Isolate; | 4924   friend class v8::internal::Isolate; | 
| 4922 }; | 4925 }; | 
| 4923 | 4926 | 
| 4924 | 4927 | 
| 4925 // --- Context --- | 4928 // --- Context --- | 
| 4926 | 4929 | 
| 4927 | 4930 | 
| 4928 /** | 4931 /** | 
| 4929  * Ignore | 4932  * Ignore | 
| 4930  */ | 4933  */ | 
| 4931 class V8EXPORT ExtensionConfiguration { | 4934 class V8_EXPORT ExtensionConfiguration { | 
| 4932  public: | 4935  public: | 
| 4933   ExtensionConfiguration(int name_count, const char* names[]) | 4936   ExtensionConfiguration(int name_count, const char* names[]) | 
| 4934       : name_count_(name_count), names_(names) { } | 4937       : name_count_(name_count), names_(names) { } | 
| 4935  private: | 4938  private: | 
| 4936   friend class ImplementationUtilities; | 4939   friend class ImplementationUtilities; | 
| 4937   int name_count_; | 4940   int name_count_; | 
| 4938   const char** names_; | 4941   const char** names_; | 
| 4939 }; | 4942 }; | 
| 4940 | 4943 | 
| 4941 | 4944 | 
| 4942 /** | 4945 /** | 
| 4943  * A sandboxed execution context with its own set of built-in objects | 4946  * A sandboxed execution context with its own set of built-in objects | 
| 4944  * and functions. | 4947  * and functions. | 
| 4945  */ | 4948  */ | 
| 4946 class V8EXPORT Context { | 4949 class V8_EXPORT Context { | 
| 4947  public: | 4950  public: | 
| 4948   /** | 4951   /** | 
| 4949    * Returns the global proxy object or global object itself for | 4952    * Returns the global proxy object or global object itself for | 
| 4950    * detached contexts. | 4953    * detached contexts. | 
| 4951    * | 4954    * | 
| 4952    * Global proxy object is a thin wrapper whose prototype points to | 4955    * Global proxy object is a thin wrapper whose prototype points to | 
| 4953    * actual context's global object with the properties like Object, etc. | 4956    * actual context's global object with the properties like Object, etc. | 
| 4954    * This is done that way for security reasons (for more details see | 4957    * This is done that way for security reasons (for more details see | 
| 4955    * https://wiki.mozilla.org/Gecko:SplitWindow). | 4958    * https://wiki.mozilla.org/Gecko:SplitWindow). | 
| 4956    * | 4959    * | 
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5221  *       // V8 not locked. | 5224  *       // V8 not locked. | 
| 5222  *     } | 5225  *     } | 
| 5223  *     isolate->Enter(); | 5226  *     isolate->Enter(); | 
| 5224  *     // V8 locked again (2 levels). | 5227  *     // V8 locked again (2 levels). | 
| 5225  *   } | 5228  *   } | 
| 5226  *   // V8 still locked (1 level). | 5229  *   // V8 still locked (1 level). | 
| 5227  * } | 5230  * } | 
| 5228  * // V8 Now no longer locked. | 5231  * // V8 Now no longer locked. | 
| 5229  * \endcode | 5232  * \endcode | 
| 5230  */ | 5233  */ | 
| 5231 class V8EXPORT Unlocker { | 5234 class V8_EXPORT Unlocker { | 
| 5232  public: | 5235  public: | 
| 5233   /** | 5236   /** | 
| 5234    * Initialize Unlocker for a given Isolate. | 5237    * Initialize Unlocker for a given Isolate. | 
| 5235    */ | 5238    */ | 
| 5236   V8_INLINE(explicit Unlocker(Isolate* isolate)) { Initialize(isolate); } | 5239   V8_INLINE(explicit Unlocker(Isolate* isolate)) { Initialize(isolate); } | 
| 5237 | 5240 | 
| 5238   /** Deprecated. Use Isolate version instead. */ | 5241   /** Deprecated. Use Isolate version instead. */ | 
| 5239   V8_DEPRECATED(Unlocker()); | 5242   V8_DEPRECATED(Unlocker()); | 
| 5240 | 5243 | 
| 5241   ~Unlocker(); | 5244   ~Unlocker(); | 
| 5242  private: | 5245  private: | 
| 5243   void Initialize(Isolate* isolate); | 5246   void Initialize(Isolate* isolate); | 
| 5244 | 5247 | 
| 5245   internal::Isolate* isolate_; | 5248   internal::Isolate* isolate_; | 
| 5246 }; | 5249 }; | 
| 5247 | 5250 | 
| 5248 | 5251 | 
| 5249 class V8EXPORT Locker { | 5252 class V8_EXPORT Locker { | 
| 5250  public: | 5253  public: | 
| 5251   /** | 5254   /** | 
| 5252    * Initialize Locker for a given Isolate. | 5255    * Initialize Locker for a given Isolate. | 
| 5253    */ | 5256    */ | 
| 5254   V8_INLINE(explicit Locker(Isolate* isolate)) { Initialize(isolate); } | 5257   V8_INLINE(explicit Locker(Isolate* isolate)) { Initialize(isolate); } | 
| 5255 | 5258 | 
| 5256   /** Deprecated. Use Isolate version instead. */ | 5259   /** Deprecated. Use Isolate version instead. */ | 
| 5257   V8_DEPRECATED(Locker()); | 5260   V8_DEPRECATED(Locker()); | 
| 5258 | 5261 | 
| 5259   ~Locker(); | 5262   ~Locker(); | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5300 | 5303 | 
| 5301 /** | 5304 /** | 
| 5302  * A struct for exporting HeapStats data from V8, using "push" model. | 5305  * A struct for exporting HeapStats data from V8, using "push" model. | 
| 5303  */ | 5306  */ | 
| 5304 struct HeapStatsUpdate; | 5307 struct HeapStatsUpdate; | 
| 5305 | 5308 | 
| 5306 | 5309 | 
| 5307 /** | 5310 /** | 
| 5308  * An interface for exporting data from V8, using "push" model. | 5311  * An interface for exporting data from V8, using "push" model. | 
| 5309  */ | 5312  */ | 
| 5310 class V8EXPORT OutputStream {  // NOLINT | 5313 class V8_EXPORT OutputStream {  // NOLINT | 
| 5311  public: | 5314  public: | 
| 5312   enum OutputEncoding { | 5315   enum OutputEncoding { | 
| 5313     kAscii = 0  // 7-bit ASCII. | 5316     kAscii = 0  // 7-bit ASCII. | 
| 5314   }; | 5317   }; | 
| 5315   enum WriteResult { | 5318   enum WriteResult { | 
| 5316     kContinue = 0, | 5319     kContinue = 0, | 
| 5317     kAbort = 1 | 5320     kAbort = 1 | 
| 5318   }; | 5321   }; | 
| 5319   virtual ~OutputStream() {} | 5322   virtual ~OutputStream() {} | 
| 5320   /** Notify about the end of stream. */ | 5323   /** Notify about the end of stream. */ | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 5337   virtual WriteResult WriteHeapStatsChunk(HeapStatsUpdate* data, int count) { | 5340   virtual WriteResult WriteHeapStatsChunk(HeapStatsUpdate* data, int count) { | 
| 5338     return kAbort; | 5341     return kAbort; | 
| 5339   }; | 5342   }; | 
| 5340 }; | 5343 }; | 
| 5341 | 5344 | 
| 5342 | 5345 | 
| 5343 /** | 5346 /** | 
| 5344  * An interface for reporting progress and controlling long-running | 5347  * An interface for reporting progress and controlling long-running | 
| 5345  * activities. | 5348  * activities. | 
| 5346  */ | 5349  */ | 
| 5347 class V8EXPORT ActivityControl {  // NOLINT | 5350 class V8_EXPORT ActivityControl {  // NOLINT | 
| 5348  public: | 5351  public: | 
| 5349   enum ControlOption { | 5352   enum ControlOption { | 
| 5350     kContinue = 0, | 5353     kContinue = 0, | 
| 5351     kAbort = 1 | 5354     kAbort = 1 | 
| 5352   }; | 5355   }; | 
| 5353   virtual ~ActivityControl() {} | 5356   virtual ~ActivityControl() {} | 
| 5354   /** | 5357   /** | 
| 5355    * Notify about current progress. The activity can be stopped by | 5358    * Notify about current progress. The activity can be stopped by | 
| 5356    * returning kAbort as the callback result. | 5359    * returning kAbort as the callback result. | 
| 5357    */ | 5360    */ | 
| (...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6551 | 6554 | 
| 6552 | 6555 | 
| 6553 /** | 6556 /** | 
| 6554  * \example process.cc | 6557  * \example process.cc | 
| 6555  */ | 6558  */ | 
| 6556 | 6559 | 
| 6557 | 6560 | 
| 6558 }  // namespace v8 | 6561 }  // namespace v8 | 
| 6559 | 6562 | 
| 6560 | 6563 | 
| 6561 #undef V8EXPORT |  | 
| 6562 #undef TYPE_CHECK | 6564 #undef TYPE_CHECK | 
| 6563 | 6565 | 
| 6564 | 6566 | 
| 6565 #endif  // V8_H_ | 6567 #endif  // V8_H_ | 
| OLD | NEW | 
|---|