Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Side by Side Diff: include/v8.h

Issue 972623003: convert more object functions to return maybes (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2569 matching lines...) Expand 10 before | Expand all | Expand 10 after
2580 Handle<Function> setter = Handle<Function>(), 2580 Handle<Function> setter = Handle<Function>(),
2581 PropertyAttribute attribute = None, 2581 PropertyAttribute attribute = None,
2582 AccessControl settings = DEFAULT); 2582 AccessControl settings = DEFAULT);
2583 2583
2584 /** 2584 /**
2585 * Functionality for private properties. 2585 * Functionality for private properties.
2586 * This is an experimental feature, use at your own risk. 2586 * This is an experimental feature, use at your own risk.
2587 * Note: Private properties are inherited. Do not rely on this, since it may 2587 * Note: Private properties are inherited. Do not rely on this, since it may
2588 * change. 2588 * change.
2589 */ 2589 */
2590 // TODO(dcarney): convert these or remove?
2590 bool HasPrivate(Handle<Private> key); 2591 bool HasPrivate(Handle<Private> key);
2591 bool SetPrivate(Handle<Private> key, Handle<Value> value); 2592 bool SetPrivate(Handle<Private> key, Handle<Value> value);
2592 bool DeletePrivate(Handle<Private> key); 2593 bool DeletePrivate(Handle<Private> key);
2593 Local<Value> GetPrivate(Handle<Private> key); 2594 Local<Value> GetPrivate(Handle<Private> key);
2594 2595
2595 /** 2596 /**
2596 * Returns an array containing the names of the enumerable properties 2597 * Returns an array containing the names of the enumerable properties
2597 * of this object, including properties from prototype objects. The 2598 * of this object, including properties from prototype objects. The
2598 * array returned by this method contains the same values as would 2599 * array returned by this method contains the same values as would
2599 * be enumerated by a for-in statement over this object. 2600 * be enumerated by a for-in statement over this object.
2600 */ 2601 */
2602 // TODO(dcarney): deprecate
2601 Local<Array> GetPropertyNames(); 2603 Local<Array> GetPropertyNames();
2604 MaybeLocal<Array> GetPropertyNames(Local<Context> context);
2602 2605
2603 /** 2606 /**
2604 * This function has the same functionality as GetPropertyNames but 2607 * This function has the same functionality as GetPropertyNames but
2605 * the returned array doesn't contain the names of properties from 2608 * the returned array doesn't contain the names of properties from
2606 * prototype objects. 2609 * prototype objects.
2607 */ 2610 */
2611 // TODO(dcarney): deprecate
2608 Local<Array> GetOwnPropertyNames(); 2612 Local<Array> GetOwnPropertyNames();
2613 MaybeLocal<Array> GetOwnPropertyNames(Local<Context> context);
2609 2614
2610 /** 2615 /**
2611 * Get the prototype object. This does not skip objects marked to 2616 * Get the prototype object. This does not skip objects marked to
2612 * be skipped by __proto__ and it does not consult the security 2617 * be skipped by __proto__ and it does not consult the security
2613 * handler. 2618 * handler.
2614 */ 2619 */
2615 Local<Value> GetPrototype(); 2620 Local<Value> GetPrototype();
2616 2621
2617 /** 2622 /**
2618 * Set the prototype object. This does not skip objects marked to 2623 * Set the prototype object. This does not skip objects marked to
2619 * be skipped by __proto__ and it does not consult the security 2624 * be skipped by __proto__ and it does not consult the security
2620 * handler. 2625 * handler.
2621 */ 2626 */
2627 // TODO(dcarney): deprecate
2622 bool SetPrototype(Handle<Value> prototype); 2628 bool SetPrototype(Handle<Value> prototype);
2629 Maybe<bool> SetPrototype(Local<Context> context, Local<Value> prototype);
2623 2630
2624 /** 2631 /**
2625 * Finds an instance of the given function template in the prototype 2632 * Finds an instance of the given function template in the prototype
2626 * chain. 2633 * chain.
2627 */ 2634 */
2628 Local<Object> FindInstanceInPrototypeChain(Handle<FunctionTemplate> tmpl); 2635 Local<Object> FindInstanceInPrototypeChain(Handle<FunctionTemplate> tmpl);
2629 2636
2630 /** 2637 /**
2631 * Call builtin Object.prototype.toString on this object. 2638 * Call builtin Object.prototype.toString on this object.
2632 * This is different from Value::ToString() that may call 2639 * This is different from Value::ToString() that may call
2633 * user-defined toString function. This one does not. 2640 * user-defined toString function. This one does not.
2634 */ 2641 */
2642 // TODO(dcarney): convert this - needs recursion currently.
2635 Local<String> ObjectProtoToString(); 2643 Local<String> ObjectProtoToString();
2636 2644
2637 /** 2645 /**
2638 * Returns the name of the function invoked as a constructor for this object. 2646 * Returns the name of the function invoked as a constructor for this object.
2639 */ 2647 */
2640 Local<String> GetConstructorName(); 2648 Local<String> GetConstructorName();
2641 2649
2642 /** Gets the number of internal fields for this Object. */ 2650 /** Gets the number of internal fields for this Object. */
2643 int InternalFieldCount(); 2651 int InternalFieldCount();
2644 2652
(...skipping 23 matching lines...) Expand all
2668 } 2676 }
2669 2677
2670 /** 2678 /**
2671 * Sets a 2-byte-aligned native pointer in an internal field. To retrieve such 2679 * Sets a 2-byte-aligned native pointer in an internal field. To retrieve such
2672 * a field, GetAlignedPointerFromInternalField must be used, everything else 2680 * a field, GetAlignedPointerFromInternalField must be used, everything else
2673 * leads to undefined behavior. 2681 * leads to undefined behavior.
2674 */ 2682 */
2675 void SetAlignedPointerInInternalField(int index, void* value); 2683 void SetAlignedPointerInInternalField(int index, void* value);
2676 2684
2677 // Testers for local properties. 2685 // Testers for local properties.
2686 // TODO(dcarney): deprecate
2678 bool HasOwnProperty(Handle<String> key); 2687 bool HasOwnProperty(Handle<String> key);
2688 Maybe<bool> HasOwnProperty(Local<Context> context, Local<Name> key);
2689 // TODO(dcarney): deprecate
2679 bool HasRealNamedProperty(Handle<String> key); 2690 bool HasRealNamedProperty(Handle<String> key);
2691 Maybe<bool> HasRealNamedProperty(Local<Context> context, Local<Name> key);
2692 // TODO(dcarney): deprecate
2680 bool HasRealIndexedProperty(uint32_t index); 2693 bool HasRealIndexedProperty(uint32_t index);
2694 Maybe<bool> HasRealIndexedProperty(Local<Context> context, uint32_t index);
2695 // TODO(dcarney): deprecate
2681 bool HasRealNamedCallbackProperty(Handle<String> key); 2696 bool HasRealNamedCallbackProperty(Handle<String> key);
2697 Maybe<bool> HasRealNamedCallbackProperty(Local<Context> context,
2698 Local<Name> key);
2682 2699
2683 /** 2700 /**
2684 * If result.IsEmpty() no real property was located in the prototype chain. 2701 * If result.IsEmpty() no real property was located in the prototype chain.
2685 * This means interceptors in the prototype chain are not called. 2702 * This means interceptors in the prototype chain are not called.
2686 */ 2703 */
2704 // TODO(dcarney): deprecate
2687 Local<Value> GetRealNamedPropertyInPrototypeChain(Handle<String> key); 2705 Local<Value> GetRealNamedPropertyInPrototypeChain(Handle<String> key);
2706 MaybeLocal<Value> GetRealNamedPropertyInPrototypeChain(Local<Context> context,
2707 Local<Name> key);
2688 2708
2689 /** 2709 /**
2690 * Gets the property attributes of a real property in the prototype chain, 2710 * Gets the property attributes of a real property in the prototype chain,
2691 * which can be None or any combination of ReadOnly, DontEnum and DontDelete. 2711 * which can be None or any combination of ReadOnly, DontEnum and DontDelete.
2692 * Interceptors in the prototype chain are not called. 2712 * Interceptors in the prototype chain are not called.
2693 */ 2713 */
2714 // TODO(dcarney): deprecate
2694 Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain( 2715 Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain(
2695 Handle<String> key); 2716 Handle<String> key);
2717 Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain(
2718 Local<Context> context, Local<Name> key);
2696 2719
2697 /** 2720 /**
2698 * If result.IsEmpty() no real property was located on the object or 2721 * If result.IsEmpty() no real property was located on the object or
2699 * in the prototype chain. 2722 * in the prototype chain.
2700 * This means interceptors in the prototype chain are not called. 2723 * This means interceptors in the prototype chain are not called.
2701 */ 2724 */
2725 // TODO(dcarney): deprecate
2702 Local<Value> GetRealNamedProperty(Handle<String> key); 2726 Local<Value> GetRealNamedProperty(Handle<String> key);
2727 MaybeLocal<Value> GetRealNamedProperty(Local<Context> context,
2728 Local<Name> key);
2703 2729
2704 /** 2730 /**
2705 * Gets the property attributes of a real property which can be 2731 * Gets the property attributes of a real property which can be
2706 * None or any combination of ReadOnly, DontEnum and DontDelete. 2732 * None or any combination of ReadOnly, DontEnum and DontDelete.
2707 * Interceptors in the prototype chain are not called. 2733 * Interceptors in the prototype chain are not called.
2708 */ 2734 */
2735 // TODO(dcarney): deprecate
2709 Maybe<PropertyAttribute> GetRealNamedPropertyAttributes(Handle<String> key); 2736 Maybe<PropertyAttribute> GetRealNamedPropertyAttributes(Handle<String> key);
2737 Maybe<PropertyAttribute> GetRealNamedPropertyAttributes(
2738 Local<Context> context, Local<Name> key);
2710 2739
2711 /** Tests for a named lookup interceptor.*/ 2740 /** Tests for a named lookup interceptor.*/
2712 bool HasNamedLookupInterceptor(); 2741 bool HasNamedLookupInterceptor();
2713 2742
2714 /** Tests for an index lookup interceptor.*/ 2743 /** Tests for an index lookup interceptor.*/
2715 bool HasIndexedLookupInterceptor(); 2744 bool HasIndexedLookupInterceptor();
2716 2745
2717 /** 2746 /**
2718 * Turns on access check on the object if the object is an instance of 2747 * Turns on access check on the object if the object is an instance of
2719 * a template that has access check callbacks. If an object has no 2748 * a template that has access check callbacks. If an object has no
2720 * access check info, the object cannot be accessed by anyone. 2749 * access check info, the object cannot be accessed by anyone.
2721 */ 2750 */
2751 // TODO(dcarney): deprecate
2722 void TurnOnAccessCheck(); 2752 void TurnOnAccessCheck();
2723 2753
2724 /** 2754 /**
2725 * Returns the identity hash for this object. The current implementation 2755 * Returns the identity hash for this object. The current implementation
2726 * uses a hidden property on the object to store the identity hash. 2756 * uses a hidden property on the object to store the identity hash.
2727 * 2757 *
2728 * The return value will never be 0. Also, it is not guaranteed to be 2758 * The return value will never be 0. Also, it is not guaranteed to be
2729 * unique. 2759 * unique.
2730 */ 2760 */
2731 int GetIdentityHash(); 2761 int GetIdentityHash();
2732 2762
2733 /** 2763 /**
2734 * Access hidden properties on JavaScript objects. These properties are 2764 * Access hidden properties on JavaScript objects. These properties are
2735 * hidden from the executing JavaScript and only accessible through the V8 2765 * hidden from the executing JavaScript and only accessible through the V8
2736 * C++ API. Hidden properties introduced by V8 internally (for example the 2766 * C++ API. Hidden properties introduced by V8 internally (for example the
2737 * identity hash) are prefixed with "v8::". 2767 * identity hash) are prefixed with "v8::".
2738 */ 2768 */
2769 // TODO(dcarney): convert these?
2739 bool SetHiddenValue(Handle<String> key, Handle<Value> value); 2770 bool SetHiddenValue(Handle<String> key, Handle<Value> value);
2740 Local<Value> GetHiddenValue(Handle<String> key); 2771 Local<Value> GetHiddenValue(Handle<String> key);
2741 bool DeleteHiddenValue(Handle<String> key); 2772 bool DeleteHiddenValue(Handle<String> key);
2742 2773
2743 /** 2774 /**
2744 * Clone this object with a fast but shallow copy. Values will point 2775 * Clone this object with a fast but shallow copy. Values will point
2745 * to the same values as the original object. 2776 * to the same values as the original object.
2746 */ 2777 */
2778 // TODO(dcarney): convert this?
2747 Local<Object> Clone(); 2779 Local<Object> Clone();
2748 2780
2749 /** 2781 /**
2750 * Returns the context in which the object was created. 2782 * Returns the context in which the object was created.
2751 */ 2783 */
2752 Local<Context> CreationContext(); 2784 Local<Context> CreationContext();
2753 2785
2754 /** 2786 /**
2755 * Set the backing store of the indexed properties to be managed by the 2787 * Set the backing store of the indexed properties to be managed by the
2756 * embedding layer. Access to the indexed properties will follow the rules 2788 * embedding layer. Access to the indexed properties will follow the rules
(...skipping 4927 matching lines...) Expand 10 before | Expand all | Expand 10 after
7684 */ 7716 */
7685 7717
7686 7718
7687 } // namespace v8 7719 } // namespace v8
7688 7720
7689 7721
7690 #undef TYPE_CHECK 7722 #undef TYPE_CHECK
7691 7723
7692 7724
7693 #endif // V8_H_ 7725 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698