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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 template <class T> class Handle; | 124 template <class T> class Handle; |
125 template <class T> class Local; | 125 template <class T> class Local; |
126 template <class T> class Persistent; | 126 template <class T> class Persistent; |
127 class FunctionTemplate; | 127 class FunctionTemplate; |
128 class ObjectTemplate; | 128 class ObjectTemplate; |
129 class Data; | 129 class Data; |
130 class AccessorInfo; | 130 class AccessorInfo; |
131 class StackTrace; | 131 class StackTrace; |
132 class StackFrame; | 132 class StackFrame; |
133 class Isolate; | 133 class Isolate; |
| 134 class DeclaredAccessorDescriptor; |
| 135 class ObjectOperationDescriptor; |
| 136 class RawOperationDescriptor; |
134 | 137 |
135 namespace internal { | 138 namespace internal { |
136 | 139 |
137 class Arguments; | 140 class Arguments; |
138 class Object; | 141 class Object; |
139 class Heap; | 142 class Heap; |
140 class HeapObject; | 143 class HeapObject; |
141 class Isolate; | 144 class Isolate; |
142 } | 145 } |
143 | 146 |
(...skipping 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1599 | 1602 |
1600 bool Delete(uint32_t index); | 1603 bool Delete(uint32_t index); |
1601 | 1604 |
1602 bool SetAccessor(Handle<String> name, | 1605 bool SetAccessor(Handle<String> name, |
1603 AccessorGetter getter, | 1606 AccessorGetter getter, |
1604 AccessorSetter setter = 0, | 1607 AccessorSetter setter = 0, |
1605 Handle<Value> data = Handle<Value>(), | 1608 Handle<Value> data = Handle<Value>(), |
1606 AccessControl settings = DEFAULT, | 1609 AccessControl settings = DEFAULT, |
1607 PropertyAttribute attribute = None); | 1610 PropertyAttribute attribute = None); |
1608 | 1611 |
| 1612 // This function is not yet stable and should not be used at this time. |
| 1613 bool SetAccessor(Handle<String> name, |
| 1614 Handle<DeclaredAccessorDescriptor> descriptor, |
| 1615 AccessControl settings = DEFAULT, |
| 1616 PropertyAttribute attribute = None); |
| 1617 |
1609 /** | 1618 /** |
1610 * Returns an array containing the names of the enumerable properties | 1619 * Returns an array containing the names of the enumerable properties |
1611 * of this object, including properties from prototype objects. The | 1620 * of this object, including properties from prototype objects. The |
1612 * array returned by this method contains the same values as would | 1621 * array returned by this method contains the same values as would |
1613 * be enumerated by a for-in statement over this object. | 1622 * be enumerated by a for-in statement over this object. |
1614 */ | 1623 */ |
1615 Local<Array> GetPropertyNames(); | 1624 Local<Array> GetPropertyNames(); |
1616 | 1625 |
1617 /** | 1626 /** |
1618 * This function has the same functionality as GetPropertyNames but | 1627 * This function has the same functionality as GetPropertyNames but |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2370 void ReadOnlyPrototype(); | 2379 void ReadOnlyPrototype(); |
2371 | 2380 |
2372 /** | 2381 /** |
2373 * Returns true if the given object is an instance of this function | 2382 * Returns true if the given object is an instance of this function |
2374 * template. | 2383 * template. |
2375 */ | 2384 */ |
2376 bool HasInstance(Handle<Value> object); | 2385 bool HasInstance(Handle<Value> object); |
2377 | 2386 |
2378 private: | 2387 private: |
2379 FunctionTemplate(); | 2388 FunctionTemplate(); |
2380 void AddInstancePropertyAccessor(Handle<String> name, | |
2381 AccessorGetter getter, | |
2382 AccessorSetter setter, | |
2383 Handle<Value> data, | |
2384 AccessControl settings, | |
2385 PropertyAttribute attributes, | |
2386 Handle<AccessorSignature> signature); | |
2387 void SetNamedInstancePropertyHandler(NamedPropertyGetter getter, | 2389 void SetNamedInstancePropertyHandler(NamedPropertyGetter getter, |
2388 NamedPropertySetter setter, | 2390 NamedPropertySetter setter, |
2389 NamedPropertyQuery query, | 2391 NamedPropertyQuery query, |
2390 NamedPropertyDeleter remover, | 2392 NamedPropertyDeleter remover, |
2391 NamedPropertyEnumerator enumerator, | 2393 NamedPropertyEnumerator enumerator, |
2392 Handle<Value> data); | 2394 Handle<Value> data); |
2393 void SetIndexedInstancePropertyHandler(IndexedPropertyGetter getter, | 2395 void SetIndexedInstancePropertyHandler(IndexedPropertyGetter getter, |
2394 IndexedPropertySetter setter, | 2396 IndexedPropertySetter setter, |
2395 IndexedPropertyQuery query, | 2397 IndexedPropertyQuery query, |
2396 IndexedPropertyDeleter remover, | 2398 IndexedPropertyDeleter remover, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2449 */ | 2451 */ |
2450 void SetAccessor(Handle<String> name, | 2452 void SetAccessor(Handle<String> name, |
2451 AccessorGetter getter, | 2453 AccessorGetter getter, |
2452 AccessorSetter setter = 0, | 2454 AccessorSetter setter = 0, |
2453 Handle<Value> data = Handle<Value>(), | 2455 Handle<Value> data = Handle<Value>(), |
2454 AccessControl settings = DEFAULT, | 2456 AccessControl settings = DEFAULT, |
2455 PropertyAttribute attribute = None, | 2457 PropertyAttribute attribute = None, |
2456 Handle<AccessorSignature> signature = | 2458 Handle<AccessorSignature> signature = |
2457 Handle<AccessorSignature>()); | 2459 Handle<AccessorSignature>()); |
2458 | 2460 |
| 2461 // This function is not yet stable and should not be used at this time. |
| 2462 bool SetAccessor(Handle<String> name, |
| 2463 Handle<DeclaredAccessorDescriptor> descriptor, |
| 2464 AccessControl settings = DEFAULT, |
| 2465 PropertyAttribute attribute = None, |
| 2466 Handle<AccessorSignature> signature = |
| 2467 Handle<AccessorSignature>()); |
| 2468 |
2459 /** | 2469 /** |
2460 * Sets a named property handler on the object template. | 2470 * Sets a named property handler on the object template. |
2461 * | 2471 * |
2462 * Whenever a named property is accessed on objects created from | 2472 * Whenever a named property is accessed on objects created from |
2463 * this object template, the provided callback is invoked instead of | 2473 * this object template, the provided callback is invoked instead of |
2464 * accessing the property directly on the JavaScript object. | 2474 * accessing the property directly on the JavaScript object. |
2465 * | 2475 * |
2466 * \param getter The callback to invoke when getting a property. | 2476 * \param getter The callback to invoke when getting a property. |
2467 * \param setter The callback to invoke when setting a property. | 2477 * \param setter The callback to invoke when setting a property. |
2468 * \param query The callback to invoke to check if a property is present, | 2478 * \param query The callback to invoke to check if a property is present, |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2578 */ | 2588 */ |
2579 class V8EXPORT AccessorSignature : public Data { | 2589 class V8EXPORT AccessorSignature : public Data { |
2580 public: | 2590 public: |
2581 static Local<AccessorSignature> New(Handle<FunctionTemplate> receiver = | 2591 static Local<AccessorSignature> New(Handle<FunctionTemplate> receiver = |
2582 Handle<FunctionTemplate>()); | 2592 Handle<FunctionTemplate>()); |
2583 private: | 2593 private: |
2584 AccessorSignature(); | 2594 AccessorSignature(); |
2585 }; | 2595 }; |
2586 | 2596 |
2587 | 2597 |
| 2598 class V8EXPORT DeclaredAccessorDescriptor : public Data { |
| 2599 private: |
| 2600 DeclaredAccessorDescriptor(); |
| 2601 }; |
| 2602 |
| 2603 |
| 2604 class V8EXPORT ObjectOperationDescriptor : public Data { |
| 2605 public: |
| 2606 // This function is not yet stable and should not be used at this time. |
| 2607 static Local<RawOperationDescriptor> NewInternalFieldDereference( |
| 2608 Isolate* isolate, |
| 2609 int internal_field); |
| 2610 private: |
| 2611 ObjectOperationDescriptor(); |
| 2612 }; |
| 2613 |
| 2614 |
| 2615 enum DeclaredAccessorDescriptorDataType { |
| 2616 kDescriptorBoolType, |
| 2617 kDescriptorInt8Type, kDescriptorUint8Type, |
| 2618 kDescriptorInt16Type, kDescriptorUint16Type, |
| 2619 kDescriptorInt32Type, kDescriptorUint32Type, |
| 2620 kDescriptorFloatType, kDescriptorDoubleType |
| 2621 }; |
| 2622 |
| 2623 |
| 2624 class V8EXPORT RawOperationDescriptor : public Data { |
| 2625 public: |
| 2626 Local<DeclaredAccessorDescriptor> NewHandleDereference(Isolate* isolate); |
| 2627 Local<RawOperationDescriptor> NewRawDereference(Isolate* isolate); |
| 2628 Local<RawOperationDescriptor> NewRawShift(Isolate* isolate, |
| 2629 int16_t byte_offset); |
| 2630 Local<DeclaredAccessorDescriptor> NewPointerCompare(Isolate* isolate, |
| 2631 void* compare_value); |
| 2632 Local<DeclaredAccessorDescriptor> NewPrimitiveValue( |
| 2633 Isolate* isolate, |
| 2634 DeclaredAccessorDescriptorDataType data_type, |
| 2635 uint8_t bool_offset = 0); |
| 2636 Local<DeclaredAccessorDescriptor> NewBitmaskCompare8(Isolate* isolate, |
| 2637 uint8_t bitmask, |
| 2638 uint8_t compare_value); |
| 2639 Local<DeclaredAccessorDescriptor> NewBitmaskCompare16( |
| 2640 Isolate* isolate, |
| 2641 uint16_t bitmask, |
| 2642 uint16_t compare_value); |
| 2643 Local<DeclaredAccessorDescriptor> NewBitmaskCompare32( |
| 2644 Isolate* isolate, |
| 2645 uint32_t bitmask, |
| 2646 uint32_t compare_value); |
| 2647 |
| 2648 private: |
| 2649 RawOperationDescriptor(); |
| 2650 }; |
| 2651 |
| 2652 |
2588 /** | 2653 /** |
2589 * A utility for determining the type of objects based on the template | 2654 * A utility for determining the type of objects based on the template |
2590 * they were constructed from. | 2655 * they were constructed from. |
2591 */ | 2656 */ |
2592 class V8EXPORT TypeSwitch : public Data { | 2657 class V8EXPORT TypeSwitch : public Data { |
2593 public: | 2658 public: |
2594 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); | 2659 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); |
2595 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); | 2660 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); |
2596 int match(Handle<Value> value); | 2661 int match(Handle<Value> value); |
2597 private: | 2662 private: |
(...skipping 2358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4956 | 5021 |
4957 | 5022 |
4958 } // namespace v8 | 5023 } // namespace v8 |
4959 | 5024 |
4960 | 5025 |
4961 #undef V8EXPORT | 5026 #undef V8EXPORT |
4962 #undef TYPE_CHECK | 5027 #undef TYPE_CHECK |
4963 | 5028 |
4964 | 5029 |
4965 #endif // V8_H_ | 5030 #endif // V8_H_ |
OLD | NEW |