| 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 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 // Calling SetSecondPassCallback on the second pass will immediately crash. | 449 // Calling SetSecondPassCallback on the second pass will immediately crash. |
| 450 void SetSecondPassCallback(Callback callback) const { *callback_ = callback; } | 450 void SetSecondPassCallback(Callback callback) const { *callback_ = callback; } |
| 451 | 451 |
| 452 private: | 452 private: |
| 453 Isolate* isolate_; | 453 Isolate* isolate_; |
| 454 T* parameter_; | 454 T* parameter_; |
| 455 Callback* callback_; | 455 Callback* callback_; |
| 456 void* embedder_fields_[kEmbedderFieldsInWeakCallback]; | 456 void* embedder_fields_[kEmbedderFieldsInWeakCallback]; |
| 457 }; | 457 }; |
| 458 | 458 |
| 459 | |
| 460 // kParameter will pass a void* parameter back to the callback, kInternalFields | 459 // kParameter will pass a void* parameter back to the callback, kInternalFields |
| 461 // will pass the first two internal fields back to the callback, kFinalizer | 460 // will pass the first two internal fields back to the callback, kFinalizer |
| 462 // will pass a void* parameter back, but is invoked before the object is | 461 // will pass a void* parameter back, but is invoked before the object is |
| 463 // actually collected, so it can be resurrected. In the last case, it is not | 462 // actually collected, so it can be resurrected. In the last case, it is not |
| 464 // possible to request a second pass callback. | 463 // possible to request a second pass callback. |
| 465 enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer }; | 464 enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer }; |
| 466 | 465 |
| 467 /** | 466 /** |
| 468 * An object reference that is independent of any handle scope. Where | 467 * An object reference that is independent of any handle scope. Where |
| 469 * a Local handle only lives as long as the HandleScope in which it was | 468 * a Local handle only lives as long as the HandleScope in which it was |
| (...skipping 2513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2983 * kSkipIndices will exclude integer indicies from being collected. | 2982 * kSkipIndices will exclude integer indicies from being collected. |
| 2984 */ | 2983 */ |
| 2985 enum class IndexFilter { kIncludeIndices, kSkipIndices }; | 2984 enum class IndexFilter { kIncludeIndices, kSkipIndices }; |
| 2986 | 2985 |
| 2987 /** | 2986 /** |
| 2988 * Integrity level for objects. | 2987 * Integrity level for objects. |
| 2989 */ | 2988 */ |
| 2990 enum class IntegrityLevel { kFrozen, kSealed }; | 2989 enum class IntegrityLevel { kFrozen, kSealed }; |
| 2991 | 2990 |
| 2992 /** | 2991 /** |
| 2992 * kDontSkip is the default behaviour and triggers the definer |
| 2993 * interceptor when setting an own property on an object using |
| 2994 * DefineProperty. kSkip bypasses the interceptors. |
| 2995 */ |
| 2996 enum class CallInterceptors { kSkip, kDontSkip }; |
| 2997 |
| 2998 /** |
| 2993 * A JavaScript object (ECMA-262, 4.3.3) | 2999 * A JavaScript object (ECMA-262, 4.3.3) |
| 2994 */ | 3000 */ |
| 2995 class V8_EXPORT Object : public Value { | 3001 class V8_EXPORT Object : public Value { |
| 2996 public: | 3002 public: |
| 2997 V8_DEPRECATE_SOON("Use maybe version", | 3003 V8_DEPRECATE_SOON("Use maybe version", |
| 2998 bool Set(Local<Value> key, Local<Value> value)); | 3004 bool Set(Local<Value> key, Local<Value> value)); |
| 2999 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, | 3005 V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, |
| 3000 Local<Value> key, Local<Value> value); | 3006 Local<Value> key, Local<Value> value); |
| 3001 | 3007 |
| 3002 V8_DEPRECATE_SOON("Use maybe version", | 3008 V8_DEPRECATE_SOON("Use maybe version", |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3019 Local<Value> value); | 3025 Local<Value> value); |
| 3020 | 3026 |
| 3021 // Implements DefineOwnProperty. | 3027 // Implements DefineOwnProperty. |
| 3022 // | 3028 // |
| 3023 // In general, CreateDataProperty will be faster, however, does not allow | 3029 // In general, CreateDataProperty will be faster, however, does not allow |
| 3024 // for specifying attributes. | 3030 // for specifying attributes. |
| 3025 // | 3031 // |
| 3026 // Returns true on success. | 3032 // Returns true on success. |
| 3027 V8_WARN_UNUSED_RESULT Maybe<bool> DefineOwnProperty( | 3033 V8_WARN_UNUSED_RESULT Maybe<bool> DefineOwnProperty( |
| 3028 Local<Context> context, Local<Name> key, Local<Value> value, | 3034 Local<Context> context, Local<Name> key, Local<Value> value, |
| 3029 PropertyAttribute attributes = None); | 3035 PropertyAttribute attributes = None, |
| 3036 CallInterceptors call_interceptors = CallInterceptors::kDontSkip); |
| 3030 | 3037 |
| 3031 // Implements Object.DefineProperty(O, P, Attributes), see Ecma-262 19.1.2.4. | 3038 // Implements Object.DefineProperty(O, P, Attributes), see Ecma-262 19.1.2.4. |
| 3032 // | 3039 // |
| 3033 // The defineProperty function is used to add an own property or | 3040 // The defineProperty function is used to add an own property or |
| 3034 // update the attributes of an existing own property of an object. | 3041 // update the attributes of an existing own property of an object. |
| 3035 // | 3042 // |
| 3036 // Both data and accessor descriptors can be used. | 3043 // Both data and accessor descriptors can be used. |
| 3037 // | 3044 // |
| 3038 // In general, CreateDataProperty is faster, however, does not allow | 3045 // In general, CreateDataProperty is faster, however, does not allow |
| 3039 // for specifying attributes or an accessor descriptor. | 3046 // for specifying attributes or an accessor descriptor. |
| 3040 // | 3047 // |
| 3041 // The PropertyDescriptor can change when redefining a property. | 3048 // The PropertyDescriptor can change when redefining a property. |
| 3042 // | 3049 // |
| 3050 // CallInterceptors call_interceptors = kSkip |
| 3051 // bypasses interceptors when setting property on an object. |
| 3052 // |
| 3043 // Returns true on success. | 3053 // Returns true on success. |
| 3044 V8_WARN_UNUSED_RESULT Maybe<bool> DefineProperty( | 3054 V8_WARN_UNUSED_RESULT Maybe<bool> DefineProperty( |
| 3045 Local<Context> context, Local<Name> key, PropertyDescriptor& descriptor); | 3055 Local<Context> context, Local<Name> key, PropertyDescriptor& descriptor, |
| 3056 CallInterceptors call_interceptors = CallInterceptors::kDontSkip); |
| 3046 | 3057 |
| 3047 // Sets an own property on this object bypassing interceptors and | 3058 // Sets an own property on this object bypassing interceptors and |
| 3048 // overriding accessors or read-only properties. | 3059 // overriding accessors or read-only properties. |
| 3049 // | 3060 // |
| 3050 // Note that if the object has an interceptor the property will be set | 3061 // Note that if the object has an interceptor the property will be set |
| 3051 // locally, but since the interceptor takes precedence the local property | 3062 // locally, but since the interceptor takes precedence the local property |
| 3052 // will only be returned if the interceptor doesn't return a value. | 3063 // will only be returned if the interceptor doesn't return a value. |
| 3053 // | 3064 // |
| 3054 // Note also that this only works for named properties. | 3065 // Note also that this only works for named properties. |
| 3055 V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty", | 3066 V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty", |
| (...skipping 7084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10140 */ | 10151 */ |
| 10141 | 10152 |
| 10142 | 10153 |
| 10143 } // namespace v8 | 10154 } // namespace v8 |
| 10144 | 10155 |
| 10145 | 10156 |
| 10146 #undef TYPE_CHECK | 10157 #undef TYPE_CHECK |
| 10147 | 10158 |
| 10148 | 10159 |
| 10149 #endif // INCLUDE_V8_H_ | 10160 #endif // INCLUDE_V8_H_ |
| OLD | NEW |