core-js 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es7/index.js CHANGED
@@ -32,4 +32,5 @@ require('../modules/es7.reflect.has-metadata');
32
32
  require('../modules/es7.reflect.has-own-metadata');
33
33
  require('../modules/es7.reflect.metadata');
34
34
  require('../modules/es7.asap');
35
+ require('../modules/es7.observable');
35
36
  module.exports = require('../modules/_core');
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -32,4 +32,5 @@ require('../modules/es7.reflect.has-metadata');
32
32
  require('../modules/es7.reflect.has-own-metadata');
33
33
  require('../modules/es7.reflect.metadata');
34
34
  require('../modules/es7.asap');
35
+ require('../modules/es7.observable');
35
36
  module.exports = require('../modules/_core');
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -1,2 +1,2 @@
1
- var core = module.exports = {version: '2.3.0'};
1
+ var core = module.exports = {version: '2.4.0'};
2
2
  if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
@@ -3,17 +3,23 @@ var ctx = require('./_ctx')
3
3
  , isArrayIter = require('./_is-array-iter')
4
4
  , anObject = require('./_an-object')
5
5
  , toLength = require('./_to-length')
6
- , getIterFn = require('./core.get-iterator-method');
7
- module.exports = function(iterable, entries, fn, that, ITERATOR){
6
+ , getIterFn = require('./core.get-iterator-method')
7
+ , BREAK = {}
8
+ , RETURN = {};
9
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
8
10
  var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
9
11
  , f = ctx(fn, that, entries ? 2 : 1)
10
12
  , index = 0
11
- , length, step, iterator;
13
+ , length, step, iterator, result;
12
14
  if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
13
15
  // fast case for arrays with default iterator
14
16
  if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
15
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
17
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
18
+ if(result === BREAK || result === RETURN)return result;
16
19
  } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
17
- call(iterator, f, step.value, entries);
20
+ result = call(iterator, f, step.value, entries);
21
+ if(result === BREAK || result === RETURN)return result;
18
22
  }
19
- };
23
+ };
24
+ exports.BREAK = BREAK;
25
+ exports.RETURN = RETURN;
@@ -1,9 +1,11 @@
1
1
  // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
2
- var $export = require('./_export')
3
- , _apply = Function.apply;
2
+ var $export = require('./_export')
3
+ , aFunction = require('./_a-function')
4
+ , anObject = require('./_an-object')
5
+ , _apply = Function.apply;
4
6
 
5
7
  $export($export.S, 'Reflect', {
6
8
  apply: function apply(target, thisArgument, argumentsList){
7
- return _apply.call(target, thisArgument, argumentsList);
9
+ return _apply.call(aFunction(target), thisArgument, anObject(argumentsList));
8
10
  }
9
11
  });
