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

Side by Side Diff: src/js/v8natives.js

Issue 1606783002: [builtins] Migrate Object.getOwnPropertyDescriptor to C++. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE Created 4 years, 10 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 | « src/builtins.cc ('k') | src/runtime/runtime.h » ('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 (function(global, utils) { 5 (function(global, utils) {
6 6
7 %CheckIsBootstrapping(); 7 %CheckIsBootstrapping();
8 8
9 // ---------------------------------------------------------------------------- 9 // ----------------------------------------------------------------------------
10 // Imports 10 // Imports
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 } 765 }
766 766
767 if (IS_RECEIVER(obj)) { 767 if (IS_RECEIVER(obj)) {
768 %SetPrototype(obj, proto); 768 %SetPrototype(obj, proto);
769 } 769 }
770 770
771 return obj; 771 return obj;
772 } 772 }
773 773
774 774
775 // ES6 section 19.1.2.6
776 function ObjectGetOwnPropertyDescriptor(obj, p) {
777 return %GetOwnProperty(obj, p);
778 }
779
780
781 // ES5 section 15.2.3.6. 775 // ES5 section 15.2.3.6.
782 function ObjectDefineProperty(obj, p, attributes) { 776 function ObjectDefineProperty(obj, p, attributes) {
783 // The new pure-C++ implementation doesn't support O.o. 777 // The new pure-C++ implementation doesn't support O.o.
784 // TODO(jkummerow): Implement missing features and remove fallback path. 778 // TODO(jkummerow): Implement missing features and remove fallback path.
785 if (%IsObserved(obj)) { 779 if (%IsObserved(obj)) {
786 if (!IS_RECEIVER(obj)) { 780 if (!IS_RECEIVER(obj)) {
787 throw MakeTypeError(kCalledOnNonObject, "Object.defineProperty"); 781 throw MakeTypeError(kCalledOnNonObject, "Object.defineProperty");
788 } 782 }
789 var name = TO_NAME(p); 783 var name = TO_NAME(p);
790 var desc = ToPropertyDescriptor(attributes); 784 var desc = ToPropertyDescriptor(attributes);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 ObjectSetProto); 864 ObjectSetProto);
871 865
872 // Set up non-enumerable functions in the Object object. 866 // Set up non-enumerable functions in the Object object.
873 utils.InstallFunctions(GlobalObject, DONT_ENUM, [ 867 utils.InstallFunctions(GlobalObject, DONT_ENUM, [
874 // assign is added in bootstrapper.cc. 868 // assign is added in bootstrapper.cc.
875 // keys is added in bootstrapper.cc. 869 // keys is added in bootstrapper.cc.
876 "defineProperty", ObjectDefineProperty, 870 "defineProperty", ObjectDefineProperty,
877 "defineProperties", ObjectDefineProperties, 871 "defineProperties", ObjectDefineProperties,
878 "getPrototypeOf", ObjectGetPrototypeOf, 872 "getPrototypeOf", ObjectGetPrototypeOf,
879 "setPrototypeOf", ObjectSetPrototypeOf, 873 "setPrototypeOf", ObjectSetPrototypeOf,
880 "getOwnPropertyDescriptor", ObjectGetOwnPropertyDescriptor,
881 // getOwnPropertySymbols is added in symbol.js. 874 // getOwnPropertySymbols is added in symbol.js.
882 "is", SameValue, // ECMA-262, Edition 6, section 19.1.2.10 875 "is", SameValue, // ECMA-262, Edition 6, section 19.1.2.10
883 // deliverChangeRecords, getNotifier, observe and unobserve are added 876 // deliverChangeRecords, getNotifier, observe and unobserve are added
884 // in object-observe.js. 877 // in object-observe.js.
885 ]); 878 ]);
886 879
887 880
888 // ---------------------------------------------------------------------------- 881 // ----------------------------------------------------------------------------
889 // Boolean 882 // Boolean
890 883
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 to.ObjectDefineProperties = ObjectDefineProperties; 1161 to.ObjectDefineProperties = ObjectDefineProperties;
1169 to.ObjectDefineProperty = ObjectDefineProperty; 1162 to.ObjectDefineProperty = ObjectDefineProperty;
1170 to.ObjectHasOwnProperty = ObjectHasOwnProperty; 1163 to.ObjectHasOwnProperty = ObjectHasOwnProperty;
1171 }); 1164 });
1172 1165
1173 %InstallToContext([ 1166 %InstallToContext([
1174 "object_value_of", ObjectValueOf, 1167 "object_value_of", ObjectValueOf,
1175 ]); 1168 ]);
1176 1169
1177 }) 1170 })
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698