Skip to content

Commit

Permalink
backport fixes for #539
Browse files Browse the repository at this point in the history
  • Loading branch information
zloirock committed May 18, 2019
1 parent b362f91 commit 40df8cf
Show file tree
Hide file tree
Showing 14 changed files with 80 additions and 15 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## Changelog
##### 2.6.6 [LEGACY]
- Fixed IE8- non-enumerable properties support in `Object.{ assign, entries, values }`, [#541](https://github.com/zloirock/core-js/issues/541)
- Fixed support of primitives in `Object.getOwnPropertySymbols` in Chrome 38 / 39, [#539](https://github.com/zloirock/core-js/issues/539)

##### 2.6.5 - 2019.02.15
- Fixed buggy `String#padStart` and `String#padEnd` mobile Safari implementations, [#414](https://github.com/zloirock/core-js/issues/414).
Expand Down
14 changes: 13 additions & 1 deletion client/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -4235,12 +4235,14 @@ var enumKeys = __webpack_require__(137);
var isArray = __webpack_require__(55);
var anObject = __webpack_require__(1);
var isObject = __webpack_require__(3);
var toObject = __webpack_require__(9);
var toIObject = __webpack_require__(11);
var toPrimitive = __webpack_require__(23);
var createDesc = __webpack_require__(31);
var _create = __webpack_require__(28);
var gOPNExt = __webpack_require__(102);
var $GOPD = __webpack_require__(16);
var $GOPS = __webpack_require__(54);
var $DP = __webpack_require__(8);
var $keys = __webpack_require__(27);
var gOPD = $GOPD.f;
Expand Down Expand Up @@ -4367,7 +4369,7 @@ if (!USE_NATIVE) {
$DP.f = $defineProperty;
__webpack_require__(39).f = gOPNExt.f = $getOwnPropertyNames;
__webpack_require__(49).f = $propertyIsEnumerable;
__webpack_require__(54).f = $getOwnPropertySymbols;
$GOPS.f = $getOwnPropertySymbols;

if (DESCRIPTORS && !__webpack_require__(32)) {
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
Expand Down Expand Up @@ -4418,6 +4420,16 @@ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return $GOPS.f(toObject(it));
}
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
var S = $Symbol();
Expand Down
6 changes: 3 additions & 3 deletions client/core.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion client/core.min.js.map

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion client/library.js
Original file line number Diff line number Diff line change
Expand Up @@ -3932,12 +3932,14 @@ var enumKeys = __webpack_require__(128);
var isArray = __webpack_require__(52);
var anObject = __webpack_require__(1);
var isObject = __webpack_require__(3);
var toObject = __webpack_require__(9);
var toIObject = __webpack_require__(11);
var toPrimitive = __webpack_require__(27);
var createDesc = __webpack_require__(28);
var _create = __webpack_require__(32);
var gOPNExt = __webpack_require__(94);
var $GOPD = __webpack_require__(18);
var $GOPS = __webpack_require__(51);
var $DP = __webpack_require__(8);
var $keys = __webpack_require__(31);
var gOPD = $GOPD.f;
Expand Down Expand Up @@ -4064,7 +4066,7 @@ if (!USE_NATIVE) {
$DP.f = $defineProperty;
__webpack_require__(46).f = gOPNExt.f = $getOwnPropertyNames;
__webpack_require__(45).f = $propertyIsEnumerable;
__webpack_require__(51).f = $getOwnPropertySymbols;
$GOPS.f = $getOwnPropertySymbols;

if (DESCRIPTORS && !__webpack_require__(30)) {
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
Expand Down Expand Up @@ -4115,6 +4117,16 @@ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return $GOPS.f(toObject(it));
}
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
var S = $Symbol();
Expand Down
6 changes: 3 additions & 3 deletions client/library.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion client/library.min.js.map

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion library/modules/es6.symbol.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ var enumKeys = require('./_enum-keys');
var isArray = require('./_is-array');
var anObject = require('./_an-object');
var isObject = require('./_is-object');
var toObject = require('./_to-object');
var toIObject = require('./_to-iobject');
var toPrimitive = require('./_to-primitive');
var createDesc = require('./_property-desc');
var _create = require('./_object-create');
var gOPNExt = require('./_object-gopn-ext');
var $GOPD = require('./_object-gopd');
var $GOPS = require('./_object-gops');
var $DP = require('./_object-dp');
var $keys = require('./_object-keys');
var gOPD = $GOPD.f;
Expand Down Expand Up @@ -149,7 +151,7 @@ if (!USE_NATIVE) {
$DP.f = $defineProperty;
require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
require('./_object-pie').f = $propertyIsEnumerable;
require('./_object-gops').f = $getOwnPropertySymbols;
$GOPS.f = $getOwnPropertySymbols;

if (DESCRIPTORS && !require('./_library')) {
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
Expand Down Expand Up @@ -200,6 +202,16 @@ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return $GOPS.f(toObject(it));
}
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
var S = $Symbol();
Expand Down
14 changes: 13 additions & 1 deletion modules/es6.symbol.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ var enumKeys = require('./_enum-keys');
var isArray = require('./_is-array');
var anObject = require('./_an-object');
var isObject = require('./_is-object');
var toObject = require('./_to-object');
var toIObject = require('./_to-iobject');
var toPrimitive = require('./_to-primitive');
var createDesc = require('./_property-desc');
var _create = require('./_object-create');
var gOPNExt = require('./_object-gopn-ext');
var $GOPD = require('./_object-gopd');
var $GOPS = require('./_object-gops');
var $DP = require('./_object-dp');
var $keys = require('./_object-keys');
var gOPD = $GOPD.f;
Expand Down Expand Up @@ -149,7 +151,7 @@ if (!USE_NATIVE) {
$DP.f = $defineProperty;
require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
require('./_object-pie').f = $propertyIsEnumerable;
require('./_object-gops').f = $getOwnPropertySymbols;
$GOPS.f = $getOwnPropertySymbols;

if (DESCRIPTORS && !require('./_library')) {
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
Expand Down Expand Up @@ -200,6 +202,16 @@ $export($export.S + $export.F * !USE_NATIVE, 'Object', {
getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return $GOPS.f(toObject(it));
}
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
var S = $Symbol();
Expand Down
6 changes: 5 additions & 1 deletion tests/es.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion tests/library.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions tests/library/es6.symbol.ls
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ test 'Object.getOwnPropertySymbols' (assert)!->
assert.deepEqual getOwnPropertyNames(foo)sort!, <[a d s]>
assert.strictEqual getOwnPropertySymbols(foo).length, 1
assert.strictEqual getOwnPropertySymbols(Object::).length, 0
for [42 \foo no]
assert.ok getOwnPropertySymbols(..), "accept #{ typeof .. }"

if JSON?
test 'Symbols & JSON.stringify' (assert)!->
Expand Down
6 changes: 5 additions & 1 deletion tests/tests.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions tests/tests/es6.symbol.ls
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ test 'Object.getOwnPropertySymbols' (assert)!->
assert.deepEqual getOwnPropertyNames(foo)sort!, <[a d s]>
assert.strictEqual getOwnPropertySymbols(foo).length, 1
assert.strictEqual getOwnPropertySymbols(Object::).length, 0
for [42 \foo no]
assert.ok getOwnPropertySymbols(..), "accept #{ typeof .. }"

if JSON?
test 'Symbols & JSON.stringify' (assert)!->
Expand Down

0 comments on commit 40df8cf

Please sign in to comment.