@@ -14,10 +14,11 @@ $export($export.S + $export.F * require('./_fails')(function(){
14
14
  }), 'Reflect', {
15
15
  construct: function construct(Target, args /*, newTarget*/){
16
16
  aFunction(Target);
17
+ anObject(args);
17
18
  var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
18
19
  if(Target == newTarget){
19
20
  // w/o altered newTarget, optimization for 0-4 arguments
20
- if(args != undefined)switch(anObject(args).length){
21
+ switch(args.length){
21
22
  case 0: return new Target;
22
23
  case 1: return new Target(args[0]);
23
24
  case 2: return new Target(args[0], args[1]);
@@ -37,6 +37,7 @@ var global = require('./_global')
37
37
  , isEnum = {}.propertyIsEnumerable
38
38
  , SymbolRegistry = shared('symbol-registry')
39
39
  , AllSymbols = shared('symbols')
40
+ , OPSymbols = shared('op-symbols')
40
41
  , ObjectProto = Object[PROTOTYPE]
41
42
  , USE_NATIVE = typeof $Symbol == 'function'
42
43
  , QObject = global.QObject;
@@ -68,6 +69,7 @@ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
68
69
  };
69
70
 
70
71
  var $defineProperty = function defineProperty(it, key, D){
72
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
71
73
  anObject(it);
72
74
  key = toPrimitive(key, true);
73
75
  anObject(D);
@@ -95,10 +97,14 @@ var $create = function create(it, P){
95
97
  };
96
98
  var $propertyIsEnumerable = function propertyIsEnumerable(key){
97
99
  var E = isEnum.call(this, key = toPrimitive(key, true));
100
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
98
101
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
99
102
  };
100
103
  var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
101
- var D = gOPD(it = toIObject(it), key = toPrimitive(key, true));
104
+ it = toIObject(it);
105
+ key = toPrimitive(key, true);
106
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
107
+ var D = gOPD(it, key);
102
108
  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
103
109
  return D;
104
110
  };
@@ -107,16 +113,19 @@ var $getOwnPropertyNames = function getOwnPropertyNames(it){
107
113
  , result = []
108
114
  , i = 0
109
115
  , key;
110
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
111
- return result;
116
+ while(names.length > i){
117
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
118
+ } return result;
112
119
  };
113
120
  var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
114
- var names = gOPN(toIObject(it))
121
+ var IS_OP = it === ObjectProto
122
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
115
123
  , result = []
116
124
  , i = 0
117
125
  , key;
118
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
119
- return result;
126
+ while(names.length > i){
127
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
128
+ } return result;
120
129
  };
121
130
 
122
131
  // 19.4.1.1 Symbol([description])
@@ -124,13 +133,12 @@ if(!USE_NATIVE){
124
133
  $Symbol = function Symbol(){
125
134
  if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
126
135
  var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
127
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
128
- configurable: true,
129
- set: function(value){
130
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
131
- setSymbolDesc(this, tag, createDesc(1, value));
132
- }
133
- });
136
+ var $set = function(value){
137
+ if(this === ObjectProto)$set.call(OPSymbols, value);
138
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
139
+ setSymbolDesc(this, tag, createDesc(1, value));
140
+ };
141
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
134
142
  return wrap(tag);
135
143
  };
136
144
  redefine($Symbol[PROTOTYPE], 'toString', function toString(){
@@ -0,0 +1,199 @@
1
+ 'use strict';
2
+ // https://github.com/zenparsing/es-observable
3
+ var $export = require('./_export')
4
+ , global = require('./_global')
5
+ , core = require('./_core')
6
+ , microtask = require('./_microtask')()
7
+ , OBSERVABLE = require('./_wks')('observable')
8
+ , aFunction = require('./_a-function')
9
+ , anObject = require('./_an-object')
10
+ , anInstance = require('./_an-instance')
11
+ , redefineAll = require('./_redefine-all')
12
+ , hide = require('./_hide')
13
+ , forOf = require('./_for-of')
14
+ , RETURN = forOf.RETURN;
15
+
16
+ var getMethod = function(fn){
17
+ return fn == null ? undefined : aFunction(fn);
18
+ };
19
+
20
+ var cleanupSubscription = function(subscription){
21
+ var cleanup = subscription._c;
22
+ if(cleanup){
23
+ subscription._c = undefined;
24
+ cleanup();
25
+ }
26
+ };
27
+
28
+ var subscriptionClosed = function(subscription){
29
+ return subscription._o === undefined;
30
+ };
31
+
32
+ var closeSubscription = function(subscription){
33
+ if(!subscriptionClosed(subscription)){
34
+ subscription._o = undefined;
35
+ cleanupSubscription(subscription);
36
+ }
37
+ };
38
+
39
+ var Subscription = function(observer, subscriber){
40
+ anObject(observer);
41
+ this._c = undefined;
42
+ this._o = observer;
43
+ observer = new SubscriptionObserver(this);
44
+ try {
45
+ var cleanup = subscriber(observer)
46
+ , subscription = cleanup;
47
+ if(cleanup != null){
48
+ if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
49
+ else aFunction(cleanup);
50
+ this._c = cleanup;
51
+ }
52
+ } catch(e){
53
+ observer.error(e);
54
+ return;
55
+ } if(subscriptionClosed(this))cleanupSubscription(this);
56
+ };
57
+
58
+ Subscription.prototype = redefineAll({}, {
59
+ unsubscribe: function unsubscribe(){ closeSubscription(this); }
60
+ });
61
+
62
+ var SubscriptionObserver = function(subscription){
63
+ this._s = subscription;
64
+ };
65
+
66
+ SubscriptionObserver.prototype = redefineAll({}, {
67
+ next: function next(value){
68
+ var subscription = this._s;
69
+ if(!subscriptionClosed(subscription)){
70
+ var observer = subscription._o;
71
+ try {
72
+ var m = getMethod(observer.next);
73
+ if(m)return m.call(observer, value);
74
+ } catch(e){
75
+ try {
76
+ closeSubscription(subscription);
77
+ } finally {
78
+ throw e;
79
+ }
80
+ }
81
+ }
82
+ },
83
+ error: function error(value){
84
+ var subscription = this._s;
85
+ if(subscriptionClosed(subscription))throw value;
86
+ var observer = subscription._o;
87
+ subscription._o = undefined;
88
+ try {
89
+ var m = getMethod(observer.error);
90
+ if(!m)throw value;
91
+ value = m.call(observer, value);
92
+ } catch(e){
93
+ try {
94
+ cleanupSubscription(subscription);
95
+ } finally {
96
+ throw e;
97
+ }
98
+ } cleanupSubscription(subscription);
99
+ return value;
100
+ },
101
+ complete: function complete(value){
102
+ var subscription = this._s;
103
+ if(!subscriptionClosed(subscription)){
104
+ var observer = subscription._o;
105
+ subscription._o = undefined;
106
+ try {
107
+ var m = getMethod(observer.complete);
108
+ value = m ? m.call(observer, value) : undefined;
109
+ } catch(e){
110
+ try {
111
+ cleanupSubscription(subscription);
112
+ } finally {
113
+ throw e;
114
+ }
115
+ } cleanupSubscription(subscription);
116
+ return value;
117
+ }
118
+ }
119
+ });
120
+
121
+ var $Observable = function Observable(subscriber){
122
+ anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
123
+ };
124
+
125
+ redefineAll($Observable.prototype, {
126
+ subscribe: function subscribe(observer){
127
+ return new Subscription(observer, this._f);
128
+ },
129
+ forEach: function forEach(fn){
130
+ var that = this;
131
+ return new (core.Promise || global.Promise)(function(resolve, reject){
132
+ aFunction(fn);
133
+ var subscription = that.subscribe({
134
+ next : function(value){
135
+ try {
136
+ return fn(value);
137
+ } catch(e){
138
+ reject(e);
139
+ subscription.unsubscribe();
140
+ }
141
+ },
142
+ error: reject,
143
+ complete: resolve
144
+ });
145
+ });
146
+ }
147
+ });
148
+
149
+ redefineAll($Observable, {
150
+ from: function from(x){
151
+ var C = typeof this === 'function' ? this : $Observable;
152
+ var method = getMethod(anObject(x)[OBSERVABLE]);
153
+ if(method){
154
+ var observable = anObject(method.call(x));
155
+ return observable.constructor === C ? observable : new C(function(observer){
156
+ return observable.subscribe(observer);
157
+ });
158
+ }
159
+ return new C(function(observer){
160
+ var done = false;
161
+ microtask(function(){
162
+ if(!done){
163
+ try {
164
+ if(forOf(x, false, function(it){
165
+ observer.next(it);
166
+ if(done)return RETURN;
167
+ }) === RETURN)return;
168
+ } catch(e){
169
+ if(done)throw e;
170
+ observer.error(e);
171
+ return;
172
+ } observer.complete();
173
+ }
174
+ });
175
+ return function(){ done = true; };
176
+ });
177
+ },
178
+ of: function of(){
179
+ for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
180
+ return new (typeof this === 'function' ? this : $Observable)(function(observer){
181
+ var done = false;
182
+ microtask(function(){
183
+ if(!done){
184
+ for(var i = 0; i < items.length; ++i){
185
+ observer.next(items[i]);
186
+ if(done)return;
187
+ } observer.complete();
188
+ }
189
+ });
190
+ return function(){ done = true; };
191
+ });
192
+ }
193
+ });
194
+
195
+ hide($Observable.prototype, OBSERVABLE, function(){ return this; });
196
+
197
+ $export($export.G, {Observable: $Observable});
198
+
199
+ require('./_set-species')('Observable');
package/library/shim.js CHANGED
@@ -169,6 +169,7 @@ require('./modules/es7.reflect.has-metadata');
169
169
  require('./modules/es7.reflect.has-own-metadata');
170
170
  require('./modules/es7.reflect.metadata');
171
171
  require('./modules/es7.asap');
172
+ require('./modules/es7.observable');
172
173
  require('./modules/web.timers');
173
174
  require('./modules/web.immediate');
174
175
  require('./modules/web.dom.iterable');
@@ -2,4 +2,5 @@ require('../modules/es7.string.trim-left');
2
2
  require('../modules/es7.string.trim-right');
3
3
  require('../modules/es7.string.match-all');
4
4
  require('../modules/es7.symbol.observable');
5
+ require('../modules/es7.observable');
5
6
  module.exports = require('./2');
package/modules/_core.js CHANGED
@@ -1,2 +1,2 @@
1
- var core = module.exports = {version: '2.3.0'};
1
+ var core = module.exports = {version: '2.4.0'};
2
2
  if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
@@ -3,17 +3,23 @@ var ctx = require('./_ctx')
3
3
  , isArrayIter = require('./_is-array-iter')
4
4
  , anObject = require('./_an-object')
5
5
  , toLength = require('./_to-length')
6
- , getIterFn = require('./core.get-iterator-method');
7
- module.exports = function(iterable, entries, fn, that, ITERATOR){
6
+ , getIterFn = require('./core.get-iterator-method')
7
+ , BREAK = {}
8
+ , RETURN = {};
9
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
8
10
  var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
9
11
  , f = ctx(fn, that, entries ? 2 : 1)
10
12
  , index = 0
11
- , length, step, iterator;
13
+ , length, step, iterator, result;
12
14
  if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
13
15
  // fast case for arrays with default iterator
14
16
  if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
15
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
17
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
18
+ if(result === BREAK || result === RETURN)return result;
16
19
  } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
17
- call(iterator, f, step.value, entries);
20
+ result = call(iterator, f, step.value, entries);
21
+ if(result === BREAK || result === RETURN)return result;
18
22
  }
19
- };
23
+ };
24
+ exports.BREAK = BREAK;
25
+ exports.RETURN = RETURN;
@@ -1,9 +1,11 @@
1
1
  // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
2
- var $export = require('./_export')
3
- , _apply = Function.apply;
2
+ var $export = require('./_export')
3
+ , aFunction = require('./_a-function')
4
+ , anObject = require('./_an-object')
5
+ , _apply = Function.apply;
4
6
 
5
7
  $export($export.S, 'Reflect', {
6
8
  apply: function apply(target, thisArgument, argumentsList){
7
- return _apply.call(target, thisArgument, argumentsList);
9
+ return _apply.call(aFunction(target), thisArgument, anObject(argumentsList));
8
10
  }
9
11
  });
@@ -14,10 +14,11 @@ $export($export.S + $export.F * require('./_fails')(function(){
14
14
  }), 'Reflect', {
15
15
  construct: function construct(Target, args /*, newTarget*/){
16
16
  aFunction(Target);
17
+ anObject(args);
17
18
  var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
18
19
  if(Target == newTarget){
19
20
  // w/o altered newTarget, optimization for 0-4 arguments
20
- if(args != undefined)switch(anObject(args).length){
21
+ switch(args.length){
21
22
  case 0: return new Target;
22
23
  case 1: return new Target(args[0]);
23
24
  case 2: return new Target(args[0], args[1]);
@@ -37,6 +37,7 @@ var global = require('./_global')
37
37
  , isEnum = {}.propertyIsEnumerable
38
38
  , SymbolRegistry = shared('symbol-registry')
39
39
  , AllSymbols = shared('symbols')
40
+ , OPSymbols = shared('op-symbols')
40
41
  , ObjectProto = Object[PROTOTYPE]
41
42
  , USE_NATIVE = typeof $Symbol == 'function'
42
43
  , QObject = global.QObject;
@@ -68,6 +69,7 @@ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
68
69
  };
69
70
 
70
71
  var $defineProperty = function defineProperty(it, key, D){
72
+ if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
71
73
  anObject(it);
72
74
  key = toPrimitive(key, true);
73
75
  anObject(D);
@@ -95,10 +97,14 @@ var $create = function create(it, P){
95
97
  };
96
98
  var $propertyIsEnumerable = function propertyIsEnumerable(key){
97
99
  var E = isEnum.call(this, key = toPrimitive(key, true));
100
+ if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
98
101
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
99
102
  };
100
103
  var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
101
- var D = gOPD(it = toIObject(it), key = toPrimitive(key, true));
104
+ it = toIObject(it);
105
+ key = toPrimitive(key, true);
106
+ if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
107
+ var D = gOPD(it, key);
102
108
  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
103
109
  return D;
104
110
  };
@@ -107,16 +113,19 @@ var $getOwnPropertyNames = function getOwnPropertyNames(it){
107
113
  , result = []
108
114
  , i = 0
109
115
  , key;
110
- while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
111
- return result;
116
+ while(names.length > i){
117
+ if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
118
+ } return result;
112
119
  };
113
120
  var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
114
- var names = gOPN(toIObject(it))
121
+ var IS_OP = it === ObjectProto
122
+ , names = gOPN(IS_OP ? OPSymbols : toIObject(it))
115
123
  , result = []
116
124
  , i = 0
117
125
  , key;
118
- while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
119
- return result;
126
+ while(names.length > i){
127
+ if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
128
+ } return result;
120
129
  };
121
130
 
122
131
  // 19.4.1.1 Symbol([description])
@@ -124,13 +133,12 @@ if(!USE_NATIVE){
124
133
  $Symbol = function Symbol(){
125
134
  if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
126
135
  var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
127
- DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
128
- configurable: true,
129
- set: function(value){
130
- if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
131
- setSymbolDesc(this, tag, createDesc(1, value));
132
- }
133
- });
136
+ var $set = function(value){
137
+ if(this === ObjectProto)$set.call(OPSymbols, value);
138
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
139
+ setSymbolDesc(this, tag, createDesc(1, value));
140
+ };
141
+ if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
134
142
  return wrap(tag);
135
143
  };
136
144
  redefine($Symbol[PROTOTYPE], 'toString', function toString(){