12345678910111213141516171819202122232425262728293031323334353637383940 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports['default'] = symbolObservablePonyfill;
- function symbolObservablePonyfill(root) {
- var result;
- var _Symbol = root.Symbol;
- if (typeof _Symbol === 'function') {
- if (_Symbol.observable) {
- result = _Symbol.observable;
- } else {
- if (typeof _Symbol['for'] === 'function') {
- // This just needs to be something that won't trample other user's Symbol.for use
- // It also will guide people to the source of their issues, if this is problematic.
- // META: It's a resource locator!
- result = _Symbol['for']('https://github.com/benlesh/symbol-observable');
- } else {
- // Symbol.for didn't exist! The best we can do at this point is a totally
- // unique symbol. Note that the string argument here is a descriptor, not
- // an identifier. This symbol is unique.
- result = _Symbol('https://github.com/benlesh/symbol-observable');
- }
- try {
- _Symbol.observable = result;
- } catch (err) {
- // Do nothing. In some environments, users have frozen `Symbol` for security reasons,
- // if it is frozen assigning to it will throw. In this case, we don't care, because
- // they will need to use the returned value from the ponyfill.
- }
- }
- } else {
- result = '@@observable';
- }
- return result;
- };
|