[6a3a178] | 1 | "use strict";
|
---|
| 2 |
|
---|
| 3 | Object.defineProperty(exports, "__esModule", {
|
---|
| 4 | value: true
|
---|
| 5 | });
|
---|
| 6 | exports.default = void 0;
|
---|
| 7 |
|
---|
| 8 | var _template = require("@babel/template");
|
---|
| 9 |
|
---|
| 10 | var generated = require("./helpers-generated");
|
---|
| 11 |
|
---|
| 12 | const helpers = Object.assign({
|
---|
| 13 | __proto__: null
|
---|
| 14 | }, generated);
|
---|
| 15 | var _default = helpers;
|
---|
| 16 | exports.default = _default;
|
---|
| 17 |
|
---|
| 18 | const helper = minVersion => tpl => ({
|
---|
| 19 | minVersion,
|
---|
| 20 | ast: () => _template.default.program.ast(tpl)
|
---|
| 21 | });
|
---|
| 22 |
|
---|
| 23 | helpers.asyncIterator = helper("7.0.0-beta.0")`
|
---|
| 24 | export default function _asyncIterator(iterable) {
|
---|
| 25 | var method;
|
---|
| 26 | if (typeof Symbol !== "undefined") {
|
---|
| 27 | if (Symbol.asyncIterator) method = iterable[Symbol.asyncIterator];
|
---|
| 28 | if (method == null && Symbol.iterator) method = iterable[Symbol.iterator];
|
---|
| 29 | }
|
---|
| 30 | if (method == null) method = iterable["@@asyncIterator"];
|
---|
| 31 | if (method == null) method = iterable["@@iterator"]
|
---|
| 32 | if (method == null) throw new TypeError("Object is not async iterable");
|
---|
| 33 | return method.call(iterable);
|
---|
| 34 | }
|
---|
| 35 | `;
|
---|
| 36 | helpers.AwaitValue = helper("7.0.0-beta.0")`
|
---|
| 37 | export default function _AwaitValue(value) {
|
---|
| 38 | this.wrapped = value;
|
---|
| 39 | }
|
---|
| 40 | `;
|
---|
| 41 | helpers.AsyncGenerator = helper("7.0.0-beta.0")`
|
---|
| 42 | import AwaitValue from "AwaitValue";
|
---|
| 43 |
|
---|
| 44 | export default function AsyncGenerator(gen) {
|
---|
| 45 | var front, back;
|
---|
| 46 |
|
---|
| 47 | function send(key, arg) {
|
---|
| 48 | return new Promise(function (resolve, reject) {
|
---|
| 49 | var request = {
|
---|
| 50 | key: key,
|
---|
| 51 | arg: arg,
|
---|
| 52 | resolve: resolve,
|
---|
| 53 | reject: reject,
|
---|
| 54 | next: null,
|
---|
| 55 | };
|
---|
| 56 |
|
---|
| 57 | if (back) {
|
---|
| 58 | back = back.next = request;
|
---|
| 59 | } else {
|
---|
| 60 | front = back = request;
|
---|
| 61 | resume(key, arg);
|
---|
| 62 | }
|
---|
| 63 | });
|
---|
| 64 | }
|
---|
| 65 |
|
---|
| 66 | function resume(key, arg) {
|
---|
| 67 | try {
|
---|
| 68 | var result = gen[key](arg)
|
---|
| 69 | var value = result.value;
|
---|
| 70 | var wrappedAwait = value instanceof AwaitValue;
|
---|
| 71 |
|
---|
| 72 | Promise.resolve(wrappedAwait ? value.wrapped : value).then(
|
---|
| 73 | function (arg) {
|
---|
| 74 | if (wrappedAwait) {
|
---|
| 75 | resume(key === "return" ? "return" : "next", arg);
|
---|
| 76 | return
|
---|
| 77 | }
|
---|
| 78 |
|
---|
| 79 | settle(result.done ? "return" : "normal", arg);
|
---|
| 80 | },
|
---|
| 81 | function (err) { resume("throw", err); });
|
---|
| 82 | } catch (err) {
|
---|
| 83 | settle("throw", err);
|
---|
| 84 | }
|
---|
| 85 | }
|
---|
| 86 |
|
---|
| 87 | function settle(type, value) {
|
---|
| 88 | switch (type) {
|
---|
| 89 | case "return":
|
---|
| 90 | front.resolve({ value: value, done: true });
|
---|
| 91 | break;
|
---|
| 92 | case "throw":
|
---|
| 93 | front.reject(value);
|
---|
| 94 | break;
|
---|
| 95 | default:
|
---|
| 96 | front.resolve({ value: value, done: false });
|
---|
| 97 | break;
|
---|
| 98 | }
|
---|
| 99 |
|
---|
| 100 | front = front.next;
|
---|
| 101 | if (front) {
|
---|
| 102 | resume(front.key, front.arg);
|
---|
| 103 | } else {
|
---|
| 104 | back = null;
|
---|
| 105 | }
|
---|
| 106 | }
|
---|
| 107 |
|
---|
| 108 | this._invoke = send;
|
---|
| 109 |
|
---|
| 110 | // Hide "return" method if generator return is not supported
|
---|
| 111 | if (typeof gen.return !== "function") {
|
---|
| 112 | this.return = undefined;
|
---|
| 113 | }
|
---|
| 114 | }
|
---|
| 115 |
|
---|
| 116 | AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; };
|
---|
| 117 |
|
---|
| 118 | AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };
|
---|
| 119 | AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };
|
---|
| 120 | AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };
|
---|
| 121 | `;
|
---|
| 122 | helpers.wrapAsyncGenerator = helper("7.0.0-beta.0")`
|
---|
| 123 | import AsyncGenerator from "AsyncGenerator";
|
---|
| 124 |
|
---|
| 125 | export default function _wrapAsyncGenerator(fn) {
|
---|
| 126 | return function () {
|
---|
| 127 | return new AsyncGenerator(fn.apply(this, arguments));
|
---|
| 128 | };
|
---|
| 129 | }
|
---|
| 130 | `;
|
---|
| 131 | helpers.awaitAsyncGenerator = helper("7.0.0-beta.0")`
|
---|
| 132 | import AwaitValue from "AwaitValue";
|
---|
| 133 |
|
---|
| 134 | export default function _awaitAsyncGenerator(value) {
|
---|
| 135 | return new AwaitValue(value);
|
---|
| 136 | }
|
---|
| 137 | `;
|
---|
| 138 | helpers.asyncGeneratorDelegate = helper("7.0.0-beta.0")`
|
---|
| 139 | export default function _asyncGeneratorDelegate(inner, awaitWrap) {
|
---|
| 140 | var iter = {}, waiting = false;
|
---|
| 141 |
|
---|
| 142 | function pump(key, value) {
|
---|
| 143 | waiting = true;
|
---|
| 144 | value = new Promise(function (resolve) { resolve(inner[key](value)); });
|
---|
| 145 | return { done: false, value: awaitWrap(value) };
|
---|
| 146 | };
|
---|
| 147 |
|
---|
| 148 | iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () { return this; };
|
---|
| 149 |
|
---|
| 150 | iter.next = function (value) {
|
---|
| 151 | if (waiting) {
|
---|
| 152 | waiting = false;
|
---|
| 153 | return value;
|
---|
| 154 | }
|
---|
| 155 | return pump("next", value);
|
---|
| 156 | };
|
---|
| 157 |
|
---|
| 158 | if (typeof inner.throw === "function") {
|
---|
| 159 | iter.throw = function (value) {
|
---|
| 160 | if (waiting) {
|
---|
| 161 | waiting = false;
|
---|
| 162 | throw value;
|
---|
| 163 | }
|
---|
| 164 | return pump("throw", value);
|
---|
| 165 | };
|
---|
| 166 | }
|
---|
| 167 |
|
---|
| 168 | if (typeof inner.return === "function") {
|
---|
| 169 | iter.return = function (value) {
|
---|
| 170 | if (waiting) {
|
---|
| 171 | waiting = false;
|
---|
| 172 | return value;
|
---|
| 173 | }
|
---|
| 174 | return pump("return", value);
|
---|
| 175 | };
|
---|
| 176 | }
|
---|
| 177 |
|
---|
| 178 | return iter;
|
---|
| 179 | }
|
---|
| 180 | `;
|
---|
| 181 | helpers.asyncToGenerator = helper("7.0.0-beta.0")`
|
---|
| 182 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
---|
| 183 | try {
|
---|
| 184 | var info = gen[key](arg);
|
---|
| 185 | var value = info.value;
|
---|
| 186 | } catch (error) {
|
---|
| 187 | reject(error);
|
---|
| 188 | return;
|
---|
| 189 | }
|
---|
| 190 |
|
---|
| 191 | if (info.done) {
|
---|
| 192 | resolve(value);
|
---|
| 193 | } else {
|
---|
| 194 | Promise.resolve(value).then(_next, _throw);
|
---|
| 195 | }
|
---|
| 196 | }
|
---|
| 197 |
|
---|
| 198 | export default function _asyncToGenerator(fn) {
|
---|
| 199 | return function () {
|
---|
| 200 | var self = this, args = arguments;
|
---|
| 201 | return new Promise(function (resolve, reject) {
|
---|
| 202 | var gen = fn.apply(self, args);
|
---|
| 203 | function _next(value) {
|
---|
| 204 | asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
---|
| 205 | }
|
---|
| 206 | function _throw(err) {
|
---|
| 207 | asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
---|
| 208 | }
|
---|
| 209 |
|
---|
| 210 | _next(undefined);
|
---|
| 211 | });
|
---|
| 212 | };
|
---|
| 213 | }
|
---|
| 214 | `;
|
---|
| 215 | helpers.classCallCheck = helper("7.0.0-beta.0")`
|
---|
| 216 | export default function _classCallCheck(instance, Constructor) {
|
---|
| 217 | if (!(instance instanceof Constructor)) {
|
---|
| 218 | throw new TypeError("Cannot call a class as a function");
|
---|
| 219 | }
|
---|
| 220 | }
|
---|
| 221 | `;
|
---|
| 222 | helpers.createClass = helper("7.0.0-beta.0")`
|
---|
| 223 | function _defineProperties(target, props) {
|
---|
| 224 | for (var i = 0; i < props.length; i ++) {
|
---|
| 225 | var descriptor = props[i];
|
---|
| 226 | descriptor.enumerable = descriptor.enumerable || false;
|
---|
| 227 | descriptor.configurable = true;
|
---|
| 228 | if ("value" in descriptor) descriptor.writable = true;
|
---|
| 229 | Object.defineProperty(target, descriptor.key, descriptor);
|
---|
| 230 | }
|
---|
| 231 | }
|
---|
| 232 |
|
---|
| 233 | export default function _createClass(Constructor, protoProps, staticProps) {
|
---|
| 234 | if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
---|
| 235 | if (staticProps) _defineProperties(Constructor, staticProps);
|
---|
| 236 | return Constructor;
|
---|
| 237 | }
|
---|
| 238 | `;
|
---|
| 239 | helpers.defineEnumerableProperties = helper("7.0.0-beta.0")`
|
---|
| 240 | export default function _defineEnumerableProperties(obj, descs) {
|
---|
| 241 | for (var key in descs) {
|
---|
| 242 | var desc = descs[key];
|
---|
| 243 | desc.configurable = desc.enumerable = true;
|
---|
| 244 | if ("value" in desc) desc.writable = true;
|
---|
| 245 | Object.defineProperty(obj, key, desc);
|
---|
| 246 | }
|
---|
| 247 |
|
---|
| 248 | // Symbols are not enumerated over by for-in loops. If native
|
---|
| 249 | // Symbols are available, fetch all of the descs object's own
|
---|
| 250 | // symbol properties and define them on our target object too.
|
---|
| 251 | if (Object.getOwnPropertySymbols) {
|
---|
| 252 | var objectSymbols = Object.getOwnPropertySymbols(descs);
|
---|
| 253 | for (var i = 0; i < objectSymbols.length; i++) {
|
---|
| 254 | var sym = objectSymbols[i];
|
---|
| 255 | var desc = descs[sym];
|
---|
| 256 | desc.configurable = desc.enumerable = true;
|
---|
| 257 | if ("value" in desc) desc.writable = true;
|
---|
| 258 | Object.defineProperty(obj, sym, desc);
|
---|
| 259 | }
|
---|
| 260 | }
|
---|
| 261 | return obj;
|
---|
| 262 | }
|
---|
| 263 | `;
|
---|
| 264 | helpers.defaults = helper("7.0.0-beta.0")`
|
---|
| 265 | export default function _defaults(obj, defaults) {
|
---|
| 266 | var keys = Object.getOwnPropertyNames(defaults);
|
---|
| 267 | for (var i = 0; i < keys.length; i++) {
|
---|
| 268 | var key = keys[i];
|
---|
| 269 | var value = Object.getOwnPropertyDescriptor(defaults, key);
|
---|
| 270 | if (value && value.configurable && obj[key] === undefined) {
|
---|
| 271 | Object.defineProperty(obj, key, value);
|
---|
| 272 | }
|
---|
| 273 | }
|
---|
| 274 | return obj;
|
---|
| 275 | }
|
---|
| 276 | `;
|
---|
| 277 | helpers.defineProperty = helper("7.0.0-beta.0")`
|
---|
| 278 | export default function _defineProperty(obj, key, value) {
|
---|
| 279 | // Shortcircuit the slow defineProperty path when possible.
|
---|
| 280 | // We are trying to avoid issues where setters defined on the
|
---|
| 281 | // prototype cause side effects under the fast path of simple
|
---|
| 282 | // assignment. By checking for existence of the property with
|
---|
| 283 | // the in operator, we can optimize most of this overhead away.
|
---|
| 284 | if (key in obj) {
|
---|
| 285 | Object.defineProperty(obj, key, {
|
---|
| 286 | value: value,
|
---|
| 287 | enumerable: true,
|
---|
| 288 | configurable: true,
|
---|
| 289 | writable: true
|
---|
| 290 | });
|
---|
| 291 | } else {
|
---|
| 292 | obj[key] = value;
|
---|
| 293 | }
|
---|
| 294 | return obj;
|
---|
| 295 | }
|
---|
| 296 | `;
|
---|
| 297 | helpers.extends = helper("7.0.0-beta.0")`
|
---|
| 298 | export default function _extends() {
|
---|
| 299 | _extends = Object.assign || function (target) {
|
---|
| 300 | for (var i = 1; i < arguments.length; i++) {
|
---|
| 301 | var source = arguments[i];
|
---|
| 302 | for (var key in source) {
|
---|
| 303 | if (Object.prototype.hasOwnProperty.call(source, key)) {
|
---|
| 304 | target[key] = source[key];
|
---|
| 305 | }
|
---|
| 306 | }
|
---|
| 307 | }
|
---|
| 308 | return target;
|
---|
| 309 | };
|
---|
| 310 |
|
---|
| 311 | return _extends.apply(this, arguments);
|
---|
| 312 | }
|
---|
| 313 | `;
|
---|
| 314 | helpers.objectSpread = helper("7.0.0-beta.0")`
|
---|
| 315 | import defineProperty from "defineProperty";
|
---|
| 316 |
|
---|
| 317 | export default function _objectSpread(target) {
|
---|
| 318 | for (var i = 1; i < arguments.length; i++) {
|
---|
| 319 | var source = (arguments[i] != null) ? Object(arguments[i]) : {};
|
---|
| 320 | var ownKeys = Object.keys(source);
|
---|
| 321 | if (typeof Object.getOwnPropertySymbols === 'function') {
|
---|
| 322 | ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) {
|
---|
| 323 | return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
---|
| 324 | }));
|
---|
| 325 | }
|
---|
| 326 | ownKeys.forEach(function(key) {
|
---|
| 327 | defineProperty(target, key, source[key]);
|
---|
| 328 | });
|
---|
| 329 | }
|
---|
| 330 | return target;
|
---|
| 331 | }
|
---|
| 332 | `;
|
---|
| 333 | helpers.inherits = helper("7.0.0-beta.0")`
|
---|
| 334 | import setPrototypeOf from "setPrototypeOf";
|
---|
| 335 |
|
---|
| 336 | export default function _inherits(subClass, superClass) {
|
---|
| 337 | if (typeof superClass !== "function" && superClass !== null) {
|
---|
| 338 | throw new TypeError("Super expression must either be null or a function");
|
---|
| 339 | }
|
---|
| 340 | subClass.prototype = Object.create(superClass && superClass.prototype, {
|
---|
| 341 | constructor: {
|
---|
| 342 | value: subClass,
|
---|
| 343 | writable: true,
|
---|
| 344 | configurable: true
|
---|
| 345 | }
|
---|
| 346 | });
|
---|
| 347 | if (superClass) setPrototypeOf(subClass, superClass);
|
---|
| 348 | }
|
---|
| 349 | `;
|
---|
| 350 | helpers.inheritsLoose = helper("7.0.0-beta.0")`
|
---|
| 351 | import setPrototypeOf from "setPrototypeOf";
|
---|
| 352 |
|
---|
| 353 | export default function _inheritsLoose(subClass, superClass) {
|
---|
| 354 | subClass.prototype = Object.create(superClass.prototype);
|
---|
| 355 | subClass.prototype.constructor = subClass;
|
---|
| 356 | setPrototypeOf(subClass, superClass);
|
---|
| 357 | }
|
---|
| 358 | `;
|
---|
| 359 | helpers.getPrototypeOf = helper("7.0.0-beta.0")`
|
---|
| 360 | export default function _getPrototypeOf(o) {
|
---|
| 361 | _getPrototypeOf = Object.setPrototypeOf
|
---|
| 362 | ? Object.getPrototypeOf
|
---|
| 363 | : function _getPrototypeOf(o) {
|
---|
| 364 | return o.__proto__ || Object.getPrototypeOf(o);
|
---|
| 365 | };
|
---|
| 366 | return _getPrototypeOf(o);
|
---|
| 367 | }
|
---|
| 368 | `;
|
---|
| 369 | helpers.setPrototypeOf = helper("7.0.0-beta.0")`
|
---|
| 370 | export default function _setPrototypeOf(o, p) {
|
---|
| 371 | _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
---|
| 372 | o.__proto__ = p;
|
---|
| 373 | return o;
|
---|
| 374 | };
|
---|
| 375 | return _setPrototypeOf(o, p);
|
---|
| 376 | }
|
---|
| 377 | `;
|
---|
| 378 | helpers.isNativeReflectConstruct = helper("7.9.0")`
|
---|
| 379 | export default function _isNativeReflectConstruct() {
|
---|
| 380 | if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
---|
| 381 |
|
---|
| 382 | // core-js@3
|
---|
| 383 | if (Reflect.construct.sham) return false;
|
---|
| 384 |
|
---|
| 385 | // Proxy can't be polyfilled. Every browser implemented
|
---|
| 386 | // proxies before or at the same time as Reflect.construct,
|
---|
| 387 | // so if they support Proxy they also support Reflect.construct.
|
---|
| 388 | if (typeof Proxy === "function") return true;
|
---|
| 389 |
|
---|
| 390 | // Since Reflect.construct can't be properly polyfilled, some
|
---|
| 391 | // implementations (e.g. core-js@2) don't set the correct internal slots.
|
---|
| 392 | // Those polyfills don't allow us to subclass built-ins, so we need to
|
---|
| 393 | // use our fallback implementation.
|
---|
| 394 | try {
|
---|
| 395 | // If the internal slots aren't set, this throws an error similar to
|
---|
| 396 | // TypeError: this is not a Boolean object.
|
---|
| 397 |
|
---|
| 398 | Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
---|
| 399 | return true;
|
---|
| 400 | } catch (e) {
|
---|
| 401 | return false;
|
---|
| 402 | }
|
---|
| 403 | }
|
---|
| 404 | `;
|
---|
| 405 | helpers.construct = helper("7.0.0-beta.0")`
|
---|
| 406 | import setPrototypeOf from "setPrototypeOf";
|
---|
| 407 | import isNativeReflectConstruct from "isNativeReflectConstruct";
|
---|
| 408 |
|
---|
| 409 | export default function _construct(Parent, args, Class) {
|
---|
| 410 | if (isNativeReflectConstruct()) {
|
---|
| 411 | _construct = Reflect.construct;
|
---|
| 412 | } else {
|
---|
| 413 | // NOTE: If Parent !== Class, the correct __proto__ is set *after*
|
---|
| 414 | // calling the constructor.
|
---|
| 415 | _construct = function _construct(Parent, args, Class) {
|
---|
| 416 | var a = [null];
|
---|
| 417 | a.push.apply(a, args);
|
---|
| 418 | var Constructor = Function.bind.apply(Parent, a);
|
---|
| 419 | var instance = new Constructor();
|
---|
| 420 | if (Class) setPrototypeOf(instance, Class.prototype);
|
---|
| 421 | return instance;
|
---|
| 422 | };
|
---|
| 423 | }
|
---|
| 424 | // Avoid issues with Class being present but undefined when it wasn't
|
---|
| 425 | // present in the original call.
|
---|
| 426 | return _construct.apply(null, arguments);
|
---|
| 427 | }
|
---|
| 428 | `;
|
---|
| 429 | helpers.isNativeFunction = helper("7.0.0-beta.0")`
|
---|
| 430 | export default function _isNativeFunction(fn) {
|
---|
| 431 | // Note: This function returns "true" for core-js functions.
|
---|
| 432 | return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
---|
| 433 | }
|
---|
| 434 | `;
|
---|
| 435 | helpers.wrapNativeSuper = helper("7.0.0-beta.0")`
|
---|
| 436 | import getPrototypeOf from "getPrototypeOf";
|
---|
| 437 | import setPrototypeOf from "setPrototypeOf";
|
---|
| 438 | import isNativeFunction from "isNativeFunction";
|
---|
| 439 | import construct from "construct";
|
---|
| 440 |
|
---|
| 441 | export default function _wrapNativeSuper(Class) {
|
---|
| 442 | var _cache = typeof Map === "function" ? new Map() : undefined;
|
---|
| 443 |
|
---|
| 444 | _wrapNativeSuper = function _wrapNativeSuper(Class) {
|
---|
| 445 | if (Class === null || !isNativeFunction(Class)) return Class;
|
---|
| 446 | if (typeof Class !== "function") {
|
---|
| 447 | throw new TypeError("Super expression must either be null or a function");
|
---|
| 448 | }
|
---|
| 449 | if (typeof _cache !== "undefined") {
|
---|
| 450 | if (_cache.has(Class)) return _cache.get(Class);
|
---|
| 451 | _cache.set(Class, Wrapper);
|
---|
| 452 | }
|
---|
| 453 | function Wrapper() {
|
---|
| 454 | return construct(Class, arguments, getPrototypeOf(this).constructor)
|
---|
| 455 | }
|
---|
| 456 | Wrapper.prototype = Object.create(Class.prototype, {
|
---|
| 457 | constructor: {
|
---|
| 458 | value: Wrapper,
|
---|
| 459 | enumerable: false,
|
---|
| 460 | writable: true,
|
---|
| 461 | configurable: true,
|
---|
| 462 | }
|
---|
| 463 | });
|
---|
| 464 |
|
---|
| 465 | return setPrototypeOf(Wrapper, Class);
|
---|
| 466 | }
|
---|
| 467 |
|
---|
| 468 | return _wrapNativeSuper(Class)
|
---|
| 469 | }
|
---|
| 470 | `;
|
---|
| 471 | helpers.instanceof = helper("7.0.0-beta.0")`
|
---|
| 472 | export default function _instanceof(left, right) {
|
---|
| 473 | if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
---|
| 474 | return !!right[Symbol.hasInstance](left);
|
---|
| 475 | } else {
|
---|
| 476 | return left instanceof right;
|
---|
| 477 | }
|
---|
| 478 | }
|
---|
| 479 | `;
|
---|
| 480 | helpers.interopRequireDefault = helper("7.0.0-beta.0")`
|
---|
| 481 | export default function _interopRequireDefault(obj) {
|
---|
| 482 | return obj && obj.__esModule ? obj : { default: obj };
|
---|
| 483 | }
|
---|
| 484 | `;
|
---|
| 485 | helpers.interopRequireWildcard = helper("7.14.0")`
|
---|
| 486 | function _getRequireWildcardCache(nodeInterop) {
|
---|
| 487 | if (typeof WeakMap !== "function") return null;
|
---|
| 488 |
|
---|
| 489 | var cacheBabelInterop = new WeakMap();
|
---|
| 490 | var cacheNodeInterop = new WeakMap();
|
---|
| 491 | return (_getRequireWildcardCache = function (nodeInterop) {
|
---|
| 492 | return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
---|
| 493 | })(nodeInterop);
|
---|
| 494 | }
|
---|
| 495 |
|
---|
| 496 | export default function _interopRequireWildcard(obj, nodeInterop) {
|
---|
| 497 | if (!nodeInterop && obj && obj.__esModule) {
|
---|
| 498 | return obj;
|
---|
| 499 | }
|
---|
| 500 |
|
---|
| 501 | if (obj === null || (typeof obj !== "object" && typeof obj !== "function")) {
|
---|
| 502 | return { default: obj }
|
---|
| 503 | }
|
---|
| 504 |
|
---|
| 505 | var cache = _getRequireWildcardCache(nodeInterop);
|
---|
| 506 | if (cache && cache.has(obj)) {
|
---|
| 507 | return cache.get(obj);
|
---|
| 508 | }
|
---|
| 509 |
|
---|
| 510 | var newObj = {};
|
---|
| 511 | var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
---|
| 512 | for (var key in obj) {
|
---|
| 513 | if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
---|
| 514 | var desc = hasPropertyDescriptor
|
---|
| 515 | ? Object.getOwnPropertyDescriptor(obj, key)
|
---|
| 516 | : null;
|
---|
| 517 | if (desc && (desc.get || desc.set)) {
|
---|
| 518 | Object.defineProperty(newObj, key, desc);
|
---|
| 519 | } else {
|
---|
| 520 | newObj[key] = obj[key];
|
---|
| 521 | }
|
---|
| 522 | }
|
---|
| 523 | }
|
---|
| 524 | newObj.default = obj;
|
---|
| 525 | if (cache) {
|
---|
| 526 | cache.set(obj, newObj);
|
---|
| 527 | }
|
---|
| 528 | return newObj;
|
---|
| 529 | }
|
---|
| 530 | `;
|
---|
| 531 | helpers.newArrowCheck = helper("7.0.0-beta.0")`
|
---|
| 532 | export default function _newArrowCheck(innerThis, boundThis) {
|
---|
| 533 | if (innerThis !== boundThis) {
|
---|
| 534 | throw new TypeError("Cannot instantiate an arrow function");
|
---|
| 535 | }
|
---|
| 536 | }
|
---|
| 537 | `;
|
---|
| 538 | helpers.objectDestructuringEmpty = helper("7.0.0-beta.0")`
|
---|
| 539 | export default function _objectDestructuringEmpty(obj) {
|
---|
| 540 | if (obj == null) throw new TypeError("Cannot destructure undefined");
|
---|
| 541 | }
|
---|
| 542 | `;
|
---|
| 543 | helpers.objectWithoutPropertiesLoose = helper("7.0.0-beta.0")`
|
---|
| 544 | export default function _objectWithoutPropertiesLoose(source, excluded) {
|
---|
| 545 | if (source == null) return {};
|
---|
| 546 |
|
---|
| 547 | var target = {};
|
---|
| 548 | var sourceKeys = Object.keys(source);
|
---|
| 549 | var key, i;
|
---|
| 550 |
|
---|
| 551 | for (i = 0; i < sourceKeys.length; i++) {
|
---|
| 552 | key = sourceKeys[i];
|
---|
| 553 | if (excluded.indexOf(key) >= 0) continue;
|
---|
| 554 | target[key] = source[key];
|
---|
| 555 | }
|
---|
| 556 |
|
---|
| 557 | return target;
|
---|
| 558 | }
|
---|
| 559 | `;
|
---|
| 560 | helpers.objectWithoutProperties = helper("7.0.0-beta.0")`
|
---|
| 561 | import objectWithoutPropertiesLoose from "objectWithoutPropertiesLoose";
|
---|
| 562 |
|
---|
| 563 | export default function _objectWithoutProperties(source, excluded) {
|
---|
| 564 | if (source == null) return {};
|
---|
| 565 |
|
---|
| 566 | var target = objectWithoutPropertiesLoose(source, excluded);
|
---|
| 567 | var key, i;
|
---|
| 568 |
|
---|
| 569 | if (Object.getOwnPropertySymbols) {
|
---|
| 570 | var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
---|
| 571 | for (i = 0; i < sourceSymbolKeys.length; i++) {
|
---|
| 572 | key = sourceSymbolKeys[i];
|
---|
| 573 | if (excluded.indexOf(key) >= 0) continue;
|
---|
| 574 | if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
---|
| 575 | target[key] = source[key];
|
---|
| 576 | }
|
---|
| 577 | }
|
---|
| 578 |
|
---|
| 579 | return target;
|
---|
| 580 | }
|
---|
| 581 | `;
|
---|
| 582 | helpers.assertThisInitialized = helper("7.0.0-beta.0")`
|
---|
| 583 | export default function _assertThisInitialized(self) {
|
---|
| 584 | if (self === void 0) {
|
---|
| 585 | throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
---|
| 586 | }
|
---|
| 587 | return self;
|
---|
| 588 | }
|
---|
| 589 | `;
|
---|
| 590 | helpers.possibleConstructorReturn = helper("7.0.0-beta.0")`
|
---|
| 591 | import assertThisInitialized from "assertThisInitialized";
|
---|
| 592 |
|
---|
| 593 | export default function _possibleConstructorReturn(self, call) {
|
---|
| 594 | if (call && (typeof call === "object" || typeof call === "function")) {
|
---|
| 595 | return call;
|
---|
| 596 | } else if (call !== void 0) {
|
---|
| 597 | throw new TypeError("Derived constructors may only return object or undefined");
|
---|
| 598 | }
|
---|
| 599 |
|
---|
| 600 | return assertThisInitialized(self);
|
---|
| 601 | }
|
---|
| 602 | `;
|
---|
| 603 | helpers.createSuper = helper("7.9.0")`
|
---|
| 604 | import getPrototypeOf from "getPrototypeOf";
|
---|
| 605 | import isNativeReflectConstruct from "isNativeReflectConstruct";
|
---|
| 606 | import possibleConstructorReturn from "possibleConstructorReturn";
|
---|
| 607 |
|
---|
| 608 | export default function _createSuper(Derived) {
|
---|
| 609 | var hasNativeReflectConstruct = isNativeReflectConstruct();
|
---|
| 610 |
|
---|
| 611 | return function _createSuperInternal() {
|
---|
| 612 | var Super = getPrototypeOf(Derived), result;
|
---|
| 613 | if (hasNativeReflectConstruct) {
|
---|
| 614 | // NOTE: This doesn't work if this.__proto__.constructor has been modified.
|
---|
| 615 | var NewTarget = getPrototypeOf(this).constructor;
|
---|
| 616 | result = Reflect.construct(Super, arguments, NewTarget);
|
---|
| 617 | } else {
|
---|
| 618 | result = Super.apply(this, arguments);
|
---|
| 619 | }
|
---|
| 620 | return possibleConstructorReturn(this, result);
|
---|
| 621 | }
|
---|
| 622 | }
|
---|
| 623 | `;
|
---|
| 624 | helpers.superPropBase = helper("7.0.0-beta.0")`
|
---|
| 625 | import getPrototypeOf from "getPrototypeOf";
|
---|
| 626 |
|
---|
| 627 | export default function _superPropBase(object, property) {
|
---|
| 628 | // Yes, this throws if object is null to being with, that's on purpose.
|
---|
| 629 | while (!Object.prototype.hasOwnProperty.call(object, property)) {
|
---|
| 630 | object = getPrototypeOf(object);
|
---|
| 631 | if (object === null) break;
|
---|
| 632 | }
|
---|
| 633 | return object;
|
---|
| 634 | }
|
---|
| 635 | `;
|
---|
| 636 | helpers.get = helper("7.0.0-beta.0")`
|
---|
| 637 | import superPropBase from "superPropBase";
|
---|
| 638 |
|
---|
| 639 | export default function _get(target, property, receiver) {
|
---|
| 640 | if (typeof Reflect !== "undefined" && Reflect.get) {
|
---|
| 641 | _get = Reflect.get;
|
---|
| 642 | } else {
|
---|
| 643 | _get = function _get(target, property, receiver) {
|
---|
| 644 | var base = superPropBase(target, property);
|
---|
| 645 |
|
---|
| 646 | if (!base) return;
|
---|
| 647 |
|
---|
| 648 | var desc = Object.getOwnPropertyDescriptor(base, property);
|
---|
| 649 | if (desc.get) {
|
---|
| 650 | return desc.get.call(receiver);
|
---|
| 651 | }
|
---|
| 652 |
|
---|
| 653 | return desc.value;
|
---|
| 654 | };
|
---|
| 655 | }
|
---|
| 656 | return _get(target, property, receiver || target);
|
---|
| 657 | }
|
---|
| 658 | `;
|
---|
| 659 | helpers.set = helper("7.0.0-beta.0")`
|
---|
| 660 | import superPropBase from "superPropBase";
|
---|
| 661 | import defineProperty from "defineProperty";
|
---|
| 662 |
|
---|
| 663 | function set(target, property, value, receiver) {
|
---|
| 664 | if (typeof Reflect !== "undefined" && Reflect.set) {
|
---|
| 665 | set = Reflect.set;
|
---|
| 666 | } else {
|
---|
| 667 | set = function set(target, property, value, receiver) {
|
---|
| 668 | var base = superPropBase(target, property);
|
---|
| 669 | var desc;
|
---|
| 670 |
|
---|
| 671 | if (base) {
|
---|
| 672 | desc = Object.getOwnPropertyDescriptor(base, property);
|
---|
| 673 | if (desc.set) {
|
---|
| 674 | desc.set.call(receiver, value);
|
---|
| 675 | return true;
|
---|
| 676 | } else if (!desc.writable) {
|
---|
| 677 | // Both getter and non-writable fall into this.
|
---|
| 678 | return false;
|
---|
| 679 | }
|
---|
| 680 | }
|
---|
| 681 |
|
---|
| 682 | // Without a super that defines the property, spec boils down to
|
---|
| 683 | // "define on receiver" for some reason.
|
---|
| 684 | desc = Object.getOwnPropertyDescriptor(receiver, property);
|
---|
| 685 | if (desc) {
|
---|
| 686 | if (!desc.writable) {
|
---|
| 687 | // Setter, getter, and non-writable fall into this.
|
---|
| 688 | return false;
|
---|
| 689 | }
|
---|
| 690 |
|
---|
| 691 | desc.value = value;
|
---|
| 692 | Object.defineProperty(receiver, property, desc);
|
---|
| 693 | } else {
|
---|
| 694 | // Avoid setters that may be defined on Sub's prototype, but not on
|
---|
| 695 | // the instance.
|
---|
| 696 | defineProperty(receiver, property, value);
|
---|
| 697 | }
|
---|
| 698 |
|
---|
| 699 | return true;
|
---|
| 700 | };
|
---|
| 701 | }
|
---|
| 702 |
|
---|
| 703 | return set(target, property, value, receiver);
|
---|
| 704 | }
|
---|
| 705 |
|
---|
| 706 | export default function _set(target, property, value, receiver, isStrict) {
|
---|
| 707 | var s = set(target, property, value, receiver || target);
|
---|
| 708 | if (!s && isStrict) {
|
---|
| 709 | throw new Error('failed to set property');
|
---|
| 710 | }
|
---|
| 711 |
|
---|
| 712 | return value;
|
---|
| 713 | }
|
---|
| 714 | `;
|
---|
| 715 | helpers.taggedTemplateLiteral = helper("7.0.0-beta.0")`
|
---|
| 716 | export default function _taggedTemplateLiteral(strings, raw) {
|
---|
| 717 | if (!raw) { raw = strings.slice(0); }
|
---|
| 718 | return Object.freeze(Object.defineProperties(strings, {
|
---|
| 719 | raw: { value: Object.freeze(raw) }
|
---|
| 720 | }));
|
---|
| 721 | }
|
---|
| 722 | `;
|
---|
| 723 | helpers.taggedTemplateLiteralLoose = helper("7.0.0-beta.0")`
|
---|
| 724 | export default function _taggedTemplateLiteralLoose(strings, raw) {
|
---|
| 725 | if (!raw) { raw = strings.slice(0); }
|
---|
| 726 | strings.raw = raw;
|
---|
| 727 | return strings;
|
---|
| 728 | }
|
---|
| 729 | `;
|
---|
| 730 | helpers.readOnlyError = helper("7.0.0-beta.0")`
|
---|
| 731 | export default function _readOnlyError(name) {
|
---|
| 732 | throw new TypeError("\\"" + name + "\\" is read-only");
|
---|
| 733 | }
|
---|
| 734 | `;
|
---|
| 735 | helpers.writeOnlyError = helper("7.12.13")`
|
---|
| 736 | export default function _writeOnlyError(name) {
|
---|
| 737 | throw new TypeError("\\"" + name + "\\" is write-only");
|
---|
| 738 | }
|
---|
| 739 | `;
|
---|
| 740 | helpers.classNameTDZError = helper("7.0.0-beta.0")`
|
---|
| 741 | export default function _classNameTDZError(name) {
|
---|
| 742 | throw new Error("Class \\"" + name + "\\" cannot be referenced in computed property keys.");
|
---|
| 743 | }
|
---|
| 744 | `;
|
---|
| 745 | helpers.temporalUndefined = helper("7.0.0-beta.0")`
|
---|
| 746 | // This function isn't mean to be called, but to be used as a reference.
|
---|
| 747 | // We can't use a normal object because it isn't hoisted.
|
---|
| 748 | export default function _temporalUndefined() {}
|
---|
| 749 | `;
|
---|
| 750 | helpers.tdz = helper("7.5.5")`
|
---|
| 751 | export default function _tdzError(name) {
|
---|
| 752 | throw new ReferenceError(name + " is not defined - temporal dead zone");
|
---|
| 753 | }
|
---|
| 754 | `;
|
---|
| 755 | helpers.temporalRef = helper("7.0.0-beta.0")`
|
---|
| 756 | import undef from "temporalUndefined";
|
---|
| 757 | import err from "tdz";
|
---|
| 758 |
|
---|
| 759 | export default function _temporalRef(val, name) {
|
---|
| 760 | return val === undef ? err(name) : val;
|
---|
| 761 | }
|
---|
| 762 | `;
|
---|
| 763 | helpers.slicedToArray = helper("7.0.0-beta.0")`
|
---|
| 764 | import arrayWithHoles from "arrayWithHoles";
|
---|
| 765 | import iterableToArrayLimit from "iterableToArrayLimit";
|
---|
| 766 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 767 | import nonIterableRest from "nonIterableRest";
|
---|
| 768 |
|
---|
| 769 | export default function _slicedToArray(arr, i) {
|
---|
| 770 | return (
|
---|
| 771 | arrayWithHoles(arr) ||
|
---|
| 772 | iterableToArrayLimit(arr, i) ||
|
---|
| 773 | unsupportedIterableToArray(arr, i) ||
|
---|
| 774 | nonIterableRest()
|
---|
| 775 | );
|
---|
| 776 | }
|
---|
| 777 | `;
|
---|
| 778 | helpers.slicedToArrayLoose = helper("7.0.0-beta.0")`
|
---|
| 779 | import arrayWithHoles from "arrayWithHoles";
|
---|
| 780 | import iterableToArrayLimitLoose from "iterableToArrayLimitLoose";
|
---|
| 781 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 782 | import nonIterableRest from "nonIterableRest";
|
---|
| 783 |
|
---|
| 784 | export default function _slicedToArrayLoose(arr, i) {
|
---|
| 785 | return (
|
---|
| 786 | arrayWithHoles(arr) ||
|
---|
| 787 | iterableToArrayLimitLoose(arr, i) ||
|
---|
| 788 | unsupportedIterableToArray(arr, i) ||
|
---|
| 789 | nonIterableRest()
|
---|
| 790 | );
|
---|
| 791 | }
|
---|
| 792 | `;
|
---|
| 793 | helpers.toArray = helper("7.0.0-beta.0")`
|
---|
| 794 | import arrayWithHoles from "arrayWithHoles";
|
---|
| 795 | import iterableToArray from "iterableToArray";
|
---|
| 796 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 797 | import nonIterableRest from "nonIterableRest";
|
---|
| 798 |
|
---|
| 799 | export default function _toArray(arr) {
|
---|
| 800 | return (
|
---|
| 801 | arrayWithHoles(arr) ||
|
---|
| 802 | iterableToArray(arr) ||
|
---|
| 803 | unsupportedIterableToArray(arr) ||
|
---|
| 804 | nonIterableRest()
|
---|
| 805 | );
|
---|
| 806 | }
|
---|
| 807 | `;
|
---|
| 808 | helpers.toConsumableArray = helper("7.0.0-beta.0")`
|
---|
| 809 | import arrayWithoutHoles from "arrayWithoutHoles";
|
---|
| 810 | import iterableToArray from "iterableToArray";
|
---|
| 811 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 812 | import nonIterableSpread from "nonIterableSpread";
|
---|
| 813 |
|
---|
| 814 | export default function _toConsumableArray(arr) {
|
---|
| 815 | return (
|
---|
| 816 | arrayWithoutHoles(arr) ||
|
---|
| 817 | iterableToArray(arr) ||
|
---|
| 818 | unsupportedIterableToArray(arr) ||
|
---|
| 819 | nonIterableSpread()
|
---|
| 820 | );
|
---|
| 821 | }
|
---|
| 822 | `;
|
---|
| 823 | helpers.arrayWithoutHoles = helper("7.0.0-beta.0")`
|
---|
| 824 | import arrayLikeToArray from "arrayLikeToArray";
|
---|
| 825 |
|
---|
| 826 | export default function _arrayWithoutHoles(arr) {
|
---|
| 827 | if (Array.isArray(arr)) return arrayLikeToArray(arr);
|
---|
| 828 | }
|
---|
| 829 | `;
|
---|
| 830 | helpers.arrayWithHoles = helper("7.0.0-beta.0")`
|
---|
| 831 | export default function _arrayWithHoles(arr) {
|
---|
| 832 | if (Array.isArray(arr)) return arr;
|
---|
| 833 | }
|
---|
| 834 | `;
|
---|
| 835 | helpers.maybeArrayLike = helper("7.9.0")`
|
---|
| 836 | import arrayLikeToArray from "arrayLikeToArray";
|
---|
| 837 |
|
---|
| 838 | export default function _maybeArrayLike(next, arr, i) {
|
---|
| 839 | if (arr && !Array.isArray(arr) && typeof arr.length === "number") {
|
---|
| 840 | var len = arr.length;
|
---|
| 841 | return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);
|
---|
| 842 | }
|
---|
| 843 | return next(arr, i);
|
---|
| 844 | }
|
---|
| 845 | `;
|
---|
| 846 | helpers.iterableToArray = helper("7.0.0-beta.0")`
|
---|
| 847 | export default function _iterableToArray(iter) {
|
---|
| 848 | if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
---|
| 849 | }
|
---|
| 850 | `;
|
---|
| 851 | helpers.iterableToArrayLimit = helper("7.0.0-beta.0")`
|
---|
| 852 | export default function _iterableToArrayLimit(arr, i) {
|
---|
| 853 | // this is an expanded form of \`for...of\` that properly supports abrupt completions of
|
---|
| 854 | // iterators etc. variable names have been minimised to reduce the size of this massive
|
---|
| 855 | // helper. sometimes spec compliance is annoying :(
|
---|
| 856 | //
|
---|
| 857 | // _n = _iteratorNormalCompletion
|
---|
| 858 | // _d = _didIteratorError
|
---|
| 859 | // _e = _iteratorError
|
---|
| 860 | // _i = _iterator
|
---|
| 861 | // _s = _step
|
---|
| 862 |
|
---|
| 863 | var _i = arr == null ? null : (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
|
---|
| 864 | if (_i == null) return;
|
---|
| 865 |
|
---|
| 866 | var _arr = [];
|
---|
| 867 | var _n = true;
|
---|
| 868 | var _d = false;
|
---|
| 869 | var _s, _e;
|
---|
| 870 | try {
|
---|
| 871 | for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
---|
| 872 | _arr.push(_s.value);
|
---|
| 873 | if (i && _arr.length === i) break;
|
---|
| 874 | }
|
---|
| 875 | } catch (err) {
|
---|
| 876 | _d = true;
|
---|
| 877 | _e = err;
|
---|
| 878 | } finally {
|
---|
| 879 | try {
|
---|
| 880 | if (!_n && _i["return"] != null) _i["return"]();
|
---|
| 881 | } finally {
|
---|
| 882 | if (_d) throw _e;
|
---|
| 883 | }
|
---|
| 884 | }
|
---|
| 885 | return _arr;
|
---|
| 886 | }
|
---|
| 887 | `;
|
---|
| 888 | helpers.iterableToArrayLimitLoose = helper("7.0.0-beta.0")`
|
---|
| 889 | export default function _iterableToArrayLimitLoose(arr, i) {
|
---|
| 890 | var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
|
---|
| 891 | if (_i == null) return;
|
---|
| 892 |
|
---|
| 893 | var _arr = [];
|
---|
| 894 | for (_i = _i.call(arr), _step; !(_step = _i.next()).done;) {
|
---|
| 895 | _arr.push(_step.value);
|
---|
| 896 | if (i && _arr.length === i) break;
|
---|
| 897 | }
|
---|
| 898 | return _arr;
|
---|
| 899 | }
|
---|
| 900 | `;
|
---|
| 901 | helpers.unsupportedIterableToArray = helper("7.9.0")`
|
---|
| 902 | import arrayLikeToArray from "arrayLikeToArray";
|
---|
| 903 |
|
---|
| 904 | export default function _unsupportedIterableToArray(o, minLen) {
|
---|
| 905 | if (!o) return;
|
---|
| 906 | if (typeof o === "string") return arrayLikeToArray(o, minLen);
|
---|
| 907 | var n = Object.prototype.toString.call(o).slice(8, -1);
|
---|
| 908 | if (n === "Object" && o.constructor) n = o.constructor.name;
|
---|
| 909 | if (n === "Map" || n === "Set") return Array.from(o);
|
---|
| 910 | if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
---|
| 911 | return arrayLikeToArray(o, minLen);
|
---|
| 912 | }
|
---|
| 913 | `;
|
---|
| 914 | helpers.arrayLikeToArray = helper("7.9.0")`
|
---|
| 915 | export default function _arrayLikeToArray(arr, len) {
|
---|
| 916 | if (len == null || len > arr.length) len = arr.length;
|
---|
| 917 | for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
---|
| 918 | return arr2;
|
---|
| 919 | }
|
---|
| 920 | `;
|
---|
| 921 | helpers.nonIterableSpread = helper("7.0.0-beta.0")`
|
---|
| 922 | export default function _nonIterableSpread() {
|
---|
| 923 | throw new TypeError(
|
---|
| 924 | "Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
|
---|
| 925 | );
|
---|
| 926 | }
|
---|
| 927 | `;
|
---|
| 928 | helpers.nonIterableRest = helper("7.0.0-beta.0")`
|
---|
| 929 | export default function _nonIterableRest() {
|
---|
| 930 | throw new TypeError(
|
---|
| 931 | "Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
|
---|
| 932 | );
|
---|
| 933 | }
|
---|
| 934 | `;
|
---|
| 935 | helpers.createForOfIteratorHelper = helper("7.9.0")`
|
---|
| 936 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 937 |
|
---|
| 938 | // s: start (create the iterator)
|
---|
| 939 | // n: next
|
---|
| 940 | // e: error (called whenever something throws)
|
---|
| 941 | // f: finish (always called at the end)
|
---|
| 942 |
|
---|
| 943 | export default function _createForOfIteratorHelper(o, allowArrayLike) {
|
---|
| 944 | var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
---|
| 945 |
|
---|
| 946 | if (!it) {
|
---|
| 947 | // Fallback for engines without symbol support
|
---|
| 948 | if (
|
---|
| 949 | Array.isArray(o) ||
|
---|
| 950 | (it = unsupportedIterableToArray(o)) ||
|
---|
| 951 | (allowArrayLike && o && typeof o.length === "number")
|
---|
| 952 | ) {
|
---|
| 953 | if (it) o = it;
|
---|
| 954 | var i = 0;
|
---|
| 955 | var F = function(){};
|
---|
| 956 | return {
|
---|
| 957 | s: F,
|
---|
| 958 | n: function() {
|
---|
| 959 | if (i >= o.length) return { done: true };
|
---|
| 960 | return { done: false, value: o[i++] };
|
---|
| 961 | },
|
---|
| 962 | e: function(e) { throw e; },
|
---|
| 963 | f: F,
|
---|
| 964 | };
|
---|
| 965 | }
|
---|
| 966 |
|
---|
| 967 | throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
---|
| 968 | }
|
---|
| 969 |
|
---|
| 970 | var normalCompletion = true, didErr = false, err;
|
---|
| 971 |
|
---|
| 972 | return {
|
---|
| 973 | s: function() {
|
---|
| 974 | it = it.call(o);
|
---|
| 975 | },
|
---|
| 976 | n: function() {
|
---|
| 977 | var step = it.next();
|
---|
| 978 | normalCompletion = step.done;
|
---|
| 979 | return step;
|
---|
| 980 | },
|
---|
| 981 | e: function(e) {
|
---|
| 982 | didErr = true;
|
---|
| 983 | err = e;
|
---|
| 984 | },
|
---|
| 985 | f: function() {
|
---|
| 986 | try {
|
---|
| 987 | if (!normalCompletion && it.return != null) it.return();
|
---|
| 988 | } finally {
|
---|
| 989 | if (didErr) throw err;
|
---|
| 990 | }
|
---|
| 991 | }
|
---|
| 992 | };
|
---|
| 993 | }
|
---|
| 994 | `;
|
---|
| 995 | helpers.createForOfIteratorHelperLoose = helper("7.9.0")`
|
---|
| 996 | import unsupportedIterableToArray from "unsupportedIterableToArray";
|
---|
| 997 |
|
---|
| 998 | export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
---|
| 999 | var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
---|
| 1000 |
|
---|
| 1001 | if (it) return (it = it.call(o)).next.bind(it);
|
---|
| 1002 |
|
---|
| 1003 | // Fallback for engines without symbol support
|
---|
| 1004 | if (
|
---|
| 1005 | Array.isArray(o) ||
|
---|
| 1006 | (it = unsupportedIterableToArray(o)) ||
|
---|
| 1007 | (allowArrayLike && o && typeof o.length === "number")
|
---|
| 1008 | ) {
|
---|
| 1009 | if (it) o = it;
|
---|
| 1010 | var i = 0;
|
---|
| 1011 | return function() {
|
---|
| 1012 | if (i >= o.length) return { done: true };
|
---|
| 1013 | return { done: false, value: o[i++] };
|
---|
| 1014 | }
|
---|
| 1015 | }
|
---|
| 1016 |
|
---|
| 1017 | throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
---|
| 1018 | }
|
---|
| 1019 | `;
|
---|
| 1020 | helpers.skipFirstGeneratorNext = helper("7.0.0-beta.0")`
|
---|
| 1021 | export default function _skipFirstGeneratorNext(fn) {
|
---|
| 1022 | return function () {
|
---|
| 1023 | var it = fn.apply(this, arguments);
|
---|
| 1024 | it.next();
|
---|
| 1025 | return it;
|
---|
| 1026 | }
|
---|
| 1027 | }
|
---|
| 1028 | `;
|
---|
| 1029 | helpers.toPrimitive = helper("7.1.5")`
|
---|
| 1030 | export default function _toPrimitive(
|
---|
| 1031 | input,
|
---|
| 1032 | hint /*: "default" | "string" | "number" | void */
|
---|
| 1033 | ) {
|
---|
| 1034 | if (typeof input !== "object" || input === null) return input;
|
---|
| 1035 | var prim = input[Symbol.toPrimitive];
|
---|
| 1036 | if (prim !== undefined) {
|
---|
| 1037 | var res = prim.call(input, hint || "default");
|
---|
| 1038 | if (typeof res !== "object") return res;
|
---|
| 1039 | throw new TypeError("@@toPrimitive must return a primitive value.");
|
---|
| 1040 | }
|
---|
| 1041 | return (hint === "string" ? String : Number)(input);
|
---|
| 1042 | }
|
---|
| 1043 | `;
|
---|
| 1044 | helpers.toPropertyKey = helper("7.1.5")`
|
---|
| 1045 | import toPrimitive from "toPrimitive";
|
---|
| 1046 |
|
---|
| 1047 | export default function _toPropertyKey(arg) {
|
---|
| 1048 | var key = toPrimitive(arg, "string");
|
---|
| 1049 | return typeof key === "symbol" ? key : String(key);
|
---|
| 1050 | }
|
---|
| 1051 | `;
|
---|
| 1052 | helpers.initializerWarningHelper = helper("7.0.0-beta.0")`
|
---|
| 1053 | export default function _initializerWarningHelper(descriptor, context){
|
---|
| 1054 | throw new Error(
|
---|
| 1055 | 'Decorating class property failed. Please ensure that ' +
|
---|
| 1056 | 'proposal-class-properties is enabled and runs after the decorators transform.'
|
---|
| 1057 | );
|
---|
| 1058 | }
|
---|
| 1059 | `;
|
---|
| 1060 | helpers.initializerDefineProperty = helper("7.0.0-beta.0")`
|
---|
| 1061 | export default function _initializerDefineProperty(target, property, descriptor, context){
|
---|
| 1062 | if (!descriptor) return;
|
---|
| 1063 |
|
---|
| 1064 | Object.defineProperty(target, property, {
|
---|
| 1065 | enumerable: descriptor.enumerable,
|
---|
| 1066 | configurable: descriptor.configurable,
|
---|
| 1067 | writable: descriptor.writable,
|
---|
| 1068 | value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,
|
---|
| 1069 | });
|
---|
| 1070 | }
|
---|
| 1071 | `;
|
---|
| 1072 | helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")`
|
---|
| 1073 | export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){
|
---|
| 1074 | var desc = {};
|
---|
| 1075 | Object.keys(descriptor).forEach(function(key){
|
---|
| 1076 | desc[key] = descriptor[key];
|
---|
| 1077 | });
|
---|
| 1078 | desc.enumerable = !!desc.enumerable;
|
---|
| 1079 | desc.configurable = !!desc.configurable;
|
---|
| 1080 | if ('value' in desc || desc.initializer){
|
---|
| 1081 | desc.writable = true;
|
---|
| 1082 | }
|
---|
| 1083 |
|
---|
| 1084 | desc = decorators.slice().reverse().reduce(function(desc, decorator){
|
---|
| 1085 | return decorator(target, property, desc) || desc;
|
---|
| 1086 | }, desc);
|
---|
| 1087 |
|
---|
| 1088 | if (context && desc.initializer !== void 0){
|
---|
| 1089 | desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
|
---|
| 1090 | desc.initializer = undefined;
|
---|
| 1091 | }
|
---|
| 1092 |
|
---|
| 1093 | if (desc.initializer === void 0){
|
---|
| 1094 | Object.defineProperty(target, property, desc);
|
---|
| 1095 | desc = null;
|
---|
| 1096 | }
|
---|
| 1097 |
|
---|
| 1098 | return desc;
|
---|
| 1099 | }
|
---|
| 1100 | `;
|
---|
| 1101 | helpers.classPrivateFieldLooseKey = helper("7.0.0-beta.0")`
|
---|
| 1102 | var id = 0;
|
---|
| 1103 | export default function _classPrivateFieldKey(name) {
|
---|
| 1104 | return "__private_" + (id++) + "_" + name;
|
---|
| 1105 | }
|
---|
| 1106 | `;
|
---|
| 1107 | helpers.classPrivateFieldLooseBase = helper("7.0.0-beta.0")`
|
---|
| 1108 | export default function _classPrivateFieldBase(receiver, privateKey) {
|
---|
| 1109 | if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
---|
| 1110 | throw new TypeError("attempted to use private field on non-instance");
|
---|
| 1111 | }
|
---|
| 1112 | return receiver;
|
---|
| 1113 | }
|
---|
| 1114 | `;
|
---|
| 1115 | helpers.classPrivateFieldGet = helper("7.0.0-beta.0")`
|
---|
| 1116 | import classApplyDescriptorGet from "classApplyDescriptorGet";
|
---|
| 1117 | import classExtractFieldDescriptor from "classExtractFieldDescriptor";
|
---|
| 1118 | export default function _classPrivateFieldGet(receiver, privateMap) {
|
---|
| 1119 | var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get");
|
---|
| 1120 | return classApplyDescriptorGet(receiver, descriptor);
|
---|
| 1121 | }
|
---|
| 1122 | `;
|
---|
| 1123 | helpers.classPrivateFieldSet = helper("7.0.0-beta.0")`
|
---|
| 1124 | import classApplyDescriptorSet from "classApplyDescriptorSet";
|
---|
| 1125 | import classExtractFieldDescriptor from "classExtractFieldDescriptor";
|
---|
| 1126 | export default function _classPrivateFieldSet(receiver, privateMap, value) {
|
---|
| 1127 | var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
|
---|
| 1128 | classApplyDescriptorSet(receiver, descriptor, value);
|
---|
| 1129 | return value;
|
---|
| 1130 | }
|
---|
| 1131 | `;
|
---|
| 1132 | helpers.classPrivateFieldDestructureSet = helper("7.4.4")`
|
---|
| 1133 | import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet";
|
---|
| 1134 | import classExtractFieldDescriptor from "classExtractFieldDescriptor";
|
---|
| 1135 | export default function _classPrivateFieldDestructureSet(receiver, privateMap) {
|
---|
| 1136 | var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
|
---|
| 1137 | return classApplyDescriptorDestructureSet(receiver, descriptor);
|
---|
| 1138 | }
|
---|
| 1139 | `;
|
---|
| 1140 | helpers.classExtractFieldDescriptor = helper("7.13.10")`
|
---|
| 1141 | export default function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
---|
| 1142 | if (!privateMap.has(receiver)) {
|
---|
| 1143 | throw new TypeError("attempted to " + action + " private field on non-instance");
|
---|
| 1144 | }
|
---|
| 1145 | return privateMap.get(receiver);
|
---|
| 1146 | }
|
---|
| 1147 | `;
|
---|
| 1148 | helpers.classStaticPrivateFieldSpecGet = helper("7.0.2")`
|
---|
| 1149 | import classApplyDescriptorGet from "classApplyDescriptorGet";
|
---|
| 1150 | import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";
|
---|
| 1151 | import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";
|
---|
| 1152 | export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
|
---|
| 1153 | classCheckPrivateStaticAccess(receiver, classConstructor);
|
---|
| 1154 | classCheckPrivateStaticFieldDescriptor(descriptor, "get");
|
---|
| 1155 | return classApplyDescriptorGet(receiver, descriptor);
|
---|
| 1156 | }
|
---|
| 1157 | `;
|
---|
| 1158 | helpers.classStaticPrivateFieldSpecSet = helper("7.0.2")`
|
---|
| 1159 | import classApplyDescriptorSet from "classApplyDescriptorSet";
|
---|
| 1160 | import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";
|
---|
| 1161 | import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";
|
---|
| 1162 | export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
|
---|
| 1163 | classCheckPrivateStaticAccess(receiver, classConstructor);
|
---|
| 1164 | classCheckPrivateStaticFieldDescriptor(descriptor, "set");
|
---|
| 1165 | classApplyDescriptorSet(receiver, descriptor, value);
|
---|
| 1166 | return value;
|
---|
| 1167 | }
|
---|
| 1168 | `;
|
---|
| 1169 | helpers.classStaticPrivateMethodGet = helper("7.3.2")`
|
---|
| 1170 | import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";
|
---|
| 1171 | export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
|
---|
| 1172 | classCheckPrivateStaticAccess(receiver, classConstructor);
|
---|
| 1173 | return method;
|
---|
| 1174 | }
|
---|
| 1175 | `;
|
---|
| 1176 | helpers.classStaticPrivateMethodSet = helper("7.3.2")`
|
---|
| 1177 | export default function _classStaticPrivateMethodSet() {
|
---|
| 1178 | throw new TypeError("attempted to set read only static private field");
|
---|
| 1179 | }
|
---|
| 1180 | `;
|
---|
| 1181 | helpers.classApplyDescriptorGet = helper("7.13.10")`
|
---|
| 1182 | export default function _classApplyDescriptorGet(receiver, descriptor) {
|
---|
| 1183 | if (descriptor.get) {
|
---|
| 1184 | return descriptor.get.call(receiver);
|
---|
| 1185 | }
|
---|
| 1186 | return descriptor.value;
|
---|
| 1187 | }
|
---|
| 1188 | `;
|
---|
| 1189 | helpers.classApplyDescriptorSet = helper("7.13.10")`
|
---|
| 1190 | export default function _classApplyDescriptorSet(receiver, descriptor, value) {
|
---|
| 1191 | if (descriptor.set) {
|
---|
| 1192 | descriptor.set.call(receiver, value);
|
---|
| 1193 | } else {
|
---|
| 1194 | if (!descriptor.writable) {
|
---|
| 1195 | // This should only throw in strict mode, but class bodies are
|
---|
| 1196 | // always strict and private fields can only be used inside
|
---|
| 1197 | // class bodies.
|
---|
| 1198 | throw new TypeError("attempted to set read only private field");
|
---|
| 1199 | }
|
---|
| 1200 | descriptor.value = value;
|
---|
| 1201 | }
|
---|
| 1202 | }
|
---|
| 1203 | `;
|
---|
| 1204 | helpers.classApplyDescriptorDestructureSet = helper("7.13.10")`
|
---|
| 1205 | export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {
|
---|
| 1206 | if (descriptor.set) {
|
---|
| 1207 | if (!("__destrObj" in descriptor)) {
|
---|
| 1208 | descriptor.__destrObj = {
|
---|
| 1209 | set value(v) {
|
---|
| 1210 | descriptor.set.call(receiver, v)
|
---|
| 1211 | },
|
---|
| 1212 | };
|
---|
| 1213 | }
|
---|
| 1214 | return descriptor.__destrObj;
|
---|
| 1215 | } else {
|
---|
| 1216 | if (!descriptor.writable) {
|
---|
| 1217 | // This should only throw in strict mode, but class bodies are
|
---|
| 1218 | // always strict and private fields can only be used inside
|
---|
| 1219 | // class bodies.
|
---|
| 1220 | throw new TypeError("attempted to set read only private field");
|
---|
| 1221 | }
|
---|
| 1222 |
|
---|
| 1223 | return descriptor;
|
---|
| 1224 | }
|
---|
| 1225 | }
|
---|
| 1226 | `;
|
---|
| 1227 | helpers.classStaticPrivateFieldDestructureSet = helper("7.13.10")`
|
---|
| 1228 | import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet";
|
---|
| 1229 | import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";
|
---|
| 1230 | import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";
|
---|
| 1231 | export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {
|
---|
| 1232 | classCheckPrivateStaticAccess(receiver, classConstructor);
|
---|
| 1233 | classCheckPrivateStaticFieldDescriptor(descriptor, "set");
|
---|
| 1234 | return classApplyDescriptorDestructureSet(receiver, descriptor);
|
---|
| 1235 | }
|
---|
| 1236 | `;
|
---|
| 1237 | helpers.classCheckPrivateStaticAccess = helper("7.13.10")`
|
---|
| 1238 | export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {
|
---|
| 1239 | if (receiver !== classConstructor) {
|
---|
| 1240 | throw new TypeError("Private static access of wrong provenance");
|
---|
| 1241 | }
|
---|
| 1242 | }
|
---|
| 1243 | `;
|
---|
| 1244 | helpers.classCheckPrivateStaticFieldDescriptor = helper("7.13.10")`
|
---|
| 1245 | export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {
|
---|
| 1246 | if (descriptor === undefined) {
|
---|
| 1247 | throw new TypeError("attempted to " + action + " private static field before its declaration");
|
---|
| 1248 | }
|
---|
| 1249 | }
|
---|
| 1250 | `;
|
---|
| 1251 | helpers.decorate = helper("7.1.5")`
|
---|
| 1252 | import toArray from "toArray";
|
---|
| 1253 | import toPropertyKey from "toPropertyKey";
|
---|
| 1254 |
|
---|
| 1255 | // These comments are stripped by @babel/template
|
---|
| 1256 | /*::
|
---|
| 1257 | type PropertyDescriptor =
|
---|
| 1258 | | {
|
---|
| 1259 | value: any,
|
---|
| 1260 | writable: boolean,
|
---|
| 1261 | configurable: boolean,
|
---|
| 1262 | enumerable: boolean,
|
---|
| 1263 | }
|
---|
| 1264 | | {
|
---|
| 1265 | get?: () => any,
|
---|
| 1266 | set?: (v: any) => void,
|
---|
| 1267 | configurable: boolean,
|
---|
| 1268 | enumerable: boolean,
|
---|
| 1269 | };
|
---|
| 1270 |
|
---|
| 1271 | type FieldDescriptor ={
|
---|
| 1272 | writable: boolean,
|
---|
| 1273 | configurable: boolean,
|
---|
| 1274 | enumerable: boolean,
|
---|
| 1275 | };
|
---|
| 1276 |
|
---|
| 1277 | type Placement = "static" | "prototype" | "own";
|
---|
| 1278 | type Key = string | symbol; // PrivateName is not supported yet.
|
---|
| 1279 |
|
---|
| 1280 | type ElementDescriptor =
|
---|
| 1281 | | {
|
---|
| 1282 | kind: "method",
|
---|
| 1283 | key: Key,
|
---|
| 1284 | placement: Placement,
|
---|
| 1285 | descriptor: PropertyDescriptor
|
---|
| 1286 | }
|
---|
| 1287 | | {
|
---|
| 1288 | kind: "field",
|
---|
| 1289 | key: Key,
|
---|
| 1290 | placement: Placement,
|
---|
| 1291 | descriptor: FieldDescriptor,
|
---|
| 1292 | initializer?: () => any,
|
---|
| 1293 | };
|
---|
| 1294 |
|
---|
| 1295 | // This is exposed to the user code
|
---|
| 1296 | type ElementObjectInput = ElementDescriptor & {
|
---|
| 1297 | [@@toStringTag]?: "Descriptor"
|
---|
| 1298 | };
|
---|
| 1299 |
|
---|
| 1300 | // This is exposed to the user code
|
---|
| 1301 | type ElementObjectOutput = ElementDescriptor & {
|
---|
| 1302 | [@@toStringTag]?: "Descriptor"
|
---|
| 1303 | extras?: ElementDescriptor[],
|
---|
| 1304 | finisher?: ClassFinisher,
|
---|
| 1305 | };
|
---|
| 1306 |
|
---|
| 1307 | // This is exposed to the user code
|
---|
| 1308 | type ClassObject = {
|
---|
| 1309 | [@@toStringTag]?: "Descriptor",
|
---|
| 1310 | kind: "class",
|
---|
| 1311 | elements: ElementDescriptor[],
|
---|
| 1312 | };
|
---|
| 1313 |
|
---|
| 1314 | type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput;
|
---|
| 1315 | type ClassDecorator = (descriptor: ClassObject) => ?ClassObject;
|
---|
| 1316 | type ClassFinisher = <A, B>(cl: Class<A>) => Class<B>;
|
---|
| 1317 |
|
---|
| 1318 | // Only used by Babel in the transform output, not part of the spec.
|
---|
| 1319 | type ElementDefinition =
|
---|
| 1320 | | {
|
---|
| 1321 | kind: "method",
|
---|
| 1322 | value: any,
|
---|
| 1323 | key: Key,
|
---|
| 1324 | static?: boolean,
|
---|
| 1325 | decorators?: ElementDecorator[],
|
---|
| 1326 | }
|
---|
| 1327 | | {
|
---|
| 1328 | kind: "field",
|
---|
| 1329 | value: () => any,
|
---|
| 1330 | key: Key,
|
---|
| 1331 | static?: boolean,
|
---|
| 1332 | decorators?: ElementDecorator[],
|
---|
| 1333 | };
|
---|
| 1334 |
|
---|
| 1335 | declare function ClassFactory<C>(initialize: (instance: C) => void): {
|
---|
| 1336 | F: Class<C>,
|
---|
| 1337 | d: ElementDefinition[]
|
---|
| 1338 | }
|
---|
| 1339 |
|
---|
| 1340 | */
|
---|
| 1341 |
|
---|
| 1342 | /*::
|
---|
| 1343 | // Various combinations with/without extras and with one or many finishers
|
---|
| 1344 |
|
---|
| 1345 | type ElementFinisherExtras = {
|
---|
| 1346 | element: ElementDescriptor,
|
---|
| 1347 | finisher?: ClassFinisher,
|
---|
| 1348 | extras?: ElementDescriptor[],
|
---|
| 1349 | };
|
---|
| 1350 |
|
---|
| 1351 | type ElementFinishersExtras = {
|
---|
| 1352 | element: ElementDescriptor,
|
---|
| 1353 | finishers: ClassFinisher[],
|
---|
| 1354 | extras: ElementDescriptor[],
|
---|
| 1355 | };
|
---|
| 1356 |
|
---|
| 1357 | type ElementsFinisher = {
|
---|
| 1358 | elements: ElementDescriptor[],
|
---|
| 1359 | finisher?: ClassFinisher,
|
---|
| 1360 | };
|
---|
| 1361 |
|
---|
| 1362 | type ElementsFinishers = {
|
---|
| 1363 | elements: ElementDescriptor[],
|
---|
| 1364 | finishers: ClassFinisher[],
|
---|
| 1365 | };
|
---|
| 1366 |
|
---|
| 1367 | */
|
---|
| 1368 |
|
---|
| 1369 | /*::
|
---|
| 1370 |
|
---|
| 1371 | type Placements = {
|
---|
| 1372 | static: Key[],
|
---|
| 1373 | prototype: Key[],
|
---|
| 1374 | own: Key[],
|
---|
| 1375 | };
|
---|
| 1376 |
|
---|
| 1377 | */
|
---|
| 1378 |
|
---|
| 1379 | // ClassDefinitionEvaluation (Steps 26-*)
|
---|
| 1380 | export default function _decorate(
|
---|
| 1381 | decorators /*: ClassDecorator[] */,
|
---|
| 1382 | factory /*: ClassFactory */,
|
---|
| 1383 | superClass /*: ?Class<*> */,
|
---|
| 1384 | mixins /*: ?Array<Function> */,
|
---|
| 1385 | ) /*: Class<*> */ {
|
---|
| 1386 | var api = _getDecoratorsApi();
|
---|
| 1387 | if (mixins) {
|
---|
| 1388 | for (var i = 0; i < mixins.length; i++) {
|
---|
| 1389 | api = mixins[i](api);
|
---|
| 1390 | }
|
---|
| 1391 | }
|
---|
| 1392 |
|
---|
| 1393 | var r = factory(function initialize(O) {
|
---|
| 1394 | api.initializeInstanceElements(O, decorated.elements);
|
---|
| 1395 | }, superClass);
|
---|
| 1396 | var decorated = api.decorateClass(
|
---|
| 1397 | _coalesceClassElements(r.d.map(_createElementDescriptor)),
|
---|
| 1398 | decorators,
|
---|
| 1399 | );
|
---|
| 1400 |
|
---|
| 1401 | api.initializeClassElements(r.F, decorated.elements);
|
---|
| 1402 |
|
---|
| 1403 | return api.runClassFinishers(r.F, decorated.finishers);
|
---|
| 1404 | }
|
---|
| 1405 |
|
---|
| 1406 | function _getDecoratorsApi() {
|
---|
| 1407 | _getDecoratorsApi = function() {
|
---|
| 1408 | return api;
|
---|
| 1409 | };
|
---|
| 1410 |
|
---|
| 1411 | var api = {
|
---|
| 1412 | elementsDefinitionOrder: [["method"], ["field"]],
|
---|
| 1413 |
|
---|
| 1414 | // InitializeInstanceElements
|
---|
| 1415 | initializeInstanceElements: function(
|
---|
| 1416 | /*::<C>*/ O /*: C */,
|
---|
| 1417 | elements /*: ElementDescriptor[] */,
|
---|
| 1418 | ) {
|
---|
| 1419 | ["method", "field"].forEach(function(kind) {
|
---|
| 1420 | elements.forEach(function(element /*: ElementDescriptor */) {
|
---|
| 1421 | if (element.kind === kind && element.placement === "own") {
|
---|
| 1422 | this.defineClassElement(O, element);
|
---|
| 1423 | }
|
---|
| 1424 | }, this);
|
---|
| 1425 | }, this);
|
---|
| 1426 | },
|
---|
| 1427 |
|
---|
| 1428 | // InitializeClassElements
|
---|
| 1429 | initializeClassElements: function(
|
---|
| 1430 | /*::<C>*/ F /*: Class<C> */,
|
---|
| 1431 | elements /*: ElementDescriptor[] */,
|
---|
| 1432 | ) {
|
---|
| 1433 | var proto = F.prototype;
|
---|
| 1434 |
|
---|
| 1435 | ["method", "field"].forEach(function(kind) {
|
---|
| 1436 | elements.forEach(function(element /*: ElementDescriptor */) {
|
---|
| 1437 | var placement = element.placement;
|
---|
| 1438 | if (
|
---|
| 1439 | element.kind === kind &&
|
---|
| 1440 | (placement === "static" || placement === "prototype")
|
---|
| 1441 | ) {
|
---|
| 1442 | var receiver = placement === "static" ? F : proto;
|
---|
| 1443 | this.defineClassElement(receiver, element);
|
---|
| 1444 | }
|
---|
| 1445 | }, this);
|
---|
| 1446 | }, this);
|
---|
| 1447 | },
|
---|
| 1448 |
|
---|
| 1449 | // DefineClassElement
|
---|
| 1450 | defineClassElement: function(
|
---|
| 1451 | /*::<C>*/ receiver /*: C | Class<C> */,
|
---|
| 1452 | element /*: ElementDescriptor */,
|
---|
| 1453 | ) {
|
---|
| 1454 | var descriptor /*: PropertyDescriptor */ = element.descriptor;
|
---|
| 1455 | if (element.kind === "field") {
|
---|
| 1456 | var initializer = element.initializer;
|
---|
| 1457 | descriptor = {
|
---|
| 1458 | enumerable: descriptor.enumerable,
|
---|
| 1459 | writable: descriptor.writable,
|
---|
| 1460 | configurable: descriptor.configurable,
|
---|
| 1461 | value: initializer === void 0 ? void 0 : initializer.call(receiver),
|
---|
| 1462 | };
|
---|
| 1463 | }
|
---|
| 1464 | Object.defineProperty(receiver, element.key, descriptor);
|
---|
| 1465 | },
|
---|
| 1466 |
|
---|
| 1467 | // DecorateClass
|
---|
| 1468 | decorateClass: function(
|
---|
| 1469 | elements /*: ElementDescriptor[] */,
|
---|
| 1470 | decorators /*: ClassDecorator[] */,
|
---|
| 1471 | ) /*: ElementsFinishers */ {
|
---|
| 1472 | var newElements /*: ElementDescriptor[] */ = [];
|
---|
| 1473 | var finishers /*: ClassFinisher[] */ = [];
|
---|
| 1474 | var placements /*: Placements */ = {
|
---|
| 1475 | static: [],
|
---|
| 1476 | prototype: [],
|
---|
| 1477 | own: [],
|
---|
| 1478 | };
|
---|
| 1479 |
|
---|
| 1480 | elements.forEach(function(element /*: ElementDescriptor */) {
|
---|
| 1481 | this.addElementPlacement(element, placements);
|
---|
| 1482 | }, this);
|
---|
| 1483 |
|
---|
| 1484 | elements.forEach(function(element /*: ElementDescriptor */) {
|
---|
| 1485 | if (!_hasDecorators(element)) return newElements.push(element);
|
---|
| 1486 |
|
---|
| 1487 | var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement(
|
---|
| 1488 | element,
|
---|
| 1489 | placements,
|
---|
| 1490 | );
|
---|
| 1491 | newElements.push(elementFinishersExtras.element);
|
---|
| 1492 | newElements.push.apply(newElements, elementFinishersExtras.extras);
|
---|
| 1493 | finishers.push.apply(finishers, elementFinishersExtras.finishers);
|
---|
| 1494 | }, this);
|
---|
| 1495 |
|
---|
| 1496 | if (!decorators) {
|
---|
| 1497 | return { elements: newElements, finishers: finishers };
|
---|
| 1498 | }
|
---|
| 1499 |
|
---|
| 1500 | var result /*: ElementsFinishers */ = this.decorateConstructor(
|
---|
| 1501 | newElements,
|
---|
| 1502 | decorators,
|
---|
| 1503 | );
|
---|
| 1504 | finishers.push.apply(finishers, result.finishers);
|
---|
| 1505 | result.finishers = finishers;
|
---|
| 1506 |
|
---|
| 1507 | return result;
|
---|
| 1508 | },
|
---|
| 1509 |
|
---|
| 1510 | // AddElementPlacement
|
---|
| 1511 | addElementPlacement: function(
|
---|
| 1512 | element /*: ElementDescriptor */,
|
---|
| 1513 | placements /*: Placements */,
|
---|
| 1514 | silent /*: boolean */,
|
---|
| 1515 | ) {
|
---|
| 1516 | var keys = placements[element.placement];
|
---|
| 1517 | if (!silent && keys.indexOf(element.key) !== -1) {
|
---|
| 1518 | throw new TypeError("Duplicated element (" + element.key + ")");
|
---|
| 1519 | }
|
---|
| 1520 | keys.push(element.key);
|
---|
| 1521 | },
|
---|
| 1522 |
|
---|
| 1523 | // DecorateElement
|
---|
| 1524 | decorateElement: function(
|
---|
| 1525 | element /*: ElementDescriptor */,
|
---|
| 1526 | placements /*: Placements */,
|
---|
| 1527 | ) /*: ElementFinishersExtras */ {
|
---|
| 1528 | var extras /*: ElementDescriptor[] */ = [];
|
---|
| 1529 | var finishers /*: ClassFinisher[] */ = [];
|
---|
| 1530 |
|
---|
| 1531 | for (
|
---|
| 1532 | var decorators = element.decorators, i = decorators.length - 1;
|
---|
| 1533 | i >= 0;
|
---|
| 1534 | i--
|
---|
| 1535 | ) {
|
---|
| 1536 | // (inlined) RemoveElementPlacement
|
---|
| 1537 | var keys = placements[element.placement];
|
---|
| 1538 | keys.splice(keys.indexOf(element.key), 1);
|
---|
| 1539 |
|
---|
| 1540 | var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor(
|
---|
| 1541 | element,
|
---|
| 1542 | );
|
---|
| 1543 | var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras(
|
---|
| 1544 | (0, decorators[i])(elementObject) /*: ElementObjectOutput */ ||
|
---|
| 1545 | elementObject,
|
---|
| 1546 | );
|
---|
| 1547 |
|
---|
| 1548 | element = elementFinisherExtras.element;
|
---|
| 1549 | this.addElementPlacement(element, placements);
|
---|
| 1550 |
|
---|
| 1551 | if (elementFinisherExtras.finisher) {
|
---|
| 1552 | finishers.push(elementFinisherExtras.finisher);
|
---|
| 1553 | }
|
---|
| 1554 |
|
---|
| 1555 | var newExtras /*: ElementDescriptor[] | void */ =
|
---|
| 1556 | elementFinisherExtras.extras;
|
---|
| 1557 | if (newExtras) {
|
---|
| 1558 | for (var j = 0; j < newExtras.length; j++) {
|
---|
| 1559 | this.addElementPlacement(newExtras[j], placements);
|
---|
| 1560 | }
|
---|
| 1561 | extras.push.apply(extras, newExtras);
|
---|
| 1562 | }
|
---|
| 1563 | }
|
---|
| 1564 |
|
---|
| 1565 | return { element: element, finishers: finishers, extras: extras };
|
---|
| 1566 | },
|
---|
| 1567 |
|
---|
| 1568 | // DecorateConstructor
|
---|
| 1569 | decorateConstructor: function(
|
---|
| 1570 | elements /*: ElementDescriptor[] */,
|
---|
| 1571 | decorators /*: ClassDecorator[] */,
|
---|
| 1572 | ) /*: ElementsFinishers */ {
|
---|
| 1573 | var finishers /*: ClassFinisher[] */ = [];
|
---|
| 1574 |
|
---|
| 1575 | for (var i = decorators.length - 1; i >= 0; i--) {
|
---|
| 1576 | var obj /*: ClassObject */ = this.fromClassDescriptor(elements);
|
---|
| 1577 | var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor(
|
---|
| 1578 | (0, decorators[i])(obj) /*: ClassObject */ || obj,
|
---|
| 1579 | );
|
---|
| 1580 |
|
---|
| 1581 | if (elementsAndFinisher.finisher !== undefined) {
|
---|
| 1582 | finishers.push(elementsAndFinisher.finisher);
|
---|
| 1583 | }
|
---|
| 1584 |
|
---|
| 1585 | if (elementsAndFinisher.elements !== undefined) {
|
---|
| 1586 | elements = elementsAndFinisher.elements;
|
---|
| 1587 |
|
---|
| 1588 | for (var j = 0; j < elements.length - 1; j++) {
|
---|
| 1589 | for (var k = j + 1; k < elements.length; k++) {
|
---|
| 1590 | if (
|
---|
| 1591 | elements[j].key === elements[k].key &&
|
---|
| 1592 | elements[j].placement === elements[k].placement
|
---|
| 1593 | ) {
|
---|
| 1594 | throw new TypeError(
|
---|
| 1595 | "Duplicated element (" + elements[j].key + ")",
|
---|
| 1596 | );
|
---|
| 1597 | }
|
---|
| 1598 | }
|
---|
| 1599 | }
|
---|
| 1600 | }
|
---|
| 1601 | }
|
---|
| 1602 |
|
---|
| 1603 | return { elements: elements, finishers: finishers };
|
---|
| 1604 | },
|
---|
| 1605 |
|
---|
| 1606 | // FromElementDescriptor
|
---|
| 1607 | fromElementDescriptor: function(
|
---|
| 1608 | element /*: ElementDescriptor */,
|
---|
| 1609 | ) /*: ElementObject */ {
|
---|
| 1610 | var obj /*: ElementObject */ = {
|
---|
| 1611 | kind: element.kind,
|
---|
| 1612 | key: element.key,
|
---|
| 1613 | placement: element.placement,
|
---|
| 1614 | descriptor: element.descriptor,
|
---|
| 1615 | };
|
---|
| 1616 |
|
---|
| 1617 | var desc = {
|
---|
| 1618 | value: "Descriptor",
|
---|
| 1619 | configurable: true,
|
---|
| 1620 | };
|
---|
| 1621 | Object.defineProperty(obj, Symbol.toStringTag, desc);
|
---|
| 1622 |
|
---|
| 1623 | if (element.kind === "field") obj.initializer = element.initializer;
|
---|
| 1624 |
|
---|
| 1625 | return obj;
|
---|
| 1626 | },
|
---|
| 1627 |
|
---|
| 1628 | // ToElementDescriptors
|
---|
| 1629 | toElementDescriptors: function(
|
---|
| 1630 | elementObjects /*: ElementObject[] */,
|
---|
| 1631 | ) /*: ElementDescriptor[] */ {
|
---|
| 1632 | if (elementObjects === undefined) return;
|
---|
| 1633 | return toArray(elementObjects).map(function(elementObject) {
|
---|
| 1634 | var element = this.toElementDescriptor(elementObject);
|
---|
| 1635 | this.disallowProperty(elementObject, "finisher", "An element descriptor");
|
---|
| 1636 | this.disallowProperty(elementObject, "extras", "An element descriptor");
|
---|
| 1637 | return element;
|
---|
| 1638 | }, this);
|
---|
| 1639 | },
|
---|
| 1640 |
|
---|
| 1641 | // ToElementDescriptor
|
---|
| 1642 | toElementDescriptor: function(
|
---|
| 1643 | elementObject /*: ElementObject */,
|
---|
| 1644 | ) /*: ElementDescriptor */ {
|
---|
| 1645 | var kind = String(elementObject.kind);
|
---|
| 1646 | if (kind !== "method" && kind !== "field") {
|
---|
| 1647 | throw new TypeError(
|
---|
| 1648 | 'An element descriptor\\'s .kind property must be either "method" or' +
|
---|
| 1649 | ' "field", but a decorator created an element descriptor with' +
|
---|
| 1650 | ' .kind "' +
|
---|
| 1651 | kind +
|
---|
| 1652 | '"',
|
---|
| 1653 | );
|
---|
| 1654 | }
|
---|
| 1655 |
|
---|
| 1656 | var key = toPropertyKey(elementObject.key);
|
---|
| 1657 |
|
---|
| 1658 | var placement = String(elementObject.placement);
|
---|
| 1659 | if (
|
---|
| 1660 | placement !== "static" &&
|
---|
| 1661 | placement !== "prototype" &&
|
---|
| 1662 | placement !== "own"
|
---|
| 1663 | ) {
|
---|
| 1664 | throw new TypeError(
|
---|
| 1665 | 'An element descriptor\\'s .placement property must be one of "static",' +
|
---|
| 1666 | ' "prototype" or "own", but a decorator created an element descriptor' +
|
---|
| 1667 | ' with .placement "' +
|
---|
| 1668 | placement +
|
---|
| 1669 | '"',
|
---|
| 1670 | );
|
---|
| 1671 | }
|
---|
| 1672 |
|
---|
| 1673 | var descriptor /*: PropertyDescriptor */ = elementObject.descriptor;
|
---|
| 1674 |
|
---|
| 1675 | this.disallowProperty(elementObject, "elements", "An element descriptor");
|
---|
| 1676 |
|
---|
| 1677 | var element /*: ElementDescriptor */ = {
|
---|
| 1678 | kind: kind,
|
---|
| 1679 | key: key,
|
---|
| 1680 | placement: placement,
|
---|
| 1681 | descriptor: Object.assign({}, descriptor),
|
---|
| 1682 | };
|
---|
| 1683 |
|
---|
| 1684 | if (kind !== "field") {
|
---|
| 1685 | this.disallowProperty(elementObject, "initializer", "A method descriptor");
|
---|
| 1686 | } else {
|
---|
| 1687 | this.disallowProperty(
|
---|
| 1688 | descriptor,
|
---|
| 1689 | "get",
|
---|
| 1690 | "The property descriptor of a field descriptor",
|
---|
| 1691 | );
|
---|
| 1692 | this.disallowProperty(
|
---|
| 1693 | descriptor,
|
---|
| 1694 | "set",
|
---|
| 1695 | "The property descriptor of a field descriptor",
|
---|
| 1696 | );
|
---|
| 1697 | this.disallowProperty(
|
---|
| 1698 | descriptor,
|
---|
| 1699 | "value",
|
---|
| 1700 | "The property descriptor of a field descriptor",
|
---|
| 1701 | );
|
---|
| 1702 |
|
---|
| 1703 | element.initializer = elementObject.initializer;
|
---|
| 1704 | }
|
---|
| 1705 |
|
---|
| 1706 | return element;
|
---|
| 1707 | },
|
---|
| 1708 |
|
---|
| 1709 | toElementFinisherExtras: function(
|
---|
| 1710 | elementObject /*: ElementObject */,
|
---|
| 1711 | ) /*: ElementFinisherExtras */ {
|
---|
| 1712 | var element /*: ElementDescriptor */ = this.toElementDescriptor(
|
---|
| 1713 | elementObject,
|
---|
| 1714 | );
|
---|
| 1715 | var finisher /*: ClassFinisher */ = _optionalCallableProperty(
|
---|
| 1716 | elementObject,
|
---|
| 1717 | "finisher",
|
---|
| 1718 | );
|
---|
| 1719 | var extras /*: ElementDescriptors[] */ = this.toElementDescriptors(
|
---|
| 1720 | elementObject.extras,
|
---|
| 1721 | );
|
---|
| 1722 |
|
---|
| 1723 | return { element: element, finisher: finisher, extras: extras };
|
---|
| 1724 | },
|
---|
| 1725 |
|
---|
| 1726 | // FromClassDescriptor
|
---|
| 1727 | fromClassDescriptor: function(
|
---|
| 1728 | elements /*: ElementDescriptor[] */,
|
---|
| 1729 | ) /*: ClassObject */ {
|
---|
| 1730 | var obj = {
|
---|
| 1731 | kind: "class",
|
---|
| 1732 | elements: elements.map(this.fromElementDescriptor, this),
|
---|
| 1733 | };
|
---|
| 1734 |
|
---|
| 1735 | var desc = { value: "Descriptor", configurable: true };
|
---|
| 1736 | Object.defineProperty(obj, Symbol.toStringTag, desc);
|
---|
| 1737 |
|
---|
| 1738 | return obj;
|
---|
| 1739 | },
|
---|
| 1740 |
|
---|
| 1741 | // ToClassDescriptor
|
---|
| 1742 | toClassDescriptor: function(
|
---|
| 1743 | obj /*: ClassObject */,
|
---|
| 1744 | ) /*: ElementsFinisher */ {
|
---|
| 1745 | var kind = String(obj.kind);
|
---|
| 1746 | if (kind !== "class") {
|
---|
| 1747 | throw new TypeError(
|
---|
| 1748 | 'A class descriptor\\'s .kind property must be "class", but a decorator' +
|
---|
| 1749 | ' created a class descriptor with .kind "' +
|
---|
| 1750 | kind +
|
---|
| 1751 | '"',
|
---|
| 1752 | );
|
---|
| 1753 | }
|
---|
| 1754 |
|
---|
| 1755 | this.disallowProperty(obj, "key", "A class descriptor");
|
---|
| 1756 | this.disallowProperty(obj, "placement", "A class descriptor");
|
---|
| 1757 | this.disallowProperty(obj, "descriptor", "A class descriptor");
|
---|
| 1758 | this.disallowProperty(obj, "initializer", "A class descriptor");
|
---|
| 1759 | this.disallowProperty(obj, "extras", "A class descriptor");
|
---|
| 1760 |
|
---|
| 1761 | var finisher = _optionalCallableProperty(obj, "finisher");
|
---|
| 1762 | var elements = this.toElementDescriptors(obj.elements);
|
---|
| 1763 |
|
---|
| 1764 | return { elements: elements, finisher: finisher };
|
---|
| 1765 | },
|
---|
| 1766 |
|
---|
| 1767 | // RunClassFinishers
|
---|
| 1768 | runClassFinishers: function(
|
---|
| 1769 | constructor /*: Class<*> */,
|
---|
| 1770 | finishers /*: ClassFinisher[] */,
|
---|
| 1771 | ) /*: Class<*> */ {
|
---|
| 1772 | for (var i = 0; i < finishers.length; i++) {
|
---|
| 1773 | var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor);
|
---|
| 1774 | if (newConstructor !== undefined) {
|
---|
| 1775 | // NOTE: This should check if IsConstructor(newConstructor) is false.
|
---|
| 1776 | if (typeof newConstructor !== "function") {
|
---|
| 1777 | throw new TypeError("Finishers must return a constructor.");
|
---|
| 1778 | }
|
---|
| 1779 | constructor = newConstructor;
|
---|
| 1780 | }
|
---|
| 1781 | }
|
---|
| 1782 | return constructor;
|
---|
| 1783 | },
|
---|
| 1784 |
|
---|
| 1785 | disallowProperty: function(obj, name, objectType) {
|
---|
| 1786 | if (obj[name] !== undefined) {
|
---|
| 1787 | throw new TypeError(objectType + " can't have a ." + name + " property.");
|
---|
| 1788 | }
|
---|
| 1789 | }
|
---|
| 1790 | };
|
---|
| 1791 |
|
---|
| 1792 | return api;
|
---|
| 1793 | }
|
---|
| 1794 |
|
---|
| 1795 | // ClassElementEvaluation
|
---|
| 1796 | function _createElementDescriptor(
|
---|
| 1797 | def /*: ElementDefinition */,
|
---|
| 1798 | ) /*: ElementDescriptor */ {
|
---|
| 1799 | var key = toPropertyKey(def.key);
|
---|
| 1800 |
|
---|
| 1801 | var descriptor /*: PropertyDescriptor */;
|
---|
| 1802 | if (def.kind === "method") {
|
---|
| 1803 | descriptor = {
|
---|
| 1804 | value: def.value,
|
---|
| 1805 | writable: true,
|
---|
| 1806 | configurable: true,
|
---|
| 1807 | enumerable: false,
|
---|
| 1808 | };
|
---|
| 1809 | } else if (def.kind === "get") {
|
---|
| 1810 | descriptor = { get: def.value, configurable: true, enumerable: false };
|
---|
| 1811 | } else if (def.kind === "set") {
|
---|
| 1812 | descriptor = { set: def.value, configurable: true, enumerable: false };
|
---|
| 1813 | } else if (def.kind === "field") {
|
---|
| 1814 | descriptor = { configurable: true, writable: true, enumerable: true };
|
---|
| 1815 | }
|
---|
| 1816 |
|
---|
| 1817 | var element /*: ElementDescriptor */ = {
|
---|
| 1818 | kind: def.kind === "field" ? "field" : "method",
|
---|
| 1819 | key: key,
|
---|
| 1820 | placement: def.static
|
---|
| 1821 | ? "static"
|
---|
| 1822 | : def.kind === "field"
|
---|
| 1823 | ? "own"
|
---|
| 1824 | : "prototype",
|
---|
| 1825 | descriptor: descriptor,
|
---|
| 1826 | };
|
---|
| 1827 | if (def.decorators) element.decorators = def.decorators;
|
---|
| 1828 | if (def.kind === "field") element.initializer = def.value;
|
---|
| 1829 |
|
---|
| 1830 | return element;
|
---|
| 1831 | }
|
---|
| 1832 |
|
---|
| 1833 | // CoalesceGetterSetter
|
---|
| 1834 | function _coalesceGetterSetter(
|
---|
| 1835 | element /*: ElementDescriptor */,
|
---|
| 1836 | other /*: ElementDescriptor */,
|
---|
| 1837 | ) {
|
---|
| 1838 | if (element.descriptor.get !== undefined) {
|
---|
| 1839 | other.descriptor.get = element.descriptor.get;
|
---|
| 1840 | } else {
|
---|
| 1841 | other.descriptor.set = element.descriptor.set;
|
---|
| 1842 | }
|
---|
| 1843 | }
|
---|
| 1844 |
|
---|
| 1845 | // CoalesceClassElements
|
---|
| 1846 | function _coalesceClassElements(
|
---|
| 1847 | elements /*: ElementDescriptor[] */,
|
---|
| 1848 | ) /*: ElementDescriptor[] */ {
|
---|
| 1849 | var newElements /*: ElementDescriptor[] */ = [];
|
---|
| 1850 |
|
---|
| 1851 | var isSameElement = function(
|
---|
| 1852 | other /*: ElementDescriptor */,
|
---|
| 1853 | ) /*: boolean */ {
|
---|
| 1854 | return (
|
---|
| 1855 | other.kind === "method" &&
|
---|
| 1856 | other.key === element.key &&
|
---|
| 1857 | other.placement === element.placement
|
---|
| 1858 | );
|
---|
| 1859 | };
|
---|
| 1860 |
|
---|
| 1861 | for (var i = 0; i < elements.length; i++) {
|
---|
| 1862 | var element /*: ElementDescriptor */ = elements[i];
|
---|
| 1863 | var other /*: ElementDescriptor */;
|
---|
| 1864 |
|
---|
| 1865 | if (
|
---|
| 1866 | element.kind === "method" &&
|
---|
| 1867 | (other = newElements.find(isSameElement))
|
---|
| 1868 | ) {
|
---|
| 1869 | if (
|
---|
| 1870 | _isDataDescriptor(element.descriptor) ||
|
---|
| 1871 | _isDataDescriptor(other.descriptor)
|
---|
| 1872 | ) {
|
---|
| 1873 | if (_hasDecorators(element) || _hasDecorators(other)) {
|
---|
| 1874 | throw new ReferenceError(
|
---|
| 1875 | "Duplicated methods (" + element.key + ") can't be decorated.",
|
---|
| 1876 | );
|
---|
| 1877 | }
|
---|
| 1878 | other.descriptor = element.descriptor;
|
---|
| 1879 | } else {
|
---|
| 1880 | if (_hasDecorators(element)) {
|
---|
| 1881 | if (_hasDecorators(other)) {
|
---|
| 1882 | throw new ReferenceError(
|
---|
| 1883 | "Decorators can't be placed on different accessors with for " +
|
---|
| 1884 | "the same property (" +
|
---|
| 1885 | element.key +
|
---|
| 1886 | ").",
|
---|
| 1887 | );
|
---|
| 1888 | }
|
---|
| 1889 | other.decorators = element.decorators;
|
---|
| 1890 | }
|
---|
| 1891 | _coalesceGetterSetter(element, other);
|
---|
| 1892 | }
|
---|
| 1893 | } else {
|
---|
| 1894 | newElements.push(element);
|
---|
| 1895 | }
|
---|
| 1896 | }
|
---|
| 1897 |
|
---|
| 1898 | return newElements;
|
---|
| 1899 | }
|
---|
| 1900 |
|
---|
| 1901 | function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ {
|
---|
| 1902 | return element.decorators && element.decorators.length;
|
---|
| 1903 | }
|
---|
| 1904 |
|
---|
| 1905 | function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ {
|
---|
| 1906 | return (
|
---|
| 1907 | desc !== undefined &&
|
---|
| 1908 | !(desc.value === undefined && desc.writable === undefined)
|
---|
| 1909 | );
|
---|
| 1910 | }
|
---|
| 1911 |
|
---|
| 1912 | function _optionalCallableProperty /*::<T>*/(
|
---|
| 1913 | obj /*: T */,
|
---|
| 1914 | name /*: $Keys<T> */,
|
---|
| 1915 | ) /*: ?Function */ {
|
---|
| 1916 | var value = obj[name];
|
---|
| 1917 | if (value !== undefined && typeof value !== "function") {
|
---|
| 1918 | throw new TypeError("Expected '" + name + "' to be a function");
|
---|
| 1919 | }
|
---|
| 1920 | return value;
|
---|
| 1921 | }
|
---|
| 1922 |
|
---|
| 1923 | `;
|
---|
| 1924 | helpers.classPrivateMethodGet = helper("7.1.6")`
|
---|
| 1925 | export default function _classPrivateMethodGet(receiver, privateSet, fn) {
|
---|
| 1926 | if (!privateSet.has(receiver)) {
|
---|
| 1927 | throw new TypeError("attempted to get private field on non-instance");
|
---|
| 1928 | }
|
---|
| 1929 | return fn;
|
---|
| 1930 | }
|
---|
| 1931 | `;
|
---|
| 1932 | helpers.checkPrivateRedeclaration = helper("7.14.1")`
|
---|
| 1933 | export default function _checkPrivateRedeclaration(obj, privateCollection) {
|
---|
| 1934 | if (privateCollection.has(obj)) {
|
---|
| 1935 | throw new TypeError("Cannot initialize the same private elements twice on an object");
|
---|
| 1936 | }
|
---|
| 1937 | }
|
---|
| 1938 | `;
|
---|
| 1939 | helpers.classPrivateFieldInitSpec = helper("7.14.1")`
|
---|
| 1940 | import checkPrivateRedeclaration from "checkPrivateRedeclaration";
|
---|
| 1941 |
|
---|
| 1942 | export default function _classPrivateFieldInitSpec(obj, privateMap, value) {
|
---|
| 1943 | checkPrivateRedeclaration(obj, privateMap);
|
---|
| 1944 | privateMap.set(obj, value);
|
---|
| 1945 | }
|
---|
| 1946 | `;
|
---|
| 1947 | helpers.classPrivateMethodInitSpec = helper("7.14.1")`
|
---|
| 1948 | import checkPrivateRedeclaration from "checkPrivateRedeclaration";
|
---|
| 1949 |
|
---|
| 1950 | export default function _classPrivateMethodInitSpec(obj, privateSet) {
|
---|
| 1951 | checkPrivateRedeclaration(obj, privateSet);
|
---|
| 1952 | privateSet.add(obj);
|
---|
| 1953 | }
|
---|
| 1954 | `;
|
---|
| 1955 | {
|
---|
| 1956 | helpers.classPrivateMethodSet = helper("7.1.6")`
|
---|
| 1957 | export default function _classPrivateMethodSet() {
|
---|
| 1958 | throw new TypeError("attempted to reassign private method");
|
---|
| 1959 | }
|
---|
| 1960 | `;
|
---|
| 1961 | } |
---|