File tree Expand file tree Collapse file tree 3 files changed +42
-49
lines changed Expand file tree Collapse file tree 3 files changed +42
-49
lines changed Original file line number Diff line number Diff line change 11if ( ! Object . getOwnPropertyDescriptor ) {
22
3- Object . getOwnPropertyDescriptor = function getOwnPropertyDescriptor ( object , property ) {
4- if ( Object ( object ) !== object )
5- {
6- throw new TypeError ( 'Object.getOwnPropertyDescriptor can only be called on Objects.' ) ;
7- }
3+ Object . getOwnPropertyDescriptor = function getOwnPropertyDescriptor ( object , property ) {
4+ if ( Object ( object ) !== object ) {
5+ throw new TypeError ( 'Object.getOwnPropertyDescriptor can only be called on Objects.' ) ;
6+ }
87
9- var descriptor ;
10- if ( ! Object . prototype . hasOwnProperty . call ( object , property ) )
11- {
12- return descriptor ;
13- }
8+ var descriptor ;
9+ if ( ! Object . prototype . hasOwnProperty . call ( object , property ) ) {
10+ return descriptor ;
11+ }
1412
15- descriptor = {
16- enumerable : Object . prototype . propertyIsEnumerable . call ( object , property ) ,
17- configurable : true
18- } ;
13+ descriptor = {
14+ enumerable : Object . prototype . propertyIsEnumerable . call ( object , property ) ,
15+ configurable : true
16+ } ;
1917
20- descriptor . value = object [ property ] ;
18+ descriptor . value = object [ property ] ;
2119
22- var psPropertyType = object . reflect . find ( property ) . type ;
23- descriptor . writable = ( psPropertyType === "readwrite " ) ;
20+ var psPropertyType = object . reflect . find ( property ) . type ;
21+ descriptor . writable = ! ( psPropertyType === "readonly " ) ;
2422
25- return descriptor ;
26- }
23+ return descriptor ;
24+ }
2725}
Original file line number Diff line number Diff line change @@ -4,13 +4,22 @@ if (!Object.getOwnPropertyNames) {
44 if ( Object ( object ) !== object ) {
55 throw new TypeError ( 'Object.getOwnPropertyNames can only be called on Objects.' ) ;
66 }
7-
8- var props = object . reflect . properties ;
9- var methods = object . reflect . methods ;
10- var all = methods . concat ( props ) ;
117 var names = [ ] ;
8+ var hasOwnProperty = Object . prototype . hasOwnProperty ;
9+ var propertyIsEnumerable = Object . prototype . propertyIsEnumerable ;
10+ for ( var prop in object ) {
11+ if ( hasOwnProperty . call ( object , prop ) ) {
12+ names . push ( prop ) ;
13+ }
14+ }
15+ var properties = object . reflect . properties ;
16+ var methods = object . reflect . methods ;
17+ var all = methods . concat ( properties ) ;
1218 for ( var i = 0 ; i < all . length ; i ++ ) {
13- names . push ( all [ i ] . name ) ;
19+ var prop = all [ i ] . name ;
20+ if ( hasOwnProperty . call ( object , prop ) && ! ( propertyIsEnumerable . call ( object , prop ) ) ) {
21+ names . push ( prop ) ;
22+ }
1423 }
1524 return names ;
1625 } ;
Original file line number Diff line number Diff line change 1- /*
2- Original taken from
3- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#Polyfill
4-
5- Ther is no EnumBug in Photoshop scripting environment, so i cut unused code.
6- */
7-
81if ( ! Object . keys ) {
9- Object . keys = ( function ( ) {
10- var hasOwnProperty = Object . prototype . hasOwnProperty ;
11-
12- return function ( obj ) {
13- if ( Object ( obj ) !== obj ) {
14- throw new TypeError ( 'Object.keys can only be called on Objects.' ) ;
15- }
16-
17- var result = [ ] ,
18- prop , i ;
19-
20- for ( prop in obj ) {
21- if ( hasOwnProperty . call ( obj , prop ) ) {
22- result . push ( prop ) ;
2+ Object . keys = function ( object ) {
3+ if ( Object ( object ) !== object ) {
4+ throw new TypeError ( 'Object.keys can only be called on Objects.' ) ;
235 }
24- }
25-
26- return result ;
6+ var hasOwnProperty = Object . prototype . hasOwnProperty ;
7+ var result = [ ] ;
8+ for ( var prop in object ) {
9+ if ( hasOwnProperty . call ( object , prop ) ) {
10+ result . push ( prop ) ;
11+ }
12+ }
13+ return result ;
2714 } ;
28- } ( ) ) ;
2915}
You can’t perform that action at this time.
0 commit comments