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

Side by Side Diff: src/objects.h

Issue 1479543002: [proxies] Implement [[Delete]]. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix typo Created 5 years 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
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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 1793 matching lines...) Expand 10 before | Expand all | Expand 10 after
1804 MUST_USE_RESULT static Maybe<bool> HasProperty(LookupIterator* it); 1804 MUST_USE_RESULT static Maybe<bool> HasProperty(LookupIterator* it);
1805 MUST_USE_RESULT static inline Maybe<bool> HasProperty( 1805 MUST_USE_RESULT static inline Maybe<bool> HasProperty(
1806 Handle<JSReceiver> object, Handle<Name> name); 1806 Handle<JSReceiver> object, Handle<Name> name);
1807 MUST_USE_RESULT static inline Maybe<bool> HasOwnProperty(Handle<JSReceiver>, 1807 MUST_USE_RESULT static inline Maybe<bool> HasOwnProperty(Handle<JSReceiver>,
1808 Handle<Name> name); 1808 Handle<Name> name);
1809 MUST_USE_RESULT static inline Maybe<bool> HasElement( 1809 MUST_USE_RESULT static inline Maybe<bool> HasElement(
1810 Handle<JSReceiver> object, uint32_t index); 1810 Handle<JSReceiver> object, uint32_t index);
1811 MUST_USE_RESULT static inline Maybe<bool> HasOwnElement( 1811 MUST_USE_RESULT static inline Maybe<bool> HasOwnElement(
1812 Handle<JSReceiver> object, uint32_t index); 1812 Handle<JSReceiver> object, uint32_t index);
1813 1813
1814 // Implementation of [[Delete]], ECMA-262 5th edition, section 8.12.7. 1814 // Implementation of ES6 [[Delete]]
1815 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyOrElement( 1815 MUST_USE_RESULT static Maybe<bool> DeletePropertyOrElement(
1816 Handle<JSReceiver> object, Handle<Name> name, 1816 Handle<JSReceiver> object, Handle<Name> name,
1817 LanguageMode language_mode = SLOPPY); 1817 LanguageMode language_mode = SLOPPY);
1818 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( 1818 MUST_USE_RESULT static Maybe<bool> DeleteProperty(
1819 Handle<JSReceiver> object, Handle<Name> name, 1819 Handle<JSReceiver> object, Handle<Name> name,
1820 LanguageMode language_mode = SLOPPY); 1820 LanguageMode language_mode = SLOPPY);
1821 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( 1821 MUST_USE_RESULT static Maybe<bool> DeleteProperty(LookupIterator* it,
1822 LookupIterator* it, LanguageMode language_mode); 1822 LanguageMode language_mode);
1823 MUST_USE_RESULT static MaybeHandle<Object> DeleteElement( 1823 MUST_USE_RESULT static Maybe<bool> DeleteElement(
1824 Handle<JSReceiver> object, uint32_t index, 1824 Handle<JSReceiver> object, uint32_t index,
1825 LanguageMode language_mode = SLOPPY); 1825 LanguageMode language_mode = SLOPPY);
1826 1826
1827 MUST_USE_RESULT static Object* DefineProperty(Isolate* isolate, 1827 MUST_USE_RESULT static Object* DefineProperty(Isolate* isolate,
1828 Handle<Object> object, 1828 Handle<Object> object,
1829 Handle<Object> name, 1829 Handle<Object> name,
1830 Handle<Object> attributes); 1830 Handle<Object> attributes);
1831 MUST_USE_RESULT static Object* DefineProperties(Isolate* isolate, 1831 MUST_USE_RESULT static Object* DefineProperties(Isolate* isolate,
1832 Handle<Object> object, 1832 Handle<Object> object,
1833 Handle<Object> properties); 1833 Handle<Object> properties);
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after
2503 2503
2504 MUST_USE_RESULT static Maybe<bool> SetPropertyWithFailedAccessCheck( 2504 MUST_USE_RESULT static Maybe<bool> SetPropertyWithFailedAccessCheck(
2505 LookupIterator* it, Handle<Object> value, ShouldThrow should_throw); 2505 LookupIterator* it, Handle<Object> value, ShouldThrow should_throw);
2506 2506
2507 // Add a property to a slow-case object. 2507 // Add a property to a slow-case object.
2508 static void AddSlowProperty(Handle<JSObject> object, 2508 static void AddSlowProperty(Handle<JSObject> object,
2509 Handle<Name> name, 2509 Handle<Name> name,
2510 Handle<Object> value, 2510 Handle<Object> value,
2511 PropertyAttributes attributes); 2511 PropertyAttributes attributes);
2512 2512
2513 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithInterceptor( 2513 MUST_USE_RESULT static Maybe<bool> DeletePropertyWithInterceptor(
2514 LookupIterator* it); 2514 LookupIterator* it);
2515 2515
2516 bool ReferencesObjectFromElements(FixedArray* elements, 2516 bool ReferencesObjectFromElements(FixedArray* elements,
2517 ElementsKind kind, 2517 ElementsKind kind,
2518 Object* object); 2518 Object* object);
2519 2519
2520 // Return the hash table backing store or the inline stored identity hash, 2520 // Return the hash table backing store or the inline stored identity hash,
2521 // whatever is found. 2521 // whatever is found.
2522 MUST_USE_RESULT Object* GetHiddenPropertiesHashTable(); 2522 MUST_USE_RESULT Object* GetHiddenPropertiesHashTable();
2523 2523
(...skipping 7015 matching lines...) Expand 10 before | Expand all | Expand 10 after
9539 9539
9540 // ES6 9.5.5 9540 // ES6 9.5.5
9541 static bool GetOwnPropertyDescriptor(LookupIterator* it, 9541 static bool GetOwnPropertyDescriptor(LookupIterator* it,
9542 PropertyDescriptor* desc); 9542 PropertyDescriptor* desc);
9543 9543
9544 // ES6 9.5.6 9544 // ES6 9.5.6
9545 static bool DefineOwnProperty(Isolate* isolate, Handle<JSProxy> object, 9545 static bool DefineOwnProperty(Isolate* isolate, Handle<JSProxy> object,
9546 Handle<Object> key, PropertyDescriptor* desc, 9546 Handle<Object> key, PropertyDescriptor* desc,
9547 ShouldThrow should_throw); 9547 ShouldThrow should_throw);
9548 9548
9549 // ES6 9.5.10 (when passed SLOPPY)
9550 MUST_USE_RESULT static Maybe<bool> DeletePropertyOrElement(
9551 Handle<JSProxy> proxy, Handle<Name> name, LanguageMode language_mode);
9552
9549 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithHandler( 9553 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithHandler(
9550 Handle<JSProxy> proxy, 9554 Handle<JSProxy> proxy,
9551 Handle<Object> receiver, 9555 Handle<Object> receiver,
9552 Handle<Name> name); 9556 Handle<Name> name);
9553 9557
9554 // If the handler defines an accessor property with a setter, invoke it. 9558 // If the handler defines an accessor property with a setter, invoke it.
9555 // If it defines an accessor property without a setter, or a data property 9559 // If it defines an accessor property without a setter, or a data property
9556 // that is read-only, fail. In all these cases set '*done' to true. 9560 // that is read-only, fail. In all these cases set '*done' to true.
9557 // Otherwise set it to false, in which case the return value is not 9561 // Otherwise set it to false, in which case the return value is not
9558 // meaningful. 9562 // meaningful.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
9594 9598
9595 // Invoke a trap by name. If the trap does not exist on this's handler, 9599 // Invoke a trap by name. If the trap does not exist on this's handler,
9596 // but derived_trap is non-NULL, invoke that instead. May cause GC. 9600 // but derived_trap is non-NULL, invoke that instead. May cause GC.
9597 MUST_USE_RESULT static MaybeHandle<Object> CallTrap( 9601 MUST_USE_RESULT static MaybeHandle<Object> CallTrap(
9598 Handle<JSProxy> proxy, const char* name, Handle<Object> derived_trap, 9602 Handle<JSProxy> proxy, const char* name, Handle<Object> derived_trap,
9599 int argc, Handle<Object> args[]); 9603 int argc, Handle<Object> args[]);
9600 9604
9601 MUST_USE_RESULT static Maybe<bool> HasPropertyWithHandler( 9605 MUST_USE_RESULT static Maybe<bool> HasPropertyWithHandler(
9602 Handle<JSProxy> proxy, Handle<Name> name); 9606 Handle<JSProxy> proxy, Handle<Name> name);
9603 9607
9604 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithHandler(
9605 Handle<JSProxy> proxy, Handle<Name> name, LanguageMode language_mode);
9606
9607 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy); 9608 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy);
9608 }; 9609 };
9609 9610
9610 9611
9611 class JSFunctionProxy: public JSProxy { 9612 class JSFunctionProxy: public JSProxy {
9612 public: 9613 public:
9613 // [call_trap]: The call trap. 9614 // [call_trap]: The call trap.
9614 DECL_ACCESSORS(call_trap, JSReceiver) 9615 DECL_ACCESSORS(call_trap, JSReceiver)
9615 9616
9616 // [construct_trap]: The construct trap. 9617 // [construct_trap]: The construct trap.
(...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after
10732 } 10733 }
10733 return value; 10734 return value;
10734 } 10735 }
10735 }; 10736 };
10736 10737
10737 10738
10738 } // NOLINT, false-positive due to second-order macros. 10739 } // NOLINT, false-positive due to second-order macros.
10739 } // NOLINT, false-positive due to second-order macros. 10740 } // NOLINT, false-positive due to second-order macros.
10740 10741
10741 #endif // V8_OBJECTS_H_ 10742 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/messages.h ('k') | src/objects.cc » ('j') | test/mjsunit/harmony/proxies-delete-property.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698