| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 147 class ObjectTemplate; | 147 class ObjectTemplate; | 
| 148 class Data; | 148 class Data; | 
| 149 class AccessorInfo; | 149 class AccessorInfo; | 
| 150 template<typename T> class PropertyCallbackInfo; | 150 template<typename T> class PropertyCallbackInfo; | 
| 151 class StackTrace; | 151 class StackTrace; | 
| 152 class StackFrame; | 152 class StackFrame; | 
| 153 class Isolate; | 153 class Isolate; | 
| 154 class DeclaredAccessorDescriptor; | 154 class DeclaredAccessorDescriptor; | 
| 155 class ObjectOperationDescriptor; | 155 class ObjectOperationDescriptor; | 
| 156 class RawOperationDescriptor; | 156 class RawOperationDescriptor; | 
|  | 157 class CallHandlerHelper; | 
| 157 | 158 | 
| 158 namespace internal { | 159 namespace internal { | 
| 159 class Arguments; | 160 class Arguments; | 
| 160 class Heap; | 161 class Heap; | 
| 161 class HeapObject; | 162 class HeapObject; | 
| 162 class Isolate; | 163 class Isolate; | 
| 163 class Object; | 164 class Object; | 
| 164 template<typename T> class CustomArguments; | 165 template<typename T> class CustomArguments; | 
| 165 class PropertyCallbackArguments; | 166 class PropertyCallbackArguments; | 
| 166 class FunctionCallbackArguments; | 167 class FunctionCallbackArguments; | 
| (...skipping 1879 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2046   bool Delete(Handle<Value> key); | 2047   bool Delete(Handle<Value> key); | 
| 2047 | 2048 | 
| 2048   // Delete a property on this object bypassing interceptors and | 2049   // Delete a property on this object bypassing interceptors and | 
| 2049   // ignoring dont-delete attributes. | 2050   // ignoring dont-delete attributes. | 
| 2050   bool ForceDelete(Handle<Value> key); | 2051   bool ForceDelete(Handle<Value> key); | 
| 2051 | 2052 | 
| 2052   bool Has(uint32_t index); | 2053   bool Has(uint32_t index); | 
| 2053 | 2054 | 
| 2054   bool Delete(uint32_t index); | 2055   bool Delete(uint32_t index); | 
| 2055 | 2056 | 
| 2056   // TODO(dcarney): deprecate | 2057   V8_DEPRECATED(bool SetAccessor(Handle<String> name, | 
| 2057   bool SetAccessor(Handle<String> name, | 2058                                  AccessorGetter getter, | 
| 2058                    AccessorGetter getter, | 2059                                  AccessorSetter setter = 0, | 
| 2059                    AccessorSetter setter = 0, | 2060                                  Handle<Value> data = Handle<Value>(), | 
| 2060                    Handle<Value> data = Handle<Value>(), | 2061                                  AccessControl settings = DEFAULT, | 
| 2061                    AccessControl settings = DEFAULT, | 2062                                  PropertyAttribute attribute = None)); | 
| 2062                    PropertyAttribute attribute = None); |  | 
| 2063   bool SetAccessor(Handle<String> name, | 2063   bool SetAccessor(Handle<String> name, | 
| 2064                    AccessorGetterCallback getter, | 2064                    AccessorGetterCallback getter, | 
| 2065                    AccessorSetterCallback setter = 0, | 2065                    AccessorSetterCallback setter = 0, | 
| 2066                    Handle<Value> data = Handle<Value>(), | 2066                    Handle<Value> data = Handle<Value>(), | 
| 2067                    AccessControl settings = DEFAULT, | 2067                    AccessControl settings = DEFAULT, | 
| 2068                    PropertyAttribute attribute = None); | 2068                    PropertyAttribute attribute = None); | 
| 2069 | 2069 | 
| 2070   // This function is not yet stable and should not be used at this time. | 2070   // This function is not yet stable and should not be used at this time. | 
| 2071   bool SetAccessor(Handle<String> name, | 2071   bool SetAccessor(Handle<String> name, | 
| 2072                    Handle<DeclaredAccessorDescriptor> descriptor, | 2072                    Handle<DeclaredAccessorDescriptor> descriptor, | 
| (...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3188  * | 3188  * | 
| 3189  * \code | 3189  * \code | 
| 3190  *   child_func.prototype.__proto__ == function.prototype; | 3190  *   child_func.prototype.__proto__ == function.prototype; | 
| 3191  *   child_instance.instance_accessor calls 'InstanceAccessorCallback' | 3191  *   child_instance.instance_accessor calls 'InstanceAccessorCallback' | 
| 3192  *   child_instance.instance_property == 3; | 3192  *   child_instance.instance_property == 3; | 
| 3193  * \endcode | 3193  * \endcode | 
| 3194  */ | 3194  */ | 
| 3195 class V8EXPORT FunctionTemplate : public Template { | 3195 class V8EXPORT FunctionTemplate : public Template { | 
| 3196  public: | 3196  public: | 
| 3197   /** Creates a function template.*/ | 3197   /** Creates a function template.*/ | 
| 3198   // TODO(dcarney): deprecate | 3198   V8_DEPRECATED(static Local<FunctionTemplate> New( | 
|  | 3199       InvocationCallback callback, | 
|  | 3200       Handle<Value> data = Handle<Value>(), | 
|  | 3201       Handle<Signature> signature = Handle<Signature>(), | 
|  | 3202       int length = 0)); | 
| 3199   static Local<FunctionTemplate> New( | 3203   static Local<FunctionTemplate> New( | 
| 3200       InvocationCallback callback = 0, | 3204       FunctionCallback callback = 0, | 
| 3201       Handle<Value> data = Handle<Value>(), | 3205       Handle<Value> data = Handle<Value>(), | 
| 3202       Handle<Signature> signature = Handle<Signature>(), | 3206       Handle<Signature> signature = Handle<Signature>(), | 
| 3203       int length = 0); | 3207       int length = 0); | 
| 3204   static Local<FunctionTemplate> New( |  | 
| 3205       FunctionCallback callback,  // TODO(dcarney): add back default param. |  | 
| 3206       Handle<Value> data = Handle<Value>(), |  | 
| 3207       Handle<Signature> signature = Handle<Signature>(), |  | 
| 3208       int length = 0); |  | 
| 3209 | 3208 | 
| 3210   /** Returns the unique function instance in the current execution context.*/ | 3209   /** Returns the unique function instance in the current execution context.*/ | 
| 3211   Local<Function> GetFunction(); | 3210   Local<Function> GetFunction(); | 
| 3212 | 3211 | 
| 3213   /** | 3212   /** | 
| 3214    * Set the call-handler callback for a FunctionTemplate.  This | 3213    * Set the call-handler callback for a FunctionTemplate.  This | 
| 3215    * callback is called whenever the function created from this | 3214    * callback is called whenever the function created from this | 
| 3216    * FunctionTemplate is called. | 3215    * FunctionTemplate is called. | 
| 3217    */ | 3216    */ | 
| 3218   // TODO(dcarney): deprecate | 3217   V8_DEPRECATED(void SetCallHandler(InvocationCallback callback, | 
| 3219   void SetCallHandler(InvocationCallback callback, | 3218                                     Handle<Value> data = Handle<Value>())); | 
| 3220                       Handle<Value> data = Handle<Value>()); |  | 
| 3221   void SetCallHandler(FunctionCallback callback, | 3219   void SetCallHandler(FunctionCallback callback, | 
| 3222                       Handle<Value> data = Handle<Value>()); | 3220                       Handle<Value> data = Handle<Value>()); | 
| 3223 | 3221 | 
| 3224   /** Set the predefined length property for the FunctionTemplate. */ | 3222   /** Set the predefined length property for the FunctionTemplate. */ | 
| 3225   void SetLength(int length); | 3223   void SetLength(int length); | 
| 3226 | 3224 | 
| 3227   /** Get the InstanceTemplate. */ | 3225   /** Get the InstanceTemplate. */ | 
| 3228   Local<ObjectTemplate> InstanceTemplate(); | 3226   Local<ObjectTemplate> InstanceTemplate(); | 
| 3229 | 3227 | 
| 3230   /** Causes the function template to inherit from a parent function template.*/ | 3228   /** Causes the function template to inherit from a parent function template.*/ | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3264   void ReadOnlyPrototype(); | 3262   void ReadOnlyPrototype(); | 
| 3265 | 3263 | 
| 3266   /** | 3264   /** | 
| 3267    * Returns true if the given object is an instance of this function | 3265    * Returns true if the given object is an instance of this function | 
| 3268    * template. | 3266    * template. | 
| 3269    */ | 3267    */ | 
| 3270   bool HasInstance(Handle<Value> object); | 3268   bool HasInstance(Handle<Value> object); | 
| 3271 | 3269 | 
| 3272  private: | 3270  private: | 
| 3273   FunctionTemplate(); | 3271   FunctionTemplate(); | 
|  | 3272   // TODO(dcarney): Remove with SetCallHandler. | 
|  | 3273   friend class v8::CallHandlerHelper; | 
|  | 3274   void SetCallHandlerInternal(InvocationCallback callback, Handle<Value> data); | 
| 3274   friend class Context; | 3275   friend class Context; | 
| 3275   friend class ObjectTemplate; | 3276   friend class ObjectTemplate; | 
| 3276 }; | 3277 }; | 
| 3277 | 3278 | 
| 3278 | 3279 | 
| 3279 /** | 3280 /** | 
| 3280  * An ObjectTemplate is used to create objects at runtime. | 3281  * An ObjectTemplate is used to create objects at runtime. | 
| 3281  * | 3282  * | 
| 3282  * Properties added to an ObjectTemplate are added to each object | 3283  * Properties added to an ObjectTemplate are added to each object | 
| 3283  * created from the ObjectTemplate. | 3284  * created from the ObjectTemplate. | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 3312    *   The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all | 3313    *   The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all | 
| 3313    *   cross-context access. | 3314    *   cross-context access. | 
| 3314    * \param attribute The attributes of the property for which an accessor | 3315    * \param attribute The attributes of the property for which an accessor | 
| 3315    *   is added. | 3316    *   is added. | 
| 3316    * \param signature The signature describes valid receivers for the accessor | 3317    * \param signature The signature describes valid receivers for the accessor | 
| 3317    *   and is used to perform implicit instance checks against them. If the | 3318    *   and is used to perform implicit instance checks against them. If the | 
| 3318    *   receiver is incompatible (i.e. is not an instance of the constructor as | 3319    *   receiver is incompatible (i.e. is not an instance of the constructor as | 
| 3319    *   defined by FunctionTemplate::HasInstance()), an implicit TypeError is | 3320    *   defined by FunctionTemplate::HasInstance()), an implicit TypeError is | 
| 3320    *   thrown and no callback is invoked. | 3321    *   thrown and no callback is invoked. | 
| 3321    */ | 3322    */ | 
| 3322   // TODO(dcarney): deprecate | 3323   V8_DEPRECATED(void SetAccessor(Handle<String> name, | 
| 3323   void SetAccessor(Handle<String> name, | 3324                                  AccessorGetter getter, | 
| 3324                    AccessorGetter getter, | 3325                                  AccessorSetter setter = 0, | 
| 3325                    AccessorSetter setter = 0, | 3326                                  Handle<Value> data = Handle<Value>(), | 
| 3326                    Handle<Value> data = Handle<Value>(), | 3327                                  AccessControl settings = DEFAULT, | 
| 3327                    AccessControl settings = DEFAULT, | 3328                                  PropertyAttribute attribute = None, | 
| 3328                    PropertyAttribute attribute = None, | 3329                                  Handle<AccessorSignature> signature = | 
| 3329                    Handle<AccessorSignature> signature = | 3330                                      Handle<AccessorSignature>())); | 
| 3330                        Handle<AccessorSignature>()); |  | 
| 3331   void SetAccessor(Handle<String> name, | 3331   void SetAccessor(Handle<String> name, | 
| 3332                    AccessorGetterCallback getter, | 3332                    AccessorGetterCallback getter, | 
| 3333                    AccessorSetterCallback setter = 0, | 3333                    AccessorSetterCallback setter = 0, | 
| 3334                    Handle<Value> data = Handle<Value>(), | 3334                    Handle<Value> data = Handle<Value>(), | 
| 3335                    AccessControl settings = DEFAULT, | 3335                    AccessControl settings = DEFAULT, | 
| 3336                    PropertyAttribute attribute = None, | 3336                    PropertyAttribute attribute = None, | 
| 3337                    Handle<AccessorSignature> signature = | 3337                    Handle<AccessorSignature> signature = | 
| 3338                        Handle<AccessorSignature>()); | 3338                        Handle<AccessorSignature>()); | 
| 3339 | 3339 | 
| 3340   // This function is not yet stable and should not be used at this time. | 3340   // This function is not yet stable and should not be used at this time. | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 3355    * \param getter The callback to invoke when getting a property. | 3355    * \param getter The callback to invoke when getting a property. | 
| 3356    * \param setter The callback to invoke when setting a property. | 3356    * \param setter The callback to invoke when setting a property. | 
| 3357    * \param query The callback to invoke to check if a property is present, | 3357    * \param query The callback to invoke to check if a property is present, | 
| 3358    *   and if present, get its attributes. | 3358    *   and if present, get its attributes. | 
| 3359    * \param deleter The callback to invoke when deleting a property. | 3359    * \param deleter The callback to invoke when deleting a property. | 
| 3360    * \param enumerator The callback to invoke to enumerate all the named | 3360    * \param enumerator The callback to invoke to enumerate all the named | 
| 3361    *   properties of an object. | 3361    *   properties of an object. | 
| 3362    * \param data A piece of data that will be passed to the callbacks | 3362    * \param data A piece of data that will be passed to the callbacks | 
| 3363    *   whenever they are invoked. | 3363    *   whenever they are invoked. | 
| 3364    */ | 3364    */ | 
| 3365   // TODO(dcarney): deprecate | 3365   V8_DEPRECATED(void SetNamedPropertyHandler( | 
| 3366   void SetNamedPropertyHandler(NamedPropertyGetter getter, | 3366       NamedPropertyGetter getter, | 
| 3367                                NamedPropertySetter setter = 0, | 3367       NamedPropertySetter setter = 0, | 
| 3368                                NamedPropertyQuery query = 0, | 3368       NamedPropertyQuery query = 0, | 
| 3369                                NamedPropertyDeleter deleter = 0, | 3369       NamedPropertyDeleter deleter = 0, | 
| 3370                                NamedPropertyEnumerator enumerator = 0, | 3370       NamedPropertyEnumerator enumerator = 0, | 
| 3371                                Handle<Value> data = Handle<Value>()); | 3371       Handle<Value> data = Handle<Value>())); | 
| 3372   void SetNamedPropertyHandler( | 3372   void SetNamedPropertyHandler( | 
| 3373       NamedPropertyGetterCallback getter, | 3373       NamedPropertyGetterCallback getter, | 
| 3374       NamedPropertySetterCallback setter = 0, | 3374       NamedPropertySetterCallback setter = 0, | 
| 3375       NamedPropertyQueryCallback query = 0, | 3375       NamedPropertyQueryCallback query = 0, | 
| 3376       NamedPropertyDeleterCallback deleter = 0, | 3376       NamedPropertyDeleterCallback deleter = 0, | 
| 3377       NamedPropertyEnumeratorCallback enumerator = 0, | 3377       NamedPropertyEnumeratorCallback enumerator = 0, | 
| 3378       Handle<Value> data = Handle<Value>()); | 3378       Handle<Value> data = Handle<Value>()); | 
| 3379 | 3379 | 
| 3380   /** | 3380   /** | 
| 3381    * Sets an indexed property handler on the object template. | 3381    * Sets an indexed property handler on the object template. | 
| 3382    * | 3382    * | 
| 3383    * Whenever an indexed property is accessed on objects created from | 3383    * Whenever an indexed property is accessed on objects created from | 
| 3384    * this object template, the provided callback is invoked instead of | 3384    * this object template, the provided callback is invoked instead of | 
| 3385    * accessing the property directly on the JavaScript object. | 3385    * accessing the property directly on the JavaScript object. | 
| 3386    * | 3386    * | 
| 3387    * \param getter The callback to invoke when getting a property. | 3387    * \param getter The callback to invoke when getting a property. | 
| 3388    * \param setter The callback to invoke when setting a property. | 3388    * \param setter The callback to invoke when setting a property. | 
| 3389    * \param query The callback to invoke to check if an object has a property. | 3389    * \param query The callback to invoke to check if an object has a property. | 
| 3390    * \param deleter The callback to invoke when deleting a property. | 3390    * \param deleter The callback to invoke when deleting a property. | 
| 3391    * \param enumerator The callback to invoke to enumerate all the indexed | 3391    * \param enumerator The callback to invoke to enumerate all the indexed | 
| 3392    *   properties of an object. | 3392    *   properties of an object. | 
| 3393    * \param data A piece of data that will be passed to the callbacks | 3393    * \param data A piece of data that will be passed to the callbacks | 
| 3394    *   whenever they are invoked. | 3394    *   whenever they are invoked. | 
| 3395    */ | 3395    */ | 
| 3396   // TODO(dcarney): deprecate | 3396   V8_DEPRECATED(void SetIndexedPropertyHandler( | 
| 3397   void SetIndexedPropertyHandler(IndexedPropertyGetter getter, | 3397       IndexedPropertyGetter getter, | 
| 3398                                  IndexedPropertySetter setter = 0, | 3398       IndexedPropertySetter setter = 0, | 
| 3399                                  IndexedPropertyQuery query = 0, | 3399       IndexedPropertyQuery query = 0, | 
| 3400                                  IndexedPropertyDeleter deleter = 0, | 3400       IndexedPropertyDeleter deleter = 0, | 
| 3401                                  IndexedPropertyEnumerator enumerator = 0, | 3401       IndexedPropertyEnumerator enumerator = 0, | 
| 3402                                  Handle<Value> data = Handle<Value>()); | 3402       Handle<Value> data = Handle<Value>())); | 
| 3403   void SetIndexedPropertyHandler( | 3403   void SetIndexedPropertyHandler( | 
| 3404       IndexedPropertyGetterCallback getter, | 3404       IndexedPropertyGetterCallback getter, | 
| 3405       IndexedPropertySetterCallback setter = 0, | 3405       IndexedPropertySetterCallback setter = 0, | 
| 3406       IndexedPropertyQueryCallback query = 0, | 3406       IndexedPropertyQueryCallback query = 0, | 
| 3407       IndexedPropertyDeleterCallback deleter = 0, | 3407       IndexedPropertyDeleterCallback deleter = 0, | 
| 3408       IndexedPropertyEnumeratorCallback enumerator = 0, | 3408       IndexedPropertyEnumeratorCallback enumerator = 0, | 
| 3409       Handle<Value> data = Handle<Value>()); | 3409       Handle<Value> data = Handle<Value>()); | 
| 3410 | 3410 | 
| 3411   /** | 3411   /** | 
| 3412    * Sets the callback to be used when calling instances created from | 3412    * Sets the callback to be used when calling instances created from | 
| 3413    * this template as a function.  If no callback is set, instances | 3413    * this template as a function.  If no callback is set, instances | 
| 3414    * behave like normal JavaScript objects that cannot be called as a | 3414    * behave like normal JavaScript objects that cannot be called as a | 
| 3415    * function. | 3415    * function. | 
| 3416    */ | 3416    */ | 
| 3417   // TODO(dcarney): deprecate | 3417   V8_DEPRECATED(void SetCallAsFunctionHandler( | 
| 3418   void SetCallAsFunctionHandler(InvocationCallback callback, | 3418       InvocationCallback callback, | 
| 3419                                 Handle<Value> data = Handle<Value>()); | 3419       Handle<Value> data = Handle<Value>())); | 
| 3420   void SetCallAsFunctionHandler(FunctionCallback callback, | 3420   void SetCallAsFunctionHandler(FunctionCallback callback, | 
| 3421                                 Handle<Value> data = Handle<Value>()); | 3421                                 Handle<Value> data = Handle<Value>()); | 
| 3422 | 3422 | 
| 3423   /** | 3423   /** | 
| 3424    * Mark object instances of the template as undetectable. | 3424    * Mark object instances of the template as undetectable. | 
| 3425    * | 3425    * | 
| 3426    * In many ways, undetectable objects behave as though they are not | 3426    * In many ways, undetectable objects behave as though they are not | 
| 3427    * there.  They behave like 'undefined' in conditionals and when | 3427    * there.  They behave like 'undefined' in conditionals and when | 
| 3428    * printed.  However, properties can be accessed and called as on | 3428    * printed.  However, properties can be accessed and called as on | 
| 3429    * normal objects. | 3429    * normal objects. | 
| (...skipping 2935 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6365 | 6365 | 
| 6366 | 6366 | 
| 6367 }  // namespace v8 | 6367 }  // namespace v8 | 
| 6368 | 6368 | 
| 6369 | 6369 | 
| 6370 #undef V8EXPORT | 6370 #undef V8EXPORT | 
| 6371 #undef TYPE_CHECK | 6371 #undef TYPE_CHECK | 
| 6372 | 6372 | 
| 6373 | 6373 | 
| 6374 #endif  // V8_H_ | 6374 #endif  // V8_H_ | 
| OLD | NEW | 
|---|