| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 */ | 208 */ |
| 209 template <class T> | 209 template <class T> |
| 210 class Local { | 210 class Local { |
| 211 public: | 211 public: |
| 212 V8_INLINE Local() : val_(0) {} | 212 V8_INLINE Local() : val_(0) {} |
| 213 template <class S> | 213 template <class S> |
| 214 V8_INLINE Local(Local<S> that) | 214 V8_INLINE Local(Local<S> that) |
| 215 : val_(reinterpret_cast<T*>(*that)) { | 215 : val_(reinterpret_cast<T*>(*that)) { |
| 216 /** | 216 /** |
| 217 * This check fails when trying to convert between incompatible | 217 * This check fails when trying to convert between incompatible |
| 218 * handles. For example, converting from a Handle<String> to a | 218 * handles. For example, converting from a Local<String> to a |
| 219 * Handle<Number>. | 219 * Local<Number>. |
| 220 */ | 220 */ |
| 221 TYPE_CHECK(T, S); | 221 TYPE_CHECK(T, S); |
| 222 } | 222 } |
| 223 | 223 |
| 224 /** | 224 /** |
| 225 * Returns true if the handle is empty. | 225 * Returns true if the handle is empty. |
| 226 */ | 226 */ |
| 227 V8_INLINE bool IsEmpty() const { return val_ == 0; } | 227 V8_INLINE bool IsEmpty() const { return val_ == 0; } |
| 228 | 228 |
| 229 /** | 229 /** |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 template<class F1, class F2> friend class PersistentValueVector; | 323 template<class F1, class F2> friend class PersistentValueVector; |
| 324 | 324 |
| 325 template <class S> | 325 template <class S> |
| 326 V8_INLINE Local(S* that) | 326 V8_INLINE Local(S* that) |
| 327 : val_(that) {} | 327 : val_(that) {} |
| 328 V8_INLINE static Local<T> New(Isolate* isolate, T* that); | 328 V8_INLINE static Local<T> New(Isolate* isolate, T* that); |
| 329 T* val_; | 329 T* val_; |
| 330 }; | 330 }; |
| 331 | 331 |
| 332 | 332 |
| 333 // Handle is an alias for Local for historical reasons. | 333 #if !defined(V8_IMMINENT_DEPRECATION_WARNINGS) |
| 334 // Local is an alias for Local for historical reasons. |
| 334 template <class T> | 335 template <class T> |
| 335 using Handle = Local<T>; | 336 using Handle = Local<T>; |
| 337 #endif |
| 336 | 338 |
| 337 | 339 |
| 338 /** | 340 /** |
| 339 * A MaybeLocal<> is a wrapper around Local<> that enforces a check whether | 341 * A MaybeLocal<> is a wrapper around Local<> that enforces a check whether |
| 340 * the Local<> is empty before it can be used. | 342 * the Local<> is empty before it can be used. |
| 341 * | 343 * |
| 342 * If an API method returns a MaybeLocal<>, the API method can potentially fail | 344 * If an API method returns a MaybeLocal<>, the API method can potentially fail |
| 343 * either because an exception is thrown, or because an exception is pending, | 345 * either because an exception is thrown, or because an exception is pending, |
| 344 * e.g. because a previous API call threw an exception that hasn't been caught | 346 * e.g. because a previous API call threw an exception that hasn't been caught |
| 345 * yet, or because a TerminateExecution exception was thrown. In that case, an | 347 * yet, or because a TerminateExecution exception was thrown. In that case, an |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 /** | 490 /** |
| 489 * If non-empty, destroy the underlying storage cell | 491 * If non-empty, destroy the underlying storage cell |
| 490 * IsEmpty() will return true after this call. | 492 * IsEmpty() will return true after this call. |
| 491 */ | 493 */ |
| 492 V8_INLINE void Reset(); | 494 V8_INLINE void Reset(); |
| 493 /** | 495 /** |
| 494 * If non-empty, destroy the underlying storage cell | 496 * If non-empty, destroy the underlying storage cell |
| 495 * and create a new one with the contents of other if other is non empty | 497 * and create a new one with the contents of other if other is non empty |
| 496 */ | 498 */ |
| 497 template <class S> | 499 template <class S> |
| 498 V8_INLINE void Reset(Isolate* isolate, const Handle<S>& other); | 500 V8_INLINE void Reset(Isolate* isolate, const Local<S>& other); |
| 499 | 501 |
| 500 /** | 502 /** |
| 501 * If non-empty, destroy the underlying storage cell | 503 * If non-empty, destroy the underlying storage cell |
| 502 * and create a new one with the contents of other if other is non empty | 504 * and create a new one with the contents of other if other is non empty |
| 503 */ | 505 */ |
| 504 template <class S> | 506 template <class S> |
| 505 V8_INLINE void Reset(Isolate* isolate, const PersistentBase<S>& other); | 507 V8_INLINE void Reset(Isolate* isolate, const PersistentBase<S>& other); |
| 506 | 508 |
| 507 V8_INLINE bool IsEmpty() const { return val_ == NULL; } | 509 V8_INLINE bool IsEmpty() const { return val_ == NULL; } |
| 508 V8_INLINE void Empty() { val_ = 0; } | 510 V8_INLINE void Empty() { val_ = 0; } |
| 509 | 511 |
| 510 template <class S> | 512 template <class S> |
| 511 V8_INLINE bool operator==(const PersistentBase<S>& that) const { | 513 V8_INLINE bool operator==(const PersistentBase<S>& that) const { |
| 512 internal::Object** a = reinterpret_cast<internal::Object**>(this->val_); | 514 internal::Object** a = reinterpret_cast<internal::Object**>(this->val_); |
| 513 internal::Object** b = reinterpret_cast<internal::Object**>(that.val_); | 515 internal::Object** b = reinterpret_cast<internal::Object**>(that.val_); |
| 514 if (a == NULL) return b == NULL; | 516 if (a == NULL) return b == NULL; |
| 515 if (b == NULL) return false; | 517 if (b == NULL) return false; |
| 516 return *a == *b; | 518 return *a == *b; |
| 517 } | 519 } |
| 518 | 520 |
| 519 template <class S> V8_INLINE bool operator==(const Handle<S>& that) const { | 521 template <class S> |
| 522 V8_INLINE bool operator==(const Local<S>& that) const { |
| 520 internal::Object** a = reinterpret_cast<internal::Object**>(this->val_); | 523 internal::Object** a = reinterpret_cast<internal::Object**>(this->val_); |
| 521 internal::Object** b = reinterpret_cast<internal::Object**>(that.val_); | 524 internal::Object** b = reinterpret_cast<internal::Object**>(that.val_); |
| 522 if (a == NULL) return b == NULL; | 525 if (a == NULL) return b == NULL; |
| 523 if (b == NULL) return false; | 526 if (b == NULL) return false; |
| 524 return *a == *b; | 527 return *a == *b; |
| 525 } | 528 } |
| 526 | 529 |
| 527 template <class S> | 530 template <class S> |
| 528 V8_INLINE bool operator!=(const PersistentBase<S>& that) const { | 531 V8_INLINE bool operator!=(const PersistentBase<S>& that) const { |
| 529 return !operator==(that); | 532 return !operator==(that); |
| 530 } | 533 } |
| 531 | 534 |
| 532 template <class S> V8_INLINE bool operator!=(const Handle<S>& that) const { | 535 template <class S> |
| 536 V8_INLINE bool operator!=(const Local<S>& that) const { |
| 533 return !operator==(that); | 537 return !operator==(that); |
| 534 } | 538 } |
| 535 | 539 |
| 536 /** | 540 /** |
| 537 * Install a finalization callback on this object. | 541 * Install a finalization callback on this object. |
| 538 * NOTE: There is no guarantee as to *when* or even *if* the callback is | 542 * NOTE: There is no guarantee as to *when* or even *if* the callback is |
| 539 * invoked. The invocation is performed solely on a best effort basis. | 543 * invoked. The invocation is performed solely on a best effort basis. |
| 540 * As always, GC-based finalization should *not* be relied upon for any | 544 * As always, GC-based finalization should *not* be relied upon for any |
| 541 * critical form of resource management! | 545 * critical form of resource management! |
| 542 */ | 546 */ |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 * | 689 * |
| 686 * Note: Persistent class hierarchy is subject to future changes. | 690 * Note: Persistent class hierarchy is subject to future changes. |
| 687 */ | 691 */ |
| 688 template <class T, class M> class Persistent : public PersistentBase<T> { | 692 template <class T, class M> class Persistent : public PersistentBase<T> { |
| 689 public: | 693 public: |
| 690 /** | 694 /** |
| 691 * A Persistent with no storage cell. | 695 * A Persistent with no storage cell. |
| 692 */ | 696 */ |
| 693 V8_INLINE Persistent() : PersistentBase<T>(0) { } | 697 V8_INLINE Persistent() : PersistentBase<T>(0) { } |
| 694 /** | 698 /** |
| 695 * Construct a Persistent from a Handle. | 699 * Construct a Persistent from a Local. |
| 696 * When the Handle is non-empty, a new storage cell is created | 700 * When the Local is non-empty, a new storage cell is created |
| 697 * pointing to the same object, and no flags are set. | 701 * pointing to the same object, and no flags are set. |
| 698 */ | 702 */ |
| 699 template <class S> V8_INLINE Persistent(Isolate* isolate, Handle<S> that) | 703 template <class S> |
| 704 V8_INLINE Persistent(Isolate* isolate, Local<S> that) |
| 700 : PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) { | 705 : PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) { |
| 701 TYPE_CHECK(T, S); | 706 TYPE_CHECK(T, S); |
| 702 } | 707 } |
| 703 /** | 708 /** |
| 704 * Construct a Persistent from a Persistent. | 709 * Construct a Persistent from a Persistent. |
| 705 * When the Persistent is non-empty, a new storage cell is created | 710 * When the Persistent is non-empty, a new storage cell is created |
| 706 * pointing to the same object, and no flags are set. | 711 * pointing to the same object, and no flags are set. |
| 707 */ | 712 */ |
| 708 template <class S, class M2> | 713 template <class S, class M2> |
| 709 V8_INLINE Persistent(Isolate* isolate, const Persistent<S, M2>& that) | 714 V8_INLINE Persistent(Isolate* isolate, const Persistent<S, M2>& that) |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 * Note: Persistent class hierarchy is subject to future changes. | 782 * Note: Persistent class hierarchy is subject to future changes. |
| 778 */ | 783 */ |
| 779 template <class T> | 784 template <class T> |
| 780 class Global : public PersistentBase<T> { | 785 class Global : public PersistentBase<T> { |
| 781 public: | 786 public: |
| 782 /** | 787 /** |
| 783 * A Global with no storage cell. | 788 * A Global with no storage cell. |
| 784 */ | 789 */ |
| 785 V8_INLINE Global() : PersistentBase<T>(nullptr) {} | 790 V8_INLINE Global() : PersistentBase<T>(nullptr) {} |
| 786 /** | 791 /** |
| 787 * Construct a Global from a Handle. | 792 * Construct a Global from a Local. |
| 788 * When the Handle is non-empty, a new storage cell is created | 793 * When the Local is non-empty, a new storage cell is created |
| 789 * pointing to the same object, and no flags are set. | 794 * pointing to the same object, and no flags are set. |
| 790 */ | 795 */ |
| 791 template <class S> | 796 template <class S> |
| 792 V8_INLINE Global(Isolate* isolate, Handle<S> that) | 797 V8_INLINE Global(Isolate* isolate, Local<S> that) |
| 793 : PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) { | 798 : PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) { |
| 794 TYPE_CHECK(T, S); | 799 TYPE_CHECK(T, S); |
| 795 } | 800 } |
| 796 /** | 801 /** |
| 797 * Construct a Global from a PersistentBase. | 802 * Construct a Global from a PersistentBase. |
| 798 * When the Persistent is non-empty, a new storage cell is created | 803 * When the Persistent is non-empty, a new storage cell is created |
| 799 * pointing to the same object, and no flags are set. | 804 * pointing to the same object, and no flags are set. |
| 800 */ | 805 */ |
| 801 template <class S> | 806 template <class S> |
| 802 V8_INLINE Global(Isolate* isolate, const PersistentBase<S>& that) | 807 V8_INLINE Global(Isolate* isolate, const PersistentBase<S>& that) |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1005 }; | 1010 }; |
| 1006 const int flags_; | 1011 const int flags_; |
| 1007 }; | 1012 }; |
| 1008 | 1013 |
| 1009 /** | 1014 /** |
| 1010 * The origin, within a file, of a script. | 1015 * The origin, within a file, of a script. |
| 1011 */ | 1016 */ |
| 1012 class ScriptOrigin { | 1017 class ScriptOrigin { |
| 1013 public: | 1018 public: |
| 1014 V8_INLINE ScriptOrigin( | 1019 V8_INLINE ScriptOrigin( |
| 1015 Handle<Value> resource_name, | 1020 Local<Value> resource_name, |
| 1016 Handle<Integer> resource_line_offset = Handle<Integer>(), | 1021 Local<Integer> resource_line_offset = Local<Integer>(), |
| 1017 Handle<Integer> resource_column_offset = Handle<Integer>(), | 1022 Local<Integer> resource_column_offset = Local<Integer>(), |
| 1018 Handle<Boolean> resource_is_shared_cross_origin = Handle<Boolean>(), | 1023 Local<Boolean> resource_is_shared_cross_origin = Local<Boolean>(), |
| 1019 Handle<Integer> script_id = Handle<Integer>(), | 1024 Local<Integer> script_id = Local<Integer>(), |
| 1020 Handle<Boolean> resource_is_embedder_debug_script = Handle<Boolean>(), | 1025 Local<Boolean> resource_is_embedder_debug_script = Local<Boolean>(), |
| 1021 Handle<Value> source_map_url = Handle<Value>(), | 1026 Local<Value> source_map_url = Local<Value>(), |
| 1022 Handle<Boolean> resource_is_opaque = Handle<Boolean>()); | 1027 Local<Boolean> resource_is_opaque = Local<Boolean>()); |
| 1023 V8_INLINE Handle<Value> ResourceName() const; | 1028 V8_INLINE Local<Value> ResourceName() const; |
| 1024 V8_INLINE Handle<Integer> ResourceLineOffset() const; | 1029 V8_INLINE Local<Integer> ResourceLineOffset() const; |
| 1025 V8_INLINE Handle<Integer> ResourceColumnOffset() const; | 1030 V8_INLINE Local<Integer> ResourceColumnOffset() const; |
| 1026 /** | 1031 /** |
| 1027 * Returns true for embedder's debugger scripts | 1032 * Returns true for embedder's debugger scripts |
| 1028 */ | 1033 */ |
| 1029 V8_INLINE Handle<Integer> ScriptID() const; | 1034 V8_INLINE Local<Integer> ScriptID() const; |
| 1030 V8_INLINE Handle<Value> SourceMapUrl() const; | 1035 V8_INLINE Local<Value> SourceMapUrl() const; |
| 1031 V8_INLINE ScriptOriginOptions Options() const { return options_; } | 1036 V8_INLINE ScriptOriginOptions Options() const { return options_; } |
| 1032 | 1037 |
| 1033 private: | 1038 private: |
| 1034 Handle<Value> resource_name_; | 1039 Local<Value> resource_name_; |
| 1035 Handle<Integer> resource_line_offset_; | 1040 Local<Integer> resource_line_offset_; |
| 1036 Handle<Integer> resource_column_offset_; | 1041 Local<Integer> resource_column_offset_; |
| 1037 ScriptOriginOptions options_; | 1042 ScriptOriginOptions options_; |
| 1038 Handle<Integer> script_id_; | 1043 Local<Integer> script_id_; |
| 1039 Handle<Value> source_map_url_; | 1044 Local<Value> source_map_url_; |
| 1040 }; | 1045 }; |
| 1041 | 1046 |
| 1042 | 1047 |
| 1043 /** | 1048 /** |
| 1044 * A compiled JavaScript script, not yet tied to a Context. | 1049 * A compiled JavaScript script, not yet tied to a Context. |
| 1045 */ | 1050 */ |
| 1046 class V8_EXPORT UnboundScript { | 1051 class V8_EXPORT UnboundScript { |
| 1047 public: | 1052 public: |
| 1048 /** | 1053 /** |
| 1049 * Binds the script to the currently entered context. | 1054 * Binds the script to the currently entered context. |
| 1050 */ | 1055 */ |
| 1051 Local<Script> BindToCurrentContext(); | 1056 Local<Script> BindToCurrentContext(); |
| 1052 | 1057 |
| 1053 int GetId(); | 1058 int GetId(); |
| 1054 Handle<Value> GetScriptName(); | 1059 Local<Value> GetScriptName(); |
| 1055 | 1060 |
| 1056 /** | 1061 /** |
| 1057 * Data read from magic sourceURL comments. | 1062 * Data read from magic sourceURL comments. |
| 1058 */ | 1063 */ |
| 1059 Handle<Value> GetSourceURL(); | 1064 Local<Value> GetSourceURL(); |
| 1060 /** | 1065 /** |
| 1061 * Data read from magic sourceMappingURL comments. | 1066 * Data read from magic sourceMappingURL comments. |
| 1062 */ | 1067 */ |
| 1063 Handle<Value> GetSourceMappingURL(); | 1068 Local<Value> GetSourceMappingURL(); |
| 1064 | 1069 |
| 1065 /** | 1070 /** |
| 1066 * Returns zero based line number of the code_pos location in the script. | 1071 * Returns zero based line number of the code_pos location in the script. |
| 1067 * -1 will be returned if no information available. | 1072 * -1 will be returned if no information available. |
| 1068 */ | 1073 */ |
| 1069 int GetLineNumber(int code_pos); | 1074 int GetLineNumber(int code_pos); |
| 1070 | 1075 |
| 1071 static const int kNoScriptId = 0; | 1076 static const int kNoScriptId = 0; |
| 1072 }; | 1077 }; |
| 1073 | 1078 |
| 1074 | 1079 |
| 1075 /** | 1080 /** |
| 1076 * A compiled JavaScript script, tied to a Context which was active when the | 1081 * A compiled JavaScript script, tied to a Context which was active when the |
| 1077 * script was compiled. | 1082 * script was compiled. |
| 1078 */ | 1083 */ |
| 1079 class V8_EXPORT Script { | 1084 class V8_EXPORT Script { |
| 1080 public: | 1085 public: |
| 1081 /** | 1086 /** |
| 1082 * A shorthand for ScriptCompiler::Compile(). | 1087 * A shorthand for ScriptCompiler::Compile(). |
| 1083 */ | 1088 */ |
| 1084 static V8_DEPRECATE_SOON( | 1089 static V8_DEPRECATE_SOON( |
| 1085 "Use maybe version", | 1090 "Use maybe version", |
| 1086 Local<Script> Compile(Handle<String> source, | 1091 Local<Script> Compile(Local<String> source, |
| 1087 ScriptOrigin* origin = nullptr)); | 1092 ScriptOrigin* origin = nullptr)); |
| 1088 static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile( | 1093 static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile( |
| 1089 Local<Context> context, Handle<String> source, | 1094 Local<Context> context, Local<String> source, |
| 1090 ScriptOrigin* origin = nullptr); | 1095 ScriptOrigin* origin = nullptr); |
| 1091 | 1096 |
| 1092 static Local<Script> V8_DEPRECATE_SOON("Use maybe version", | 1097 static Local<Script> V8_DEPRECATE_SOON("Use maybe version", |
| 1093 Compile(Handle<String> source, | 1098 Compile(Local<String> source, |
| 1094 Handle<String> file_name)); | 1099 Local<String> file_name)); |
| 1095 | 1100 |
| 1096 /** | 1101 /** |
| 1097 * Runs the script returning the resulting value. It will be run in the | 1102 * Runs the script returning the resulting value. It will be run in the |
| 1098 * context in which it was created (ScriptCompiler::CompileBound or | 1103 * context in which it was created (ScriptCompiler::CompileBound or |
| 1099 * UnboundScript::BindToCurrentContext()). | 1104 * UnboundScript::BindToCurrentContext()). |
| 1100 */ | 1105 */ |
| 1101 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Run()); | 1106 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Run()); |
| 1102 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Run(Local<Context> context); | 1107 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Run(Local<Context> context); |
| 1103 | 1108 |
| 1104 /** | 1109 /** |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1176 | 1181 |
| 1177 private: | 1182 private: |
| 1178 friend class ScriptCompiler; | 1183 friend class ScriptCompiler; |
| 1179 // Prevent copying. Not implemented. | 1184 // Prevent copying. Not implemented. |
| 1180 Source(const Source&); | 1185 Source(const Source&); |
| 1181 Source& operator=(const Source&); | 1186 Source& operator=(const Source&); |
| 1182 | 1187 |
| 1183 Local<String> source_string; | 1188 Local<String> source_string; |
| 1184 | 1189 |
| 1185 // Origin information | 1190 // Origin information |
| 1186 Handle<Value> resource_name; | 1191 Local<Value> resource_name; |
| 1187 Handle<Integer> resource_line_offset; | 1192 Local<Integer> resource_line_offset; |
| 1188 Handle<Integer> resource_column_offset; | 1193 Local<Integer> resource_column_offset; |
| 1189 ScriptOriginOptions resource_options; | 1194 ScriptOriginOptions resource_options; |
| 1190 Handle<Value> source_map_url; | 1195 Local<Value> source_map_url; |
| 1191 | 1196 |
| 1192 // Cached data from previous compilation (if a kConsume*Cache flag is | 1197 // Cached data from previous compilation (if a kConsume*Cache flag is |
| 1193 // set), or hold newly generated cache data (kProduce*Cache flags) are | 1198 // set), or hold newly generated cache data (kProduce*Cache flags) are |
| 1194 // set when calling a compile method. | 1199 // set when calling a compile method. |
| 1195 CachedData* cached_data; | 1200 CachedData* cached_data; |
| 1196 }; | 1201 }; |
| 1197 | 1202 |
| 1198 /** | 1203 /** |
| 1199 * For streaming incomplete script data to V8. The embedder should implement a | 1204 * For streaming incomplete script data to V8. The embedder should implement a |
| 1200 * subclass of this class. | 1205 * subclass of this class. |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1345 /** | 1350 /** |
| 1346 * Compiles a streamed script (bound to current context). | 1351 * Compiles a streamed script (bound to current context). |
| 1347 * | 1352 * |
| 1348 * This can only be called after the streaming has finished | 1353 * This can only be called after the streaming has finished |
| 1349 * (ScriptStreamingTask has been run). V8 doesn't construct the source string | 1354 * (ScriptStreamingTask has been run). V8 doesn't construct the source string |
| 1350 * during streaming, so the embedder needs to pass the full source here. | 1355 * during streaming, so the embedder needs to pass the full source here. |
| 1351 */ | 1356 */ |
| 1352 static V8_DEPRECATE_SOON( | 1357 static V8_DEPRECATE_SOON( |
| 1353 "Use maybe version", | 1358 "Use maybe version", |
| 1354 Local<Script> Compile(Isolate* isolate, StreamedSource* source, | 1359 Local<Script> Compile(Isolate* isolate, StreamedSource* source, |
| 1355 Handle<String> full_source_string, | 1360 Local<String> full_source_string, |
| 1356 const ScriptOrigin& origin)); | 1361 const ScriptOrigin& origin)); |
| 1357 static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile( | 1362 static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile( |
| 1358 Local<Context> context, StreamedSource* source, | 1363 Local<Context> context, StreamedSource* source, |
| 1359 Handle<String> full_source_string, const ScriptOrigin& origin); | 1364 Local<String> full_source_string, const ScriptOrigin& origin); |
| 1360 | 1365 |
| 1361 /** | 1366 /** |
| 1362 * Return a version tag for CachedData for the current V8 version & flags. | 1367 * Return a version tag for CachedData for the current V8 version & flags. |
| 1363 * | 1368 * |
| 1364 * This value is meant only for determining whether a previously generated | 1369 * This value is meant only for determining whether a previously generated |
| 1365 * CachedData instance is still valid; the tag has no other meaing. | 1370 * CachedData instance is still valid; the tag has no other meaing. |
| 1366 * | 1371 * |
| 1367 * Background: The data carried by CachedData may depend on the exact | 1372 * Background: The data carried by CachedData may depend on the exact |
| 1368 * V8 version number or currently compiler flags. This means when | 1373 * V8 version number or currently compiler flags. This means when |
| 1369 * persisting CachedData, the embedder must take care to not pass in | 1374 * persisting CachedData, the embedder must take care to not pass in |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1436 /** | 1441 /** |
| 1437 * Returns the origin for the script from where the function causing the | 1442 * Returns the origin for the script from where the function causing the |
| 1438 * error originates. | 1443 * error originates. |
| 1439 */ | 1444 */ |
| 1440 ScriptOrigin GetScriptOrigin() const; | 1445 ScriptOrigin GetScriptOrigin() const; |
| 1441 | 1446 |
| 1442 /** | 1447 /** |
| 1443 * Returns the resource name for the script from where the function causing | 1448 * Returns the resource name for the script from where the function causing |
| 1444 * the error originates. | 1449 * the error originates. |
| 1445 */ | 1450 */ |
| 1446 Handle<Value> GetScriptResourceName() const; | 1451 Local<Value> GetScriptResourceName() const; |
| 1447 | 1452 |
| 1448 /** | 1453 /** |
| 1449 * Exception stack trace. By default stack traces are not captured for | 1454 * Exception stack trace. By default stack traces are not captured for |
| 1450 * uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows | 1455 * uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows |
| 1451 * to change this option. | 1456 * to change this option. |
| 1452 */ | 1457 */ |
| 1453 Handle<StackTrace> GetStackTrace() const; | 1458 Local<StackTrace> GetStackTrace() const; |
| 1454 | 1459 |
| 1455 /** | 1460 /** |
| 1456 * Returns the number, 1-based, of the line where the error occurred. | 1461 * Returns the number, 1-based, of the line where the error occurred. |
| 1457 */ | 1462 */ |
| 1458 V8_DEPRECATE_SOON("Use maybe version", int GetLineNumber() const); | 1463 V8_DEPRECATE_SOON("Use maybe version", int GetLineNumber() const); |
| 1459 V8_WARN_UNUSED_RESULT Maybe<int> GetLineNumber(Local<Context> context) const; | 1464 V8_WARN_UNUSED_RESULT Maybe<int> GetLineNumber(Local<Context> context) const; |
| 1460 | 1465 |
| 1461 /** | 1466 /** |
| 1462 * Returns the index within the script of the first character where | 1467 * Returns the index within the script of the first character where |
| 1463 * the error occurred. | 1468 * the error occurred. |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1658 | 1663 |
| 1659 | 1664 |
| 1660 /** | 1665 /** |
| 1661 * A map whose keys are referenced weakly. It is similar to JavaScript WeakMap | 1666 * A map whose keys are referenced weakly. It is similar to JavaScript WeakMap |
| 1662 * but can be created without entering a v8::Context and hence shouldn't | 1667 * but can be created without entering a v8::Context and hence shouldn't |
| 1663 * escape to JavaScript. | 1668 * escape to JavaScript. |
| 1664 */ | 1669 */ |
| 1665 class V8_EXPORT NativeWeakMap : public Data { | 1670 class V8_EXPORT NativeWeakMap : public Data { |
| 1666 public: | 1671 public: |
| 1667 static Local<NativeWeakMap> New(Isolate* isolate); | 1672 static Local<NativeWeakMap> New(Isolate* isolate); |
| 1668 void Set(Handle<Value> key, Handle<Value> value); | 1673 void Set(Local<Value> key, Local<Value> value); |
| 1669 Local<Value> Get(Handle<Value> key); | 1674 Local<Value> Get(Local<Value> key); |
| 1670 bool Has(Handle<Value> key); | 1675 bool Has(Local<Value> key); |
| 1671 bool Delete(Handle<Value> key); | 1676 bool Delete(Local<Value> key); |
| 1672 }; | 1677 }; |
| 1673 | 1678 |
| 1674 | 1679 |
| 1675 // --- Value --- | 1680 // --- Value --- |
| 1676 | 1681 |
| 1677 | 1682 |
| 1678 /** | 1683 /** |
| 1679 * The superclass of all JavaScript values and objects. | 1684 * The superclass of all JavaScript values and objects. |
| 1680 */ | 1685 */ |
| 1681 class V8_EXPORT Value : public Data { | 1686 class V8_EXPORT Value : public Data { |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2001 Local<Context> context) const; | 2006 Local<Context> context) const; |
| 2002 V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const; | 2007 V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const; |
| 2003 | 2008 |
| 2004 V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue() const); | 2009 V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue() const); |
| 2005 V8_DEPRECATE_SOON("Use maybe version", double NumberValue() const); | 2010 V8_DEPRECATE_SOON("Use maybe version", double NumberValue() const); |
| 2006 V8_DEPRECATE_SOON("Use maybe version", int64_t IntegerValue() const); | 2011 V8_DEPRECATE_SOON("Use maybe version", int64_t IntegerValue() const); |
| 2007 V8_DEPRECATE_SOON("Use maybe version", uint32_t Uint32Value() const); | 2012 V8_DEPRECATE_SOON("Use maybe version", uint32_t Uint32Value() const); |
| 2008 V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value() const); | 2013 V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value() const); |
| 2009 | 2014 |
| 2010 /** JS == */ | 2015 /** JS == */ |
| 2011 V8_DEPRECATE_SOON("Use maybe version", bool Equals(Handle<Value> that) const); | 2016 V8_DEPRECATE_SOON("Use maybe version", bool Equals(Local<Value> that) const); |
| 2012 V8_WARN_UNUSED_RESULT Maybe<bool> Equals(Local<Context> context, | 2017 V8_WARN_UNUSED_RESULT Maybe<bool> Equals(Local<Context> context, |
| 2013 Handle<Value> that) const; | 2018 Local<Value> that) const; |
| 2014 bool StrictEquals(Handle<Value> that) const; | 2019 bool StrictEquals(Local<Value> that) const; |
| 2015 bool SameValue(Handle<Value> that) const; | 2020 bool SameValue(Local<Value> that) const; |
| 2016 | 2021 |
| 2017 template <class T> V8_INLINE static Value* Cast(T* value); | 2022 template <class T> V8_INLINE static Value* Cast(T* value); |
| 2018 | 2023 |
| 2019 private: | 2024 private: |
| 2020 V8_INLINE bool QuickIsUndefined() const; | 2025 V8_INLINE bool QuickIsUndefined() const; |
| 2021 V8_INLINE bool QuickIsNull() const; | 2026 V8_INLINE bool QuickIsNull() const; |
| 2022 V8_INLINE bool QuickIsString() const; | 2027 V8_INLINE bool QuickIsString() const; |
| 2023 bool FullIsUndefined() const; | 2028 bool FullIsUndefined() const; |
| 2024 bool FullIsNull() const; | 2029 bool FullIsNull() const; |
| 2025 bool FullIsString() const; | 2030 bool FullIsString() const; |
| 2026 }; | 2031 }; |
| 2027 | 2032 |
| 2028 | 2033 |
| 2029 /** | 2034 /** |
| 2030 * The superclass of primitive values. See ECMA-262 4.3.2. | 2035 * The superclass of primitive values. See ECMA-262 4.3.2. |
| 2031 */ | 2036 */ |
| 2032 class V8_EXPORT Primitive : public Value { }; | 2037 class V8_EXPORT Primitive : public Value { }; |
| 2033 | 2038 |
| 2034 | 2039 |
| 2035 /** | 2040 /** |
| 2036 * A primitive boolean value (ECMA-262, 4.3.14). Either the true | 2041 * A primitive boolean value (ECMA-262, 4.3.14). Either the true |
| 2037 * or false value. | 2042 * or false value. |
| 2038 */ | 2043 */ |
| 2039 class V8_EXPORT Boolean : public Primitive { | 2044 class V8_EXPORT Boolean : public Primitive { |
| 2040 public: | 2045 public: |
| 2041 bool Value() const; | 2046 bool Value() const; |
| 2042 V8_INLINE static Boolean* Cast(v8::Value* obj); | 2047 V8_INLINE static Boolean* Cast(v8::Value* obj); |
| 2043 V8_INLINE static Handle<Boolean> New(Isolate* isolate, bool value); | 2048 V8_INLINE static Local<Boolean> New(Isolate* isolate, bool value); |
| 2049 |
| 2044 private: | 2050 private: |
| 2045 static void CheckCast(v8::Value* obj); | 2051 static void CheckCast(v8::Value* obj); |
| 2046 }; | 2052 }; |
| 2047 | 2053 |
| 2048 | 2054 |
| 2049 /** | 2055 /** |
| 2050 * A superclass for symbols and strings. | 2056 * A superclass for symbols and strings. |
| 2051 */ | 2057 */ |
| 2052 class V8_EXPORT Name : public Primitive { | 2058 class V8_EXPORT Name : public Primitive { |
| 2053 public: | 2059 public: |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2314 /** Allocates a new string from UTF-16 data. Only returns an empty value when | 2320 /** Allocates a new string from UTF-16 data. Only returns an empty value when |
| 2315 * length > kMaxLength. **/ | 2321 * length > kMaxLength. **/ |
| 2316 static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromTwoByte( | 2322 static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromTwoByte( |
| 2317 Isolate* isolate, const uint16_t* data, v8::NewStringType type, | 2323 Isolate* isolate, const uint16_t* data, v8::NewStringType type, |
| 2318 int length = -1); | 2324 int length = -1); |
| 2319 | 2325 |
| 2320 /** | 2326 /** |
| 2321 * Creates a new string by concatenating the left and the right strings | 2327 * Creates a new string by concatenating the left and the right strings |
| 2322 * passed in as parameters. | 2328 * passed in as parameters. |
| 2323 */ | 2329 */ |
| 2324 static Local<String> Concat(Handle<String> left, Handle<String> right); | 2330 static Local<String> Concat(Local<String> left, Local<String> right); |
| 2325 | 2331 |
| 2326 /** | 2332 /** |
| 2327 * Creates a new external string using the data defined in the given | 2333 * Creates a new external string using the data defined in the given |
| 2328 * resource. When the external string is no longer live on V8's heap the | 2334 * resource. When the external string is no longer live on V8's heap the |
| 2329 * resource will be disposed by calling its Dispose method. The caller of | 2335 * resource will be disposed by calling its Dispose method. The caller of |
| 2330 * this function should not otherwise delete or modify the resource. Neither | 2336 * this function should not otherwise delete or modify the resource. Neither |
| 2331 * should the underlying buffer be deallocated or modified except through the | 2337 * should the underlying buffer be deallocated or modified except through the |
| 2332 * destructor of the external string resource. | 2338 * destructor of the external string resource. |
| 2333 */ | 2339 */ |
| 2334 static V8_DEPRECATE_SOON( | 2340 static V8_DEPRECATE_SOON( |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2382 | 2388 |
| 2383 /** | 2389 /** |
| 2384 * Converts an object to a UTF-8-encoded character array. Useful if | 2390 * Converts an object to a UTF-8-encoded character array. Useful if |
| 2385 * you want to print the object. If conversion to a string fails | 2391 * you want to print the object. If conversion to a string fails |
| 2386 * (e.g. due to an exception in the toString() method of the object) | 2392 * (e.g. due to an exception in the toString() method of the object) |
| 2387 * then the length() method returns 0 and the * operator returns | 2393 * then the length() method returns 0 and the * operator returns |
| 2388 * NULL. | 2394 * NULL. |
| 2389 */ | 2395 */ |
| 2390 class V8_EXPORT Utf8Value { | 2396 class V8_EXPORT Utf8Value { |
| 2391 public: | 2397 public: |
| 2392 explicit Utf8Value(Handle<v8::Value> obj); | 2398 explicit Utf8Value(Local<v8::Value> obj); |
| 2393 ~Utf8Value(); | 2399 ~Utf8Value(); |
| 2394 char* operator*() { return str_; } | 2400 char* operator*() { return str_; } |
| 2395 const char* operator*() const { return str_; } | 2401 const char* operator*() const { return str_; } |
| 2396 int length() const { return length_; } | 2402 int length() const { return length_; } |
| 2397 private: | 2403 private: |
| 2398 char* str_; | 2404 char* str_; |
| 2399 int length_; | 2405 int length_; |
| 2400 | 2406 |
| 2401 // Disallow copying and assigning. | 2407 // Disallow copying and assigning. |
| 2402 Utf8Value(const Utf8Value&); | 2408 Utf8Value(const Utf8Value&); |
| 2403 void operator=(const Utf8Value&); | 2409 void operator=(const Utf8Value&); |
| 2404 }; | 2410 }; |
| 2405 | 2411 |
| 2406 /** | 2412 /** |
| 2407 * Converts an object to a two-byte string. | 2413 * Converts an object to a two-byte string. |
| 2408 * If conversion to a string fails (eg. due to an exception in the toString() | 2414 * If conversion to a string fails (eg. due to an exception in the toString() |
| 2409 * method of the object) then the length() method returns 0 and the * operator | 2415 * method of the object) then the length() method returns 0 and the * operator |
| 2410 * returns NULL. | 2416 * returns NULL. |
| 2411 */ | 2417 */ |
| 2412 class V8_EXPORT Value { | 2418 class V8_EXPORT Value { |
| 2413 public: | 2419 public: |
| 2414 explicit Value(Handle<v8::Value> obj); | 2420 explicit Value(Local<v8::Value> obj); |
| 2415 ~Value(); | 2421 ~Value(); |
| 2416 uint16_t* operator*() { return str_; } | 2422 uint16_t* operator*() { return str_; } |
| 2417 const uint16_t* operator*() const { return str_; } | 2423 const uint16_t* operator*() const { return str_; } |
| 2418 int length() const { return length_; } | 2424 int length() const { return length_; } |
| 2419 private: | 2425 private: |
| 2420 uint16_t* str_; | 2426 uint16_t* str_; |
| 2421 int length_; | 2427 int length_; |
| 2422 | 2428 |
| 2423 // Disallow copying and assigning. | 2429 // Disallow copying and assigning. |
| 2424 Value(const Value&); | 2430 Value(const Value&); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2574 PROHIBITS_OVERWRITING = 1 << 2 | 2580 PROHIBITS_OVERWRITING = 1 << 2 |
| 2575 }; | 2581 }; |
| 2576 | 2582 |
| 2577 | 2583 |
| 2578 /** | 2584 /** |
| 2579 * A JavaScript object (ECMA-262, 4.3.3) | 2585 * A JavaScript object (ECMA-262, 4.3.3) |
| 2580 */ | 2586 */ |
| 2581 class V8_EXPORT Object : public Value { | 2587 class V8_EXPORT Object : public Value { |
| 2582 public: | 2588 public: |
| 2583 V8_DEPRECATE_SOON("Use maybe version", | 2589 V8_DEPRECATE_SOON("Use maybe version", |
| 2584 bool Set(Handle<Value> key, Handle<Value> value)); | 2590 bool Set(Local<Value> key, Local<Value> value)); |
| 2585 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, | 2591 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, |
| 2586 Local<Value> key, Local<Value> value); | 2592 Local<Value> key, Local<Value> value); |
| 2587 | 2593 |
| 2588 V8_DEPRECATE_SOON("Use maybe version", | 2594 V8_DEPRECATE_SOON("Use maybe version", |
| 2589 bool Set(uint32_t index, Handle<Value> value)); | 2595 bool Set(uint32_t index, Local<Value> value)); |
| 2590 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, | 2596 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, |
| 2591 Local<Value> value); | 2597 Local<Value> value); |
| 2592 | 2598 |
| 2593 // Implements CreateDataProperty (ECMA-262, 7.3.4). | 2599 // Implements CreateDataProperty (ECMA-262, 7.3.4). |
| 2594 // | 2600 // |
| 2595 // Defines a configurable, writable, enumerable property with the given value | 2601 // Defines a configurable, writable, enumerable property with the given value |
| 2596 // on the object unless the property already exists and is not configurable | 2602 // on the object unless the property already exists and is not configurable |
| 2597 // or the object is not extensible. | 2603 // or the object is not extensible. |
| 2598 // | 2604 // |
| 2599 // Returns true on success. | 2605 // Returns true on success. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2616 | 2622 |
| 2617 // Sets an own property on this object bypassing interceptors and | 2623 // Sets an own property on this object bypassing interceptors and |
| 2618 // overriding accessors or read-only properties. | 2624 // overriding accessors or read-only properties. |
| 2619 // | 2625 // |
| 2620 // Note that if the object has an interceptor the property will be set | 2626 // Note that if the object has an interceptor the property will be set |
| 2621 // locally, but since the interceptor takes precedence the local property | 2627 // locally, but since the interceptor takes precedence the local property |
| 2622 // will only be returned if the interceptor doesn't return a value. | 2628 // will only be returned if the interceptor doesn't return a value. |
| 2623 // | 2629 // |
| 2624 // Note also that this only works for named properties. | 2630 // Note also that this only works for named properties. |
| 2625 V8_DEPRECATE_SOON("Use CreateDataProperty", | 2631 V8_DEPRECATE_SOON("Use CreateDataProperty", |
| 2626 bool ForceSet(Handle<Value> key, Handle<Value> value, | 2632 bool ForceSet(Local<Value> key, Local<Value> value, |
| 2627 PropertyAttribute attribs = None)); | 2633 PropertyAttribute attribs = None)); |
| 2628 V8_DEPRECATE_SOON("Use CreateDataProperty", | 2634 V8_DEPRECATE_SOON("Use CreateDataProperty", |
| 2629 Maybe<bool> ForceSet(Local<Context> context, | 2635 Maybe<bool> ForceSet(Local<Context> context, |
| 2630 Local<Value> key, Local<Value> value, | 2636 Local<Value> key, Local<Value> value, |
| 2631 PropertyAttribute attribs = None)); | 2637 PropertyAttribute attribs = None)); |
| 2632 | 2638 |
| 2633 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Handle<Value> key)); | 2639 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Local<Value> key)); |
| 2634 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context, | 2640 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context, |
| 2635 Local<Value> key); | 2641 Local<Value> key); |
| 2636 | 2642 |
| 2637 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(uint32_t index)); | 2643 V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(uint32_t index)); |
| 2638 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context, | 2644 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context, |
| 2639 uint32_t index); | 2645 uint32_t index); |
| 2640 | 2646 |
| 2641 /** | 2647 /** |
| 2642 * Gets the property attributes of a property which can be None or | 2648 * Gets the property attributes of a property which can be None or |
| 2643 * any combination of ReadOnly, DontEnum and DontDelete. Returns | 2649 * any combination of ReadOnly, DontEnum and DontDelete. Returns |
| 2644 * None when the property doesn't exist. | 2650 * None when the property doesn't exist. |
| 2645 */ | 2651 */ |
| 2646 V8_DEPRECATE_SOON("Use maybe version", | 2652 V8_DEPRECATE_SOON("Use maybe version", |
| 2647 PropertyAttribute GetPropertyAttributes(Handle<Value> key)); | 2653 PropertyAttribute GetPropertyAttributes(Local<Value> key)); |
| 2648 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetPropertyAttributes( | 2654 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetPropertyAttributes( |
| 2649 Local<Context> context, Local<Value> key); | 2655 Local<Context> context, Local<Value> key); |
| 2650 | 2656 |
| 2651 /** | 2657 /** |
| 2652 * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3. | 2658 * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3. |
| 2653 */ | 2659 */ |
| 2654 V8_DEPRECATE_SOON("Use maybe version", | 2660 V8_DEPRECATE_SOON("Use maybe version", |
| 2655 Local<Value> GetOwnPropertyDescriptor(Local<String> key)); | 2661 Local<Value> GetOwnPropertyDescriptor(Local<String> key)); |
| 2656 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor( | 2662 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor( |
| 2657 Local<Context> context, Local<String> key); | 2663 Local<Context> context, Local<String> key); |
| 2658 | 2664 |
| 2659 V8_DEPRECATE_SOON("Use maybe version", bool Has(Handle<Value> key)); | 2665 V8_DEPRECATE_SOON("Use maybe version", bool Has(Local<Value> key)); |
| 2660 V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, | 2666 V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, |
| 2661 Local<Value> key); | 2667 Local<Value> key); |
| 2662 | 2668 |
| 2663 V8_DEPRECATE_SOON("Use maybe version", bool Delete(Handle<Value> key)); | 2669 V8_DEPRECATE_SOON("Use maybe version", bool Delete(Local<Value> key)); |
| 2664 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT | 2670 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT |
| 2665 Maybe<bool> Delete(Local<Context> context, Local<Value> key); | 2671 Maybe<bool> Delete(Local<Context> context, Local<Value> key); |
| 2666 | 2672 |
| 2667 V8_DEPRECATE_SOON("Use maybe version", bool Has(uint32_t index)); | 2673 V8_DEPRECATE_SOON("Use maybe version", bool Has(uint32_t index)); |
| 2668 V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index); | 2674 V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index); |
| 2669 | 2675 |
| 2670 V8_DEPRECATE_SOON("Use maybe version", bool Delete(uint32_t index)); | 2676 V8_DEPRECATE_SOON("Use maybe version", bool Delete(uint32_t index)); |
| 2671 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT | 2677 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT |
| 2672 Maybe<bool> Delete(Local<Context> context, uint32_t index); | 2678 Maybe<bool> Delete(Local<Context> context, uint32_t index); |
| 2673 | 2679 |
| 2674 V8_DEPRECATE_SOON("Use maybe version", | 2680 V8_DEPRECATE_SOON("Use maybe version", |
| 2675 bool SetAccessor(Handle<String> name, | 2681 bool SetAccessor(Local<String> name, |
| 2676 AccessorGetterCallback getter, | 2682 AccessorGetterCallback getter, |
| 2677 AccessorSetterCallback setter = 0, | 2683 AccessorSetterCallback setter = 0, |
| 2678 Handle<Value> data = Handle<Value>(), | 2684 Local<Value> data = Local<Value>(), |
| 2679 AccessControl settings = DEFAULT, | 2685 AccessControl settings = DEFAULT, |
| 2680 PropertyAttribute attribute = None)); | 2686 PropertyAttribute attribute = None)); |
| 2681 V8_DEPRECATE_SOON("Use maybe version", | 2687 V8_DEPRECATE_SOON("Use maybe version", |
| 2682 bool SetAccessor(Handle<Name> name, | 2688 bool SetAccessor(Local<Name> name, |
| 2683 AccessorNameGetterCallback getter, | 2689 AccessorNameGetterCallback getter, |
| 2684 AccessorNameSetterCallback setter = 0, | 2690 AccessorNameSetterCallback setter = 0, |
| 2685 Handle<Value> data = Handle<Value>(), | 2691 Local<Value> data = Local<Value>(), |
| 2686 AccessControl settings = DEFAULT, | 2692 AccessControl settings = DEFAULT, |
| 2687 PropertyAttribute attribute = None)); | 2693 PropertyAttribute attribute = None)); |
| 2688 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT | 2694 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT |
| 2689 Maybe<bool> SetAccessor(Local<Context> context, Local<Name> name, | 2695 Maybe<bool> SetAccessor(Local<Context> context, Local<Name> name, |
| 2690 AccessorNameGetterCallback getter, | 2696 AccessorNameGetterCallback getter, |
| 2691 AccessorNameSetterCallback setter = 0, | 2697 AccessorNameSetterCallback setter = 0, |
| 2692 MaybeLocal<Value> data = MaybeLocal<Value>(), | 2698 MaybeLocal<Value> data = MaybeLocal<Value>(), |
| 2693 AccessControl settings = DEFAULT, | 2699 AccessControl settings = DEFAULT, |
| 2694 PropertyAttribute attribute = None); | 2700 PropertyAttribute attribute = None); |
| 2695 | 2701 |
| 2696 void SetAccessorProperty(Local<Name> name, | 2702 void SetAccessorProperty(Local<Name> name, Local<Function> getter, |
| 2697 Local<Function> getter, | 2703 Local<Function> setter = Local<Function>(), |
| 2698 Handle<Function> setter = Handle<Function>(), | |
| 2699 PropertyAttribute attribute = None, | 2704 PropertyAttribute attribute = None, |
| 2700 AccessControl settings = DEFAULT); | 2705 AccessControl settings = DEFAULT); |
| 2701 | 2706 |
| 2702 /** | 2707 /** |
| 2703 * Returns an array containing the names of the enumerable properties | 2708 * Returns an array containing the names of the enumerable properties |
| 2704 * of this object, including properties from prototype objects. The | 2709 * of this object, including properties from prototype objects. The |
| 2705 * array returned by this method contains the same values as would | 2710 * array returned by this method contains the same values as would |
| 2706 * be enumerated by a for-in statement over this object. | 2711 * be enumerated by a for-in statement over this object. |
| 2707 */ | 2712 */ |
| 2708 V8_DEPRECATE_SOON("Use maybe version", Local<Array> GetPropertyNames()); | 2713 V8_DEPRECATE_SOON("Use maybe version", Local<Array> GetPropertyNames()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2724 * handler. | 2729 * handler. |
| 2725 */ | 2730 */ |
| 2726 Local<Value> GetPrototype(); | 2731 Local<Value> GetPrototype(); |
| 2727 | 2732 |
| 2728 /** | 2733 /** |
| 2729 * Set the prototype object. This does not skip objects marked to | 2734 * Set the prototype object. This does not skip objects marked to |
| 2730 * be skipped by __proto__ and it does not consult the security | 2735 * be skipped by __proto__ and it does not consult the security |
| 2731 * handler. | 2736 * handler. |
| 2732 */ | 2737 */ |
| 2733 V8_DEPRECATE_SOON("Use maybe version", | 2738 V8_DEPRECATE_SOON("Use maybe version", |
| 2734 bool SetPrototype(Handle<Value> prototype)); | 2739 bool SetPrototype(Local<Value> prototype)); |
| 2735 V8_WARN_UNUSED_RESULT Maybe<bool> SetPrototype(Local<Context> context, | 2740 V8_WARN_UNUSED_RESULT Maybe<bool> SetPrototype(Local<Context> context, |
| 2736 Local<Value> prototype); | 2741 Local<Value> prototype); |
| 2737 | 2742 |
| 2738 /** | 2743 /** |
| 2739 * Finds an instance of the given function template in the prototype | 2744 * Finds an instance of the given function template in the prototype |
| 2740 * chain. | 2745 * chain. |
| 2741 */ | 2746 */ |
| 2742 Local<Object> FindInstanceInPrototypeChain(Handle<FunctionTemplate> tmpl); | 2747 Local<Object> FindInstanceInPrototypeChain(Local<FunctionTemplate> tmpl); |
| 2743 | 2748 |
| 2744 /** | 2749 /** |
| 2745 * Call builtin Object.prototype.toString on this object. | 2750 * Call builtin Object.prototype.toString on this object. |
| 2746 * This is different from Value::ToString() that may call | 2751 * This is different from Value::ToString() that may call |
| 2747 * user-defined toString function. This one does not. | 2752 * user-defined toString function. This one does not. |
| 2748 */ | 2753 */ |
| 2749 V8_DEPRECATE_SOON("Use maybe version", Local<String> ObjectProtoToString()); | 2754 V8_DEPRECATE_SOON("Use maybe version", Local<String> ObjectProtoToString()); |
| 2750 V8_WARN_UNUSED_RESULT MaybeLocal<String> ObjectProtoToString( | 2755 V8_WARN_UNUSED_RESULT MaybeLocal<String> ObjectProtoToString( |
| 2751 Local<Context> context); | 2756 Local<Context> context); |
| 2752 | 2757 |
| 2753 /** | 2758 /** |
| 2754 * Returns the name of the function invoked as a constructor for this object. | 2759 * Returns the name of the function invoked as a constructor for this object. |
| 2755 */ | 2760 */ |
| 2756 Local<String> GetConstructorName(); | 2761 Local<String> GetConstructorName(); |
| 2757 | 2762 |
| 2758 /** Gets the number of internal fields for this Object. */ | 2763 /** Gets the number of internal fields for this Object. */ |
| 2759 int InternalFieldCount(); | 2764 int InternalFieldCount(); |
| 2760 | 2765 |
| 2761 /** Same as above, but works for Persistents */ | 2766 /** Same as above, but works for Persistents */ |
| 2762 V8_INLINE static int InternalFieldCount( | 2767 V8_INLINE static int InternalFieldCount( |
| 2763 const PersistentBase<Object>& object) { | 2768 const PersistentBase<Object>& object) { |
| 2764 return object.val_->InternalFieldCount(); | 2769 return object.val_->InternalFieldCount(); |
| 2765 } | 2770 } |
| 2766 | 2771 |
| 2767 /** Gets the value from an internal field. */ | 2772 /** Gets the value from an internal field. */ |
| 2768 V8_INLINE Local<Value> GetInternalField(int index); | 2773 V8_INLINE Local<Value> GetInternalField(int index); |
| 2769 | 2774 |
| 2770 /** Sets the value in an internal field. */ | 2775 /** Sets the value in an internal field. */ |
| 2771 void SetInternalField(int index, Handle<Value> value); | 2776 void SetInternalField(int index, Local<Value> value); |
| 2772 | 2777 |
| 2773 /** | 2778 /** |
| 2774 * Gets a 2-byte-aligned native pointer from an internal field. This field | 2779 * Gets a 2-byte-aligned native pointer from an internal field. This field |
| 2775 * must have been set by SetAlignedPointerInInternalField, everything else | 2780 * must have been set by SetAlignedPointerInInternalField, everything else |
| 2776 * leads to undefined behavior. | 2781 * leads to undefined behavior. |
| 2777 */ | 2782 */ |
| 2778 V8_INLINE void* GetAlignedPointerFromInternalField(int index); | 2783 V8_INLINE void* GetAlignedPointerFromInternalField(int index); |
| 2779 | 2784 |
| 2780 /** Same as above, but works for Persistents */ | 2785 /** Same as above, but works for Persistents */ |
| 2781 V8_INLINE static void* GetAlignedPointerFromInternalField( | 2786 V8_INLINE static void* GetAlignedPointerFromInternalField( |
| 2782 const PersistentBase<Object>& object, int index) { | 2787 const PersistentBase<Object>& object, int index) { |
| 2783 return object.val_->GetAlignedPointerFromInternalField(index); | 2788 return object.val_->GetAlignedPointerFromInternalField(index); |
| 2784 } | 2789 } |
| 2785 | 2790 |
| 2786 /** | 2791 /** |
| 2787 * Sets a 2-byte-aligned native pointer in an internal field. To retrieve such | 2792 * Sets a 2-byte-aligned native pointer in an internal field. To retrieve such |
| 2788 * a field, GetAlignedPointerFromInternalField must be used, everything else | 2793 * a field, GetAlignedPointerFromInternalField must be used, everything else |
| 2789 * leads to undefined behavior. | 2794 * leads to undefined behavior. |
| 2790 */ | 2795 */ |
| 2791 void SetAlignedPointerInInternalField(int index, void* value); | 2796 void SetAlignedPointerInInternalField(int index, void* value); |
| 2792 | 2797 |
| 2793 // Testers for local properties. | 2798 // Testers for local properties. |
| 2794 V8_DEPRECATE_SOON("Use maybe version", | 2799 V8_DEPRECATE_SOON("Use maybe version", |
| 2795 bool HasOwnProperty(Handle<String> key)); | 2800 bool HasOwnProperty(Local<String> key)); |
| 2796 V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty(Local<Context> context, | 2801 V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty(Local<Context> context, |
| 2797 Local<Name> key); | 2802 Local<Name> key); |
| 2798 V8_DEPRECATE_SOON("Use maybe version", | 2803 V8_DEPRECATE_SOON("Use maybe version", |
| 2799 bool HasRealNamedProperty(Handle<String> key)); | 2804 bool HasRealNamedProperty(Local<String> key)); |
| 2800 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedProperty(Local<Context> context, | 2805 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedProperty(Local<Context> context, |
| 2801 Local<Name> key); | 2806 Local<Name> key); |
| 2802 V8_DEPRECATE_SOON("Use maybe version", | 2807 V8_DEPRECATE_SOON("Use maybe version", |
| 2803 bool HasRealIndexedProperty(uint32_t index)); | 2808 bool HasRealIndexedProperty(uint32_t index)); |
| 2804 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealIndexedProperty( | 2809 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealIndexedProperty( |
| 2805 Local<Context> context, uint32_t index); | 2810 Local<Context> context, uint32_t index); |
| 2806 V8_DEPRECATE_SOON("Use maybe version", | 2811 V8_DEPRECATE_SOON("Use maybe version", |
| 2807 bool HasRealNamedCallbackProperty(Handle<String> key)); | 2812 bool HasRealNamedCallbackProperty(Local<String> key)); |
| 2808 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedCallbackProperty( | 2813 V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedCallbackProperty( |
| 2809 Local<Context> context, Local<Name> key); | 2814 Local<Context> context, Local<Name> key); |
| 2810 | 2815 |
| 2811 /** | 2816 /** |
| 2812 * If result.IsEmpty() no real property was located in the prototype chain. | 2817 * If result.IsEmpty() no real property was located in the prototype chain. |
| 2813 * This means interceptors in the prototype chain are not called. | 2818 * This means interceptors in the prototype chain are not called. |
| 2814 */ | 2819 */ |
| 2815 V8_DEPRECATE_SOON( | 2820 V8_DEPRECATE_SOON( |
| 2816 "Use maybe version", | 2821 "Use maybe version", |
| 2817 Local<Value> GetRealNamedPropertyInPrototypeChain(Handle<String> key)); | 2822 Local<Value> GetRealNamedPropertyInPrototypeChain(Local<String> key)); |
| 2818 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedPropertyInPrototypeChain( | 2823 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedPropertyInPrototypeChain( |
| 2819 Local<Context> context, Local<Name> key); | 2824 Local<Context> context, Local<Name> key); |
| 2820 | 2825 |
| 2821 /** | 2826 /** |
| 2822 * Gets the property attributes of a real property in the prototype chain, | 2827 * Gets the property attributes of a real property in the prototype chain, |
| 2823 * which can be None or any combination of ReadOnly, DontEnum and DontDelete. | 2828 * which can be None or any combination of ReadOnly, DontEnum and DontDelete. |
| 2824 * Interceptors in the prototype chain are not called. | 2829 * Interceptors in the prototype chain are not called. |
| 2825 */ | 2830 */ |
| 2826 V8_DEPRECATE_SOON( | 2831 V8_DEPRECATE_SOON( |
| 2827 "Use maybe version", | 2832 "Use maybe version", |
| 2828 Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain( | 2833 Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain( |
| 2829 Handle<String> key)); | 2834 Local<String> key)); |
| 2830 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> | 2835 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> |
| 2831 GetRealNamedPropertyAttributesInPrototypeChain(Local<Context> context, | 2836 GetRealNamedPropertyAttributesInPrototypeChain(Local<Context> context, |
| 2832 Local<Name> key); | 2837 Local<Name> key); |
| 2833 | 2838 |
| 2834 /** | 2839 /** |
| 2835 * If result.IsEmpty() no real property was located on the object or | 2840 * If result.IsEmpty() no real property was located on the object or |
| 2836 * in the prototype chain. | 2841 * in the prototype chain. |
| 2837 * This means interceptors in the prototype chain are not called. | 2842 * This means interceptors in the prototype chain are not called. |
| 2838 */ | 2843 */ |
| 2839 V8_DEPRECATE_SOON("Use maybe version", | 2844 V8_DEPRECATE_SOON("Use maybe version", |
| 2840 Local<Value> GetRealNamedProperty(Handle<String> key)); | 2845 Local<Value> GetRealNamedProperty(Local<String> key)); |
| 2841 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedProperty( | 2846 V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedProperty( |
| 2842 Local<Context> context, Local<Name> key); | 2847 Local<Context> context, Local<Name> key); |
| 2843 | 2848 |
| 2844 /** | 2849 /** |
| 2845 * Gets the property attributes of a real property which can be | 2850 * Gets the property attributes of a real property which can be |
| 2846 * None or any combination of ReadOnly, DontEnum and DontDelete. | 2851 * None or any combination of ReadOnly, DontEnum and DontDelete. |
| 2847 * Interceptors in the prototype chain are not called. | 2852 * Interceptors in the prototype chain are not called. |
| 2848 */ | 2853 */ |
| 2849 V8_DEPRECATE_SOON("Use maybe version", | 2854 V8_DEPRECATE_SOON("Use maybe version", |
| 2850 Maybe<PropertyAttribute> GetRealNamedPropertyAttributes( | 2855 Maybe<PropertyAttribute> GetRealNamedPropertyAttributes( |
| 2851 Handle<String> key)); | 2856 Local<String> key)); |
| 2852 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetRealNamedPropertyAttributes( | 2857 V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetRealNamedPropertyAttributes( |
| 2853 Local<Context> context, Local<Name> key); | 2858 Local<Context> context, Local<Name> key); |
| 2854 | 2859 |
| 2855 /** Tests for a named lookup interceptor.*/ | 2860 /** Tests for a named lookup interceptor.*/ |
| 2856 bool HasNamedLookupInterceptor(); | 2861 bool HasNamedLookupInterceptor(); |
| 2857 | 2862 |
| 2858 /** Tests for an index lookup interceptor.*/ | 2863 /** Tests for an index lookup interceptor.*/ |
| 2859 bool HasIndexedLookupInterceptor(); | 2864 bool HasIndexedLookupInterceptor(); |
| 2860 | 2865 |
| 2861 /** | 2866 /** |
| 2862 * Returns the identity hash for this object. The current implementation | 2867 * Returns the identity hash for this object. The current implementation |
| 2863 * uses a hidden property on the object to store the identity hash. | 2868 * uses a hidden property on the object to store the identity hash. |
| 2864 * | 2869 * |
| 2865 * The return value will never be 0. Also, it is not guaranteed to be | 2870 * The return value will never be 0. Also, it is not guaranteed to be |
| 2866 * unique. | 2871 * unique. |
| 2867 */ | 2872 */ |
| 2868 int GetIdentityHash(); | 2873 int GetIdentityHash(); |
| 2869 | 2874 |
| 2870 /** | 2875 /** |
| 2871 * Access hidden properties on JavaScript objects. These properties are | 2876 * Access hidden properties on JavaScript objects. These properties are |
| 2872 * hidden from the executing JavaScript and only accessible through the V8 | 2877 * hidden from the executing JavaScript and only accessible through the V8 |
| 2873 * C++ API. Hidden properties introduced by V8 internally (for example the | 2878 * C++ API. Hidden properties introduced by V8 internally (for example the |
| 2874 * identity hash) are prefixed with "v8::". | 2879 * identity hash) are prefixed with "v8::". |
| 2875 */ | 2880 */ |
| 2876 // TODO(dcarney): convert these to take a isolate and optionally bailout? | 2881 // TODO(dcarney): convert these to take a isolate and optionally bailout? |
| 2877 bool SetHiddenValue(Handle<String> key, Handle<Value> value); | 2882 bool SetHiddenValue(Local<String> key, Local<Value> value); |
| 2878 Local<Value> GetHiddenValue(Handle<String> key); | 2883 Local<Value> GetHiddenValue(Local<String> key); |
| 2879 bool DeleteHiddenValue(Handle<String> key); | 2884 bool DeleteHiddenValue(Local<String> key); |
| 2880 | 2885 |
| 2881 /** | 2886 /** |
| 2882 * Clone this object with a fast but shallow copy. Values will point | 2887 * Clone this object with a fast but shallow copy. Values will point |
| 2883 * to the same values as the original object. | 2888 * to the same values as the original object. |
| 2884 */ | 2889 */ |
| 2885 // TODO(dcarney): take an isolate and optionally bail out? | 2890 // TODO(dcarney): take an isolate and optionally bail out? |
| 2886 Local<Object> Clone(); | 2891 Local<Object> Clone(); |
| 2887 | 2892 |
| 2888 /** | 2893 /** |
| 2889 * Returns the context in which the object was created. | 2894 * Returns the context in which the object was created. |
| 2890 */ | 2895 */ |
| 2891 Local<Context> CreationContext(); | 2896 Local<Context> CreationContext(); |
| 2892 | 2897 |
| 2893 /** | 2898 /** |
| 2894 * Checks whether a callback is set by the | 2899 * Checks whether a callback is set by the |
| 2895 * ObjectTemplate::SetCallAsFunctionHandler method. | 2900 * ObjectTemplate::SetCallAsFunctionHandler method. |
| 2896 * When an Object is callable this method returns true. | 2901 * When an Object is callable this method returns true. |
| 2897 */ | 2902 */ |
| 2898 bool IsCallable(); | 2903 bool IsCallable(); |
| 2899 | 2904 |
| 2900 /** | 2905 /** |
| 2901 * Call an Object as a function if a callback is set by the | 2906 * Call an Object as a function if a callback is set by the |
| 2902 * ObjectTemplate::SetCallAsFunctionHandler method. | 2907 * ObjectTemplate::SetCallAsFunctionHandler method. |
| 2903 */ | 2908 */ |
| 2904 V8_DEPRECATE_SOON("Use maybe version", | 2909 V8_DEPRECATE_SOON("Use maybe version", |
| 2905 Local<Value> CallAsFunction(Handle<Value> recv, int argc, | 2910 Local<Value> CallAsFunction(Local<Value> recv, int argc, |
| 2906 Handle<Value> argv[])); | 2911 Local<Value> argv[])); |
| 2907 V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsFunction(Local<Context> context, | 2912 V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsFunction(Local<Context> context, |
| 2908 Handle<Value> recv, | 2913 Local<Value> recv, |
| 2909 int argc, | 2914 int argc, |
| 2910 Handle<Value> argv[]); | 2915 Local<Value> argv[]); |
| 2911 | 2916 |
| 2912 /** | 2917 /** |
| 2913 * Call an Object as a constructor if a callback is set by the | 2918 * Call an Object as a constructor if a callback is set by the |
| 2914 * ObjectTemplate::SetCallAsFunctionHandler method. | 2919 * ObjectTemplate::SetCallAsFunctionHandler method. |
| 2915 * Note: This method behaves like the Function::NewInstance method. | 2920 * Note: This method behaves like the Function::NewInstance method. |
| 2916 */ | 2921 */ |
| 2917 V8_DEPRECATE_SOON("Use maybe version", | 2922 V8_DEPRECATE_SOON("Use maybe version", |
| 2918 Local<Value> CallAsConstructor(int argc, | 2923 Local<Value> CallAsConstructor(int argc, |
| 2919 Handle<Value> argv[])); | 2924 Local<Value> argv[])); |
| 2920 V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsConstructor( | 2925 V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsConstructor( |
| 2921 Local<Context> context, int argc, Local<Value> argv[]); | 2926 Local<Context> context, int argc, Local<Value> argv[]); |
| 2922 | 2927 |
| 2923 /** | 2928 /** |
| 2924 * Return the isolate to which the Object belongs to. | 2929 * Return the isolate to which the Object belongs to. |
| 2925 */ | 2930 */ |
| 2926 V8_DEPRECATE_SOON("Keep track of isolate correctly", Isolate* GetIsolate()); | 2931 V8_DEPRECATE_SOON("Keep track of isolate correctly", Isolate* GetIsolate()); |
| 2927 | 2932 |
| 2928 static Local<Object> New(Isolate* isolate); | 2933 static Local<Object> New(Isolate* isolate); |
| 2929 | 2934 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3049 }; | 3054 }; |
| 3050 | 3055 |
| 3051 | 3056 |
| 3052 template<typename T> | 3057 template<typename T> |
| 3053 class ReturnValue { | 3058 class ReturnValue { |
| 3054 public: | 3059 public: |
| 3055 template <class S> V8_INLINE ReturnValue(const ReturnValue<S>& that) | 3060 template <class S> V8_INLINE ReturnValue(const ReturnValue<S>& that) |
| 3056 : value_(that.value_) { | 3061 : value_(that.value_) { |
| 3057 TYPE_CHECK(T, S); | 3062 TYPE_CHECK(T, S); |
| 3058 } | 3063 } |
| 3059 // Handle setters | 3064 // Local setters |
| 3060 template <typename S> | 3065 template <typename S> |
| 3061 V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", | 3066 V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", |
| 3062 void Set(const Persistent<S>& handle)); | 3067 void Set(const Persistent<S>& handle)); |
| 3063 template <typename S> | 3068 template <typename S> |
| 3064 V8_INLINE void Set(const Global<S>& handle); | 3069 V8_INLINE void Set(const Global<S>& handle); |
| 3065 template <typename S> | 3070 template <typename S> |
| 3066 V8_INLINE void Set(const Local<S> handle); | 3071 V8_INLINE void Set(const Local<S> handle); |
| 3067 // Fast primitive setters | 3072 // Fast primitive setters |
| 3068 V8_INLINE void Set(bool value); | 3073 V8_INLINE void Set(bool value); |
| 3069 V8_INLINE void Set(double i); | 3074 V8_INLINE void Set(double i); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3182 static MaybeLocal<Function> New(Local<Context> context, | 3187 static MaybeLocal<Function> New(Local<Context> context, |
| 3183 FunctionCallback callback, | 3188 FunctionCallback callback, |
| 3184 Local<Value> data = Local<Value>(), | 3189 Local<Value> data = Local<Value>(), |
| 3185 int length = 0); | 3190 int length = 0); |
| 3186 static V8_DEPRECATE_SOON( | 3191 static V8_DEPRECATE_SOON( |
| 3187 "Use maybe version", | 3192 "Use maybe version", |
| 3188 Local<Function> New(Isolate* isolate, FunctionCallback callback, | 3193 Local<Function> New(Isolate* isolate, FunctionCallback callback, |
| 3189 Local<Value> data = Local<Value>(), int length = 0)); | 3194 Local<Value> data = Local<Value>(), int length = 0)); |
| 3190 | 3195 |
| 3191 V8_DEPRECATE_SOON("Use maybe version", | 3196 V8_DEPRECATE_SOON("Use maybe version", |
| 3192 Local<Object> NewInstance(int argc, Handle<Value> argv[]) | 3197 Local<Object> NewInstance(int argc, Local<Value> argv[]) |
| 3193 const); | 3198 const); |
| 3194 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance( | 3199 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance( |
| 3195 Local<Context> context, int argc, Handle<Value> argv[]) const; | 3200 Local<Context> context, int argc, Local<Value> argv[]) const; |
| 3196 | 3201 |
| 3197 V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance() const); | 3202 V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance() const); |
| 3198 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance( | 3203 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance( |
| 3199 Local<Context> context) const { | 3204 Local<Context> context) const { |
| 3200 return NewInstance(context, 0, nullptr); | 3205 return NewInstance(context, 0, nullptr); |
| 3201 } | 3206 } |
| 3202 | 3207 |
| 3203 V8_DEPRECATE_SOON("Use maybe version", | 3208 V8_DEPRECATE_SOON("Use maybe version", |
| 3204 Local<Value> Call(Handle<Value> recv, int argc, | 3209 Local<Value> Call(Local<Value> recv, int argc, |
| 3205 Handle<Value> argv[])); | 3210 Local<Value> argv[])); |
| 3206 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context, | 3211 V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context, |
| 3207 Handle<Value> recv, int argc, | 3212 Local<Value> recv, int argc, |
| 3208 Handle<Value> argv[]); | 3213 Local<Value> argv[]); |
| 3209 | 3214 |
| 3210 void SetName(Handle<String> name); | 3215 void SetName(Local<String> name); |
| 3211 Handle<Value> GetName() const; | 3216 Local<Value> GetName() const; |
| 3212 | 3217 |
| 3213 /** | 3218 /** |
| 3214 * Name inferred from variable or property assignment of this function. | 3219 * Name inferred from variable or property assignment of this function. |
| 3215 * Used to facilitate debugging and profiling of JavaScript code written | 3220 * Used to facilitate debugging and profiling of JavaScript code written |
| 3216 * in an OO style, where many functions are anonymous but are assigned | 3221 * in an OO style, where many functions are anonymous but are assigned |
| 3217 * to object properties. | 3222 * to object properties. |
| 3218 */ | 3223 */ |
| 3219 Handle<Value> GetInferredName() const; | 3224 Local<Value> GetInferredName() const; |
| 3220 | 3225 |
| 3221 /** | 3226 /** |
| 3222 * User-defined name assigned to the "displayName" property of this function. | 3227 * User-defined name assigned to the "displayName" property of this function. |
| 3223 * Used to facilitate debugging and profiling of JavaScript code. | 3228 * Used to facilitate debugging and profiling of JavaScript code. |
| 3224 */ | 3229 */ |
| 3225 Handle<Value> GetDisplayName() const; | 3230 Local<Value> GetDisplayName() const; |
| 3226 | 3231 |
| 3227 /** | 3232 /** |
| 3228 * Returns zero based line number of function body and | 3233 * Returns zero based line number of function body and |
| 3229 * kLineOffsetNotFound if no information available. | 3234 * kLineOffsetNotFound if no information available. |
| 3230 */ | 3235 */ |
| 3231 int GetScriptLineNumber() const; | 3236 int GetScriptLineNumber() const; |
| 3232 /** | 3237 /** |
| 3233 * Returns zero based column number of function body and | 3238 * Returns zero based column number of function body and |
| 3234 * kLineOffsetNotFound if no information available. | 3239 * kLineOffsetNotFound if no information available. |
| 3235 */ | 3240 */ |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3279 | 3284 |
| 3280 /** | 3285 /** |
| 3281 * Extract the associated promise. | 3286 * Extract the associated promise. |
| 3282 */ | 3287 */ |
| 3283 Local<Promise> GetPromise(); | 3288 Local<Promise> GetPromise(); |
| 3284 | 3289 |
| 3285 /** | 3290 /** |
| 3286 * Resolve/reject the associated promise with a given value. | 3291 * Resolve/reject the associated promise with a given value. |
| 3287 * Ignored if the promise is no longer pending. | 3292 * Ignored if the promise is no longer pending. |
| 3288 */ | 3293 */ |
| 3289 V8_DEPRECATE_SOON("Use maybe version", void Resolve(Handle<Value> value)); | 3294 V8_DEPRECATE_SOON("Use maybe version", void Resolve(Local<Value> value)); |
| 3290 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT | 3295 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT |
| 3291 Maybe<bool> Resolve(Local<Context> context, Handle<Value> value); | 3296 Maybe<bool> Resolve(Local<Context> context, Local<Value> value); |
| 3292 | 3297 |
| 3293 V8_DEPRECATE_SOON("Use maybe version", void Reject(Handle<Value> value)); | 3298 V8_DEPRECATE_SOON("Use maybe version", void Reject(Local<Value> value)); |
| 3294 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT | 3299 // TODO(dcarney): mark V8_WARN_UNUSED_RESULT |
| 3295 Maybe<bool> Reject(Local<Context> context, Handle<Value> value); | 3300 Maybe<bool> Reject(Local<Context> context, Local<Value> value); |
| 3296 | 3301 |
| 3297 V8_INLINE static Resolver* Cast(Value* obj); | 3302 V8_INLINE static Resolver* Cast(Value* obj); |
| 3298 | 3303 |
| 3299 private: | 3304 private: |
| 3300 Resolver(); | 3305 Resolver(); |
| 3301 static void CheckCast(Value* obj); | 3306 static void CheckCast(Value* obj); |
| 3302 }; | 3307 }; |
| 3303 | 3308 |
| 3304 /** | 3309 /** |
| 3305 * Register a resolution/rejection handler with a promise. | 3310 * Register a resolution/rejection handler with a promise. |
| 3306 * The handler is given the respective resolution/rejection value as | 3311 * The handler is given the respective resolution/rejection value as |
| 3307 * an argument. If the promise is already resolved/rejected, the handler is | 3312 * an argument. If the promise is already resolved/rejected, the handler is |
| 3308 * invoked at the end of turn. | 3313 * invoked at the end of turn. |
| 3309 */ | 3314 */ |
| 3310 V8_DEPRECATE_SOON("Use maybe version", | 3315 V8_DEPRECATE_SOON("Use maybe version", |
| 3311 Local<Promise> Chain(Handle<Function> handler)); | 3316 Local<Promise> Chain(Local<Function> handler)); |
| 3312 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Chain(Local<Context> context, | 3317 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Chain(Local<Context> context, |
| 3313 Handle<Function> handler); | 3318 Local<Function> handler); |
| 3314 | 3319 |
| 3315 V8_DEPRECATE_SOON("Use maybe version", | 3320 V8_DEPRECATE_SOON("Use maybe version", |
| 3316 Local<Promise> Catch(Handle<Function> handler)); | 3321 Local<Promise> Catch(Local<Function> handler)); |
| 3317 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Catch(Local<Context> context, | 3322 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Catch(Local<Context> context, |
| 3318 Handle<Function> handler); | 3323 Local<Function> handler); |
| 3319 | 3324 |
| 3320 V8_DEPRECATE_SOON("Use maybe version", | 3325 V8_DEPRECATE_SOON("Use maybe version", |
| 3321 Local<Promise> Then(Handle<Function> handler)); | 3326 Local<Promise> Then(Local<Function> handler)); |
| 3322 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Then(Local<Context> context, | 3327 V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Then(Local<Context> context, |
| 3323 Handle<Function> handler); | 3328 Local<Function> handler); |
| 3324 | 3329 |
| 3325 /** | 3330 /** |
| 3326 * Returns true if the promise has at least one derived promise, and | 3331 * Returns true if the promise has at least one derived promise, and |
| 3327 * therefore resolve/reject handlers (including default handler). | 3332 * therefore resolve/reject handlers (including default handler). |
| 3328 */ | 3333 */ |
| 3329 bool HasHandler(); | 3334 bool HasHandler(); |
| 3330 | 3335 |
| 3331 V8_INLINE static Promise* Cast(Value* obj); | 3336 V8_INLINE static Promise* Cast(Value* obj); |
| 3332 | 3337 |
| 3333 private: | 3338 private: |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3555 static void CheckCast(Value* obj); | 3560 static void CheckCast(Value* obj); |
| 3556 }; | 3561 }; |
| 3557 | 3562 |
| 3558 | 3563 |
| 3559 /** | 3564 /** |
| 3560 * An instance of Uint8Array constructor (ES6 draft 15.13.6). | 3565 * An instance of Uint8Array constructor (ES6 draft 15.13.6). |
| 3561 * This API is experimental and may change significantly. | 3566 * This API is experimental and may change significantly. |
| 3562 */ | 3567 */ |
| 3563 class V8_EXPORT Uint8Array : public TypedArray { | 3568 class V8_EXPORT Uint8Array : public TypedArray { |
| 3564 public: | 3569 public: |
| 3565 static Local<Uint8Array> New(Handle<ArrayBuffer> array_buffer, | 3570 static Local<Uint8Array> New(Local<ArrayBuffer> array_buffer, |
| 3566 size_t byte_offset, size_t length); | 3571 size_t byte_offset, size_t length); |
| 3567 static Local<Uint8Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3572 static Local<Uint8Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3568 size_t byte_offset, size_t length); | 3573 size_t byte_offset, size_t length); |
| 3569 V8_INLINE static Uint8Array* Cast(Value* obj); | 3574 V8_INLINE static Uint8Array* Cast(Value* obj); |
| 3570 | 3575 |
| 3571 private: | 3576 private: |
| 3572 Uint8Array(); | 3577 Uint8Array(); |
| 3573 static void CheckCast(Value* obj); | 3578 static void CheckCast(Value* obj); |
| 3574 }; | 3579 }; |
| 3575 | 3580 |
| 3576 | 3581 |
| 3577 /** | 3582 /** |
| 3578 * An instance of Uint8ClampedArray constructor (ES6 draft 15.13.6). | 3583 * An instance of Uint8ClampedArray constructor (ES6 draft 15.13.6). |
| 3579 * This API is experimental and may change significantly. | 3584 * This API is experimental and may change significantly. |
| 3580 */ | 3585 */ |
| 3581 class V8_EXPORT Uint8ClampedArray : public TypedArray { | 3586 class V8_EXPORT Uint8ClampedArray : public TypedArray { |
| 3582 public: | 3587 public: |
| 3583 static Local<Uint8ClampedArray> New(Handle<ArrayBuffer> array_buffer, | 3588 static Local<Uint8ClampedArray> New(Local<ArrayBuffer> array_buffer, |
| 3584 size_t byte_offset, size_t length); | 3589 size_t byte_offset, size_t length); |
| 3585 static Local<Uint8ClampedArray> New( | 3590 static Local<Uint8ClampedArray> New( |
| 3586 Handle<SharedArrayBuffer> shared_array_buffer, size_t byte_offset, | 3591 Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset, |
| 3587 size_t length); | 3592 size_t length); |
| 3588 V8_INLINE static Uint8ClampedArray* Cast(Value* obj); | 3593 V8_INLINE static Uint8ClampedArray* Cast(Value* obj); |
| 3589 | 3594 |
| 3590 private: | 3595 private: |
| 3591 Uint8ClampedArray(); | 3596 Uint8ClampedArray(); |
| 3592 static void CheckCast(Value* obj); | 3597 static void CheckCast(Value* obj); |
| 3593 }; | 3598 }; |
| 3594 | 3599 |
| 3595 /** | 3600 /** |
| 3596 * An instance of Int8Array constructor (ES6 draft 15.13.6). | 3601 * An instance of Int8Array constructor (ES6 draft 15.13.6). |
| 3597 * This API is experimental and may change significantly. | 3602 * This API is experimental and may change significantly. |
| 3598 */ | 3603 */ |
| 3599 class V8_EXPORT Int8Array : public TypedArray { | 3604 class V8_EXPORT Int8Array : public TypedArray { |
| 3600 public: | 3605 public: |
| 3601 static Local<Int8Array> New(Handle<ArrayBuffer> array_buffer, | 3606 static Local<Int8Array> New(Local<ArrayBuffer> array_buffer, |
| 3602 size_t byte_offset, size_t length); | 3607 size_t byte_offset, size_t length); |
| 3603 static Local<Int8Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3608 static Local<Int8Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3604 size_t byte_offset, size_t length); | 3609 size_t byte_offset, size_t length); |
| 3605 V8_INLINE static Int8Array* Cast(Value* obj); | 3610 V8_INLINE static Int8Array* Cast(Value* obj); |
| 3606 | 3611 |
| 3607 private: | 3612 private: |
| 3608 Int8Array(); | 3613 Int8Array(); |
| 3609 static void CheckCast(Value* obj); | 3614 static void CheckCast(Value* obj); |
| 3610 }; | 3615 }; |
| 3611 | 3616 |
| 3612 | 3617 |
| 3613 /** | 3618 /** |
| 3614 * An instance of Uint16Array constructor (ES6 draft 15.13.6). | 3619 * An instance of Uint16Array constructor (ES6 draft 15.13.6). |
| 3615 * This API is experimental and may change significantly. | 3620 * This API is experimental and may change significantly. |
| 3616 */ | 3621 */ |
| 3617 class V8_EXPORT Uint16Array : public TypedArray { | 3622 class V8_EXPORT Uint16Array : public TypedArray { |
| 3618 public: | 3623 public: |
| 3619 static Local<Uint16Array> New(Handle<ArrayBuffer> array_buffer, | 3624 static Local<Uint16Array> New(Local<ArrayBuffer> array_buffer, |
| 3620 size_t byte_offset, size_t length); | 3625 size_t byte_offset, size_t length); |
| 3621 static Local<Uint16Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3626 static Local<Uint16Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3622 size_t byte_offset, size_t length); | 3627 size_t byte_offset, size_t length); |
| 3623 V8_INLINE static Uint16Array* Cast(Value* obj); | 3628 V8_INLINE static Uint16Array* Cast(Value* obj); |
| 3624 | 3629 |
| 3625 private: | 3630 private: |
| 3626 Uint16Array(); | 3631 Uint16Array(); |
| 3627 static void CheckCast(Value* obj); | 3632 static void CheckCast(Value* obj); |
| 3628 }; | 3633 }; |
| 3629 | 3634 |
| 3630 | 3635 |
| 3631 /** | 3636 /** |
| 3632 * An instance of Int16Array constructor (ES6 draft 15.13.6). | 3637 * An instance of Int16Array constructor (ES6 draft 15.13.6). |
| 3633 * This API is experimental and may change significantly. | 3638 * This API is experimental and may change significantly. |
| 3634 */ | 3639 */ |
| 3635 class V8_EXPORT Int16Array : public TypedArray { | 3640 class V8_EXPORT Int16Array : public TypedArray { |
| 3636 public: | 3641 public: |
| 3637 static Local<Int16Array> New(Handle<ArrayBuffer> array_buffer, | 3642 static Local<Int16Array> New(Local<ArrayBuffer> array_buffer, |
| 3638 size_t byte_offset, size_t length); | 3643 size_t byte_offset, size_t length); |
| 3639 static Local<Int16Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3644 static Local<Int16Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3640 size_t byte_offset, size_t length); | 3645 size_t byte_offset, size_t length); |
| 3641 V8_INLINE static Int16Array* Cast(Value* obj); | 3646 V8_INLINE static Int16Array* Cast(Value* obj); |
| 3642 | 3647 |
| 3643 private: | 3648 private: |
| 3644 Int16Array(); | 3649 Int16Array(); |
| 3645 static void CheckCast(Value* obj); | 3650 static void CheckCast(Value* obj); |
| 3646 }; | 3651 }; |
| 3647 | 3652 |
| 3648 | 3653 |
| 3649 /** | 3654 /** |
| 3650 * An instance of Uint32Array constructor (ES6 draft 15.13.6). | 3655 * An instance of Uint32Array constructor (ES6 draft 15.13.6). |
| 3651 * This API is experimental and may change significantly. | 3656 * This API is experimental and may change significantly. |
| 3652 */ | 3657 */ |
| 3653 class V8_EXPORT Uint32Array : public TypedArray { | 3658 class V8_EXPORT Uint32Array : public TypedArray { |
| 3654 public: | 3659 public: |
| 3655 static Local<Uint32Array> New(Handle<ArrayBuffer> array_buffer, | 3660 static Local<Uint32Array> New(Local<ArrayBuffer> array_buffer, |
| 3656 size_t byte_offset, size_t length); | 3661 size_t byte_offset, size_t length); |
| 3657 static Local<Uint32Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3662 static Local<Uint32Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3658 size_t byte_offset, size_t length); | 3663 size_t byte_offset, size_t length); |
| 3659 V8_INLINE static Uint32Array* Cast(Value* obj); | 3664 V8_INLINE static Uint32Array* Cast(Value* obj); |
| 3660 | 3665 |
| 3661 private: | 3666 private: |
| 3662 Uint32Array(); | 3667 Uint32Array(); |
| 3663 static void CheckCast(Value* obj); | 3668 static void CheckCast(Value* obj); |
| 3664 }; | 3669 }; |
| 3665 | 3670 |
| 3666 | 3671 |
| 3667 /** | 3672 /** |
| 3668 * An instance of Int32Array constructor (ES6 draft 15.13.6). | 3673 * An instance of Int32Array constructor (ES6 draft 15.13.6). |
| 3669 * This API is experimental and may change significantly. | 3674 * This API is experimental and may change significantly. |
| 3670 */ | 3675 */ |
| 3671 class V8_EXPORT Int32Array : public TypedArray { | 3676 class V8_EXPORT Int32Array : public TypedArray { |
| 3672 public: | 3677 public: |
| 3673 static Local<Int32Array> New(Handle<ArrayBuffer> array_buffer, | 3678 static Local<Int32Array> New(Local<ArrayBuffer> array_buffer, |
| 3674 size_t byte_offset, size_t length); | 3679 size_t byte_offset, size_t length); |
| 3675 static Local<Int32Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3680 static Local<Int32Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3676 size_t byte_offset, size_t length); | 3681 size_t byte_offset, size_t length); |
| 3677 V8_INLINE static Int32Array* Cast(Value* obj); | 3682 V8_INLINE static Int32Array* Cast(Value* obj); |
| 3678 | 3683 |
| 3679 private: | 3684 private: |
| 3680 Int32Array(); | 3685 Int32Array(); |
| 3681 static void CheckCast(Value* obj); | 3686 static void CheckCast(Value* obj); |
| 3682 }; | 3687 }; |
| 3683 | 3688 |
| 3684 | 3689 |
| 3685 /** | 3690 /** |
| 3686 * An instance of Float32Array constructor (ES6 draft 15.13.6). | 3691 * An instance of Float32Array constructor (ES6 draft 15.13.6). |
| 3687 * This API is experimental and may change significantly. | 3692 * This API is experimental and may change significantly. |
| 3688 */ | 3693 */ |
| 3689 class V8_EXPORT Float32Array : public TypedArray { | 3694 class V8_EXPORT Float32Array : public TypedArray { |
| 3690 public: | 3695 public: |
| 3691 static Local<Float32Array> New(Handle<ArrayBuffer> array_buffer, | 3696 static Local<Float32Array> New(Local<ArrayBuffer> array_buffer, |
| 3692 size_t byte_offset, size_t length); | 3697 size_t byte_offset, size_t length); |
| 3693 static Local<Float32Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3698 static Local<Float32Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3694 size_t byte_offset, size_t length); | 3699 size_t byte_offset, size_t length); |
| 3695 V8_INLINE static Float32Array* Cast(Value* obj); | 3700 V8_INLINE static Float32Array* Cast(Value* obj); |
| 3696 | 3701 |
| 3697 private: | 3702 private: |
| 3698 Float32Array(); | 3703 Float32Array(); |
| 3699 static void CheckCast(Value* obj); | 3704 static void CheckCast(Value* obj); |
| 3700 }; | 3705 }; |
| 3701 | 3706 |
| 3702 | 3707 |
| 3703 /** | 3708 /** |
| 3704 * An instance of Float64Array constructor (ES6 draft 15.13.6). | 3709 * An instance of Float64Array constructor (ES6 draft 15.13.6). |
| 3705 * This API is experimental and may change significantly. | 3710 * This API is experimental and may change significantly. |
| 3706 */ | 3711 */ |
| 3707 class V8_EXPORT Float64Array : public TypedArray { | 3712 class V8_EXPORT Float64Array : public TypedArray { |
| 3708 public: | 3713 public: |
| 3709 static Local<Float64Array> New(Handle<ArrayBuffer> array_buffer, | 3714 static Local<Float64Array> New(Local<ArrayBuffer> array_buffer, |
| 3710 size_t byte_offset, size_t length); | 3715 size_t byte_offset, size_t length); |
| 3711 static Local<Float64Array> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3716 static Local<Float64Array> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3712 size_t byte_offset, size_t length); | 3717 size_t byte_offset, size_t length); |
| 3713 V8_INLINE static Float64Array* Cast(Value* obj); | 3718 V8_INLINE static Float64Array* Cast(Value* obj); |
| 3714 | 3719 |
| 3715 private: | 3720 private: |
| 3716 Float64Array(); | 3721 Float64Array(); |
| 3717 static void CheckCast(Value* obj); | 3722 static void CheckCast(Value* obj); |
| 3718 }; | 3723 }; |
| 3719 | 3724 |
| 3720 | 3725 |
| 3721 /** | 3726 /** |
| 3722 * An instance of DataView constructor (ES6 draft 15.13.7). | 3727 * An instance of DataView constructor (ES6 draft 15.13.7). |
| 3723 * This API is experimental and may change significantly. | 3728 * This API is experimental and may change significantly. |
| 3724 */ | 3729 */ |
| 3725 class V8_EXPORT DataView : public ArrayBufferView { | 3730 class V8_EXPORT DataView : public ArrayBufferView { |
| 3726 public: | 3731 public: |
| 3727 static Local<DataView> New(Handle<ArrayBuffer> array_buffer, | 3732 static Local<DataView> New(Local<ArrayBuffer> array_buffer, |
| 3728 size_t byte_offset, size_t length); | 3733 size_t byte_offset, size_t length); |
| 3729 static Local<DataView> New(Handle<SharedArrayBuffer> shared_array_buffer, | 3734 static Local<DataView> New(Local<SharedArrayBuffer> shared_array_buffer, |
| 3730 size_t byte_offset, size_t length); | 3735 size_t byte_offset, size_t length); |
| 3731 V8_INLINE static DataView* Cast(Value* obj); | 3736 V8_INLINE static DataView* Cast(Value* obj); |
| 3732 | 3737 |
| 3733 private: | 3738 private: |
| 3734 DataView(); | 3739 DataView(); |
| 3735 static void CheckCast(Value* obj); | 3740 static void CheckCast(Value* obj); |
| 3736 }; | 3741 }; |
| 3737 | 3742 |
| 3738 | 3743 |
| 3739 /** | 3744 /** |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3902 private: | 3907 private: |
| 3903 static void CheckCast(v8::Value* obj); | 3908 static void CheckCast(v8::Value* obj); |
| 3904 }; | 3909 }; |
| 3905 | 3910 |
| 3906 | 3911 |
| 3907 /** | 3912 /** |
| 3908 * A String object (ECMA-262, 4.3.18). | 3913 * A String object (ECMA-262, 4.3.18). |
| 3909 */ | 3914 */ |
| 3910 class V8_EXPORT StringObject : public Object { | 3915 class V8_EXPORT StringObject : public Object { |
| 3911 public: | 3916 public: |
| 3912 static Local<Value> New(Handle<String> value); | 3917 static Local<Value> New(Local<String> value); |
| 3913 | 3918 |
| 3914 Local<String> ValueOf() const; | 3919 Local<String> ValueOf() const; |
| 3915 | 3920 |
| 3916 V8_INLINE static StringObject* Cast(v8::Value* obj); | 3921 V8_INLINE static StringObject* Cast(v8::Value* obj); |
| 3917 | 3922 |
| 3918 private: | 3923 private: |
| 3919 static void CheckCast(v8::Value* obj); | 3924 static void CheckCast(v8::Value* obj); |
| 3920 }; | 3925 }; |
| 3921 | 3926 |
| 3922 | 3927 |
| 3923 /** | 3928 /** |
| 3924 * A Symbol object (ECMA-262 edition 6). | 3929 * A Symbol object (ECMA-262 edition 6). |
| 3925 * | 3930 * |
| 3926 * This is an experimental feature. Use at your own risk. | 3931 * This is an experimental feature. Use at your own risk. |
| 3927 */ | 3932 */ |
| 3928 class V8_EXPORT SymbolObject : public Object { | 3933 class V8_EXPORT SymbolObject : public Object { |
| 3929 public: | 3934 public: |
| 3930 static Local<Value> New(Isolate* isolate, Handle<Symbol> value); | 3935 static Local<Value> New(Isolate* isolate, Local<Symbol> value); |
| 3931 | 3936 |
| 3932 Local<Symbol> ValueOf() const; | 3937 Local<Symbol> ValueOf() const; |
| 3933 | 3938 |
| 3934 V8_INLINE static SymbolObject* Cast(v8::Value* obj); | 3939 V8_INLINE static SymbolObject* Cast(v8::Value* obj); |
| 3935 | 3940 |
| 3936 private: | 3941 private: |
| 3937 static void CheckCast(v8::Value* obj); | 3942 static void CheckCast(v8::Value* obj); |
| 3938 }; | 3943 }; |
| 3939 | 3944 |
| 3940 | 3945 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3958 * Creates a regular expression from the given pattern string and | 3963 * Creates a regular expression from the given pattern string and |
| 3959 * the flags bit field. May throw a JavaScript exception as | 3964 * the flags bit field. May throw a JavaScript exception as |
| 3960 * described in ECMA-262, 15.10.4.1. | 3965 * described in ECMA-262, 15.10.4.1. |
| 3961 * | 3966 * |
| 3962 * For example, | 3967 * For example, |
| 3963 * RegExp::New(v8::String::New("foo"), | 3968 * RegExp::New(v8::String::New("foo"), |
| 3964 * static_cast<RegExp::Flags>(kGlobal | kMultiline)) | 3969 * static_cast<RegExp::Flags>(kGlobal | kMultiline)) |
| 3965 * is equivalent to evaluating "/foo/gm". | 3970 * is equivalent to evaluating "/foo/gm". |
| 3966 */ | 3971 */ |
| 3967 static V8_DEPRECATE_SOON("Use maybe version", | 3972 static V8_DEPRECATE_SOON("Use maybe version", |
| 3968 Local<RegExp> New(Handle<String> pattern, | 3973 Local<RegExp> New(Local<String> pattern, |
| 3969 Flags flags)); | 3974 Flags flags)); |
| 3970 static V8_WARN_UNUSED_RESULT MaybeLocal<RegExp> New(Local<Context> context, | 3975 static V8_WARN_UNUSED_RESULT MaybeLocal<RegExp> New(Local<Context> context, |
| 3971 Handle<String> pattern, | 3976 Local<String> pattern, |
| 3972 Flags flags); | 3977 Flags flags); |
| 3973 | 3978 |
| 3974 /** | 3979 /** |
| 3975 * Returns the value of the source property: a string representing | 3980 * Returns the value of the source property: a string representing |
| 3976 * the regular expression. | 3981 * the regular expression. |
| 3977 */ | 3982 */ |
| 3978 Local<String> GetSource() const; | 3983 Local<String> GetSource() const; |
| 3979 | 3984 |
| 3980 /** | 3985 /** |
| 3981 * Returns the flags bit field. | 3986 * Returns the flags bit field. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4005 | 4010 |
| 4006 // --- Templates --- | 4011 // --- Templates --- |
| 4007 | 4012 |
| 4008 | 4013 |
| 4009 /** | 4014 /** |
| 4010 * The superclass of object and function templates. | 4015 * The superclass of object and function templates. |
| 4011 */ | 4016 */ |
| 4012 class V8_EXPORT Template : public Data { | 4017 class V8_EXPORT Template : public Data { |
| 4013 public: | 4018 public: |
| 4014 /** Adds a property to each instance created by this template.*/ | 4019 /** Adds a property to each instance created by this template.*/ |
| 4015 void Set(Handle<Name> name, Handle<Data> value, | 4020 void Set(Local<Name> name, Local<Data> value, |
| 4016 PropertyAttribute attributes = None); | 4021 PropertyAttribute attributes = None); |
| 4017 V8_INLINE void Set(Isolate* isolate, const char* name, Handle<Data> value); | 4022 V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value); |
| 4018 | 4023 |
| 4019 void SetAccessorProperty( | 4024 void SetAccessorProperty( |
| 4020 Local<Name> name, | 4025 Local<Name> name, |
| 4021 Local<FunctionTemplate> getter = Local<FunctionTemplate>(), | 4026 Local<FunctionTemplate> getter = Local<FunctionTemplate>(), |
| 4022 Local<FunctionTemplate> setter = Local<FunctionTemplate>(), | 4027 Local<FunctionTemplate> setter = Local<FunctionTemplate>(), |
| 4023 PropertyAttribute attribute = None, | 4028 PropertyAttribute attribute = None, |
| 4024 AccessControl settings = DEFAULT); | 4029 AccessControl settings = DEFAULT); |
| 4025 | 4030 |
| 4026 /** | 4031 /** |
| 4027 * Whenever the property with the given name is accessed on objects | 4032 * Whenever the property with the given name is accessed on objects |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4043 * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all | 4048 * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all |
| 4044 * cross-context access. | 4049 * cross-context access. |
| 4045 * \param attribute The attributes of the property for which an accessor | 4050 * \param attribute The attributes of the property for which an accessor |
| 4046 * is added. | 4051 * is added. |
| 4047 * \param signature The signature describes valid receivers for the accessor | 4052 * \param signature The signature describes valid receivers for the accessor |
| 4048 * and is used to perform implicit instance checks against them. If the | 4053 * and is used to perform implicit instance checks against them. If the |
| 4049 * receiver is incompatible (i.e. is not an instance of the constructor as | 4054 * receiver is incompatible (i.e. is not an instance of the constructor as |
| 4050 * defined by FunctionTemplate::HasInstance()), an implicit TypeError is | 4055 * defined by FunctionTemplate::HasInstance()), an implicit TypeError is |
| 4051 * thrown and no callback is invoked. | 4056 * thrown and no callback is invoked. |
| 4052 */ | 4057 */ |
| 4053 void SetNativeDataProperty(Local<String> name, | 4058 void SetNativeDataProperty( |
| 4054 AccessorGetterCallback getter, | 4059 Local<String> name, AccessorGetterCallback getter, |
| 4055 AccessorSetterCallback setter = 0, | 4060 AccessorSetterCallback setter = 0, |
| 4056 // TODO(dcarney): gcc can't handle Local below | 4061 // TODO(dcarney): gcc can't handle Local below |
| 4057 Handle<Value> data = Handle<Value>(), | 4062 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None, |
| 4058 PropertyAttribute attribute = None, | 4063 Local<AccessorSignature> signature = Local<AccessorSignature>(), |
| 4059 Local<AccessorSignature> signature = | 4064 AccessControl settings = DEFAULT); |
| 4060 Local<AccessorSignature>(), | 4065 void SetNativeDataProperty( |
| 4061 AccessControl settings = DEFAULT); | 4066 Local<Name> name, AccessorNameGetterCallback getter, |
| 4062 void SetNativeDataProperty(Local<Name> name, | 4067 AccessorNameSetterCallback setter = 0, |
| 4063 AccessorNameGetterCallback getter, | 4068 // TODO(dcarney): gcc can't handle Local below |
| 4064 AccessorNameSetterCallback setter = 0, | 4069 Local<Value> data = Local<Value>(), PropertyAttribute attribute = None, |
| 4065 // TODO(dcarney): gcc can't handle Local below | 4070 Local<AccessorSignature> signature = Local<AccessorSignature>(), |
| 4066 Handle<Value> data = Handle<Value>(), | 4071 AccessControl settings = DEFAULT); |
| 4067 PropertyAttribute attribute = None, | |
| 4068 Local<AccessorSignature> signature = | |
| 4069 Local<AccessorSignature>(), | |
| 4070 AccessControl settings = DEFAULT); | |
| 4071 | 4072 |
| 4072 private: | 4073 private: |
| 4073 Template(); | 4074 Template(); |
| 4074 | 4075 |
| 4075 friend class ObjectTemplate; | 4076 friend class ObjectTemplate; |
| 4076 friend class FunctionTemplate; | 4077 friend class FunctionTemplate; |
| 4077 }; | 4078 }; |
| 4078 | 4079 |
| 4079 | 4080 |
| 4080 /** | 4081 /** |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4339 * \code | 4340 * \code |
| 4340 * child_func.prototype.__proto__ == function.prototype; | 4341 * child_func.prototype.__proto__ == function.prototype; |
| 4341 * child_instance.instance_accessor calls 'InstanceAccessorCallback' | 4342 * child_instance.instance_accessor calls 'InstanceAccessorCallback' |
| 4342 * child_instance.instance_property == 3; | 4343 * child_instance.instance_property == 3; |
| 4343 * \endcode | 4344 * \endcode |
| 4344 */ | 4345 */ |
| 4345 class V8_EXPORT FunctionTemplate : public Template { | 4346 class V8_EXPORT FunctionTemplate : public Template { |
| 4346 public: | 4347 public: |
| 4347 /** Creates a function template.*/ | 4348 /** Creates a function template.*/ |
| 4348 static Local<FunctionTemplate> New( | 4349 static Local<FunctionTemplate> New( |
| 4349 Isolate* isolate, | 4350 Isolate* isolate, FunctionCallback callback = 0, |
| 4350 FunctionCallback callback = 0, | 4351 Local<Value> data = Local<Value>(), |
| 4351 Handle<Value> data = Handle<Value>(), | 4352 Local<Signature> signature = Local<Signature>(), int length = 0); |
| 4352 Handle<Signature> signature = Handle<Signature>(), | |
| 4353 int length = 0); | |
| 4354 | 4353 |
| 4355 /** Returns the unique function instance in the current execution context.*/ | 4354 /** Returns the unique function instance in the current execution context.*/ |
| 4356 V8_DEPRECATE_SOON("Use maybe version", Local<Function> GetFunction()); | 4355 V8_DEPRECATE_SOON("Use maybe version", Local<Function> GetFunction()); |
| 4357 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction( | 4356 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction( |
| 4358 Local<Context> context); | 4357 Local<Context> context); |
| 4359 | 4358 |
| 4360 /** | 4359 /** |
| 4361 * Set the call-handler callback for a FunctionTemplate. This | 4360 * Set the call-handler callback for a FunctionTemplate. This |
| 4362 * callback is called whenever the function created from this | 4361 * callback is called whenever the function created from this |
| 4363 * FunctionTemplate is called. | 4362 * FunctionTemplate is called. |
| 4364 */ | 4363 */ |
| 4365 void SetCallHandler(FunctionCallback callback, | 4364 void SetCallHandler(FunctionCallback callback, |
| 4366 Handle<Value> data = Handle<Value>()); | 4365 Local<Value> data = Local<Value>()); |
| 4367 | 4366 |
| 4368 /** Set the predefined length property for the FunctionTemplate. */ | 4367 /** Set the predefined length property for the FunctionTemplate. */ |
| 4369 void SetLength(int length); | 4368 void SetLength(int length); |
| 4370 | 4369 |
| 4371 /** Get the InstanceTemplate. */ | 4370 /** Get the InstanceTemplate. */ |
| 4372 Local<ObjectTemplate> InstanceTemplate(); | 4371 Local<ObjectTemplate> InstanceTemplate(); |
| 4373 | 4372 |
| 4374 /** Causes the function template to inherit from a parent function template.*/ | 4373 /** Causes the function template to inherit from a parent function template.*/ |
| 4375 void Inherit(Handle<FunctionTemplate> parent); | 4374 void Inherit(Local<FunctionTemplate> parent); |
| 4376 | 4375 |
| 4377 /** | 4376 /** |
| 4378 * A PrototypeTemplate is the template used to create the prototype object | 4377 * A PrototypeTemplate is the template used to create the prototype object |
| 4379 * of the function created by this template. | 4378 * of the function created by this template. |
| 4380 */ | 4379 */ |
| 4381 Local<ObjectTemplate> PrototypeTemplate(); | 4380 Local<ObjectTemplate> PrototypeTemplate(); |
| 4382 | 4381 |
| 4383 /** | 4382 /** |
| 4384 * Set the class name of the FunctionTemplate. This is used for | 4383 * Set the class name of the FunctionTemplate. This is used for |
| 4385 * printing objects created with the function created from the | 4384 * printing objects created with the function created from the |
| 4386 * FunctionTemplate as its constructor. | 4385 * FunctionTemplate as its constructor. |
| 4387 */ | 4386 */ |
| 4388 void SetClassName(Handle<String> name); | 4387 void SetClassName(Local<String> name); |
| 4389 | 4388 |
| 4390 | 4389 |
| 4391 /** | 4390 /** |
| 4392 * When set to true, no access check will be performed on the receiver of a | 4391 * When set to true, no access check will be performed on the receiver of a |
| 4393 * function call. Currently defaults to true, but this is subject to change. | 4392 * function call. Currently defaults to true, but this is subject to change. |
| 4394 */ | 4393 */ |
| 4395 void SetAcceptAnyReceiver(bool value); | 4394 void SetAcceptAnyReceiver(bool value); |
| 4396 | 4395 |
| 4397 /** | 4396 /** |
| 4398 * Determines whether the __proto__ accessor ignores instances of | 4397 * Determines whether the __proto__ accessor ignores instances of |
| (...skipping 18 matching lines...) Expand all Loading... |
| 4417 /** | 4416 /** |
| 4418 * Removes the prototype property from functions created from this | 4417 * Removes the prototype property from functions created from this |
| 4419 * FunctionTemplate. | 4418 * FunctionTemplate. |
| 4420 */ | 4419 */ |
| 4421 void RemovePrototype(); | 4420 void RemovePrototype(); |
| 4422 | 4421 |
| 4423 /** | 4422 /** |
| 4424 * Returns true if the given object is an instance of this function | 4423 * Returns true if the given object is an instance of this function |
| 4425 * template. | 4424 * template. |
| 4426 */ | 4425 */ |
| 4427 bool HasInstance(Handle<Value> object); | 4426 bool HasInstance(Local<Value> object); |
| 4428 | 4427 |
| 4429 private: | 4428 private: |
| 4430 FunctionTemplate(); | 4429 FunctionTemplate(); |
| 4431 friend class Context; | 4430 friend class Context; |
| 4432 friend class ObjectTemplate; | 4431 friend class ObjectTemplate; |
| 4433 }; | 4432 }; |
| 4434 | 4433 |
| 4435 | 4434 |
| 4436 enum class PropertyHandlerFlags { | 4435 enum class PropertyHandlerFlags { |
| 4437 kNone = 0, | 4436 kNone = 0, |
| 4438 // See ALL_CAN_READ above. | 4437 // See ALL_CAN_READ above. |
| 4439 kAllCanRead = 1, | 4438 kAllCanRead = 1, |
| 4440 // Will not call into interceptor for properties on the receiver or prototype | 4439 // Will not call into interceptor for properties on the receiver or prototype |
| 4441 // chain. Currently only valid for named interceptors. | 4440 // chain. Currently only valid for named interceptors. |
| 4442 kNonMasking = 1 << 1, | 4441 kNonMasking = 1 << 1, |
| 4443 // Will not call into interceptor for symbol lookup. Only meaningful for | 4442 // Will not call into interceptor for symbol lookup. Only meaningful for |
| 4444 // named interceptors. | 4443 // named interceptors. |
| 4445 kOnlyInterceptStrings = 1 << 2, | 4444 kOnlyInterceptStrings = 1 << 2, |
| 4446 }; | 4445 }; |
| 4447 | 4446 |
| 4448 | 4447 |
| 4449 struct NamedPropertyHandlerConfiguration { | 4448 struct NamedPropertyHandlerConfiguration { |
| 4450 NamedPropertyHandlerConfiguration( | 4449 NamedPropertyHandlerConfiguration( |
| 4451 /** Note: getter is required **/ | 4450 /** Note: getter is required **/ |
| 4452 GenericNamedPropertyGetterCallback getter = 0, | 4451 GenericNamedPropertyGetterCallback getter = 0, |
| 4453 GenericNamedPropertySetterCallback setter = 0, | 4452 GenericNamedPropertySetterCallback setter = 0, |
| 4454 GenericNamedPropertyQueryCallback query = 0, | 4453 GenericNamedPropertyQueryCallback query = 0, |
| 4455 GenericNamedPropertyDeleterCallback deleter = 0, | 4454 GenericNamedPropertyDeleterCallback deleter = 0, |
| 4456 GenericNamedPropertyEnumeratorCallback enumerator = 0, | 4455 GenericNamedPropertyEnumeratorCallback enumerator = 0, |
| 4457 Handle<Value> data = Handle<Value>(), | 4456 Local<Value> data = Local<Value>(), |
| 4458 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 4457 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
| 4459 : getter(getter), | 4458 : getter(getter), |
| 4460 setter(setter), | 4459 setter(setter), |
| 4461 query(query), | 4460 query(query), |
| 4462 deleter(deleter), | 4461 deleter(deleter), |
| 4463 enumerator(enumerator), | 4462 enumerator(enumerator), |
| 4464 data(data), | 4463 data(data), |
| 4465 flags(flags) {} | 4464 flags(flags) {} |
| 4466 | 4465 |
| 4467 GenericNamedPropertyGetterCallback getter; | 4466 GenericNamedPropertyGetterCallback getter; |
| 4468 GenericNamedPropertySetterCallback setter; | 4467 GenericNamedPropertySetterCallback setter; |
| 4469 GenericNamedPropertyQueryCallback query; | 4468 GenericNamedPropertyQueryCallback query; |
| 4470 GenericNamedPropertyDeleterCallback deleter; | 4469 GenericNamedPropertyDeleterCallback deleter; |
| 4471 GenericNamedPropertyEnumeratorCallback enumerator; | 4470 GenericNamedPropertyEnumeratorCallback enumerator; |
| 4472 Handle<Value> data; | 4471 Local<Value> data; |
| 4473 PropertyHandlerFlags flags; | 4472 PropertyHandlerFlags flags; |
| 4474 }; | 4473 }; |
| 4475 | 4474 |
| 4476 | 4475 |
| 4477 struct IndexedPropertyHandlerConfiguration { | 4476 struct IndexedPropertyHandlerConfiguration { |
| 4478 IndexedPropertyHandlerConfiguration( | 4477 IndexedPropertyHandlerConfiguration( |
| 4479 /** Note: getter is required **/ | 4478 /** Note: getter is required **/ |
| 4480 IndexedPropertyGetterCallback getter = 0, | 4479 IndexedPropertyGetterCallback getter = 0, |
| 4481 IndexedPropertySetterCallback setter = 0, | 4480 IndexedPropertySetterCallback setter = 0, |
| 4482 IndexedPropertyQueryCallback query = 0, | 4481 IndexedPropertyQueryCallback query = 0, |
| 4483 IndexedPropertyDeleterCallback deleter = 0, | 4482 IndexedPropertyDeleterCallback deleter = 0, |
| 4484 IndexedPropertyEnumeratorCallback enumerator = 0, | 4483 IndexedPropertyEnumeratorCallback enumerator = 0, |
| 4485 Handle<Value> data = Handle<Value>(), | 4484 Local<Value> data = Local<Value>(), |
| 4486 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 4485 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
| 4487 : getter(getter), | 4486 : getter(getter), |
| 4488 setter(setter), | 4487 setter(setter), |
| 4489 query(query), | 4488 query(query), |
| 4490 deleter(deleter), | 4489 deleter(deleter), |
| 4491 enumerator(enumerator), | 4490 enumerator(enumerator), |
| 4492 data(data), | 4491 data(data), |
| 4493 flags(flags) {} | 4492 flags(flags) {} |
| 4494 | 4493 |
| 4495 IndexedPropertyGetterCallback getter; | 4494 IndexedPropertyGetterCallback getter; |
| 4496 IndexedPropertySetterCallback setter; | 4495 IndexedPropertySetterCallback setter; |
| 4497 IndexedPropertyQueryCallback query; | 4496 IndexedPropertyQueryCallback query; |
| 4498 IndexedPropertyDeleterCallback deleter; | 4497 IndexedPropertyDeleterCallback deleter; |
| 4499 IndexedPropertyEnumeratorCallback enumerator; | 4498 IndexedPropertyEnumeratorCallback enumerator; |
| 4500 Handle<Value> data; | 4499 Local<Value> data; |
| 4501 PropertyHandlerFlags flags; | 4500 PropertyHandlerFlags flags; |
| 4502 }; | 4501 }; |
| 4503 | 4502 |
| 4504 | 4503 |
| 4505 /** | 4504 /** |
| 4506 * An ObjectTemplate is used to create objects at runtime. | 4505 * An ObjectTemplate is used to create objects at runtime. |
| 4507 * | 4506 * |
| 4508 * Properties added to an ObjectTemplate are added to each object | 4507 * Properties added to an ObjectTemplate are added to each object |
| 4509 * created from the ObjectTemplate. | 4508 * created from the ObjectTemplate. |
| 4510 */ | 4509 */ |
| 4511 class V8_EXPORT ObjectTemplate : public Template { | 4510 class V8_EXPORT ObjectTemplate : public Template { |
| 4512 public: | 4511 public: |
| 4513 /** Creates an ObjectTemplate. */ | 4512 /** Creates an ObjectTemplate. */ |
| 4514 static Local<ObjectTemplate> New( | 4513 static Local<ObjectTemplate> New( |
| 4515 Isolate* isolate, | 4514 Isolate* isolate, |
| 4516 Handle<FunctionTemplate> constructor = Handle<FunctionTemplate>()); | 4515 Local<FunctionTemplate> constructor = Local<FunctionTemplate>()); |
| 4517 static V8_DEPRECATE_SOON("Use isolate version", Local<ObjectTemplate> New()); | 4516 static V8_DEPRECATE_SOON("Use isolate version", Local<ObjectTemplate> New()); |
| 4518 | 4517 |
| 4519 /** Creates a new instance of this template.*/ | 4518 /** Creates a new instance of this template.*/ |
| 4520 V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance()); | 4519 V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance()); |
| 4521 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(Local<Context> context); | 4520 V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(Local<Context> context); |
| 4522 | 4521 |
| 4523 /** | 4522 /** |
| 4524 * Sets an accessor on the object template. | 4523 * Sets an accessor on the object template. |
| 4525 * | 4524 * |
| 4526 * Whenever the property with the given name is accessed on objects | 4525 * Whenever the property with the given name is accessed on objects |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4542 * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all | 4541 * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all |
| 4543 * cross-context access. | 4542 * cross-context access. |
| 4544 * \param attribute The attributes of the property for which an accessor | 4543 * \param attribute The attributes of the property for which an accessor |
| 4545 * is added. | 4544 * is added. |
| 4546 * \param signature The signature describes valid receivers for the accessor | 4545 * \param signature The signature describes valid receivers for the accessor |
| 4547 * and is used to perform implicit instance checks against them. If the | 4546 * and is used to perform implicit instance checks against them. If the |
| 4548 * receiver is incompatible (i.e. is not an instance of the constructor as | 4547 * receiver is incompatible (i.e. is not an instance of the constructor as |
| 4549 * defined by FunctionTemplate::HasInstance()), an implicit TypeError is | 4548 * defined by FunctionTemplate::HasInstance()), an implicit TypeError is |
| 4550 * thrown and no callback is invoked. | 4549 * thrown and no callback is invoked. |
| 4551 */ | 4550 */ |
| 4552 void SetAccessor(Handle<String> name, | 4551 void SetAccessor( |
| 4553 AccessorGetterCallback getter, | 4552 Local<String> name, AccessorGetterCallback getter, |
| 4554 AccessorSetterCallback setter = 0, | 4553 AccessorSetterCallback setter = 0, Local<Value> data = Local<Value>(), |
| 4555 Handle<Value> data = Handle<Value>(), | 4554 AccessControl settings = DEFAULT, PropertyAttribute attribute = None, |
| 4556 AccessControl settings = DEFAULT, | 4555 Local<AccessorSignature> signature = Local<AccessorSignature>()); |
| 4557 PropertyAttribute attribute = None, | 4556 void SetAccessor( |
| 4558 Handle<AccessorSignature> signature = | 4557 Local<Name> name, AccessorNameGetterCallback getter, |
| 4559 Handle<AccessorSignature>()); | 4558 AccessorNameSetterCallback setter = 0, Local<Value> data = Local<Value>(), |
| 4560 void SetAccessor(Handle<Name> name, | 4559 AccessControl settings = DEFAULT, PropertyAttribute attribute = None, |
| 4561 AccessorNameGetterCallback getter, | 4560 Local<AccessorSignature> signature = Local<AccessorSignature>()); |
| 4562 AccessorNameSetterCallback setter = 0, | |
| 4563 Handle<Value> data = Handle<Value>(), | |
| 4564 AccessControl settings = DEFAULT, | |
| 4565 PropertyAttribute attribute = None, | |
| 4566 Handle<AccessorSignature> signature = | |
| 4567 Handle<AccessorSignature>()); | |
| 4568 | 4561 |
| 4569 /** | 4562 /** |
| 4570 * Sets a named property handler on the object template. | 4563 * Sets a named property handler on the object template. |
| 4571 * | 4564 * |
| 4572 * Whenever a property whose name is a string is accessed on objects created | 4565 * Whenever a property whose name is a string is accessed on objects created |
| 4573 * from this object template, the provided callback is invoked instead of | 4566 * from this object template, the provided callback is invoked instead of |
| 4574 * accessing the property directly on the JavaScript object. | 4567 * accessing the property directly on the JavaScript object. |
| 4575 * | 4568 * |
| 4576 * Note that new code should use the second version that can intercept | 4569 * Note that new code should use the second version that can intercept |
| 4577 * symbol-named properties as well as string-named properties. | 4570 * symbol-named properties as well as string-named properties. |
| 4578 * | 4571 * |
| 4579 * \param getter The callback to invoke when getting a property. | 4572 * \param getter The callback to invoke when getting a property. |
| 4580 * \param setter The callback to invoke when setting a property. | 4573 * \param setter The callback to invoke when setting a property. |
| 4581 * \param query The callback to invoke to check if a property is present, | 4574 * \param query The callback to invoke to check if a property is present, |
| 4582 * and if present, get its attributes. | 4575 * and if present, get its attributes. |
| 4583 * \param deleter The callback to invoke when deleting a property. | 4576 * \param deleter The callback to invoke when deleting a property. |
| 4584 * \param enumerator The callback to invoke to enumerate all the named | 4577 * \param enumerator The callback to invoke to enumerate all the named |
| 4585 * properties of an object. | 4578 * properties of an object. |
| 4586 * \param data A piece of data that will be passed to the callbacks | 4579 * \param data A piece of data that will be passed to the callbacks |
| 4587 * whenever they are invoked. | 4580 * whenever they are invoked. |
| 4588 */ | 4581 */ |
| 4589 // TODO(dcarney): deprecate | 4582 // TODO(dcarney): deprecate |
| 4590 void SetNamedPropertyHandler( | 4583 void SetNamedPropertyHandler(NamedPropertyGetterCallback getter, |
| 4591 NamedPropertyGetterCallback getter, | 4584 NamedPropertySetterCallback setter = 0, |
| 4592 NamedPropertySetterCallback setter = 0, | 4585 NamedPropertyQueryCallback query = 0, |
| 4593 NamedPropertyQueryCallback query = 0, | 4586 NamedPropertyDeleterCallback deleter = 0, |
| 4594 NamedPropertyDeleterCallback deleter = 0, | 4587 NamedPropertyEnumeratorCallback enumerator = 0, |
| 4595 NamedPropertyEnumeratorCallback enumerator = 0, | 4588 Local<Value> data = Local<Value>()); |
| 4596 Handle<Value> data = Handle<Value>()); | |
| 4597 void SetHandler(const NamedPropertyHandlerConfiguration& configuration); | 4589 void SetHandler(const NamedPropertyHandlerConfiguration& configuration); |
| 4598 | 4590 |
| 4599 /** | 4591 /** |
| 4600 * Sets an indexed property handler on the object template. | 4592 * Sets an indexed property handler on the object template. |
| 4601 * | 4593 * |
| 4602 * Whenever an indexed property is accessed on objects created from | 4594 * Whenever an indexed property is accessed on objects created from |
| 4603 * this object template, the provided callback is invoked instead of | 4595 * this object template, the provided callback is invoked instead of |
| 4604 * accessing the property directly on the JavaScript object. | 4596 * accessing the property directly on the JavaScript object. |
| 4605 * | 4597 * |
| 4606 * \param getter The callback to invoke when getting a property. | 4598 * \param getter The callback to invoke when getting a property. |
| 4607 * \param setter The callback to invoke when setting a property. | 4599 * \param setter The callback to invoke when setting a property. |
| 4608 * \param query The callback to invoke to check if an object has a property. | 4600 * \param query The callback to invoke to check if an object has a property. |
| 4609 * \param deleter The callback to invoke when deleting a property. | 4601 * \param deleter The callback to invoke when deleting a property. |
| 4610 * \param enumerator The callback to invoke to enumerate all the indexed | 4602 * \param enumerator The callback to invoke to enumerate all the indexed |
| 4611 * properties of an object. | 4603 * properties of an object. |
| 4612 * \param data A piece of data that will be passed to the callbacks | 4604 * \param data A piece of data that will be passed to the callbacks |
| 4613 * whenever they are invoked. | 4605 * whenever they are invoked. |
| 4614 */ | 4606 */ |
| 4615 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration); | 4607 void SetHandler(const IndexedPropertyHandlerConfiguration& configuration); |
| 4616 // TODO(dcarney): deprecate | 4608 // TODO(dcarney): deprecate |
| 4617 void SetIndexedPropertyHandler( | 4609 void SetIndexedPropertyHandler( |
| 4618 IndexedPropertyGetterCallback getter, | 4610 IndexedPropertyGetterCallback getter, |
| 4619 IndexedPropertySetterCallback setter = 0, | 4611 IndexedPropertySetterCallback setter = 0, |
| 4620 IndexedPropertyQueryCallback query = 0, | 4612 IndexedPropertyQueryCallback query = 0, |
| 4621 IndexedPropertyDeleterCallback deleter = 0, | 4613 IndexedPropertyDeleterCallback deleter = 0, |
| 4622 IndexedPropertyEnumeratorCallback enumerator = 0, | 4614 IndexedPropertyEnumeratorCallback enumerator = 0, |
| 4623 Handle<Value> data = Handle<Value>()) { | 4615 Local<Value> data = Local<Value>()) { |
| 4624 SetHandler(IndexedPropertyHandlerConfiguration(getter, setter, query, | 4616 SetHandler(IndexedPropertyHandlerConfiguration(getter, setter, query, |
| 4625 deleter, enumerator, data)); | 4617 deleter, enumerator, data)); |
| 4626 } | 4618 } |
| 4627 /** | 4619 /** |
| 4628 * Sets the callback to be used when calling instances created from | 4620 * Sets the callback to be used when calling instances created from |
| 4629 * this template as a function. If no callback is set, instances | 4621 * this template as a function. If no callback is set, instances |
| 4630 * behave like normal JavaScript objects that cannot be called as a | 4622 * behave like normal JavaScript objects that cannot be called as a |
| 4631 * function. | 4623 * function. |
| 4632 */ | 4624 */ |
| 4633 void SetCallAsFunctionHandler(FunctionCallback callback, | 4625 void SetCallAsFunctionHandler(FunctionCallback callback, |
| 4634 Handle<Value> data = Handle<Value>()); | 4626 Local<Value> data = Local<Value>()); |
| 4635 | 4627 |
| 4636 /** | 4628 /** |
| 4637 * Mark object instances of the template as undetectable. | 4629 * Mark object instances of the template as undetectable. |
| 4638 * | 4630 * |
| 4639 * In many ways, undetectable objects behave as though they are not | 4631 * In many ways, undetectable objects behave as though they are not |
| 4640 * there. They behave like 'undefined' in conditionals and when | 4632 * there. They behave like 'undefined' in conditionals and when |
| 4641 * printed. However, properties can be accessed and called as on | 4633 * printed. However, properties can be accessed and called as on |
| 4642 * normal objects. | 4634 * normal objects. |
| 4643 */ | 4635 */ |
| 4644 void MarkAsUndetectable(); | 4636 void MarkAsUndetectable(); |
| 4645 | 4637 |
| 4646 /** | 4638 /** |
| 4647 * Sets access check callbacks on the object template and enables | 4639 * Sets access check callbacks on the object template and enables |
| 4648 * access checks. | 4640 * access checks. |
| 4649 * | 4641 * |
| 4650 * When accessing properties on instances of this object template, | 4642 * When accessing properties on instances of this object template, |
| 4651 * the access check callback will be called to determine whether or | 4643 * the access check callback will be called to determine whether or |
| 4652 * not to allow cross-context access to the properties. | 4644 * not to allow cross-context access to the properties. |
| 4653 */ | 4645 */ |
| 4654 void SetAccessCheckCallbacks(NamedSecurityCallback named_handler, | 4646 void SetAccessCheckCallbacks(NamedSecurityCallback named_handler, |
| 4655 IndexedSecurityCallback indexed_handler, | 4647 IndexedSecurityCallback indexed_handler, |
| 4656 Handle<Value> data = Handle<Value>()); | 4648 Local<Value> data = Local<Value>()); |
| 4657 | 4649 |
| 4658 /** | 4650 /** |
| 4659 * Gets the number of internal fields for objects generated from | 4651 * Gets the number of internal fields for objects generated from |
| 4660 * this template. | 4652 * this template. |
| 4661 */ | 4653 */ |
| 4662 int InternalFieldCount(); | 4654 int InternalFieldCount(); |
| 4663 | 4655 |
| 4664 /** | 4656 /** |
| 4665 * Sets the number of internal fields for objects generated from | 4657 * Sets the number of internal fields for objects generated from |
| 4666 * this template. | 4658 * this template. |
| 4667 */ | 4659 */ |
| 4668 void SetInternalFieldCount(int value); | 4660 void SetInternalFieldCount(int value); |
| 4669 | 4661 |
| 4670 private: | 4662 private: |
| 4671 ObjectTemplate(); | 4663 ObjectTemplate(); |
| 4672 static Local<ObjectTemplate> New(internal::Isolate* isolate, | 4664 static Local<ObjectTemplate> New(internal::Isolate* isolate, |
| 4673 Handle<FunctionTemplate> constructor); | 4665 Local<FunctionTemplate> constructor); |
| 4674 friend class FunctionTemplate; | 4666 friend class FunctionTemplate; |
| 4675 }; | 4667 }; |
| 4676 | 4668 |
| 4677 | 4669 |
| 4678 /** | 4670 /** |
| 4679 * A Signature specifies which receiver is valid for a function. | 4671 * A Signature specifies which receiver is valid for a function. |
| 4680 */ | 4672 */ |
| 4681 class V8_EXPORT Signature : public Data { | 4673 class V8_EXPORT Signature : public Data { |
| 4682 public: | 4674 public: |
| 4683 static Local<Signature> New( | 4675 static Local<Signature> New( |
| 4684 Isolate* isolate, | 4676 Isolate* isolate, |
| 4685 Handle<FunctionTemplate> receiver = Handle<FunctionTemplate>()); | 4677 Local<FunctionTemplate> receiver = Local<FunctionTemplate>()); |
| 4686 | 4678 |
| 4687 private: | 4679 private: |
| 4688 Signature(); | 4680 Signature(); |
| 4689 }; | 4681 }; |
| 4690 | 4682 |
| 4691 | 4683 |
| 4692 /** | 4684 /** |
| 4693 * An AccessorSignature specifies which receivers are valid parameters | 4685 * An AccessorSignature specifies which receivers are valid parameters |
| 4694 * to an accessor callback. | 4686 * to an accessor callback. |
| 4695 */ | 4687 */ |
| 4696 class V8_EXPORT AccessorSignature : public Data { | 4688 class V8_EXPORT AccessorSignature : public Data { |
| 4697 public: | 4689 public: |
| 4698 static Local<AccessorSignature> New(Isolate* isolate, | 4690 static Local<AccessorSignature> New( |
| 4699 Handle<FunctionTemplate> receiver = | 4691 Isolate* isolate, |
| 4700 Handle<FunctionTemplate>()); | 4692 Local<FunctionTemplate> receiver = Local<FunctionTemplate>()); |
| 4701 | 4693 |
| 4702 private: | 4694 private: |
| 4703 AccessorSignature(); | 4695 AccessorSignature(); |
| 4704 }; | 4696 }; |
| 4705 | 4697 |
| 4706 | 4698 |
| 4707 /** | 4699 /** |
| 4708 * A utility for determining the type of objects based on the template | 4700 * A utility for determining the type of objects based on the template |
| 4709 * they were constructed from. | 4701 * they were constructed from. |
| 4710 */ | 4702 */ |
| 4711 class V8_EXPORT TypeSwitch : public Data { | 4703 class V8_EXPORT TypeSwitch : public Data { |
| 4712 public: | 4704 public: |
| 4713 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); | 4705 static Local<TypeSwitch> New(Local<FunctionTemplate> type); |
| 4714 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); | 4706 static Local<TypeSwitch> New(int argc, Local<FunctionTemplate> types[]); |
| 4715 int match(Handle<Value> value); | 4707 int match(Local<Value> value); |
| 4708 |
| 4716 private: | 4709 private: |
| 4717 TypeSwitch(); | 4710 TypeSwitch(); |
| 4718 }; | 4711 }; |
| 4719 | 4712 |
| 4720 | 4713 |
| 4721 // --- Extensions --- | 4714 // --- Extensions --- |
| 4722 | 4715 |
| 4723 class V8_EXPORT ExternalOneByteStringResourceImpl | 4716 class V8_EXPORT ExternalOneByteStringResourceImpl |
| 4724 : public String::ExternalOneByteStringResource { | 4717 : public String::ExternalOneByteStringResource { |
| 4725 public: | 4718 public: |
| (...skipping 14 matching lines...) Expand all Loading... |
| 4740 class V8_EXPORT Extension { // NOLINT | 4733 class V8_EXPORT Extension { // NOLINT |
| 4741 public: | 4734 public: |
| 4742 // Note that the strings passed into this constructor must live as long | 4735 // Note that the strings passed into this constructor must live as long |
| 4743 // as the Extension itself. | 4736 // as the Extension itself. |
| 4744 Extension(const char* name, | 4737 Extension(const char* name, |
| 4745 const char* source = 0, | 4738 const char* source = 0, |
| 4746 int dep_count = 0, | 4739 int dep_count = 0, |
| 4747 const char** deps = 0, | 4740 const char** deps = 0, |
| 4748 int source_length = -1); | 4741 int source_length = -1); |
| 4749 virtual ~Extension() { } | 4742 virtual ~Extension() { } |
| 4750 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate( | 4743 virtual v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate( |
| 4751 v8::Isolate* isolate, v8::Handle<v8::String> name) { | 4744 v8::Isolate* isolate, v8::Local<v8::String> name) { |
| 4752 return v8::Handle<v8::FunctionTemplate>(); | 4745 return v8::Local<v8::FunctionTemplate>(); |
| 4753 } | 4746 } |
| 4754 | 4747 |
| 4755 const char* name() const { return name_; } | 4748 const char* name() const { return name_; } |
| 4756 size_t source_length() const { return source_length_; } | 4749 size_t source_length() const { return source_length_; } |
| 4757 const String::ExternalOneByteStringResource* source() const { | 4750 const String::ExternalOneByteStringResource* source() const { |
| 4758 return &source_; } | 4751 return &source_; } |
| 4759 int dependency_count() { return dep_count_; } | 4752 int dependency_count() { return dep_count_; } |
| 4760 const char** dependencies() { return deps_; } | 4753 const char** dependencies() { return deps_; } |
| 4761 void set_auto_enable(bool value) { auto_enable_ = value; } | 4754 void set_auto_enable(bool value) { auto_enable_ = value; } |
| 4762 bool auto_enable() { return auto_enable_; } | 4755 bool auto_enable() { return auto_enable_; } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4773 Extension(const Extension&); | 4766 Extension(const Extension&); |
| 4774 void operator=(const Extension&); | 4767 void operator=(const Extension&); |
| 4775 }; | 4768 }; |
| 4776 | 4769 |
| 4777 | 4770 |
| 4778 void V8_EXPORT RegisterExtension(Extension* extension); | 4771 void V8_EXPORT RegisterExtension(Extension* extension); |
| 4779 | 4772 |
| 4780 | 4773 |
| 4781 // --- Statics --- | 4774 // --- Statics --- |
| 4782 | 4775 |
| 4783 V8_INLINE Handle<Primitive> Undefined(Isolate* isolate); | 4776 V8_INLINE Local<Primitive> Undefined(Isolate* isolate); |
| 4784 V8_INLINE Handle<Primitive> Null(Isolate* isolate); | 4777 V8_INLINE Local<Primitive> Null(Isolate* isolate); |
| 4785 V8_INLINE Handle<Boolean> True(Isolate* isolate); | 4778 V8_INLINE Local<Boolean> True(Isolate* isolate); |
| 4786 V8_INLINE Handle<Boolean> False(Isolate* isolate); | 4779 V8_INLINE Local<Boolean> False(Isolate* isolate); |
| 4787 | 4780 |
| 4788 | 4781 |
| 4789 /** | 4782 /** |
| 4790 * A set of constraints that specifies the limits of the runtime's memory use. | 4783 * A set of constraints that specifies the limits of the runtime's memory use. |
| 4791 * You must set the heap size before initializing the VM - the size cannot be | 4784 * You must set the heap size before initializing the VM - the size cannot be |
| 4792 * adjusted after the VM is initialized. | 4785 * adjusted after the VM is initialized. |
| 4793 * | 4786 * |
| 4794 * If you are using threads then you should hold the V8::Locker lock while | 4787 * If you are using threads then you should hold the V8::Locker lock while |
| 4795 * setting the stack limit and you must set a non-default stack limit separately | 4788 * setting the stack limit and you must set a non-default stack limit separately |
| 4796 * for each thread. | 4789 * for each thread. |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4848 size_t code_range_size_; | 4841 size_t code_range_size_; |
| 4849 }; | 4842 }; |
| 4850 | 4843 |
| 4851 | 4844 |
| 4852 // --- Exceptions --- | 4845 // --- Exceptions --- |
| 4853 | 4846 |
| 4854 | 4847 |
| 4855 typedef void (*FatalErrorCallback)(const char* location, const char* message); | 4848 typedef void (*FatalErrorCallback)(const char* location, const char* message); |
| 4856 | 4849 |
| 4857 | 4850 |
| 4858 typedef void (*MessageCallback)(Handle<Message> message, Handle<Value> error); | 4851 typedef void (*MessageCallback)(Local<Message> message, Local<Value> error); |
| 4859 | 4852 |
| 4860 // --- Tracing --- | 4853 // --- Tracing --- |
| 4861 | 4854 |
| 4862 typedef void (*LogEventCallback)(const char* name, int event); | 4855 typedef void (*LogEventCallback)(const char* name, int event); |
| 4863 | 4856 |
| 4864 /** | 4857 /** |
| 4865 * Create new error objects by calling the corresponding error object | 4858 * Create new error objects by calling the corresponding error object |
| 4866 * constructor with the message. | 4859 * constructor with the message. |
| 4867 */ | 4860 */ |
| 4868 class V8_EXPORT Exception { | 4861 class V8_EXPORT Exception { |
| 4869 public: | 4862 public: |
| 4870 static Local<Value> RangeError(Handle<String> message); | 4863 static Local<Value> RangeError(Local<String> message); |
| 4871 static Local<Value> ReferenceError(Handle<String> message); | 4864 static Local<Value> ReferenceError(Local<String> message); |
| 4872 static Local<Value> SyntaxError(Handle<String> message); | 4865 static Local<Value> SyntaxError(Local<String> message); |
| 4873 static Local<Value> TypeError(Handle<String> message); | 4866 static Local<Value> TypeError(Local<String> message); |
| 4874 static Local<Value> Error(Handle<String> message); | 4867 static Local<Value> Error(Local<String> message); |
| 4875 | 4868 |
| 4876 /** | 4869 /** |
| 4877 * Creates an error message for the given exception. | 4870 * Creates an error message for the given exception. |
| 4878 * Will try to reconstruct the original stack trace from the exception value, | 4871 * Will try to reconstruct the original stack trace from the exception value, |
| 4879 * or capture the current stack trace if not available. | 4872 * or capture the current stack trace if not available. |
| 4880 */ | 4873 */ |
| 4881 static Local<Message> CreateMessage(Handle<Value> exception); | 4874 static Local<Message> CreateMessage(Local<Value> exception); |
| 4882 | 4875 |
| 4883 /** | 4876 /** |
| 4884 * Returns the original stack trace that was captured at the creation time | 4877 * Returns the original stack trace that was captured at the creation time |
| 4885 * of a given exception, or an empty handle if not available. | 4878 * of a given exception, or an empty handle if not available. |
| 4886 */ | 4879 */ |
| 4887 static Local<StackTrace> GetStackTrace(Handle<Value> exception); | 4880 static Local<StackTrace> GetStackTrace(Local<Value> exception); |
| 4888 }; | 4881 }; |
| 4889 | 4882 |
| 4890 | 4883 |
| 4891 // --- Counters Callbacks --- | 4884 // --- Counters Callbacks --- |
| 4892 | 4885 |
| 4893 typedef int* (*CounterLookupCallback)(const char* name); | 4886 typedef int* (*CounterLookupCallback)(const char* name); |
| 4894 | 4887 |
| 4895 typedef void* (*CreateHistogramCallback)(const char* name, | 4888 typedef void* (*CreateHistogramCallback)(const char* name, |
| 4896 int min, | 4889 int min, |
| 4897 int max, | 4890 int max, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 4925 typedef void (*CallCompletedCallback)(); | 4918 typedef void (*CallCompletedCallback)(); |
| 4926 | 4919 |
| 4927 // --- Promise Reject Callback --- | 4920 // --- Promise Reject Callback --- |
| 4928 enum PromiseRejectEvent { | 4921 enum PromiseRejectEvent { |
| 4929 kPromiseRejectWithNoHandler = 0, | 4922 kPromiseRejectWithNoHandler = 0, |
| 4930 kPromiseHandlerAddedAfterReject = 1 | 4923 kPromiseHandlerAddedAfterReject = 1 |
| 4931 }; | 4924 }; |
| 4932 | 4925 |
| 4933 class PromiseRejectMessage { | 4926 class PromiseRejectMessage { |
| 4934 public: | 4927 public: |
| 4935 PromiseRejectMessage(Handle<Promise> promise, PromiseRejectEvent event, | 4928 PromiseRejectMessage(Local<Promise> promise, PromiseRejectEvent event, |
| 4936 Handle<Value> value, Handle<StackTrace> stack_trace) | 4929 Local<Value> value, Local<StackTrace> stack_trace) |
| 4937 : promise_(promise), | 4930 : promise_(promise), |
| 4938 event_(event), | 4931 event_(event), |
| 4939 value_(value), | 4932 value_(value), |
| 4940 stack_trace_(stack_trace) {} | 4933 stack_trace_(stack_trace) {} |
| 4941 | 4934 |
| 4942 V8_INLINE Handle<Promise> GetPromise() const { return promise_; } | 4935 V8_INLINE Local<Promise> GetPromise() const { return promise_; } |
| 4943 V8_INLINE PromiseRejectEvent GetEvent() const { return event_; } | 4936 V8_INLINE PromiseRejectEvent GetEvent() const { return event_; } |
| 4944 V8_INLINE Handle<Value> GetValue() const { return value_; } | 4937 V8_INLINE Local<Value> GetValue() const { return value_; } |
| 4945 | 4938 |
| 4946 // DEPRECATED. Use v8::Exception::CreateMessage(GetValue())->GetStackTrace() | 4939 // DEPRECATED. Use v8::Exception::CreateMessage(GetValue())->GetStackTrace() |
| 4947 V8_INLINE Handle<StackTrace> GetStackTrace() const { return stack_trace_; } | 4940 V8_INLINE Local<StackTrace> GetStackTrace() const { return stack_trace_; } |
| 4948 | 4941 |
| 4949 private: | 4942 private: |
| 4950 Handle<Promise> promise_; | 4943 Local<Promise> promise_; |
| 4951 PromiseRejectEvent event_; | 4944 PromiseRejectEvent event_; |
| 4952 Handle<Value> value_; | 4945 Local<Value> value_; |
| 4953 Handle<StackTrace> stack_trace_; | 4946 Local<StackTrace> stack_trace_; |
| 4954 }; | 4947 }; |
| 4955 | 4948 |
| 4956 typedef void (*PromiseRejectCallback)(PromiseRejectMessage message); | 4949 typedef void (*PromiseRejectCallback)(PromiseRejectMessage message); |
| 4957 | 4950 |
| 4958 // --- Microtask Callback --- | 4951 // --- Microtask Callback --- |
| 4959 typedef void (*MicrotaskCallback)(void* data); | 4952 typedef void (*MicrotaskCallback)(void* data); |
| 4960 | 4953 |
| 4961 // --- Failed Access Check Callback --- | 4954 // --- Failed Access Check Callback --- |
| 4962 typedef void (*FailedAccessCheckCallback)(Local<Object> target, | 4955 typedef void (*FailedAccessCheckCallback)(Local<Object> target, |
| 4963 AccessType type, | 4956 AccessType type, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5104 // statement, and is used to indicate possible break locations. | 5097 // statement, and is used to indicate possible break locations. |
| 5105 enum PositionType { POSITION, STATEMENT_POSITION }; | 5098 enum PositionType { POSITION, STATEMENT_POSITION }; |
| 5106 | 5099 |
| 5107 // Type of event. | 5100 // Type of event. |
| 5108 EventType type; | 5101 EventType type; |
| 5109 // Start of the instructions. | 5102 // Start of the instructions. |
| 5110 void* code_start; | 5103 void* code_start; |
| 5111 // Size of the instructions. | 5104 // Size of the instructions. |
| 5112 size_t code_len; | 5105 size_t code_len; |
| 5113 // Script info for CODE_ADDED event. | 5106 // Script info for CODE_ADDED event. |
| 5114 Handle<UnboundScript> script; | 5107 Local<UnboundScript> script; |
| 5115 // User-defined data for *_LINE_INFO_* event. It's used to hold the source | 5108 // User-defined data for *_LINE_INFO_* event. It's used to hold the source |
| 5116 // code line information which is returned from the | 5109 // code line information which is returned from the |
| 5117 // CODE_START_LINE_INFO_RECORDING event. And it's passed to subsequent | 5110 // CODE_START_LINE_INFO_RECORDING event. And it's passed to subsequent |
| 5118 // CODE_ADD_LINE_POS_INFO and CODE_END_LINE_INFO_RECORDING events. | 5111 // CODE_ADD_LINE_POS_INFO and CODE_END_LINE_INFO_RECORDING events. |
| 5119 void* user_data; | 5112 void* user_data; |
| 5120 | 5113 |
| 5121 struct name_t { | 5114 struct name_t { |
| 5122 // Name of the object associated with the code, note that the string is not | 5115 // Name of the object associated with the code, note that the string is not |
| 5123 // zero-terminated. | 5116 // zero-terminated. |
| 5124 const char* str; | 5117 const char* str; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5164 */ | 5157 */ |
| 5165 typedef void (*JitCodeEventHandler)(const JitCodeEvent* event); | 5158 typedef void (*JitCodeEventHandler)(const JitCodeEvent* event); |
| 5166 | 5159 |
| 5167 | 5160 |
| 5168 /** | 5161 /** |
| 5169 * Interface for iterating through all external resources in the heap. | 5162 * Interface for iterating through all external resources in the heap. |
| 5170 */ | 5163 */ |
| 5171 class V8_EXPORT ExternalResourceVisitor { // NOLINT | 5164 class V8_EXPORT ExternalResourceVisitor { // NOLINT |
| 5172 public: | 5165 public: |
| 5173 virtual ~ExternalResourceVisitor() {} | 5166 virtual ~ExternalResourceVisitor() {} |
| 5174 virtual void VisitExternalString(Handle<String> string) {} | 5167 virtual void VisitExternalString(Local<String> string) {} |
| 5175 }; | 5168 }; |
| 5176 | 5169 |
| 5177 | 5170 |
| 5178 /** | 5171 /** |
| 5179 * Interface for iterating through all the persistent handles in the heap. | 5172 * Interface for iterating through all the persistent handles in the heap. |
| 5180 */ | 5173 */ |
| 5181 class V8_EXPORT PersistentHandleVisitor { // NOLINT | 5174 class V8_EXPORT PersistentHandleVisitor { // NOLINT |
| 5182 public: | 5175 public: |
| 5183 virtual ~PersistentHandleVisitor() {} | 5176 virtual ~PersistentHandleVisitor() {} |
| 5184 virtual void VisitPersistentHandle(Persistent<Value>* value, | 5177 virtual void VisitPersistentHandle(Persistent<Value>* value, |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5701 | 5694 |
| 5702 /** | 5695 /** |
| 5703 * Experimental: Runs the Microtask Work Queue until empty | 5696 * Experimental: Runs the Microtask Work Queue until empty |
| 5704 * Any exceptions thrown by microtask callbacks are swallowed. | 5697 * Any exceptions thrown by microtask callbacks are swallowed. |
| 5705 */ | 5698 */ |
| 5706 void RunMicrotasks(); | 5699 void RunMicrotasks(); |
| 5707 | 5700 |
| 5708 /** | 5701 /** |
| 5709 * Experimental: Enqueues the callback to the Microtask Work Queue | 5702 * Experimental: Enqueues the callback to the Microtask Work Queue |
| 5710 */ | 5703 */ |
| 5711 void EnqueueMicrotask(Handle<Function> microtask); | 5704 void EnqueueMicrotask(Local<Function> microtask); |
| 5712 | 5705 |
| 5713 /** | 5706 /** |
| 5714 * Experimental: Enqueues the callback to the Microtask Work Queue | 5707 * Experimental: Enqueues the callback to the Microtask Work Queue |
| 5715 */ | 5708 */ |
| 5716 void EnqueueMicrotask(MicrotaskCallback microtask, void* data = NULL); | 5709 void EnqueueMicrotask(MicrotaskCallback microtask, void* data = NULL); |
| 5717 | 5710 |
| 5718 /** | 5711 /** |
| 5719 * Experimental: Controls whether the Microtask Work Queue is automatically | 5712 * Experimental: Controls whether the Microtask Work Queue is automatically |
| 5720 * run when the script call depth decrements to zero. | 5713 * run when the script call depth decrements to zero. |
| 5721 */ | 5714 */ |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5853 /** | 5846 /** |
| 5854 * Adds a message listener. | 5847 * Adds a message listener. |
| 5855 * | 5848 * |
| 5856 * The same message listener can be added more than once and in that | 5849 * The same message listener can be added more than once and in that |
| 5857 * case it will be called more than once for each message. | 5850 * case it will be called more than once for each message. |
| 5858 * | 5851 * |
| 5859 * If data is specified, it will be passed to the callback when it is called. | 5852 * If data is specified, it will be passed to the callback when it is called. |
| 5860 * Otherwise, the exception object will be passed to the callback instead. | 5853 * Otherwise, the exception object will be passed to the callback instead. |
| 5861 */ | 5854 */ |
| 5862 bool AddMessageListener(MessageCallback that, | 5855 bool AddMessageListener(MessageCallback that, |
| 5863 Handle<Value> data = Handle<Value>()); | 5856 Local<Value> data = Local<Value>()); |
| 5864 | 5857 |
| 5865 /** | 5858 /** |
| 5866 * Remove all message listeners from the specified callback function. | 5859 * Remove all message listeners from the specified callback function. |
| 5867 */ | 5860 */ |
| 5868 void RemoveMessageListeners(MessageCallback that); | 5861 void RemoveMessageListeners(MessageCallback that); |
| 5869 | 5862 |
| 5870 /** Callback function for reporting failed access checks.*/ | 5863 /** Callback function for reporting failed access checks.*/ |
| 5871 void SetFailedAccessCheckCallbackFunction(FailedAccessCheckCallback); | 5864 void SetFailedAccessCheckCallbackFunction(FailedAccessCheckCallback); |
| 5872 | 5865 |
| 5873 /** | 5866 /** |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6024 * | 6017 * |
| 6025 * The same message listener can be added more than once and in that | 6018 * The same message listener can be added more than once and in that |
| 6026 * case it will be called more than once for each message. | 6019 * case it will be called more than once for each message. |
| 6027 * | 6020 * |
| 6028 * If data is specified, it will be passed to the callback when it is called. | 6021 * If data is specified, it will be passed to the callback when it is called. |
| 6029 * Otherwise, the exception object will be passed to the callback instead. | 6022 * Otherwise, the exception object will be passed to the callback instead. |
| 6030 */ | 6023 */ |
| 6031 V8_INLINE static V8_DEPRECATE_SOON( | 6024 V8_INLINE static V8_DEPRECATE_SOON( |
| 6032 "Use isolate version", | 6025 "Use isolate version", |
| 6033 bool AddMessageListener(MessageCallback that, | 6026 bool AddMessageListener(MessageCallback that, |
| 6034 Handle<Value> data = Handle<Value>())); | 6027 Local<Value> data = Local<Value>())); |
| 6035 | 6028 |
| 6036 /** | 6029 /** |
| 6037 * Remove all message listeners from the specified callback function. | 6030 * Remove all message listeners from the specified callback function. |
| 6038 */ | 6031 */ |
| 6039 V8_INLINE static V8_DEPRECATE_SOON( | 6032 V8_INLINE static V8_DEPRECATE_SOON( |
| 6040 "Use isolate version", void RemoveMessageListeners(MessageCallback that)); | 6033 "Use isolate version", void RemoveMessageListeners(MessageCallback that)); |
| 6041 | 6034 |
| 6042 /** | 6035 /** |
| 6043 * Tells V8 to capture current stack trace when uncaught exception occurs | 6036 * Tells V8 to capture current stack trace when uncaught exception occurs |
| 6044 * and report it to the message listeners. The option is off by default. | 6037 * and report it to the message listeners. The option is off by default. |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6422 */ | 6415 */ |
| 6423 bool HasTerminated() const; | 6416 bool HasTerminated() const; |
| 6424 | 6417 |
| 6425 /** | 6418 /** |
| 6426 * Throws the exception caught by this TryCatch in a way that avoids | 6419 * Throws the exception caught by this TryCatch in a way that avoids |
| 6427 * it being caught again by this same TryCatch. As with ThrowException | 6420 * it being caught again by this same TryCatch. As with ThrowException |
| 6428 * it is illegal to execute any JavaScript operations after calling | 6421 * it is illegal to execute any JavaScript operations after calling |
| 6429 * ReThrow; the caller must return immediately to where the exception | 6422 * ReThrow; the caller must return immediately to where the exception |
| 6430 * is caught. | 6423 * is caught. |
| 6431 */ | 6424 */ |
| 6432 Handle<Value> ReThrow(); | 6425 Local<Value> ReThrow(); |
| 6433 | 6426 |
| 6434 /** | 6427 /** |
| 6435 * Returns the exception caught by this try/catch block. If no exception has | 6428 * Returns the exception caught by this try/catch block. If no exception has |
| 6436 * been caught an empty handle is returned. | 6429 * been caught an empty handle is returned. |
| 6437 * | 6430 * |
| 6438 * The returned handle is valid until this TryCatch block has been destroyed. | 6431 * The returned handle is valid until this TryCatch block has been destroyed. |
| 6439 */ | 6432 */ |
| 6440 Local<Value> Exception() const; | 6433 Local<Value> Exception() const; |
| 6441 | 6434 |
| 6442 /** | 6435 /** |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6584 * \param global_template An optional object template from which the | 6577 * \param global_template An optional object template from which the |
| 6585 * global object for the newly created context will be created. | 6578 * global object for the newly created context will be created. |
| 6586 * | 6579 * |
| 6587 * \param global_object An optional global object to be reused for | 6580 * \param global_object An optional global object to be reused for |
| 6588 * the newly created context. This global object must have been | 6581 * the newly created context. This global object must have been |
| 6589 * created by a previous call to Context::New with the same global | 6582 * created by a previous call to Context::New with the same global |
| 6590 * template. The state of the global object will be completely reset | 6583 * template. The state of the global object will be completely reset |
| 6591 * and only object identify will remain. | 6584 * and only object identify will remain. |
| 6592 */ | 6585 */ |
| 6593 static Local<Context> New( | 6586 static Local<Context> New( |
| 6594 Isolate* isolate, | 6587 Isolate* isolate, ExtensionConfiguration* extensions = NULL, |
| 6595 ExtensionConfiguration* extensions = NULL, | 6588 Local<ObjectTemplate> global_template = Local<ObjectTemplate>(), |
| 6596 Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(), | 6589 Local<Value> global_object = Local<Value>()); |
| 6597 Handle<Value> global_object = Handle<Value>()); | |
| 6598 | 6590 |
| 6599 /** | 6591 /** |
| 6600 * Sets the security token for the context. To access an object in | 6592 * Sets the security token for the context. To access an object in |
| 6601 * another context, the security tokens must match. | 6593 * another context, the security tokens must match. |
| 6602 */ | 6594 */ |
| 6603 void SetSecurityToken(Handle<Value> token); | 6595 void SetSecurityToken(Local<Value> token); |
| 6604 | 6596 |
| 6605 /** Restores the security token to the default value. */ | 6597 /** Restores the security token to the default value. */ |
| 6606 void UseDefaultSecurityToken(); | 6598 void UseDefaultSecurityToken(); |
| 6607 | 6599 |
| 6608 /** Returns the security token of this context.*/ | 6600 /** Returns the security token of this context.*/ |
| 6609 Handle<Value> GetSecurityToken(); | 6601 Local<Value> GetSecurityToken(); |
| 6610 | 6602 |
| 6611 /** | 6603 /** |
| 6612 * Enter this context. After entering a context, all code compiled | 6604 * Enter this context. After entering a context, all code compiled |
| 6613 * and run is compiled and run in this context. If another context | 6605 * and run is compiled and run in this context. If another context |
| 6614 * is already entered, this old context is saved so it can be | 6606 * is already entered, this old context is saved so it can be |
| 6615 * restored when the new context is exited. | 6607 * restored when the new context is exited. |
| 6616 */ | 6608 */ |
| 6617 void Enter(); | 6609 void Enter(); |
| 6618 | 6610 |
| 6619 /** | 6611 /** |
| (...skipping 23 matching lines...) Expand all Loading... |
| 6643 * Gets the exports object used by V8 extras. Extra natives get a reference | 6635 * Gets the exports object used by V8 extras. Extra natives get a reference |
| 6644 * to this object and can use it to export functionality. | 6636 * to this object and can use it to export functionality. |
| 6645 */ | 6637 */ |
| 6646 Local<Object> GetExtrasExportsObject(); | 6638 Local<Object> GetExtrasExportsObject(); |
| 6647 | 6639 |
| 6648 /** | 6640 /** |
| 6649 * Sets the embedder data with the given index, growing the data as | 6641 * Sets the embedder data with the given index, growing the data as |
| 6650 * needed. Note that index 0 currently has a special meaning for Chrome's | 6642 * needed. Note that index 0 currently has a special meaning for Chrome's |
| 6651 * debugger. | 6643 * debugger. |
| 6652 */ | 6644 */ |
| 6653 void SetEmbedderData(int index, Handle<Value> value); | 6645 void SetEmbedderData(int index, Local<Value> value); |
| 6654 | 6646 |
| 6655 /** | 6647 /** |
| 6656 * Gets a 2-byte-aligned native pointer from the embedder data with the given | 6648 * Gets a 2-byte-aligned native pointer from the embedder data with the given |
| 6657 * index, which must have bees set by a previous call to | 6649 * index, which must have bees set by a previous call to |
| 6658 * SetAlignedPointerInEmbedderData with the same index. Note that index 0 | 6650 * SetAlignedPointerInEmbedderData with the same index. Note that index 0 |
| 6659 * currently has a special meaning for Chrome's debugger. | 6651 * currently has a special meaning for Chrome's debugger. |
| 6660 */ | 6652 */ |
| 6661 V8_INLINE void* GetAlignedPointerFromEmbedderData(int index); | 6653 V8_INLINE void* GetAlignedPointerFromEmbedderData(int index); |
| 6662 | 6654 |
| 6663 /** | 6655 /** |
| (...skipping 22 matching lines...) Expand all Loading... |
| 6686 * Returns true if code generation from strings is allowed for the context. | 6678 * Returns true if code generation from strings is allowed for the context. |
| 6687 * For more details see AllowCodeGenerationFromStrings(bool) documentation. | 6679 * For more details see AllowCodeGenerationFromStrings(bool) documentation. |
| 6688 */ | 6680 */ |
| 6689 bool IsCodeGenerationFromStringsAllowed(); | 6681 bool IsCodeGenerationFromStringsAllowed(); |
| 6690 | 6682 |
| 6691 /** | 6683 /** |
| 6692 * Sets the error description for the exception that is thrown when | 6684 * Sets the error description for the exception that is thrown when |
| 6693 * code generation from strings is not allowed and 'eval' or the 'Function' | 6685 * code generation from strings is not allowed and 'eval' or the 'Function' |
| 6694 * constructor are called. | 6686 * constructor are called. |
| 6695 */ | 6687 */ |
| 6696 void SetErrorMessageForCodeGenerationFromStrings(Handle<String> message); | 6688 void SetErrorMessageForCodeGenerationFromStrings(Local<String> message); |
| 6697 | 6689 |
| 6698 /** | 6690 /** |
| 6699 * Stack-allocated class which sets the execution context for all | 6691 * Stack-allocated class which sets the execution context for all |
| 6700 * operations executed within a local scope. | 6692 * operations executed within a local scope. |
| 6701 */ | 6693 */ |
| 6702 class Scope { | 6694 class Scope { |
| 6703 public: | 6695 public: |
| 6704 explicit V8_INLINE Scope(Handle<Context> context) : context_(context) { | 6696 explicit V8_INLINE Scope(Local<Context> context) : context_(context) { |
| 6705 context_->Enter(); | 6697 context_->Enter(); |
| 6706 } | 6698 } |
| 6707 V8_INLINE ~Scope() { context_->Exit(); } | 6699 V8_INLINE ~Scope() { context_->Exit(); } |
| 6708 | 6700 |
| 6709 private: | 6701 private: |
| 6710 Handle<Context> context_; | 6702 Local<Context> context_; |
| 6711 }; | 6703 }; |
| 6712 | 6704 |
| 6713 private: | 6705 private: |
| 6714 friend class Value; | 6706 friend class Value; |
| 6715 friend class Script; | 6707 friend class Script; |
| 6716 friend class Object; | 6708 friend class Object; |
| 6717 friend class Function; | 6709 friend class Function; |
| 6718 | 6710 |
| 6719 Local<Value> SlowGetEmbedderData(int index); | 6711 Local<Value> SlowGetEmbedderData(int index); |
| 6720 void* SlowGetAlignedPointerFromEmbedderData(int index); | 6712 void* SlowGetAlignedPointerFromEmbedderData(int index); |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7207 template <class T> | 7199 template <class T> |
| 7208 void PersistentBase<T>::Reset() { | 7200 void PersistentBase<T>::Reset() { |
| 7209 if (this->IsEmpty()) return; | 7201 if (this->IsEmpty()) return; |
| 7210 V8::DisposeGlobal(reinterpret_cast<internal::Object**>(this->val_)); | 7202 V8::DisposeGlobal(reinterpret_cast<internal::Object**>(this->val_)); |
| 7211 val_ = 0; | 7203 val_ = 0; |
| 7212 } | 7204 } |
| 7213 | 7205 |
| 7214 | 7206 |
| 7215 template <class T> | 7207 template <class T> |
| 7216 template <class S> | 7208 template <class S> |
| 7217 void PersistentBase<T>::Reset(Isolate* isolate, const Handle<S>& other) { | 7209 void PersistentBase<T>::Reset(Isolate* isolate, const Local<S>& other) { |
| 7218 TYPE_CHECK(T, S); | 7210 TYPE_CHECK(T, S); |
| 7219 Reset(); | 7211 Reset(); |
| 7220 if (other.IsEmpty()) return; | 7212 if (other.IsEmpty()) return; |
| 7221 this->val_ = New(isolate, other.val_); | 7213 this->val_ = New(isolate, other.val_); |
| 7222 } | 7214 } |
| 7223 | 7215 |
| 7224 | 7216 |
| 7225 template <class T> | 7217 template <class T> |
| 7226 template <class S> | 7218 template <class S> |
| 7227 void PersistentBase<T>::Reset(Isolate* isolate, | 7219 void PersistentBase<T>::Reset(Isolate* isolate, |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7504 bool FunctionCallbackInfo<T>::IsConstructCall() const { | 7496 bool FunctionCallbackInfo<T>::IsConstructCall() const { |
| 7505 return is_construct_call_ & 0x1; | 7497 return is_construct_call_ & 0x1; |
| 7506 } | 7498 } |
| 7507 | 7499 |
| 7508 | 7500 |
| 7509 template<typename T> | 7501 template<typename T> |
| 7510 int FunctionCallbackInfo<T>::Length() const { | 7502 int FunctionCallbackInfo<T>::Length() const { |
| 7511 return length_; | 7503 return length_; |
| 7512 } | 7504 } |
| 7513 | 7505 |
| 7514 ScriptOrigin::ScriptOrigin(Handle<Value> resource_name, | 7506 ScriptOrigin::ScriptOrigin(Local<Value> resource_name, |
| 7515 Handle<Integer> resource_line_offset, | 7507 Local<Integer> resource_line_offset, |
| 7516 Handle<Integer> resource_column_offset, | 7508 Local<Integer> resource_column_offset, |
| 7517 Handle<Boolean> resource_is_shared_cross_origin, | 7509 Local<Boolean> resource_is_shared_cross_origin, |
| 7518 Handle<Integer> script_id, | 7510 Local<Integer> script_id, |
| 7519 Handle<Boolean> resource_is_embedder_debug_script, | 7511 Local<Boolean> resource_is_embedder_debug_script, |
| 7520 Handle<Value> source_map_url, | 7512 Local<Value> source_map_url, |
| 7521 Handle<Boolean> resource_is_opaque) | 7513 Local<Boolean> resource_is_opaque) |
| 7522 : resource_name_(resource_name), | 7514 : resource_name_(resource_name), |
| 7523 resource_line_offset_(resource_line_offset), | 7515 resource_line_offset_(resource_line_offset), |
| 7524 resource_column_offset_(resource_column_offset), | 7516 resource_column_offset_(resource_column_offset), |
| 7525 options_(!resource_is_embedder_debug_script.IsEmpty() && | 7517 options_(!resource_is_embedder_debug_script.IsEmpty() && |
| 7526 resource_is_embedder_debug_script->IsTrue(), | 7518 resource_is_embedder_debug_script->IsTrue(), |
| 7527 !resource_is_shared_cross_origin.IsEmpty() && | 7519 !resource_is_shared_cross_origin.IsEmpty() && |
| 7528 resource_is_shared_cross_origin->IsTrue(), | 7520 resource_is_shared_cross_origin->IsTrue(), |
| 7529 !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue()), | 7521 !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue()), |
| 7530 script_id_(script_id), | 7522 script_id_(script_id), |
| 7531 source_map_url_(source_map_url) {} | 7523 source_map_url_(source_map_url) {} |
| 7532 | 7524 |
| 7533 Handle<Value> ScriptOrigin::ResourceName() const { | 7525 Local<Value> ScriptOrigin::ResourceName() const { return resource_name_; } |
| 7534 return resource_name_; | |
| 7535 } | |
| 7536 | 7526 |
| 7537 | 7527 |
| 7538 Handle<Integer> ScriptOrigin::ResourceLineOffset() const { | 7528 Local<Integer> ScriptOrigin::ResourceLineOffset() const { |
| 7539 return resource_line_offset_; | 7529 return resource_line_offset_; |
| 7540 } | 7530 } |
| 7541 | 7531 |
| 7542 | 7532 |
| 7543 Handle<Integer> ScriptOrigin::ResourceColumnOffset() const { | 7533 Local<Integer> ScriptOrigin::ResourceColumnOffset() const { |
| 7544 return resource_column_offset_; | 7534 return resource_column_offset_; |
| 7545 } | 7535 } |
| 7546 | 7536 |
| 7547 | 7537 |
| 7548 Handle<Integer> ScriptOrigin::ScriptID() const { | 7538 Local<Integer> ScriptOrigin::ScriptID() const { return script_id_; } |
| 7549 return script_id_; | |
| 7550 } | |
| 7551 | 7539 |
| 7552 | 7540 |
| 7553 Handle<Value> ScriptOrigin::SourceMapUrl() const { return source_map_url_; } | 7541 Local<Value> ScriptOrigin::SourceMapUrl() const { return source_map_url_; } |
| 7554 | 7542 |
| 7555 | 7543 |
| 7556 ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& origin, | 7544 ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& origin, |
| 7557 CachedData* data) | 7545 CachedData* data) |
| 7558 : source_string(string), | 7546 : source_string(string), |
| 7559 resource_name(origin.ResourceName()), | 7547 resource_name(origin.ResourceName()), |
| 7560 resource_line_offset(origin.ResourceLineOffset()), | 7548 resource_line_offset(origin.ResourceLineOffset()), |
| 7561 resource_column_offset(origin.ResourceColumnOffset()), | 7549 resource_column_offset(origin.ResourceColumnOffset()), |
| 7562 resource_options(origin.Options()), | 7550 resource_options(origin.Options()), |
| 7563 source_map_url(origin.SourceMapUrl()), | 7551 source_map_url(origin.SourceMapUrl()), |
| 7564 cached_data(data) {} | 7552 cached_data(data) {} |
| 7565 | 7553 |
| 7566 | 7554 |
| 7567 ScriptCompiler::Source::Source(Local<String> string, | 7555 ScriptCompiler::Source::Source(Local<String> string, |
| 7568 CachedData* data) | 7556 CachedData* data) |
| 7569 : source_string(string), cached_data(data) {} | 7557 : source_string(string), cached_data(data) {} |
| 7570 | 7558 |
| 7571 | 7559 |
| 7572 ScriptCompiler::Source::~Source() { | 7560 ScriptCompiler::Source::~Source() { |
| 7573 delete cached_data; | 7561 delete cached_data; |
| 7574 } | 7562 } |
| 7575 | 7563 |
| 7576 | 7564 |
| 7577 const ScriptCompiler::CachedData* ScriptCompiler::Source::GetCachedData() | 7565 const ScriptCompiler::CachedData* ScriptCompiler::Source::GetCachedData() |
| 7578 const { | 7566 const { |
| 7579 return cached_data; | 7567 return cached_data; |
| 7580 } | 7568 } |
| 7581 | 7569 |
| 7582 | 7570 |
| 7583 Handle<Boolean> Boolean::New(Isolate* isolate, bool value) { | 7571 Local<Boolean> Boolean::New(Isolate* isolate, bool value) { |
| 7584 return value ? True(isolate) : False(isolate); | 7572 return value ? True(isolate) : False(isolate); |
| 7585 } | 7573 } |
| 7586 | 7574 |
| 7587 | 7575 |
| 7588 void Template::Set(Isolate* isolate, const char* name, v8::Handle<Data> value) { | 7576 void Template::Set(Isolate* isolate, const char* name, v8::Local<Data> value) { |
| 7589 Set(v8::String::NewFromUtf8(isolate, name, NewStringType::kNormal) | 7577 Set(v8::String::NewFromUtf8(isolate, name, NewStringType::kNormal) |
| 7590 .ToLocalChecked(), | 7578 .ToLocalChecked(), |
| 7591 value); | 7579 value); |
| 7592 } | 7580 } |
| 7593 | 7581 |
| 7594 | 7582 |
| 7595 Local<Value> Object::GetInternalField(int index) { | 7583 Local<Value> Object::GetInternalField(int index) { |
| 7596 #ifndef V8_ENABLE_CHECKS | 7584 #ifndef V8_ENABLE_CHECKS |
| 7597 typedef internal::Object O; | 7585 typedef internal::Object O; |
| 7598 typedef internal::HeapObject HO; | 7586 typedef internal::HeapObject HO; |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8091 return Local<Object>(reinterpret_cast<Object*>(&args_[kHolderIndex])); | 8079 return Local<Object>(reinterpret_cast<Object*>(&args_[kHolderIndex])); |
| 8092 } | 8080 } |
| 8093 | 8081 |
| 8094 | 8082 |
| 8095 template<typename T> | 8083 template<typename T> |
| 8096 ReturnValue<T> PropertyCallbackInfo<T>::GetReturnValue() const { | 8084 ReturnValue<T> PropertyCallbackInfo<T>::GetReturnValue() const { |
| 8097 return ReturnValue<T>(&args_[kReturnValueIndex]); | 8085 return ReturnValue<T>(&args_[kReturnValueIndex]); |
| 8098 } | 8086 } |
| 8099 | 8087 |
| 8100 | 8088 |
| 8101 Handle<Primitive> Undefined(Isolate* isolate) { | 8089 Local<Primitive> Undefined(Isolate* isolate) { |
| 8102 typedef internal::Object* S; | 8090 typedef internal::Object* S; |
| 8103 typedef internal::Internals I; | 8091 typedef internal::Internals I; |
| 8104 I::CheckInitialized(isolate); | 8092 I::CheckInitialized(isolate); |
| 8105 S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); | 8093 S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); |
| 8106 return Handle<Primitive>(reinterpret_cast<Primitive*>(slot)); | 8094 return Local<Primitive>(reinterpret_cast<Primitive*>(slot)); |
| 8107 } | 8095 } |
| 8108 | 8096 |
| 8109 | 8097 |
| 8110 Handle<Primitive> Null(Isolate* isolate) { | 8098 Local<Primitive> Null(Isolate* isolate) { |
| 8111 typedef internal::Object* S; | 8099 typedef internal::Object* S; |
| 8112 typedef internal::Internals I; | 8100 typedef internal::Internals I; |
| 8113 I::CheckInitialized(isolate); | 8101 I::CheckInitialized(isolate); |
| 8114 S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); | 8102 S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); |
| 8115 return Handle<Primitive>(reinterpret_cast<Primitive*>(slot)); | 8103 return Local<Primitive>(reinterpret_cast<Primitive*>(slot)); |
| 8116 } | 8104 } |
| 8117 | 8105 |
| 8118 | 8106 |
| 8119 Handle<Boolean> True(Isolate* isolate) { | 8107 Local<Boolean> True(Isolate* isolate) { |
| 8120 typedef internal::Object* S; | 8108 typedef internal::Object* S; |
| 8121 typedef internal::Internals I; | 8109 typedef internal::Internals I; |
| 8122 I::CheckInitialized(isolate); | 8110 I::CheckInitialized(isolate); |
| 8123 S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); | 8111 S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); |
| 8124 return Handle<Boolean>(reinterpret_cast<Boolean*>(slot)); | 8112 return Local<Boolean>(reinterpret_cast<Boolean*>(slot)); |
| 8125 } | 8113 } |
| 8126 | 8114 |
| 8127 | 8115 |
| 8128 Handle<Boolean> False(Isolate* isolate) { | 8116 Local<Boolean> False(Isolate* isolate) { |
| 8129 typedef internal::Object* S; | 8117 typedef internal::Object* S; |
| 8130 typedef internal::Internals I; | 8118 typedef internal::Internals I; |
| 8131 I::CheckInitialized(isolate); | 8119 I::CheckInitialized(isolate); |
| 8132 S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); | 8120 S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); |
| 8133 return Handle<Boolean>(reinterpret_cast<Boolean*>(slot)); | 8121 return Local<Boolean>(reinterpret_cast<Boolean*>(slot)); |
| 8134 } | 8122 } |
| 8135 | 8123 |
| 8136 | 8124 |
| 8137 void Isolate::SetData(uint32_t slot, void* data) { | 8125 void Isolate::SetData(uint32_t slot, void* data) { |
| 8138 typedef internal::Internals I; | 8126 typedef internal::Internals I; |
| 8139 I::SetEmbedderData(this, slot, data); | 8127 I::SetEmbedderData(this, slot, data); |
| 8140 } | 8128 } |
| 8141 | 8129 |
| 8142 | 8130 |
| 8143 void* Isolate::GetData(uint32_t slot) { | 8131 void* Isolate::GetData(uint32_t slot) { |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8231 isolate->SetAllowCodeGenerationFromStringsCallback(callback); | 8219 isolate->SetAllowCodeGenerationFromStringsCallback(callback); |
| 8232 } | 8220 } |
| 8233 | 8221 |
| 8234 | 8222 |
| 8235 bool V8::IsDead() { | 8223 bool V8::IsDead() { |
| 8236 Isolate* isolate = Isolate::GetCurrent(); | 8224 Isolate* isolate = Isolate::GetCurrent(); |
| 8237 return isolate->IsDead(); | 8225 return isolate->IsDead(); |
| 8238 } | 8226 } |
| 8239 | 8227 |
| 8240 | 8228 |
| 8241 bool V8::AddMessageListener(MessageCallback that, Handle<Value> data) { | 8229 bool V8::AddMessageListener(MessageCallback that, Local<Value> data) { |
| 8242 Isolate* isolate = Isolate::GetCurrent(); | 8230 Isolate* isolate = Isolate::GetCurrent(); |
| 8243 return isolate->AddMessageListener(that, data); | 8231 return isolate->AddMessageListener(that, data); |
| 8244 } | 8232 } |
| 8245 | 8233 |
| 8246 | 8234 |
| 8247 void V8::RemoveMessageListeners(MessageCallback that) { | 8235 void V8::RemoveMessageListeners(MessageCallback that) { |
| 8248 Isolate* isolate = Isolate::GetCurrent(); | 8236 Isolate* isolate = Isolate::GetCurrent(); |
| 8249 isolate->RemoveMessageListeners(that); | 8237 isolate->RemoveMessageListeners(that); |
| 8250 } | 8238 } |
| 8251 | 8239 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8350 */ | 8338 */ |
| 8351 | 8339 |
| 8352 | 8340 |
| 8353 } // namespace v8 | 8341 } // namespace v8 |
| 8354 | 8342 |
| 8355 | 8343 |
| 8356 #undef TYPE_CHECK | 8344 #undef TYPE_CHECK |
| 8357 | 8345 |
| 8358 | 8346 |
| 8359 #endif // V8_H_ | 8347 #endif // V8_H_ |
| OLD | NEW |