'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; };