UNPKG

44.6 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var helperPluginUtils = require('@babel/helper-plugin-utils');
6var syntaxObjectRestSpread = require('@babel/plugin-syntax-object-rest-spread');
7var core = require('@babel/core');
8var pluginTransformParameters = require('@babel/plugin-transform-parameters');
9var helperCompilationTargets = require('@babel/helper-compilation-targets');
10
11function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
13var syntaxObjectRestSpread__default = /*#__PURE__*/_interopDefaultLegacy(syntaxObjectRestSpread);
14
15var require$$0 = {
16 "es6.array.copy-within": {
17 chrome: "45",
18 opera: "32",
19 edge: "12",
20 firefox: "32",
21 safari: "9",
22 node: "4",
23 ios: "9",
24 samsung: "5",
25 rhino: "1.7.13",
26 electron: "0.31"
27},
28 "es6.array.every": {
29 chrome: "5",
30 opera: "10.10",
31 edge: "12",
32 firefox: "2",
33 safari: "3.1",
34 node: "0.10",
35 ie: "9",
36 android: "4",
37 ios: "6",
38 phantom: "2",
39 samsung: "1",
40 rhino: "1.7.13",
41 electron: "0.20"
42},
43 "es6.array.fill": {
44 chrome: "45",
45 opera: "32",
46 edge: "12",
47 firefox: "31",
48 safari: "7.1",
49 node: "4",
50 ios: "8",
51 samsung: "5",
52 rhino: "1.7.13",
53 electron: "0.31"
54},
55 "es6.array.filter": {
56 chrome: "51",
57 opera: "38",
58 edge: "13",
59 firefox: "48",
60 safari: "10",
61 node: "6.5",
62 ios: "10",
63 samsung: "5",
64 electron: "1.2"
65},
66 "es6.array.find": {
67 chrome: "45",
68 opera: "32",
69 edge: "12",
70 firefox: "25",
71 safari: "7.1",
72 node: "4",
73 ios: "8",
74 samsung: "5",
75 rhino: "1.7.13",
76 electron: "0.31"
77},
78 "es6.array.find-index": {
79 chrome: "45",
80 opera: "32",
81 edge: "12",
82 firefox: "25",
83 safari: "7.1",
84 node: "4",
85 ios: "8",
86 samsung: "5",
87 rhino: "1.7.13",
88 electron: "0.31"
89},
90 "es7.array.flat-map": {
91 chrome: "69",
92 opera: "56",
93 edge: "79",
94 firefox: "62",
95 safari: "12",
96 node: "11",
97 ios: "12",
98 samsung: "10",
99 electron: "4.0"
100},
101 "es6.array.for-each": {
102 chrome: "5",
103 opera: "10.10",
104 edge: "12",
105 firefox: "2",
106 safari: "3.1",
107 node: "0.10",
108 ie: "9",
109 android: "4",
110 ios: "6",
111 phantom: "2",
112 samsung: "1",
113 rhino: "1.7.13",
114 electron: "0.20"
115},
116 "es6.array.from": {
117 chrome: "51",
118 opera: "38",
119 edge: "15",
120 firefox: "36",
121 safari: "10",
122 node: "6.5",
123 ios: "10",
124 samsung: "5",
125 electron: "1.2"
126},
127 "es7.array.includes": {
128 chrome: "47",
129 opera: "34",
130 edge: "14",
131 firefox: "43",
132 safari: "10",
133 node: "6",
134 ios: "10",
135 samsung: "5",
136 electron: "0.36"
137},
138 "es6.array.index-of": {
139 chrome: "5",
140 opera: "10.10",
141 edge: "12",
142 firefox: "2",
143 safari: "3.1",
144 node: "0.10",
145 ie: "9",
146 android: "4",
147 ios: "6",
148 phantom: "2",
149 samsung: "1",
150 rhino: "1.7.13",
151 electron: "0.20"
152},
153 "es6.array.is-array": {
154 chrome: "5",
155 opera: "10.50",
156 edge: "12",
157 firefox: "4",
158 safari: "4",
159 node: "0.10",
160 ie: "9",
161 android: "4",
162 ios: "6",
163 phantom: "2",
164 samsung: "1",
165 rhino: "1.7.13",
166 electron: "0.20"
167},
168 "es6.array.iterator": {
169 chrome: "66",
170 opera: "53",
171 edge: "12",
172 firefox: "60",
173 safari: "9",
174 node: "10",
175 ios: "9",
176 samsung: "9",
177 rhino: "1.7.13",
178 electron: "3.0"
179},
180 "es6.array.last-index-of": {
181 chrome: "5",
182 opera: "10.10",
183 edge: "12",
184 firefox: "2",
185 safari: "3.1",
186 node: "0.10",
187 ie: "9",
188 android: "4",
189 ios: "6",
190 phantom: "2",
191 samsung: "1",
192 rhino: "1.7.13",
193 electron: "0.20"
194},
195 "es6.array.map": {
196 chrome: "51",
197 opera: "38",
198 edge: "13",
199 firefox: "48",
200 safari: "10",
201 node: "6.5",
202 ios: "10",
203 samsung: "5",
204 electron: "1.2"
205},
206 "es6.array.of": {
207 chrome: "45",
208 opera: "32",
209 edge: "12",
210 firefox: "25",
211 safari: "9",
212 node: "4",
213 ios: "9",
214 samsung: "5",
215 rhino: "1.7.13",
216 electron: "0.31"
217},
218 "es6.array.reduce": {
219 chrome: "5",
220 opera: "10.50",
221 edge: "12",
222 firefox: "3",
223 safari: "4",
224 node: "0.10",
225 ie: "9",
226 android: "4",
227 ios: "6",
228 phantom: "2",
229 samsung: "1",
230 rhino: "1.7.13",
231 electron: "0.20"
232},
233 "es6.array.reduce-right": {
234 chrome: "5",
235 opera: "10.50",
236 edge: "12",
237 firefox: "3",
238 safari: "4",
239 node: "0.10",
240 ie: "9",
241 android: "4",
242 ios: "6",
243 phantom: "2",
244 samsung: "1",
245 rhino: "1.7.13",
246 electron: "0.20"
247},
248 "es6.array.slice": {
249 chrome: "51",
250 opera: "38",
251 edge: "13",
252 firefox: "48",
253 safari: "10",
254 node: "6.5",
255 ios: "10",
256 samsung: "5",
257 electron: "1.2"
258},
259 "es6.array.some": {
260 chrome: "5",
261 opera: "10.10",
262 edge: "12",
263 firefox: "2",
264 safari: "3.1",
265 node: "0.10",
266 ie: "9",
267 android: "4",
268 ios: "6",
269 phantom: "2",
270 samsung: "1",
271 rhino: "1.7.13",
272 electron: "0.20"
273},
274 "es6.array.sort": {
275 chrome: "63",
276 opera: "50",
277 edge: "12",
278 firefox: "5",
279 safari: "12",
280 node: "10",
281 ie: "9",
282 ios: "12",
283 samsung: "8",
284 rhino: "1.7.13",
285 electron: "3.0"
286},
287 "es6.array.species": {
288 chrome: "51",
289 opera: "38",
290 edge: "13",
291 firefox: "48",
292 safari: "10",
293 node: "6.5",
294 ios: "10",
295 samsung: "5",
296 electron: "1.2"
297},
298 "es6.date.now": {
299 chrome: "5",
300 opera: "10.50",
301 edge: "12",
302 firefox: "2",
303 safari: "4",
304 node: "0.10",
305 ie: "9",
306 android: "4",
307 ios: "6",
308 phantom: "2",
309 samsung: "1",
310 rhino: "1.7.13",
311 electron: "0.20"
312},
313 "es6.date.to-iso-string": {
314 chrome: "5",
315 opera: "10.50",
316 edge: "12",
317 firefox: "3.5",
318 safari: "4",
319 node: "0.10",
320 ie: "9",
321 android: "4",
322 ios: "6",
323 phantom: "2",
324 samsung: "1",
325 rhino: "1.7.13",
326 electron: "0.20"
327},
328 "es6.date.to-json": {
329 chrome: "5",
330 opera: "12.10",
331 edge: "12",
332 firefox: "4",
333 safari: "10",
334 node: "0.10",
335 ie: "9",
336 android: "4",
337 ios: "10",
338 samsung: "1",
339 rhino: "1.7.13",
340 electron: "0.20"
341},
342 "es6.date.to-primitive": {
343 chrome: "47",
344 opera: "34",
345 edge: "15",
346 firefox: "44",
347 safari: "10",
348 node: "6",
349 ios: "10",
350 samsung: "5",
351 electron: "0.36"
352},
353 "es6.date.to-string": {
354 chrome: "5",
355 opera: "10.50",
356 edge: "12",
357 firefox: "2",
358 safari: "3.1",
359 node: "0.10",
360 ie: "10",
361 android: "4",
362 ios: "6",
363 phantom: "2",
364 samsung: "1",
365 rhino: "1.7.13",
366 electron: "0.20"
367},
368 "es6.function.bind": {
369 chrome: "7",
370 opera: "12",
371 edge: "12",
372 firefox: "4",
373 safari: "5.1",
374 node: "0.10",
375 ie: "9",
376 android: "4",
377 ios: "6",
378 phantom: "2",
379 samsung: "1",
380 rhino: "1.7.13",
381 electron: "0.20"
382},
383 "es6.function.has-instance": {
384 chrome: "51",
385 opera: "38",
386 edge: "15",
387 firefox: "50",
388 safari: "10",
389 node: "6.5",
390 ios: "10",
391 samsung: "5",
392 electron: "1.2"
393},
394 "es6.function.name": {
395 chrome: "5",
396 opera: "10.50",
397 edge: "14",
398 firefox: "2",
399 safari: "4",
400 node: "0.10",
401 android: "4",
402 ios: "6",
403 phantom: "2",
404 samsung: "1",
405 rhino: "1.7.13",
406 electron: "0.20"
407},
408 "es6.map": {
409 chrome: "51",
410 opera: "38",
411 edge: "15",
412 firefox: "53",
413 safari: "10",
414 node: "6.5",
415 ios: "10",
416 samsung: "5",
417 electron: "1.2"
418},
419 "es6.math.acosh": {
420 chrome: "38",
421 opera: "25",
422 edge: "12",
423 firefox: "25",
424 safari: "7.1",
425 node: "0.12",
426 ios: "8",
427 samsung: "3",
428 rhino: "1.7.13",
429 electron: "0.20"
430},
431 "es6.math.asinh": {
432 chrome: "38",
433 opera: "25",
434 edge: "12",
435 firefox: "25",
436 safari: "7.1",
437 node: "0.12",
438 ios: "8",
439 samsung: "3",
440 rhino: "1.7.13",
441 electron: "0.20"
442},
443 "es6.math.atanh": {
444 chrome: "38",
445 opera: "25",
446 edge: "12",
447 firefox: "25",
448 safari: "7.1",
449 node: "0.12",
450 ios: "8",
451 samsung: "3",
452 rhino: "1.7.13",
453 electron: "0.20"
454},
455 "es6.math.cbrt": {
456 chrome: "38",
457 opera: "25",
458 edge: "12",
459 firefox: "25",
460 safari: "7.1",
461 node: "0.12",
462 ios: "8",
463 samsung: "3",
464 rhino: "1.7.13",
465 electron: "0.20"
466},
467 "es6.math.clz32": {
468 chrome: "38",
469 opera: "25",
470 edge: "12",
471 firefox: "31",
472 safari: "9",
473 node: "0.12",
474 ios: "9",
475 samsung: "3",
476 rhino: "1.7.13",
477 electron: "0.20"
478},
479 "es6.math.cosh": {
480 chrome: "38",
481 opera: "25",
482 edge: "12",
483 firefox: "25",
484 safari: "7.1",
485 node: "0.12",
486 ios: "8",
487 samsung: "3",
488 rhino: "1.7.13",
489 electron: "0.20"
490},
491 "es6.math.expm1": {
492 chrome: "38",
493 opera: "25",
494 edge: "12",
495 firefox: "25",
496 safari: "7.1",
497 node: "0.12",
498 ios: "8",
499 samsung: "3",
500 rhino: "1.7.13",
501 electron: "0.20"
502},
503 "es6.math.fround": {
504 chrome: "38",
505 opera: "25",
506 edge: "12",
507 firefox: "26",
508 safari: "7.1",
509 node: "0.12",
510 ios: "8",
511 samsung: "3",
512 rhino: "1.7.13",
513 electron: "0.20"
514},
515 "es6.math.hypot": {
516 chrome: "38",
517 opera: "25",
518 edge: "12",
519 firefox: "27",
520 safari: "7.1",
521 node: "0.12",
522 ios: "8",
523 samsung: "3",
524 rhino: "1.7.13",
525 electron: "0.20"
526},
527 "es6.math.imul": {
528 chrome: "30",
529 opera: "17",
530 edge: "12",
531 firefox: "23",
532 safari: "7",
533 node: "0.12",
534 android: "4.4",
535 ios: "7",
536 samsung: "2",
537 rhino: "1.7.13",
538 electron: "0.20"
539},
540 "es6.math.log1p": {
541 chrome: "38",
542 opera: "25",
543 edge: "12",
544 firefox: "25",
545 safari: "7.1",
546 node: "0.12",
547 ios: "8",
548 samsung: "3",
549 rhino: "1.7.13",
550 electron: "0.20"
551},
552 "es6.math.log10": {
553 chrome: "38",
554 opera: "25",
555 edge: "12",
556 firefox: "25",
557 safari: "7.1",
558 node: "0.12",
559 ios: "8",
560 samsung: "3",
561 rhino: "1.7.13",
562 electron: "0.20"
563},
564 "es6.math.log2": {
565 chrome: "38",
566 opera: "25",
567 edge: "12",
568 firefox: "25",
569 safari: "7.1",
570 node: "0.12",
571 ios: "8",
572 samsung: "3",
573 rhino: "1.7.13",
574 electron: "0.20"
575},
576 "es6.math.sign": {
577 chrome: "38",
578 opera: "25",
579 edge: "12",
580 firefox: "25",
581 safari: "9",
582 node: "0.12",
583 ios: "9",
584 samsung: "3",
585 rhino: "1.7.13",
586 electron: "0.20"
587},
588 "es6.math.sinh": {
589 chrome: "38",
590 opera: "25",
591 edge: "12",
592 firefox: "25",
593 safari: "7.1",
594 node: "0.12",
595 ios: "8",
596 samsung: "3",
597 rhino: "1.7.13",
598 electron: "0.20"
599},
600 "es6.math.tanh": {
601 chrome: "38",
602 opera: "25",
603 edge: "12",
604 firefox: "25",
605 safari: "7.1",
606 node: "0.12",
607 ios: "8",
608 samsung: "3",
609 rhino: "1.7.13",
610 electron: "0.20"
611},
612 "es6.math.trunc": {
613 chrome: "38",
614 opera: "25",
615 edge: "12",
616 firefox: "25",
617 safari: "7.1",
618 node: "0.12",
619 ios: "8",
620 samsung: "3",
621 rhino: "1.7.13",
622 electron: "0.20"
623},
624 "es6.number.constructor": {
625 chrome: "41",
626 opera: "28",
627 edge: "12",
628 firefox: "36",
629 safari: "9",
630 node: "4",
631 ios: "9",
632 samsung: "3.4",
633 rhino: "1.7.13",
634 electron: "0.21"
635},
636 "es6.number.epsilon": {
637 chrome: "34",
638 opera: "21",
639 edge: "12",
640 firefox: "25",
641 safari: "9",
642 node: "0.12",
643 ios: "9",
644 samsung: "2",
645 electron: "0.20"
646},
647 "es6.number.is-finite": {
648 chrome: "19",
649 opera: "15",
650 edge: "12",
651 firefox: "16",
652 safari: "9",
653 node: "0.12",
654 android: "4.1",
655 ios: "9",
656 samsung: "1.5",
657 rhino: "1.7.13",
658 electron: "0.20"
659},
660 "es6.number.is-integer": {
661 chrome: "34",
662 opera: "21",
663 edge: "12",
664 firefox: "16",
665 safari: "9",
666 node: "0.12",
667 ios: "9",
668 samsung: "2",
669 rhino: "1.7.13",
670 electron: "0.20"
671},
672 "es6.number.is-nan": {
673 chrome: "19",
674 opera: "15",
675 edge: "12",
676 firefox: "15",
677 safari: "9",
678 node: "0.12",
679 android: "4.1",
680 ios: "9",
681 samsung: "1.5",
682 rhino: "1.7.13",
683 electron: "0.20"
684},
685 "es6.number.is-safe-integer": {
686 chrome: "34",
687 opera: "21",
688 edge: "12",
689 firefox: "32",
690 safari: "9",
691 node: "0.12",
692 ios: "9",
693 samsung: "2",
694 rhino: "1.7.13",
695 electron: "0.20"
696},
697 "es6.number.max-safe-integer": {
698 chrome: "34",
699 opera: "21",
700 edge: "12",
701 firefox: "31",
702 safari: "9",
703 node: "0.12",
704 ios: "9",
705 samsung: "2",
706 rhino: "1.7.13",
707 electron: "0.20"
708},
709 "es6.number.min-safe-integer": {
710 chrome: "34",
711 opera: "21",
712 edge: "12",
713 firefox: "31",
714 safari: "9",
715 node: "0.12",
716 ios: "9",
717 samsung: "2",
718 rhino: "1.7.13",
719 electron: "0.20"
720},
721 "es6.number.parse-float": {
722 chrome: "34",
723 opera: "21",
724 edge: "12",
725 firefox: "25",
726 safari: "9",
727 node: "0.12",
728 ios: "9",
729 samsung: "2",
730 electron: "0.20"
731},
732 "es6.number.parse-int": {
733 chrome: "34",
734 opera: "21",
735 edge: "12",
736 firefox: "25",
737 safari: "9",
738 node: "0.12",
739 ios: "9",
740 samsung: "2",
741 electron: "0.20"
742},
743 "es6.object.assign": {
744 chrome: "49",
745 opera: "36",
746 edge: "13",
747 firefox: "36",
748 safari: "10",
749 node: "6",
750 ios: "10",
751 samsung: "5",
752 electron: "0.37"
753},
754 "es6.object.create": {
755 chrome: "5",
756 opera: "12",
757 edge: "12",
758 firefox: "4",
759 safari: "4",
760 node: "0.10",
761 ie: "9",
762 android: "4",
763 ios: "6",
764 phantom: "2",
765 samsung: "1",
766 rhino: "1.7.13",
767 electron: "0.20"
768},
769 "es7.object.define-getter": {
770 chrome: "62",
771 opera: "49",
772 edge: "16",
773 firefox: "48",
774 safari: "9",
775 node: "8.10",
776 ios: "9",
777 samsung: "8",
778 electron: "3.0"
779},
780 "es7.object.define-setter": {
781 chrome: "62",
782 opera: "49",
783 edge: "16",
784 firefox: "48",
785 safari: "9",
786 node: "8.10",
787 ios: "9",
788 samsung: "8",
789 electron: "3.0"
790},
791 "es6.object.define-property": {
792 chrome: "5",
793 opera: "12",
794 edge: "12",
795 firefox: "4",
796 safari: "5.1",
797 node: "0.10",
798 ie: "9",
799 android: "4",
800 ios: "6",
801 phantom: "2",
802 samsung: "1",
803 rhino: "1.7.13",
804 electron: "0.20"
805},
806 "es6.object.define-properties": {
807 chrome: "5",
808 opera: "12",
809 edge: "12",
810 firefox: "4",
811 safari: "4",
812 node: "0.10",
813 ie: "9",
814 android: "4",
815 ios: "6",
816 phantom: "2",
817 samsung: "1",
818 rhino: "1.7.13",
819 electron: "0.20"
820},
821 "es7.object.entries": {
822 chrome: "54",
823 opera: "41",
824 edge: "14",
825 firefox: "47",
826 safari: "10.1",
827 node: "7",
828 ios: "10.3",
829 samsung: "6",
830 electron: "1.4"
831},
832 "es6.object.freeze": {
833 chrome: "44",
834 opera: "31",
835 edge: "12",
836 firefox: "35",
837 safari: "9",
838 node: "4",
839 ios: "9",
840 samsung: "4",
841 rhino: "1.7.13",
842 electron: "0.30"
843},
844 "es6.object.get-own-property-descriptor": {
845 chrome: "44",
846 opera: "31",
847 edge: "12",
848 firefox: "35",
849 safari: "9",
850 node: "4",
851 ios: "9",
852 samsung: "4",
853 rhino: "1.7.13",
854 electron: "0.30"
855},
856 "es7.object.get-own-property-descriptors": {
857 chrome: "54",
858 opera: "41",
859 edge: "15",
860 firefox: "50",
861 safari: "10.1",
862 node: "7",
863 ios: "10.3",
864 samsung: "6",
865 electron: "1.4"
866},
867 "es6.object.get-own-property-names": {
868 chrome: "40",
869 opera: "27",
870 edge: "12",
871 firefox: "33",
872 safari: "9",
873 node: "4",
874 ios: "9",
875 samsung: "3.4",
876 rhino: "1.7.13",
877 electron: "0.21"
878},
879 "es6.object.get-prototype-of": {
880 chrome: "44",
881 opera: "31",
882 edge: "12",
883 firefox: "35",
884 safari: "9",
885 node: "4",
886 ios: "9",
887 samsung: "4",
888 rhino: "1.7.13",
889 electron: "0.30"
890},
891 "es7.object.lookup-getter": {
892 chrome: "62",
893 opera: "49",
894 edge: "79",
895 firefox: "36",
896 safari: "9",
897 node: "8.10",
898 ios: "9",
899 samsung: "8",
900 electron: "3.0"
901},
902 "es7.object.lookup-setter": {
903 chrome: "62",
904 opera: "49",
905 edge: "79",
906 firefox: "36",
907 safari: "9",
908 node: "8.10",
909 ios: "9",
910 samsung: "8",
911 electron: "3.0"
912},
913 "es6.object.prevent-extensions": {
914 chrome: "44",
915 opera: "31",
916 edge: "12",
917 firefox: "35",
918 safari: "9",
919 node: "4",
920 ios: "9",
921 samsung: "4",
922 rhino: "1.7.13",
923 electron: "0.30"
924},
925 "es6.object.to-string": {
926 chrome: "57",
927 opera: "44",
928 edge: "15",
929 firefox: "51",
930 safari: "10",
931 node: "8",
932 ios: "10",
933 samsung: "7",
934 electron: "1.7"
935},
936 "es6.object.is": {
937 chrome: "19",
938 opera: "15",
939 edge: "12",
940 firefox: "22",
941 safari: "9",
942 node: "0.12",
943 android: "4.1",
944 ios: "9",
945 samsung: "1.5",
946 rhino: "1.7.13",
947 electron: "0.20"
948},
949 "es6.object.is-frozen": {
950 chrome: "44",
951 opera: "31",
952 edge: "12",
953 firefox: "35",
954 safari: "9",
955 node: "4",
956 ios: "9",
957 samsung: "4",
958 rhino: "1.7.13",
959 electron: "0.30"
960},
961 "es6.object.is-sealed": {
962 chrome: "44",
963 opera: "31",
964 edge: "12",
965 firefox: "35",
966 safari: "9",
967 node: "4",
968 ios: "9",
969 samsung: "4",
970 rhino: "1.7.13",
971 electron: "0.30"
972},
973 "es6.object.is-extensible": {
974 chrome: "44",
975 opera: "31",
976 edge: "12",
977 firefox: "35",
978 safari: "9",
979 node: "4",
980 ios: "9",
981 samsung: "4",
982 rhino: "1.7.13",
983 electron: "0.30"
984},
985 "es6.object.keys": {
986 chrome: "40",
987 opera: "27",
988 edge: "12",
989 firefox: "35",
990 safari: "9",
991 node: "4",
992 ios: "9",
993 samsung: "3.4",
994 rhino: "1.7.13",
995 electron: "0.21"
996},
997 "es6.object.seal": {
998 chrome: "44",
999 opera: "31",
1000 edge: "12",
1001 firefox: "35",
1002 safari: "9",
1003 node: "4",
1004 ios: "9",
1005 samsung: "4",
1006 rhino: "1.7.13",
1007 electron: "0.30"
1008},
1009 "es6.object.set-prototype-of": {
1010 chrome: "34",
1011 opera: "21",
1012 edge: "12",
1013 firefox: "31",
1014 safari: "9",
1015 node: "0.12",
1016 ie: "11",
1017 ios: "9",
1018 samsung: "2",
1019 rhino: "1.7.13",
1020 electron: "0.20"
1021},
1022 "es7.object.values": {
1023 chrome: "54",
1024 opera: "41",
1025 edge: "14",
1026 firefox: "47",
1027 safari: "10.1",
1028 node: "7",
1029 ios: "10.3",
1030 samsung: "6",
1031 electron: "1.4"
1032},
1033 "es6.promise": {
1034 chrome: "51",
1035 opera: "38",
1036 edge: "14",
1037 firefox: "45",
1038 safari: "10",
1039 node: "6.5",
1040 ios: "10",
1041 samsung: "5",
1042 electron: "1.2"
1043},
1044 "es7.promise.finally": {
1045 chrome: "63",
1046 opera: "50",
1047 edge: "18",
1048 firefox: "58",
1049 safari: "11.1",
1050 node: "10",
1051 ios: "11.3",
1052 samsung: "8",
1053 electron: "3.0"
1054},
1055 "es6.reflect.apply": {
1056 chrome: "49",
1057 opera: "36",
1058 edge: "12",
1059 firefox: "42",
1060 safari: "10",
1061 node: "6",
1062 ios: "10",
1063 samsung: "5",
1064 electron: "0.37"
1065},
1066 "es6.reflect.construct": {
1067 chrome: "49",
1068 opera: "36",
1069 edge: "13",
1070 firefox: "49",
1071 safari: "10",
1072 node: "6",
1073 ios: "10",
1074 samsung: "5",
1075 electron: "0.37"
1076},
1077 "es6.reflect.define-property": {
1078 chrome: "49",
1079 opera: "36",
1080 edge: "13",
1081 firefox: "42",
1082 safari: "10",
1083 node: "6",
1084 ios: "10",
1085 samsung: "5",
1086 electron: "0.37"
1087},
1088 "es6.reflect.delete-property": {
1089 chrome: "49",
1090 opera: "36",
1091 edge: "12",
1092 firefox: "42",
1093 safari: "10",
1094 node: "6",
1095 ios: "10",
1096 samsung: "5",
1097 electron: "0.37"
1098},
1099 "es6.reflect.get": {
1100 chrome: "49",
1101 opera: "36",
1102 edge: "12",
1103 firefox: "42",
1104 safari: "10",
1105 node: "6",
1106 ios: "10",
1107 samsung: "5",
1108 electron: "0.37"
1109},
1110 "es6.reflect.get-own-property-descriptor": {
1111 chrome: "49",
1112 opera: "36",
1113 edge: "12",
1114 firefox: "42",
1115 safari: "10",
1116 node: "6",
1117 ios: "10",
1118 samsung: "5",
1119 electron: "0.37"
1120},
1121 "es6.reflect.get-prototype-of": {
1122 chrome: "49",
1123 opera: "36",
1124 edge: "12",
1125 firefox: "42",
1126 safari: "10",
1127 node: "6",
1128 ios: "10",
1129 samsung: "5",
1130 electron: "0.37"
1131},
1132 "es6.reflect.has": {
1133 chrome: "49",
1134 opera: "36",
1135 edge: "12",
1136 firefox: "42",
1137 safari: "10",
1138 node: "6",
1139 ios: "10",
1140 samsung: "5",
1141 electron: "0.37"
1142},
1143 "es6.reflect.is-extensible": {
1144 chrome: "49",
1145 opera: "36",
1146 edge: "12",
1147 firefox: "42",
1148 safari: "10",
1149 node: "6",
1150 ios: "10",
1151 samsung: "5",
1152 electron: "0.37"
1153},
1154 "es6.reflect.own-keys": {
1155 chrome: "49",
1156 opera: "36",
1157 edge: "12",
1158 firefox: "42",
1159 safari: "10",
1160 node: "6",
1161 ios: "10",
1162 samsung: "5",
1163 electron: "0.37"
1164},
1165 "es6.reflect.prevent-extensions": {
1166 chrome: "49",
1167 opera: "36",
1168 edge: "12",
1169 firefox: "42",
1170 safari: "10",
1171 node: "6",
1172 ios: "10",
1173 samsung: "5",
1174 electron: "0.37"
1175},
1176 "es6.reflect.set": {
1177 chrome: "49",
1178 opera: "36",
1179 edge: "12",
1180 firefox: "42",
1181 safari: "10",
1182 node: "6",
1183 ios: "10",
1184 samsung: "5",
1185 electron: "0.37"
1186},
1187 "es6.reflect.set-prototype-of": {
1188 chrome: "49",
1189 opera: "36",
1190 edge: "12",
1191 firefox: "42",
1192 safari: "10",
1193 node: "6",
1194 ios: "10",
1195 samsung: "5",
1196 electron: "0.37"
1197},
1198 "es6.regexp.constructor": {
1199 chrome: "50",
1200 opera: "37",
1201 edge: "79",
1202 firefox: "40",
1203 safari: "10",
1204 node: "6",
1205 ios: "10",
1206 samsung: "5",
1207 electron: "1.1"
1208},
1209 "es6.regexp.flags": {
1210 chrome: "49",
1211 opera: "36",
1212 edge: "79",
1213 firefox: "37",
1214 safari: "9",
1215 node: "6",
1216 ios: "9",
1217 samsung: "5",
1218 electron: "0.37"
1219},
1220 "es6.regexp.match": {
1221 chrome: "50",
1222 opera: "37",
1223 edge: "79",
1224 firefox: "49",
1225 safari: "10",
1226 node: "6",
1227 ios: "10",
1228 samsung: "5",
1229 rhino: "1.7.13",
1230 electron: "1.1"
1231},
1232 "es6.regexp.replace": {
1233 chrome: "50",
1234 opera: "37",
1235 edge: "79",
1236 firefox: "49",
1237 safari: "10",
1238 node: "6",
1239 ios: "10",
1240 samsung: "5",
1241 electron: "1.1"
1242},
1243 "es6.regexp.split": {
1244 chrome: "50",
1245 opera: "37",
1246 edge: "79",
1247 firefox: "49",
1248 safari: "10",
1249 node: "6",
1250 ios: "10",
1251 samsung: "5",
1252 electron: "1.1"
1253},
1254 "es6.regexp.search": {
1255 chrome: "50",
1256 opera: "37",
1257 edge: "79",
1258 firefox: "49",
1259 safari: "10",
1260 node: "6",
1261 ios: "10",
1262 samsung: "5",
1263 rhino: "1.7.13",
1264 electron: "1.1"
1265},
1266 "es6.regexp.to-string": {
1267 chrome: "50",
1268 opera: "37",
1269 edge: "79",
1270 firefox: "39",
1271 safari: "10",
1272 node: "6",
1273 ios: "10",
1274 samsung: "5",
1275 electron: "1.1"
1276},
1277 "es6.set": {
1278 chrome: "51",
1279 opera: "38",
1280 edge: "15",
1281 firefox: "53",
1282 safari: "10",
1283 node: "6.5",
1284 ios: "10",
1285 samsung: "5",
1286 electron: "1.2"
1287},
1288 "es6.symbol": {
1289 chrome: "51",
1290 opera: "38",
1291 edge: "79",
1292 firefox: "51",
1293 safari: "10",
1294 node: "6.5",
1295 ios: "10",
1296 samsung: "5",
1297 electron: "1.2"
1298},
1299 "es7.symbol.async-iterator": {
1300 chrome: "63",
1301 opera: "50",
1302 edge: "79",
1303 firefox: "57",
1304 safari: "12",
1305 node: "10",
1306 ios: "12",
1307 samsung: "8",
1308 electron: "3.0"
1309},
1310 "es6.string.anchor": {
1311 chrome: "5",
1312 opera: "15",
1313 edge: "12",
1314 firefox: "17",
1315 safari: "6",
1316 node: "0.10",
1317 android: "4",
1318 ios: "7",
1319 phantom: "2",
1320 samsung: "1",
1321 electron: "0.20"
1322},
1323 "es6.string.big": {
1324 chrome: "5",
1325 opera: "15",
1326 edge: "12",
1327 firefox: "17",
1328 safari: "6",
1329 node: "0.10",
1330 android: "4",
1331 ios: "7",
1332 phantom: "2",
1333 samsung: "1",
1334 electron: "0.20"
1335},
1336 "es6.string.blink": {
1337 chrome: "5",
1338 opera: "15",
1339 edge: "12",
1340 firefox: "17",
1341 safari: "6",
1342 node: "0.10",
1343 android: "4",
1344 ios: "7",
1345 phantom: "2",
1346 samsung: "1",
1347 electron: "0.20"
1348},
1349 "es6.string.bold": {
1350 chrome: "5",
1351 opera: "15",
1352 edge: "12",
1353 firefox: "17",
1354 safari: "6",
1355 node: "0.10",
1356 android: "4",
1357 ios: "7",
1358 phantom: "2",
1359 samsung: "1",
1360 electron: "0.20"
1361},
1362 "es6.string.code-point-at": {
1363 chrome: "41",
1364 opera: "28",
1365 edge: "12",
1366 firefox: "29",
1367 safari: "9",
1368 node: "4",
1369 ios: "9",
1370 samsung: "3.4",
1371 rhino: "1.7.13",
1372 electron: "0.21"
1373},
1374 "es6.string.ends-with": {
1375 chrome: "41",
1376 opera: "28",
1377 edge: "12",
1378 firefox: "29",
1379 safari: "9",
1380 node: "4",
1381 ios: "9",
1382 samsung: "3.4",
1383 rhino: "1.7.13",
1384 electron: "0.21"
1385},
1386 "es6.string.fixed": {
1387 chrome: "5",
1388 opera: "15",
1389 edge: "12",
1390 firefox: "17",
1391 safari: "6",
1392 node: "0.10",
1393 android: "4",
1394 ios: "7",
1395 phantom: "2",
1396 samsung: "1",
1397 electron: "0.20"
1398},
1399 "es6.string.fontcolor": {
1400 chrome: "5",
1401 opera: "15",
1402 edge: "12",
1403 firefox: "17",
1404 safari: "6",
1405 node: "0.10",
1406 android: "4",
1407 ios: "7",
1408 phantom: "2",
1409 samsung: "1",
1410 electron: "0.20"
1411},
1412 "es6.string.fontsize": {
1413 chrome: "5",
1414 opera: "15",
1415 edge: "12",
1416 firefox: "17",
1417 safari: "6",
1418 node: "0.10",
1419 android: "4",
1420 ios: "7",
1421 phantom: "2",
1422 samsung: "1",
1423 electron: "0.20"
1424},
1425 "es6.string.from-code-point": {
1426 chrome: "41",
1427 opera: "28",
1428 edge: "12",
1429 firefox: "29",
1430 safari: "9",
1431 node: "4",
1432 ios: "9",
1433 samsung: "3.4",
1434 rhino: "1.7.13",
1435 electron: "0.21"
1436},
1437 "es6.string.includes": {
1438 chrome: "41",
1439 opera: "28",
1440 edge: "12",
1441 firefox: "40",
1442 safari: "9",
1443 node: "4",
1444 ios: "9",
1445 samsung: "3.4",
1446 rhino: "1.7.13",
1447 electron: "0.21"
1448},
1449 "es6.string.italics": {
1450 chrome: "5",
1451 opera: "15",
1452 edge: "12",
1453 firefox: "17",
1454 safari: "6",
1455 node: "0.10",
1456 android: "4",
1457 ios: "7",
1458 phantom: "2",
1459 samsung: "1",
1460 electron: "0.20"
1461},
1462 "es6.string.iterator": {
1463 chrome: "38",
1464 opera: "25",
1465 edge: "12",
1466 firefox: "36",
1467 safari: "9",
1468 node: "0.12",
1469 ios: "9",
1470 samsung: "3",
1471 rhino: "1.7.13",
1472 electron: "0.20"
1473},
1474 "es6.string.link": {
1475 chrome: "5",
1476 opera: "15",
1477 edge: "12",
1478 firefox: "17",
1479 safari: "6",
1480 node: "0.10",
1481 android: "4",
1482 ios: "7",
1483 phantom: "2",
1484 samsung: "1",
1485 electron: "0.20"
1486},
1487 "es7.string.pad-start": {
1488 chrome: "57",
1489 opera: "44",
1490 edge: "15",
1491 firefox: "48",
1492 safari: "10",
1493 node: "8",
1494 ios: "10",
1495 samsung: "7",
1496 rhino: "1.7.13",
1497 electron: "1.7"
1498},
1499 "es7.string.pad-end": {
1500 chrome: "57",
1501 opera: "44",
1502 edge: "15",
1503 firefox: "48",
1504 safari: "10",
1505 node: "8",
1506 ios: "10",
1507 samsung: "7",
1508 rhino: "1.7.13",
1509 electron: "1.7"
1510},
1511 "es6.string.raw": {
1512 chrome: "41",
1513 opera: "28",
1514 edge: "12",
1515 firefox: "34",
1516 safari: "9",
1517 node: "4",
1518 ios: "9",
1519 samsung: "3.4",
1520 electron: "0.21"
1521},
1522 "es6.string.repeat": {
1523 chrome: "41",
1524 opera: "28",
1525 edge: "12",
1526 firefox: "24",
1527 safari: "9",
1528 node: "4",
1529 ios: "9",
1530 samsung: "3.4",
1531 rhino: "1.7.13",
1532 electron: "0.21"
1533},
1534 "es6.string.small": {
1535 chrome: "5",
1536 opera: "15",
1537 edge: "12",
1538 firefox: "17",
1539 safari: "6",
1540 node: "0.10",
1541 android: "4",
1542 ios: "7",
1543 phantom: "2",
1544 samsung: "1",
1545 electron: "0.20"
1546},
1547 "es6.string.starts-with": {
1548 chrome: "41",
1549 opera: "28",
1550 edge: "12",
1551 firefox: "29",
1552 safari: "9",
1553 node: "4",
1554 ios: "9",
1555 samsung: "3.4",
1556 rhino: "1.7.13",
1557 electron: "0.21"
1558},
1559 "es6.string.strike": {
1560 chrome: "5",
1561 opera: "15",
1562 edge: "12",
1563 firefox: "17",
1564 safari: "6",
1565 node: "0.10",
1566 android: "4",
1567 ios: "7",
1568 phantom: "2",
1569 samsung: "1",
1570 electron: "0.20"
1571},
1572 "es6.string.sub": {
1573 chrome: "5",
1574 opera: "15",
1575 edge: "12",
1576 firefox: "17",
1577 safari: "6",
1578 node: "0.10",
1579 android: "4",
1580 ios: "7",
1581 phantom: "2",
1582 samsung: "1",
1583 electron: "0.20"
1584},
1585 "es6.string.sup": {
1586 chrome: "5",
1587 opera: "15",
1588 edge: "12",
1589 firefox: "17",
1590 safari: "6",
1591 node: "0.10",
1592 android: "4",
1593 ios: "7",
1594 phantom: "2",
1595 samsung: "1",
1596 electron: "0.20"
1597},
1598 "es6.string.trim": {
1599 chrome: "5",
1600 opera: "10.50",
1601 edge: "12",
1602 firefox: "3.5",
1603 safari: "4",
1604 node: "0.10",
1605 ie: "9",
1606 android: "4",
1607 ios: "6",
1608 phantom: "2",
1609 samsung: "1",
1610 rhino: "1.7.13",
1611 electron: "0.20"
1612},
1613 "es7.string.trim-left": {
1614 chrome: "66",
1615 opera: "53",
1616 edge: "79",
1617 firefox: "61",
1618 safari: "12",
1619 node: "10",
1620 ios: "12",
1621 samsung: "9",
1622 rhino: "1.7.13",
1623 electron: "3.0"
1624},
1625 "es7.string.trim-right": {
1626 chrome: "66",
1627 opera: "53",
1628 edge: "79",
1629 firefox: "61",
1630 safari: "12",
1631 node: "10",
1632 ios: "12",
1633 samsung: "9",
1634 rhino: "1.7.13",
1635 electron: "3.0"
1636},
1637 "es6.typed.array-buffer": {
1638 chrome: "51",
1639 opera: "38",
1640 edge: "13",
1641 firefox: "48",
1642 safari: "10",
1643 node: "6.5",
1644 ios: "10",
1645 samsung: "5",
1646 electron: "1.2"
1647},
1648 "es6.typed.data-view": {
1649 chrome: "5",
1650 opera: "12",
1651 edge: "12",
1652 firefox: "15",
1653 safari: "5.1",
1654 node: "0.10",
1655 ie: "10",
1656 android: "4",
1657 ios: "6",
1658 phantom: "2",
1659 samsung: "1",
1660 rhino: "1.7.13",
1661 electron: "0.20"
1662},
1663 "es6.typed.int8-array": {
1664 chrome: "51",
1665 opera: "38",
1666 edge: "13",
1667 firefox: "48",
1668 safari: "10",
1669 node: "6.5",
1670 ios: "10",
1671 samsung: "5",
1672 electron: "1.2"
1673},
1674 "es6.typed.uint8-array": {
1675 chrome: "51",
1676 opera: "38",
1677 edge: "13",
1678 firefox: "48",
1679 safari: "10",
1680 node: "6.5",
1681 ios: "10",
1682 samsung: "5",
1683 electron: "1.2"
1684},
1685 "es6.typed.uint8-clamped-array": {
1686 chrome: "51",
1687 opera: "38",
1688 edge: "13",
1689 firefox: "48",
1690 safari: "10",
1691 node: "6.5",
1692 ios: "10",
1693 samsung: "5",
1694 electron: "1.2"
1695},
1696 "es6.typed.int16-array": {
1697 chrome: "51",
1698 opera: "38",
1699 edge: "13",
1700 firefox: "48",
1701 safari: "10",
1702 node: "6.5",
1703 ios: "10",
1704 samsung: "5",
1705 electron: "1.2"
1706},
1707 "es6.typed.uint16-array": {
1708 chrome: "51",
1709 opera: "38",
1710 edge: "13",
1711 firefox: "48",
1712 safari: "10",
1713 node: "6.5",
1714 ios: "10",
1715 samsung: "5",
1716 electron: "1.2"
1717},
1718 "es6.typed.int32-array": {
1719 chrome: "51",
1720 opera: "38",
1721 edge: "13",
1722 firefox: "48",
1723 safari: "10",
1724 node: "6.5",
1725 ios: "10",
1726 samsung: "5",
1727 electron: "1.2"
1728},
1729 "es6.typed.uint32-array": {
1730 chrome: "51",
1731 opera: "38",
1732 edge: "13",
1733 firefox: "48",
1734 safari: "10",
1735 node: "6.5",
1736 ios: "10",
1737 samsung: "5",
1738 electron: "1.2"
1739},
1740 "es6.typed.float32-array": {
1741 chrome: "51",
1742 opera: "38",
1743 edge: "13",
1744 firefox: "48",
1745 safari: "10",
1746 node: "6.5",
1747 ios: "10",
1748 samsung: "5",
1749 electron: "1.2"
1750},
1751 "es6.typed.float64-array": {
1752 chrome: "51",
1753 opera: "38",
1754 edge: "13",
1755 firefox: "48",
1756 safari: "10",
1757 node: "6.5",
1758 ios: "10",
1759 samsung: "5",
1760 electron: "1.2"
1761},
1762 "es6.weak-map": {
1763 chrome: "51",
1764 opera: "38",
1765 edge: "15",
1766 firefox: "53",
1767 safari: "9",
1768 node: "6.5",
1769 ios: "9",
1770 samsung: "5",
1771 electron: "1.2"
1772},
1773 "es6.weak-set": {
1774 chrome: "51",
1775 opera: "38",
1776 edge: "15",
1777 firefox: "53",
1778 safari: "9",
1779 node: "6.5",
1780 ios: "9",
1781 samsung: "5",
1782 electron: "1.2"
1783}
1784};
1785
1786var corejs2BuiltIns = require$$0;
1787
1788const {
1789 isObjectProperty: isObjectProperty$1
1790} = core.types;
1791function shouldStoreRHSInTemporaryVariable(node) {
1792 if (core.types.isArrayPattern(node)) {
1793 const nonNullElements = node.elements.filter(element => element !== null);
1794 if (nonNullElements.length > 1) return true;else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);
1795 } else if (core.types.isObjectPattern(node)) {
1796 const {
1797 properties
1798 } = node;
1799 if (properties.length > 1) return true;else if (properties.length === 0) return false;else {
1800 const firstProperty = properties[0];
1801
1802 if (isObjectProperty$1(firstProperty)) {
1803 return shouldStoreRHSInTemporaryVariable(firstProperty.value);
1804 } else {
1805 return shouldStoreRHSInTemporaryVariable(firstProperty);
1806 }
1807 }
1808 } else if (core.types.isAssignmentPattern(node)) {
1809 return shouldStoreRHSInTemporaryVariable(node.left);
1810 } else if (core.types.isRestElement(node)) {
1811 if (core.types.isIdentifier(node.argument)) return true;
1812 return shouldStoreRHSInTemporaryVariable(node.argument);
1813 } else {
1814 return false;
1815 }
1816}
1817
1818const {
1819 isAssignmentPattern,
1820 isObjectProperty
1821} = core.types;
1822{
1823 const node = core.types.identifier("a");
1824 const property = core.types.objectProperty(core.types.identifier("key"), node);
1825 const pattern = core.types.objectPattern([property]);
1826 var ZERO_REFS = core.types.isReferenced(node, property, pattern) ? 1 : 0;
1827}
1828var index = helperPluginUtils.declare((api, opts) => {
1829 var _api$assumption, _api$assumption2, _api$assumption3, _api$assumption4;
1830
1831 api.assertVersion(7);
1832 const targets = api.targets();
1833 const supportsObjectAssign = !helperCompilationTargets.isRequired("es6.object.assign", targets, {
1834 compatData: corejs2BuiltIns
1835 });
1836 const {
1837 useBuiltIns = supportsObjectAssign,
1838 loose = false
1839 } = opts;
1840
1841 if (typeof loose !== "boolean") {
1842 throw new Error(".loose must be a boolean, or undefined");
1843 }
1844
1845 const ignoreFunctionLength = (_api$assumption = api.assumption("ignoreFunctionLength")) != null ? _api$assumption : loose;
1846 const objectRestNoSymbols = (_api$assumption2 = api.assumption("objectRestNoSymbols")) != null ? _api$assumption2 : loose;
1847 const pureGetters = (_api$assumption3 = api.assumption("pureGetters")) != null ? _api$assumption3 : loose;
1848 const setSpreadProperties = (_api$assumption4 = api.assumption("setSpreadProperties")) != null ? _api$assumption4 : loose;
1849
1850 function getExtendsHelper(file) {
1851 return useBuiltIns ? core.types.memberExpression(core.types.identifier("Object"), core.types.identifier("assign")) : file.addHelper("extends");
1852 }
1853
1854 function hasRestElement(path) {
1855 let foundRestElement = false;
1856 visitRestElements(path, restElement => {
1857 foundRestElement = true;
1858 restElement.stop();
1859 });
1860 return foundRestElement;
1861 }
1862
1863 function hasObjectPatternRestElement(path) {
1864 let foundRestElement = false;
1865 visitRestElements(path, restElement => {
1866 if (restElement.parentPath.isObjectPattern()) {
1867 foundRestElement = true;
1868 restElement.stop();
1869 }
1870 });
1871 return foundRestElement;
1872 }
1873
1874 function visitRestElements(path, visitor) {
1875 path.traverse({
1876 Expression(path) {
1877 const {
1878 parent,
1879 key
1880 } = path;
1881
1882 if (isAssignmentPattern(parent) && key === "right" || isObjectProperty(parent) && parent.computed && key === "key") {
1883 path.skip();
1884 }
1885 },
1886
1887 RestElement: visitor
1888 });
1889 }
1890
1891 function hasSpread(node) {
1892 for (const prop of node.properties) {
1893 if (core.types.isSpreadElement(prop)) {
1894 return true;
1895 }
1896 }
1897
1898 return false;
1899 }
1900
1901 function extractNormalizedKeys(node) {
1902 const props = node.properties;
1903 const keys = [];
1904 let allLiteral = true;
1905 let hasTemplateLiteral = false;
1906
1907 for (const prop of props) {
1908 if (core.types.isIdentifier(prop.key) && !prop.computed) {
1909 keys.push(core.types.stringLiteral(prop.key.name));
1910 } else if (core.types.isTemplateLiteral(prop.key)) {
1911 keys.push(core.types.cloneNode(prop.key));
1912 hasTemplateLiteral = true;
1913 } else if (core.types.isLiteral(prop.key)) {
1914 keys.push(core.types.stringLiteral(String(prop.key.value)));
1915 } else {
1916 keys.push(core.types.cloneNode(prop.key));
1917 allLiteral = false;
1918 }
1919 }
1920
1921 return {
1922 keys,
1923 allLiteral,
1924 hasTemplateLiteral
1925 };
1926 }
1927
1928 function replaceImpureComputedKeys(properties, scope) {
1929 const impureComputedPropertyDeclarators = [];
1930
1931 for (const propPath of properties) {
1932 const key = propPath.get("key");
1933
1934 if (propPath.node.computed && !key.isPure()) {
1935 const name = scope.generateUidBasedOnNode(key.node);
1936 const declarator = core.types.variableDeclarator(core.types.identifier(name), key.node);
1937 impureComputedPropertyDeclarators.push(declarator);
1938 key.replaceWith(core.types.identifier(name));
1939 }
1940 }
1941
1942 return impureComputedPropertyDeclarators;
1943 }
1944
1945 function removeUnusedExcludedKeys(path) {
1946 const bindings = path.getOuterBindingIdentifierPaths();
1947 Object.keys(bindings).forEach(bindingName => {
1948 const bindingParentPath = bindings[bindingName].parentPath;
1949
1950 if (path.scope.getBinding(bindingName).references > ZERO_REFS || !bindingParentPath.isObjectProperty()) {
1951 return;
1952 }
1953
1954 bindingParentPath.remove();
1955 });
1956 }
1957
1958 function createObjectRest(path, file, objRef) {
1959 const props = path.get("properties");
1960 const last = props[props.length - 1];
1961 core.types.assertRestElement(last.node);
1962 const restElement = core.types.cloneNode(last.node);
1963 last.remove();
1964 const impureComputedPropertyDeclarators = replaceImpureComputedKeys(path.get("properties"), path.scope);
1965 const {
1966 keys,
1967 allLiteral,
1968 hasTemplateLiteral
1969 } = extractNormalizedKeys(path.node);
1970
1971 if (keys.length === 0) {
1972 return [impureComputedPropertyDeclarators, restElement.argument, core.types.callExpression(getExtendsHelper(file), [core.types.objectExpression([]), core.types.cloneNode(objRef)])];
1973 }
1974
1975 let keyExpression;
1976
1977 if (!allLiteral) {
1978 keyExpression = core.types.callExpression(core.types.memberExpression(core.types.arrayExpression(keys), core.types.identifier("map")), [file.addHelper("toPropertyKey")]);
1979 } else {
1980 keyExpression = core.types.arrayExpression(keys);
1981
1982 if (!hasTemplateLiteral && !core.types.isProgram(path.scope.block)) {
1983 const program = path.findParent(path => path.isProgram());
1984 const id = path.scope.generateUidIdentifier("excluded");
1985 program.scope.push({
1986 id,
1987 init: keyExpression,
1988 kind: "const"
1989 });
1990 keyExpression = core.types.cloneNode(id);
1991 }
1992 }
1993
1994 return [impureComputedPropertyDeclarators, restElement.argument, core.types.callExpression(file.addHelper(`objectWithoutProperties${objectRestNoSymbols ? "Loose" : ""}`), [core.types.cloneNode(objRef), keyExpression])];
1995 }
1996
1997 function replaceRestElement(parentPath, paramPath, container) {
1998 if (paramPath.isAssignmentPattern()) {
1999 replaceRestElement(parentPath, paramPath.get("left"), container);
2000 return;
2001 }
2002
2003 if (paramPath.isArrayPattern() && hasRestElement(paramPath)) {
2004 const elements = paramPath.get("elements");
2005
2006 for (let i = 0; i < elements.length; i++) {
2007 replaceRestElement(parentPath, elements[i], container);
2008 }
2009 }
2010
2011 if (paramPath.isObjectPattern() && hasRestElement(paramPath)) {
2012 const uid = parentPath.scope.generateUidIdentifier("ref");
2013 const declar = core.types.variableDeclaration("let", [core.types.variableDeclarator(paramPath.node, uid)]);
2014
2015 if (container) {
2016 container.push(declar);
2017 } else {
2018 parentPath.ensureBlock();
2019 parentPath.get("body").unshiftContainer("body", declar);
2020 }
2021
2022 paramPath.replaceWith(core.types.cloneNode(uid));
2023 }
2024 }
2025
2026 return {
2027 name: "proposal-object-rest-spread",
2028 inherits: syntaxObjectRestSpread__default['default'].default,
2029 visitor: {
2030 Function(path) {
2031 const params = path.get("params");
2032 const paramsWithRestElement = new Set();
2033 const idsInRestParams = new Set();
2034
2035 for (let i = 0; i < params.length; ++i) {
2036 const param = params[i];
2037
2038 if (hasRestElement(param)) {
2039 paramsWithRestElement.add(i);
2040
2041 for (const name of Object.keys(param.getBindingIdentifiers())) {
2042 idsInRestParams.add(name);
2043 }
2044 }
2045 }
2046
2047 let idInRest = false;
2048
2049 const IdentifierHandler = function (path, functionScope) {
2050 const name = path.node.name;
2051
2052 if (path.scope.getBinding(name) === functionScope.getBinding(name) && idsInRestParams.has(name)) {
2053 idInRest = true;
2054 path.stop();
2055 }
2056 };
2057
2058 let i;
2059
2060 for (i = 0; i < params.length && !idInRest; ++i) {
2061 const param = params[i];
2062
2063 if (!paramsWithRestElement.has(i)) {
2064 if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {
2065 IdentifierHandler(path, path.scope);
2066 } else {
2067 param.traverse({
2068 "Scope|TypeAnnotation|TSTypeAnnotation": path => path.skip(),
2069 "ReferencedIdentifier|BindingIdentifier": IdentifierHandler
2070 }, path.scope);
2071 }
2072 }
2073 }
2074
2075 if (!idInRest) {
2076 for (let i = 0; i < params.length; ++i) {
2077 const param = params[i];
2078
2079 if (paramsWithRestElement.has(i)) {
2080 replaceRestElement(path, param);
2081 }
2082 }
2083 } else {
2084 const shouldTransformParam = idx => idx >= i - 1 || paramsWithRestElement.has(idx);
2085
2086 pluginTransformParameters.convertFunctionParams(path, ignoreFunctionLength, shouldTransformParam, replaceRestElement);
2087 }
2088 },
2089
2090 VariableDeclarator(path, file) {
2091 if (!path.get("id").isObjectPattern()) {
2092 return;
2093 }
2094
2095 let insertionPath = path;
2096 const originalPath = path;
2097 visitRestElements(path.get("id"), path => {
2098 if (!path.parentPath.isObjectPattern()) {
2099 return;
2100 }
2101
2102 if (shouldStoreRHSInTemporaryVariable(originalPath.node.id) && !core.types.isIdentifier(originalPath.node.init)) {
2103 const initRef = path.scope.generateUidIdentifierBasedOnNode(originalPath.node.init, "ref");
2104 originalPath.insertBefore(core.types.variableDeclarator(initRef, originalPath.node.init));
2105 originalPath.replaceWith(core.types.variableDeclarator(originalPath.node.id, core.types.cloneNode(initRef)));
2106 return;
2107 }
2108
2109 let ref = originalPath.node.init;
2110 const refPropertyPath = [];
2111 let kind;
2112 path.findParent(path => {
2113 if (path.isObjectProperty()) {
2114 refPropertyPath.unshift(path);
2115 } else if (path.isVariableDeclarator()) {
2116 kind = path.parentPath.node.kind;
2117 return true;
2118 }
2119 });
2120 const impureObjRefComputedDeclarators = replaceImpureComputedKeys(refPropertyPath, path.scope);
2121 refPropertyPath.forEach(prop => {
2122 const {
2123 node
2124 } = prop;
2125 ref = core.types.memberExpression(ref, core.types.cloneNode(node.key), node.computed || core.types.isLiteral(node.key));
2126 });
2127 const objectPatternPath = path.findParent(path => path.isObjectPattern());
2128 const [impureComputedPropertyDeclarators, argument, callExpression] = createObjectRest(objectPatternPath, file, ref);
2129
2130 if (pureGetters) {
2131 removeUnusedExcludedKeys(objectPatternPath);
2132 }
2133
2134 core.types.assertIdentifier(argument);
2135 insertionPath.insertBefore(impureComputedPropertyDeclarators);
2136 insertionPath.insertBefore(impureObjRefComputedDeclarators);
2137 insertionPath = insertionPath.insertAfter(core.types.variableDeclarator(argument, callExpression))[0];
2138 path.scope.registerBinding(kind, insertionPath);
2139
2140 if (objectPatternPath.node.properties.length === 0) {
2141 objectPatternPath.findParent(path => path.isObjectProperty() || path.isVariableDeclarator()).remove();
2142 }
2143 });
2144 },
2145
2146 ExportNamedDeclaration(path) {
2147 const declaration = path.get("declaration");
2148 if (!declaration.isVariableDeclaration()) return;
2149 const hasRest = declaration.get("declarations").some(path => hasObjectPatternRestElement(path.get("id")));
2150 if (!hasRest) return;
2151 const specifiers = [];
2152
2153 for (const name of Object.keys(path.getOuterBindingIdentifiers(true))) {
2154 specifiers.push(core.types.exportSpecifier(core.types.identifier(name), core.types.identifier(name)));
2155 }
2156
2157 path.replaceWith(declaration.node);
2158 path.insertAfter(core.types.exportNamedDeclaration(null, specifiers));
2159 },
2160
2161 CatchClause(path) {
2162 const paramPath = path.get("param");
2163 replaceRestElement(path, paramPath);
2164 },
2165
2166 AssignmentExpression(path, file) {
2167 const leftPath = path.get("left");
2168
2169 if (leftPath.isObjectPattern() && hasRestElement(leftPath)) {
2170 const nodes = [];
2171 const refName = path.scope.generateUidBasedOnNode(path.node.right, "ref");
2172 nodes.push(core.types.variableDeclaration("var", [core.types.variableDeclarator(core.types.identifier(refName), path.node.right)]));
2173 const [impureComputedPropertyDeclarators, argument, callExpression] = createObjectRest(leftPath, file, core.types.identifier(refName));
2174
2175 if (impureComputedPropertyDeclarators.length > 0) {
2176 nodes.push(core.types.variableDeclaration("var", impureComputedPropertyDeclarators));
2177 }
2178
2179 const nodeWithoutSpread = core.types.cloneNode(path.node);
2180 nodeWithoutSpread.right = core.types.identifier(refName);
2181 nodes.push(core.types.expressionStatement(nodeWithoutSpread));
2182 nodes.push(core.types.toStatement(core.types.assignmentExpression("=", argument, callExpression)));
2183 nodes.push(core.types.expressionStatement(core.types.identifier(refName)));
2184 path.replaceWithMultiple(nodes);
2185 }
2186 },
2187
2188 ForXStatement(path) {
2189 const {
2190 node,
2191 scope
2192 } = path;
2193 const leftPath = path.get("left");
2194 const left = node.left;
2195
2196 if (!hasObjectPatternRestElement(leftPath)) {
2197 return;
2198 }
2199
2200 if (!core.types.isVariableDeclaration(left)) {
2201 const temp = scope.generateUidIdentifier("ref");
2202 node.left = core.types.variableDeclaration("var", [core.types.variableDeclarator(temp)]);
2203 path.ensureBlock();
2204 const body = node.body;
2205
2206 if (body.body.length === 0 && path.isCompletionRecord()) {
2207 body.body.unshift(core.types.expressionStatement(scope.buildUndefinedNode()));
2208 }
2209
2210 body.body.unshift(core.types.expressionStatement(core.types.assignmentExpression("=", left, core.types.cloneNode(temp))));
2211 } else {
2212 const pattern = left.declarations[0].id;
2213 const key = scope.generateUidIdentifier("ref");
2214 node.left = core.types.variableDeclaration(left.kind, [core.types.variableDeclarator(key, null)]);
2215 path.ensureBlock();
2216 const body = node.body;
2217 body.body.unshift(core.types.variableDeclaration(node.left.kind, [core.types.variableDeclarator(pattern, core.types.cloneNode(key))]));
2218 }
2219 },
2220
2221 ArrayPattern(path) {
2222 const objectPatterns = [];
2223 visitRestElements(path, path => {
2224 if (!path.parentPath.isObjectPattern()) {
2225 return;
2226 }
2227
2228 const objectPattern = path.parentPath;
2229 const uid = path.scope.generateUidIdentifier("ref");
2230 objectPatterns.push(core.types.variableDeclarator(objectPattern.node, uid));
2231 objectPattern.replaceWith(core.types.cloneNode(uid));
2232 path.skip();
2233 });
2234
2235 if (objectPatterns.length > 0) {
2236 const statementPath = path.getStatementParent();
2237 const statementNode = statementPath.node;
2238 const kind = statementNode.type === "VariableDeclaration" ? statementNode.kind : "var";
2239 statementPath.insertAfter(core.types.variableDeclaration(kind, objectPatterns));
2240 }
2241 },
2242
2243 ObjectExpression(path, file) {
2244 if (!hasSpread(path.node)) return;
2245 let helper;
2246
2247 if (setSpreadProperties) {
2248 helper = getExtendsHelper(file);
2249 } else {
2250 try {
2251 helper = file.addHelper("objectSpread2");
2252 } catch (_unused) {
2253 this.file.declarations["objectSpread2"] = null;
2254 helper = file.addHelper("objectSpread");
2255 }
2256 }
2257
2258 let exp = null;
2259 let props = [];
2260
2261 function make() {
2262 const hadProps = props.length > 0;
2263 const obj = core.types.objectExpression(props);
2264 props = [];
2265
2266 if (!exp) {
2267 exp = core.types.callExpression(helper, [obj]);
2268 return;
2269 }
2270
2271 if (pureGetters) {
2272 if (hadProps) {
2273 exp.arguments.push(obj);
2274 }
2275
2276 return;
2277 }
2278
2279 exp = core.types.callExpression(core.types.cloneNode(helper), [exp, ...(hadProps ? [core.types.objectExpression([]), obj] : [])]);
2280 }
2281
2282 for (const prop of path.node.properties) {
2283 if (core.types.isSpreadElement(prop)) {
2284 make();
2285 exp.arguments.push(prop.argument);
2286 } else {
2287 props.push(prop);
2288 }
2289 }
2290
2291 if (props.length) make();
2292 path.replaceWith(exp);
2293 }
2294
2295 }
2296 };
2297});
2298
2299exports.default = index;
2300//# sourceMappingURL=index.js.map