handlebars-source 4.7.7 → 4.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/handlebars.js +1021 -205
  3. data/handlebars.runtime.js +910 -162
  4. metadata +7 -7
data/handlebars.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
 
3
3
  @license
4
- handlebars v4.7.7
4
+ handlebars v4.7.9
5
5
 
6
6
  Copyright (C) 2011-2019 by Yehuda Katz
7
7
 
@@ -92,23 +92,23 @@ return /******/ (function(modules) { // webpackBootstrap
92
92
 
93
93
  // Compiler imports
94
94
 
95
- var _handlebarsCompilerAst = __webpack_require__(45);
95
+ var _handlebarsCompilerAst = __webpack_require__(83);
96
96
 
97
97
  var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
98
98
 
99
- var _handlebarsCompilerBase = __webpack_require__(46);
99
+ var _handlebarsCompilerBase = __webpack_require__(84);
100
100
 
101
- var _handlebarsCompilerCompiler = __webpack_require__(51);
101
+ var _handlebarsCompilerCompiler = __webpack_require__(89);
102
102
 
103
- var _handlebarsCompilerJavascriptCompiler = __webpack_require__(52);
103
+ var _handlebarsCompilerJavascriptCompiler = __webpack_require__(90);
104
104
 
105
105
  var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
106
106
 
107
- var _handlebarsCompilerVisitor = __webpack_require__(49);
107
+ var _handlebarsCompilerVisitor = __webpack_require__(87);
108
108
 
109
109
  var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
110
110
 
111
- var _handlebarsNoConflict = __webpack_require__(44);
111
+ var _handlebarsNoConflict = __webpack_require__(82);
112
112
 
113
113
  var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
114
114
 
@@ -178,7 +178,7 @@ return /******/ (function(modules) { // webpackBootstrap
178
178
  // Each of these augment the Handlebars object. No need to setup here.
179
179
  // (This is done to easily share code between commonjs and browse envs)
180
180
 
181
- var _handlebarsSafeString = __webpack_require__(37);
181
+ var _handlebarsSafeString = __webpack_require__(76);
182
182
 
183
183
  var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
184
184
 
@@ -190,11 +190,11 @@ return /******/ (function(modules) { // webpackBootstrap
190
190
 
191
191
  var Utils = _interopRequireWildcard(_handlebarsUtils);
192
192
 
193
- var _handlebarsRuntime = __webpack_require__(38);
193
+ var _handlebarsRuntime = __webpack_require__(77);
194
194
 
195
195
  var runtime = _interopRequireWildcard(_handlebarsRuntime);
196
196
 
197
- var _handlebarsNoConflict = __webpack_require__(44);
197
+ var _handlebarsNoConflict = __webpack_require__(82);
198
198
 
199
199
  var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
200
200
 
@@ -270,15 +270,15 @@ return /******/ (function(modules) { // webpackBootstrap
270
270
 
271
271
  var _helpers = __webpack_require__(10);
272
272
 
273
- var _decorators = __webpack_require__(30);
273
+ var _decorators = __webpack_require__(70);
274
274
 
275
- var _logger = __webpack_require__(32);
275
+ var _logger = __webpack_require__(72);
276
276
 
277
277
  var _logger2 = _interopRequireDefault(_logger);
278
278
 
279
- var _internalProtoAccess = __webpack_require__(33);
279
+ var _internalProtoAccess = __webpack_require__(73);
280
280
 
281
- var VERSION = '4.7.7';
281
+ var VERSION = '4.7.9';
282
282
  exports.VERSION = VERSION;
283
283
  var COMPILER_REVISION = 8;
284
284
  exports.COMPILER_REVISION = COMPILER_REVISION;
@@ -621,23 +621,23 @@ return /******/ (function(modules) { // webpackBootstrap
621
621
 
622
622
  var _helpersEach2 = _interopRequireDefault(_helpersEach);
623
623
 
624
- var _helpersHelperMissing = __webpack_require__(25);
624
+ var _helpersHelperMissing = __webpack_require__(65);
625
625
 
626
626
  var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
627
627
 
628
- var _helpersIf = __webpack_require__(26);
628
+ var _helpersIf = __webpack_require__(66);
629
629
 
630
630
  var _helpersIf2 = _interopRequireDefault(_helpersIf);
631
631
 
632
- var _helpersLog = __webpack_require__(27);
632
+ var _helpersLog = __webpack_require__(67);
633
633
 
634
634
  var _helpersLog2 = _interopRequireDefault(_helpersLog);
635
635
 
636
- var _helpersLookup = __webpack_require__(28);
636
+ var _helpersLookup = __webpack_require__(68);
637
637
 
638
638
  var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
639
639
 
640
- var _helpersWith = __webpack_require__(29);
640
+ var _helpersWith = __webpack_require__(69);
641
641
 
642
642
  var _helpersWith2 = _interopRequireDefault(_helpersWith);
643
643
 
@@ -655,7 +655,8 @@ return /******/ (function(modules) { // webpackBootstrap
655
655
  if (instance.helpers[helperName]) {
656
656
  instance.hooks[helperName] = instance.helpers[helperName];
657
657
  if (!keepHelper) {
658
- delete instance.helpers[helperName];
658
+ // Using delete is slow
659
+ instance.helpers[helperName] = undefined;
659
660
  }
660
661
  }
661
662
  }
@@ -707,9 +708,15 @@ return /******/ (function(modules) { // webpackBootstrap
707
708
  /* 12 */
708
709
  /***/ (function(module, exports, __webpack_require__) {
709
710
 
710
- /* WEBPACK VAR INJECTION */(function(global) {'use strict';
711
+ 'use strict';
712
+
713
+ var _Symbol = __webpack_require__(13)['default'];
714
+
715
+ var _Symbol$iterator = __webpack_require__(43)['default'];
716
+
717
+ var _getIterator = __webpack_require__(55)['default'];
711
718
 
712
- var _Object$keys = __webpack_require__(13)['default'];
719
+ var _Object$keys = __webpack_require__(60)['default'];
713
720
 
714
721
  var _interopRequireDefault = __webpack_require__(1)['default'];
715
722
 
@@ -771,9 +778,9 @@ return /******/ (function(modules) { // webpackBootstrap
771
778
  execIteration(i, i, i === context.length - 1);
772
779
  }
773
780
  }
774
- } else if (global.Symbol && context[global.Symbol.iterator]) {
781
+ } else if (typeof _Symbol === 'function' && context[_Symbol$iterator]) {
775
782
  var newContext = [];
776
- var iterator = context[global.Symbol.iterator]();
783
+ var iterator = _getIterator(context);
777
784
  for (var it = iterator.next(); !it.done; it = iterator.next()) {
778
785
  newContext.push(it.value);
779
786
  }
@@ -811,7 +818,6 @@ return /******/ (function(modules) { // webpackBootstrap
811
818
  };
812
819
 
813
820
  module.exports = exports['default'];
814
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
815
821
 
816
822
  /***/ }),
817
823
  /* 13 */
@@ -824,61 +830,285 @@ return /******/ (function(modules) { // webpackBootstrap
824
830
  /***/ (function(module, exports, __webpack_require__) {
825
831
 
826
832
  __webpack_require__(15);
827
- module.exports = __webpack_require__(21).Object.keys;
833
+ __webpack_require__(42);
834
+ module.exports = __webpack_require__(21).Symbol;
828
835
 
829
836
  /***/ }),
830
837
  /* 15 */
831
838
  /***/ (function(module, exports, __webpack_require__) {
832
839
 
833
- // 19.1.2.14 Object.keys(O)
834
- var toObject = __webpack_require__(16);
840
+ 'use strict';
841
+ // ECMAScript 6 symbols shim
842
+ var $ = __webpack_require__(9)
843
+ , global = __webpack_require__(16)
844
+ , has = __webpack_require__(17)
845
+ , DESCRIPTORS = __webpack_require__(18)
846
+ , $export = __webpack_require__(20)
847
+ , redefine = __webpack_require__(24)
848
+ , $fails = __webpack_require__(19)
849
+ , shared = __webpack_require__(27)
850
+ , setToStringTag = __webpack_require__(28)
851
+ , uid = __webpack_require__(30)
852
+ , wks = __webpack_require__(29)
853
+ , keyOf = __webpack_require__(31)
854
+ , $names = __webpack_require__(36)
855
+ , enumKeys = __webpack_require__(37)
856
+ , isArray = __webpack_require__(38)
857
+ , anObject = __webpack_require__(39)
858
+ , toIObject = __webpack_require__(32)
859
+ , createDesc = __webpack_require__(26)
860
+ , getDesc = $.getDesc
861
+ , setDesc = $.setDesc
862
+ , _create = $.create
863
+ , getNames = $names.get
864
+ , $Symbol = global.Symbol
865
+ , $JSON = global.JSON
866
+ , _stringify = $JSON && $JSON.stringify
867
+ , setter = false
868
+ , HIDDEN = wks('_hidden')
869
+ , isEnum = $.isEnum
870
+ , SymbolRegistry = shared('symbol-registry')
871
+ , AllSymbols = shared('symbols')
872
+ , useNative = typeof $Symbol == 'function'
873
+ , ObjectProto = Object.prototype;
874
+
875
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
876
+ var setSymbolDesc = DESCRIPTORS && $fails(function(){
877
+ return _create(setDesc({}, 'a', {
878
+ get: function(){ return setDesc(this, 'a', {value: 7}).a; }
879
+ })).a != 7;
880
+ }) ? function(it, key, D){
881
+ var protoDesc = getDesc(ObjectProto, key);
882
+ if(protoDesc)delete ObjectProto[key];
883
+ setDesc(it, key, D);
884
+ if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
885
+ } : setDesc;
886
+
887
+ var wrap = function(tag){
888
+ var sym = AllSymbols[tag] = _create($Symbol.prototype);
889
+ sym._k = tag;
890
+ DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
891
+ configurable: true,
892
+ set: function(value){
893
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
894
+ setSymbolDesc(this, tag, createDesc(1, value));
895
+ }
896
+ });
897
+ return sym;
898
+ };
835
899
 
836
- __webpack_require__(18)('keys', function($keys){
837
- return function keys(it){
838
- return $keys(toObject(it));
900
+ var isSymbol = function(it){
901
+ return typeof it == 'symbol';
902
+ };
903
+
904
+ var $defineProperty = function defineProperty(it, key, D){
905
+ if(D && has(AllSymbols, key)){
906
+ if(!D.enumerable){
907
+ if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
908
+ it[HIDDEN][key] = true;
909
+ } else {
910
+ if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
911
+ D = _create(D, {enumerable: createDesc(0, false)});
912
+ } return setSymbolDesc(it, key, D);
913
+ } return setDesc(it, key, D);
914
+ };
915
+ var $defineProperties = function defineProperties(it, P){
916
+ anObject(it);
917
+ var keys = enumKeys(P = toIObject(P))
918
+ , i = 0
919
+ , l = keys.length
920
+ , key;
921
+ while(l > i)$defineProperty(it, key = keys[i++], P[key]);
922
+ return it;
923
+ };
924
+ var $create = function create(it, P){
925
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
926
+ };
927
+ var $propertyIsEnumerable = function propertyIsEnumerable(key){
928
+ var E = isEnum.call(this, key);
929
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
930
+ ? E : true;
931
+ };
932
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
933
+ var D = getDesc(it = toIObject(it), key);
934
+ if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
935
+ return D;
936
+ };
937
+ var $getOwnPropertyNames = function getOwnPropertyNames(it){
938
+ var names = getNames(toIObject(it))
939
+ , result = []
940
+ , i = 0
941
+ , key;
942
+ while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
943
+ return result;
944
+ };
945
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
946
+ var names = getNames(toIObject(it))
947
+ , result = []
948
+ , i = 0
949
+ , key;
950
+ while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
951
+ return result;
952
+ };
953
+ var $stringify = function stringify(it){
954
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
955
+ var args = [it]
956
+ , i = 1
957
+ , $$ = arguments
958
+ , replacer, $replacer;
959
+ while($$.length > i)args.push($$[i++]);
960
+ replacer = args[1];
961
+ if(typeof replacer == 'function')$replacer = replacer;
962
+ if($replacer || !isArray(replacer))replacer = function(key, value){
963
+ if($replacer)value = $replacer.call(this, key, value);
964
+ if(!isSymbol(value))return value;
839
965
  };
966
+ args[1] = replacer;
967
+ return _stringify.apply($JSON, args);
968
+ };
969
+ var buggyJSON = $fails(function(){
970
+ var S = $Symbol();
971
+ // MS Edge converts symbol values to JSON as {}
972
+ // WebKit converts symbol values to JSON as null
973
+ // V8 throws on boxed symbols
974
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
840
975
  });
841
976
 
977
+ // 19.4.1.1 Symbol([description])
978
+ if(!useNative){
979
+ $Symbol = function Symbol(){
980
+ if(isSymbol(this))throw TypeError('Symbol is not a constructor');
981
+ return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
982
+ };
983
+ redefine($Symbol.prototype, 'toString', function toString(){
984
+ return this._k;
985
+ });
986
+
987
+ isSymbol = function(it){
988
+ return it instanceof $Symbol;
989
+ };
990
+
991
+ $.create = $create;
992
+ $.isEnum = $propertyIsEnumerable;
993
+ $.getDesc = $getOwnPropertyDescriptor;
994
+ $.setDesc = $defineProperty;
995
+ $.setDescs = $defineProperties;
996
+ $.getNames = $names.get = $getOwnPropertyNames;
997
+ $.getSymbols = $getOwnPropertySymbols;
998
+
999
+ if(DESCRIPTORS && !__webpack_require__(41)){
1000
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
1001
+ }
1002
+ }
1003
+
1004
+ var symbolStatics = {
1005
+ // 19.4.2.1 Symbol.for(key)
1006
+ 'for': function(key){
1007
+ return has(SymbolRegistry, key += '')
1008
+ ? SymbolRegistry[key]
1009
+ : SymbolRegistry[key] = $Symbol(key);
1010
+ },
1011
+ // 19.4.2.5 Symbol.keyFor(sym)
1012
+ keyFor: function keyFor(key){
1013
+ return keyOf(SymbolRegistry, key);
1014
+ },
1015
+ useSetter: function(){ setter = true; },
1016
+ useSimple: function(){ setter = false; }
1017
+ };
1018
+ // 19.4.2.2 Symbol.hasInstance
1019
+ // 19.4.2.3 Symbol.isConcatSpreadable
1020
+ // 19.4.2.4 Symbol.iterator
1021
+ // 19.4.2.6 Symbol.match
1022
+ // 19.4.2.8 Symbol.replace
1023
+ // 19.4.2.9 Symbol.search
1024
+ // 19.4.2.10 Symbol.species
1025
+ // 19.4.2.11 Symbol.split
1026
+ // 19.4.2.12 Symbol.toPrimitive
1027
+ // 19.4.2.13 Symbol.toStringTag
1028
+ // 19.4.2.14 Symbol.unscopables
1029
+ $.each.call((
1030
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
1031
+ 'species,split,toPrimitive,toStringTag,unscopables'
1032
+ ).split(','), function(it){
1033
+ var sym = wks(it);
1034
+ symbolStatics[it] = useNative ? sym : wrap(sym);
1035
+ });
1036
+
1037
+ setter = true;
1038
+
1039
+ $export($export.G + $export.W, {Symbol: $Symbol});
1040
+
1041
+ $export($export.S, 'Symbol', symbolStatics);
1042
+
1043
+ $export($export.S + $export.F * !useNative, 'Object', {
1044
+ // 19.1.2.2 Object.create(O [, Properties])
1045
+ create: $create,
1046
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
1047
+ defineProperty: $defineProperty,
1048
+ // 19.1.2.3 Object.defineProperties(O, Properties)
1049
+ defineProperties: $defineProperties,
1050
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
1051
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
1052
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
1053
+ getOwnPropertyNames: $getOwnPropertyNames,
1054
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
1055
+ getOwnPropertySymbols: $getOwnPropertySymbols
1056
+ });
1057
+
1058
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
1059
+ $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
1060
+
1061
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
1062
+ setToStringTag($Symbol, 'Symbol');
1063
+ // 20.2.1.9 Math[@@toStringTag]
1064
+ setToStringTag(Math, 'Math', true);
1065
+ // 24.3.3 JSON[@@toStringTag]
1066
+ setToStringTag(global.JSON, 'JSON', true);
1067
+
842
1068
  /***/ }),
843
1069
  /* 16 */
844
- /***/ (function(module, exports, __webpack_require__) {
1070
+ /***/ (function(module, exports) {
845
1071
 
846
- // 7.1.13 ToObject(argument)
847
- var defined = __webpack_require__(17);
848
- module.exports = function(it){
849
- return Object(defined(it));
850
- };
1072
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
1073
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
1074
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
1075
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
851
1076
 
852
1077
  /***/ }),
853
1078
  /* 17 */
854
1079
  /***/ (function(module, exports) {
855
1080
 
856
- // 7.2.1 RequireObjectCoercible(argument)
857
- module.exports = function(it){
858
- if(it == undefined)throw TypeError("Can't call method on " + it);
859
- return it;
1081
+ var hasOwnProperty = {}.hasOwnProperty;
1082
+ module.exports = function(it, key){
1083
+ return hasOwnProperty.call(it, key);
860
1084
  };
861
1085
 
862
1086
  /***/ }),
863
1087
  /* 18 */
864
1088
  /***/ (function(module, exports, __webpack_require__) {
865
1089
 
866
- // most Object methods by ES6 should accept primitives
867
- var $export = __webpack_require__(19)
868
- , core = __webpack_require__(21)
869
- , fails = __webpack_require__(24);
870
- module.exports = function(KEY, exec){
871
- var fn = (core.Object || {})[KEY] || Object[KEY]
872
- , exp = {};
873
- exp[KEY] = exec(fn);
874
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
875
- };
1090
+ // Thank's IE8 for his funny defineProperty
1091
+ module.exports = !__webpack_require__(19)(function(){
1092
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
1093
+ });
876
1094
 
877
1095
  /***/ }),
878
1096
  /* 19 */
1097
+ /***/ (function(module, exports) {
1098
+
1099
+ module.exports = function(exec){
1100
+ try {
1101
+ return !!exec();
1102
+ } catch(e){
1103
+ return true;
1104
+ }
1105
+ };
1106
+
1107
+ /***/ }),
1108
+ /* 20 */
879
1109
  /***/ (function(module, exports, __webpack_require__) {
880
1110
 
881
- var global = __webpack_require__(20)
1111
+ var global = __webpack_require__(16)
882
1112
  , core = __webpack_require__(21)
883
1113
  , ctx = __webpack_require__(22)
884
1114
  , PROTOTYPE = 'prototype';
@@ -925,15 +1155,6 @@ return /******/ (function(modules) { // webpackBootstrap
925
1155
  $export.W = 32; // wrap
926
1156
  module.exports = $export;
927
1157
 
928
- /***/ }),
929
- /* 20 */
930
- /***/ (function(module, exports) {
931
-
932
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
933
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
934
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
935
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
936
-
937
1158
  /***/ }),
938
1159
  /* 21 */
939
1160
  /***/ (function(module, exports) {
@@ -977,18 +1198,559 @@ return /******/ (function(modules) { // webpackBootstrap
977
1198
 
978
1199
  /***/ }),
979
1200
  /* 24 */
1201
+ /***/ (function(module, exports, __webpack_require__) {
1202
+
1203
+ module.exports = __webpack_require__(25);
1204
+
1205
+ /***/ }),
1206
+ /* 25 */
1207
+ /***/ (function(module, exports, __webpack_require__) {
1208
+
1209
+ var $ = __webpack_require__(9)
1210
+ , createDesc = __webpack_require__(26);
1211
+ module.exports = __webpack_require__(18) ? function(object, key, value){
1212
+ return $.setDesc(object, key, createDesc(1, value));
1213
+ } : function(object, key, value){
1214
+ object[key] = value;
1215
+ return object;
1216
+ };
1217
+
1218
+ /***/ }),
1219
+ /* 26 */
980
1220
  /***/ (function(module, exports) {
981
1221
 
982
- module.exports = function(exec){
1222
+ module.exports = function(bitmap, value){
1223
+ return {
1224
+ enumerable : !(bitmap & 1),
1225
+ configurable: !(bitmap & 2),
1226
+ writable : !(bitmap & 4),
1227
+ value : value
1228
+ };
1229
+ };
1230
+
1231
+ /***/ }),
1232
+ /* 27 */
1233
+ /***/ (function(module, exports, __webpack_require__) {
1234
+
1235
+ var global = __webpack_require__(16)
1236
+ , SHARED = '__core-js_shared__'
1237
+ , store = global[SHARED] || (global[SHARED] = {});
1238
+ module.exports = function(key){
1239
+ return store[key] || (store[key] = {});
1240
+ };
1241
+
1242
+ /***/ }),
1243
+ /* 28 */
1244
+ /***/ (function(module, exports, __webpack_require__) {
1245
+
1246
+ var def = __webpack_require__(9).setDesc
1247
+ , has = __webpack_require__(17)
1248
+ , TAG = __webpack_require__(29)('toStringTag');
1249
+
1250
+ module.exports = function(it, tag, stat){
1251
+ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
1252
+ };
1253
+
1254
+ /***/ }),
1255
+ /* 29 */
1256
+ /***/ (function(module, exports, __webpack_require__) {
1257
+
1258
+ var store = __webpack_require__(27)('wks')
1259
+ , uid = __webpack_require__(30)
1260
+ , Symbol = __webpack_require__(16).Symbol;
1261
+ module.exports = function(name){
1262
+ return store[name] || (store[name] =
1263
+ Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
1264
+ };
1265
+
1266
+ /***/ }),
1267
+ /* 30 */
1268
+ /***/ (function(module, exports) {
1269
+
1270
+ var id = 0
1271
+ , px = Math.random();
1272
+ module.exports = function(key){
1273
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1274
+ };
1275
+
1276
+ /***/ }),
1277
+ /* 31 */
1278
+ /***/ (function(module, exports, __webpack_require__) {
1279
+
1280
+ var $ = __webpack_require__(9)
1281
+ , toIObject = __webpack_require__(32);
1282
+ module.exports = function(object, el){
1283
+ var O = toIObject(object)
1284
+ , keys = $.getKeys(O)
1285
+ , length = keys.length
1286
+ , index = 0
1287
+ , key;
1288
+ while(length > index)if(O[key = keys[index++]] === el)return key;
1289
+ };
1290
+
1291
+ /***/ }),
1292
+ /* 32 */
1293
+ /***/ (function(module, exports, __webpack_require__) {
1294
+
1295
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
1296
+ var IObject = __webpack_require__(33)
1297
+ , defined = __webpack_require__(35);
1298
+ module.exports = function(it){
1299
+ return IObject(defined(it));
1300
+ };
1301
+
1302
+ /***/ }),
1303
+ /* 33 */
1304
+ /***/ (function(module, exports, __webpack_require__) {
1305
+
1306
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
1307
+ var cof = __webpack_require__(34);
1308
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
1309
+ return cof(it) == 'String' ? it.split('') : Object(it);
1310
+ };
1311
+
1312
+ /***/ }),
1313
+ /* 34 */
1314
+ /***/ (function(module, exports) {
1315
+
1316
+ var toString = {}.toString;
1317
+
1318
+ module.exports = function(it){
1319
+ return toString.call(it).slice(8, -1);
1320
+ };
1321
+
1322
+ /***/ }),
1323
+ /* 35 */
1324
+ /***/ (function(module, exports) {
1325
+
1326
+ // 7.2.1 RequireObjectCoercible(argument)
1327
+ module.exports = function(it){
1328
+ if(it == undefined)throw TypeError("Can't call method on " + it);
1329
+ return it;
1330
+ };
1331
+
1332
+ /***/ }),
1333
+ /* 36 */
1334
+ /***/ (function(module, exports, __webpack_require__) {
1335
+
1336
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
1337
+ var toIObject = __webpack_require__(32)
1338
+ , getNames = __webpack_require__(9).getNames
1339
+ , toString = {}.toString;
1340
+
1341
+ var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
1342
+ ? Object.getOwnPropertyNames(window) : [];
1343
+
1344
+ var getWindowNames = function(it){
983
1345
  try {
984
- return !!exec();
1346
+ return getNames(it);
985
1347
  } catch(e){
986
- return true;
1348
+ return windowNames.slice();
987
1349
  }
988
1350
  };
989
1351
 
1352
+ module.exports.get = function getOwnPropertyNames(it){
1353
+ if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
1354
+ return getNames(toIObject(it));
1355
+ };
1356
+
990
1357
  /***/ }),
991
- /* 25 */
1358
+ /* 37 */
1359
+ /***/ (function(module, exports, __webpack_require__) {
1360
+
1361
+ // all enumerable object keys, includes symbols
1362
+ var $ = __webpack_require__(9);
1363
+ module.exports = function(it){
1364
+ var keys = $.getKeys(it)
1365
+ , getSymbols = $.getSymbols;
1366
+ if(getSymbols){
1367
+ var symbols = getSymbols(it)
1368
+ , isEnum = $.isEnum
1369
+ , i = 0
1370
+ , key;
1371
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
1372
+ }
1373
+ return keys;
1374
+ };
1375
+
1376
+ /***/ }),
1377
+ /* 38 */
1378
+ /***/ (function(module, exports, __webpack_require__) {
1379
+
1380
+ // 7.2.2 IsArray(argument)
1381
+ var cof = __webpack_require__(34);
1382
+ module.exports = Array.isArray || function(arg){
1383
+ return cof(arg) == 'Array';
1384
+ };
1385
+
1386
+ /***/ }),
1387
+ /* 39 */
1388
+ /***/ (function(module, exports, __webpack_require__) {
1389
+
1390
+ var isObject = __webpack_require__(40);
1391
+ module.exports = function(it){
1392
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
1393
+ return it;
1394
+ };
1395
+
1396
+ /***/ }),
1397
+ /* 40 */
1398
+ /***/ (function(module, exports) {
1399
+
1400
+ module.exports = function(it){
1401
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
1402
+ };
1403
+
1404
+ /***/ }),
1405
+ /* 41 */
1406
+ /***/ (function(module, exports) {
1407
+
1408
+ module.exports = true;
1409
+
1410
+ /***/ }),
1411
+ /* 42 */
1412
+ /***/ (function(module, exports) {
1413
+
1414
+
1415
+
1416
+ /***/ }),
1417
+ /* 43 */
1418
+ /***/ (function(module, exports, __webpack_require__) {
1419
+
1420
+ module.exports = { "default": __webpack_require__(44), __esModule: true };
1421
+
1422
+ /***/ }),
1423
+ /* 44 */
1424
+ /***/ (function(module, exports, __webpack_require__) {
1425
+
1426
+ __webpack_require__(45);
1427
+ __webpack_require__(51);
1428
+ module.exports = __webpack_require__(29)('iterator');
1429
+
1430
+ /***/ }),
1431
+ /* 45 */
1432
+ /***/ (function(module, exports, __webpack_require__) {
1433
+
1434
+ 'use strict';
1435
+ var $at = __webpack_require__(46)(true);
1436
+
1437
+ // 21.1.3.27 String.prototype[@@iterator]()
1438
+ __webpack_require__(48)(String, 'String', function(iterated){
1439
+ this._t = String(iterated); // target
1440
+ this._i = 0; // next index
1441
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
1442
+ }, function(){
1443
+ var O = this._t
1444
+ , index = this._i
1445
+ , point;
1446
+ if(index >= O.length)return {value: undefined, done: true};
1447
+ point = $at(O, index);
1448
+ this._i += point.length;
1449
+ return {value: point, done: false};
1450
+ });
1451
+
1452
+ /***/ }),
1453
+ /* 46 */
1454
+ /***/ (function(module, exports, __webpack_require__) {
1455
+
1456
+ var toInteger = __webpack_require__(47)
1457
+ , defined = __webpack_require__(35);
1458
+ // true -> String#at
1459
+ // false -> String#codePointAt
1460
+ module.exports = function(TO_STRING){
1461
+ return function(that, pos){
1462
+ var s = String(defined(that))
1463
+ , i = toInteger(pos)
1464
+ , l = s.length
1465
+ , a, b;
1466
+ if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
1467
+ a = s.charCodeAt(i);
1468
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
1469
+ ? TO_STRING ? s.charAt(i) : a
1470
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
1471
+ };
1472
+ };
1473
+
1474
+ /***/ }),
1475
+ /* 47 */
1476
+ /***/ (function(module, exports) {
1477
+
1478
+ // 7.1.4 ToInteger
1479
+ var ceil = Math.ceil
1480
+ , floor = Math.floor;
1481
+ module.exports = function(it){
1482
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1483
+ };
1484
+
1485
+ /***/ }),
1486
+ /* 48 */
1487
+ /***/ (function(module, exports, __webpack_require__) {
1488
+
1489
+ 'use strict';
1490
+ var LIBRARY = __webpack_require__(41)
1491
+ , $export = __webpack_require__(20)
1492
+ , redefine = __webpack_require__(24)
1493
+ , hide = __webpack_require__(25)
1494
+ , has = __webpack_require__(17)
1495
+ , Iterators = __webpack_require__(49)
1496
+ , $iterCreate = __webpack_require__(50)
1497
+ , setToStringTag = __webpack_require__(28)
1498
+ , getProto = __webpack_require__(9).getProto
1499
+ , ITERATOR = __webpack_require__(29)('iterator')
1500
+ , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
1501
+ , FF_ITERATOR = '@@iterator'
1502
+ , KEYS = 'keys'
1503
+ , VALUES = 'values';
1504
+
1505
+ var returnThis = function(){ return this; };
1506
+
1507
+ module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
1508
+ $iterCreate(Constructor, NAME, next);
1509
+ var getMethod = function(kind){
1510
+ if(!BUGGY && kind in proto)return proto[kind];
1511
+ switch(kind){
1512
+ case KEYS: return function keys(){ return new Constructor(this, kind); };
1513
+ case VALUES: return function values(){ return new Constructor(this, kind); };
1514
+ } return function entries(){ return new Constructor(this, kind); };
1515
+ };
1516
+ var TAG = NAME + ' Iterator'
1517
+ , DEF_VALUES = DEFAULT == VALUES
1518
+ , VALUES_BUG = false
1519
+ , proto = Base.prototype
1520
+ , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
1521
+ , $default = $native || getMethod(DEFAULT)
1522
+ , methods, key;
1523
+ // Fix native
1524
+ if($native){
1525
+ var IteratorPrototype = getProto($default.call(new Base));
1526
+ // Set @@toStringTag to native iterators
1527
+ setToStringTag(IteratorPrototype, TAG, true);
1528
+ // FF fix
1529
+ if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
1530
+ // fix Array#{values, @@iterator}.name in V8 / FF
1531
+ if(DEF_VALUES && $native.name !== VALUES){
1532
+ VALUES_BUG = true;
1533
+ $default = function values(){ return $native.call(this); };
1534
+ }
1535
+ }
1536
+ // Define iterator
1537
+ if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
1538
+ hide(proto, ITERATOR, $default);
1539
+ }
1540
+ // Plug for library
1541
+ Iterators[NAME] = $default;
1542
+ Iterators[TAG] = returnThis;
1543
+ if(DEFAULT){
1544
+ methods = {
1545
+ values: DEF_VALUES ? $default : getMethod(VALUES),
1546
+ keys: IS_SET ? $default : getMethod(KEYS),
1547
+ entries: !DEF_VALUES ? $default : getMethod('entries')
1548
+ };
1549
+ if(FORCED)for(key in methods){
1550
+ if(!(key in proto))redefine(proto, key, methods[key]);
1551
+ } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
1552
+ }
1553
+ return methods;
1554
+ };
1555
+
1556
+ /***/ }),
1557
+ /* 49 */
1558
+ /***/ (function(module, exports) {
1559
+
1560
+ module.exports = {};
1561
+
1562
+ /***/ }),
1563
+ /* 50 */
1564
+ /***/ (function(module, exports, __webpack_require__) {
1565
+
1566
+ 'use strict';
1567
+ var $ = __webpack_require__(9)
1568
+ , descriptor = __webpack_require__(26)
1569
+ , setToStringTag = __webpack_require__(28)
1570
+ , IteratorPrototype = {};
1571
+
1572
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
1573
+ __webpack_require__(25)(IteratorPrototype, __webpack_require__(29)('iterator'), function(){ return this; });
1574
+
1575
+ module.exports = function(Constructor, NAME, next){
1576
+ Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
1577
+ setToStringTag(Constructor, NAME + ' Iterator');
1578
+ };
1579
+
1580
+ /***/ }),
1581
+ /* 51 */
1582
+ /***/ (function(module, exports, __webpack_require__) {
1583
+
1584
+ __webpack_require__(52);
1585
+ var Iterators = __webpack_require__(49);
1586
+ Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
1587
+
1588
+ /***/ }),
1589
+ /* 52 */
1590
+ /***/ (function(module, exports, __webpack_require__) {
1591
+
1592
+ 'use strict';
1593
+ var addToUnscopables = __webpack_require__(53)
1594
+ , step = __webpack_require__(54)
1595
+ , Iterators = __webpack_require__(49)
1596
+ , toIObject = __webpack_require__(32);
1597
+
1598
+ // 22.1.3.4 Array.prototype.entries()
1599
+ // 22.1.3.13 Array.prototype.keys()
1600
+ // 22.1.3.29 Array.prototype.values()
1601
+ // 22.1.3.30 Array.prototype[@@iterator]()
1602
+ module.exports = __webpack_require__(48)(Array, 'Array', function(iterated, kind){
1603
+ this._t = toIObject(iterated); // target
1604
+ this._i = 0; // next index
1605
+ this._k = kind; // kind
1606
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
1607
+ }, function(){
1608
+ var O = this._t
1609
+ , kind = this._k
1610
+ , index = this._i++;
1611
+ if(!O || index >= O.length){
1612
+ this._t = undefined;
1613
+ return step(1);
1614
+ }
1615
+ if(kind == 'keys' )return step(0, index);
1616
+ if(kind == 'values')return step(0, O[index]);
1617
+ return step(0, [index, O[index]]);
1618
+ }, 'values');
1619
+
1620
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
1621
+ Iterators.Arguments = Iterators.Array;
1622
+
1623
+ addToUnscopables('keys');
1624
+ addToUnscopables('values');
1625
+ addToUnscopables('entries');
1626
+
1627
+ /***/ }),
1628
+ /* 53 */
1629
+ /***/ (function(module, exports) {
1630
+
1631
+ module.exports = function(){ /* empty */ };
1632
+
1633
+ /***/ }),
1634
+ /* 54 */
1635
+ /***/ (function(module, exports) {
1636
+
1637
+ module.exports = function(done, value){
1638
+ return {value: value, done: !!done};
1639
+ };
1640
+
1641
+ /***/ }),
1642
+ /* 55 */
1643
+ /***/ (function(module, exports, __webpack_require__) {
1644
+
1645
+ module.exports = { "default": __webpack_require__(56), __esModule: true };
1646
+
1647
+ /***/ }),
1648
+ /* 56 */
1649
+ /***/ (function(module, exports, __webpack_require__) {
1650
+
1651
+ __webpack_require__(51);
1652
+ __webpack_require__(45);
1653
+ module.exports = __webpack_require__(57);
1654
+
1655
+ /***/ }),
1656
+ /* 57 */
1657
+ /***/ (function(module, exports, __webpack_require__) {
1658
+
1659
+ var anObject = __webpack_require__(39)
1660
+ , get = __webpack_require__(58);
1661
+ module.exports = __webpack_require__(21).getIterator = function(it){
1662
+ var iterFn = get(it);
1663
+ if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
1664
+ return anObject(iterFn.call(it));
1665
+ };
1666
+
1667
+ /***/ }),
1668
+ /* 58 */
1669
+ /***/ (function(module, exports, __webpack_require__) {
1670
+
1671
+ var classof = __webpack_require__(59)
1672
+ , ITERATOR = __webpack_require__(29)('iterator')
1673
+ , Iterators = __webpack_require__(49);
1674
+ module.exports = __webpack_require__(21).getIteratorMethod = function(it){
1675
+ if(it != undefined)return it[ITERATOR]
1676
+ || it['@@iterator']
1677
+ || Iterators[classof(it)];
1678
+ };
1679
+
1680
+ /***/ }),
1681
+ /* 59 */
1682
+ /***/ (function(module, exports, __webpack_require__) {
1683
+
1684
+ // getting tag from 19.1.3.6 Object.prototype.toString()
1685
+ var cof = __webpack_require__(34)
1686
+ , TAG = __webpack_require__(29)('toStringTag')
1687
+ // ES3 wrong here
1688
+ , ARG = cof(function(){ return arguments; }()) == 'Arguments';
1689
+
1690
+ module.exports = function(it){
1691
+ var O, T, B;
1692
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
1693
+ // @@toStringTag case
1694
+ : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
1695
+ // builtinTag case
1696
+ : ARG ? cof(O)
1697
+ // ES3 arguments fallback
1698
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
1699
+ };
1700
+
1701
+ /***/ }),
1702
+ /* 60 */
1703
+ /***/ (function(module, exports, __webpack_require__) {
1704
+
1705
+ module.exports = { "default": __webpack_require__(61), __esModule: true };
1706
+
1707
+ /***/ }),
1708
+ /* 61 */
1709
+ /***/ (function(module, exports, __webpack_require__) {
1710
+
1711
+ __webpack_require__(62);
1712
+ module.exports = __webpack_require__(21).Object.keys;
1713
+
1714
+ /***/ }),
1715
+ /* 62 */
1716
+ /***/ (function(module, exports, __webpack_require__) {
1717
+
1718
+ // 19.1.2.14 Object.keys(O)
1719
+ var toObject = __webpack_require__(63);
1720
+
1721
+ __webpack_require__(64)('keys', function($keys){
1722
+ return function keys(it){
1723
+ return $keys(toObject(it));
1724
+ };
1725
+ });
1726
+
1727
+ /***/ }),
1728
+ /* 63 */
1729
+ /***/ (function(module, exports, __webpack_require__) {
1730
+
1731
+ // 7.1.13 ToObject(argument)
1732
+ var defined = __webpack_require__(35);
1733
+ module.exports = function(it){
1734
+ return Object(defined(it));
1735
+ };
1736
+
1737
+ /***/ }),
1738
+ /* 64 */
1739
+ /***/ (function(module, exports, __webpack_require__) {
1740
+
1741
+ // most Object methods by ES6 should accept primitives
1742
+ var $export = __webpack_require__(20)
1743
+ , core = __webpack_require__(21)
1744
+ , fails = __webpack_require__(19);
1745
+ module.exports = function(KEY, exec){
1746
+ var fn = (core.Object || {})[KEY] || Object[KEY]
1747
+ , exp = {};
1748
+ exp[KEY] = exec(fn);
1749
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
1750
+ };
1751
+
1752
+ /***/ }),
1753
+ /* 65 */
992
1754
  /***/ (function(module, exports, __webpack_require__) {
993
1755
 
994
1756
  'use strict';
@@ -1016,7 +1778,7 @@ return /******/ (function(modules) { // webpackBootstrap
1016
1778
  module.exports = exports['default'];
1017
1779
 
1018
1780
  /***/ }),
1019
- /* 26 */
1781
+ /* 66 */
1020
1782
  /***/ (function(module, exports, __webpack_require__) {
1021
1783
 
1022
1784
  'use strict';
@@ -1065,7 +1827,7 @@ return /******/ (function(modules) { // webpackBootstrap
1065
1827
  module.exports = exports['default'];
1066
1828
 
1067
1829
  /***/ }),
1068
- /* 27 */
1830
+ /* 67 */
1069
1831
  /***/ (function(module, exports) {
1070
1832
 
1071
1833
  'use strict';
@@ -1095,7 +1857,7 @@ return /******/ (function(modules) { // webpackBootstrap
1095
1857
  module.exports = exports['default'];
1096
1858
 
1097
1859
  /***/ }),
1098
- /* 28 */
1860
+ /* 68 */
1099
1861
  /***/ (function(module, exports) {
1100
1862
 
1101
1863
  'use strict';
@@ -1115,7 +1877,7 @@ return /******/ (function(modules) { // webpackBootstrap
1115
1877
  module.exports = exports['default'];
1116
1878
 
1117
1879
  /***/ }),
1118
- /* 29 */
1880
+ /* 69 */
1119
1881
  /***/ (function(module, exports, __webpack_require__) {
1120
1882
 
1121
1883
  'use strict';
@@ -1161,7 +1923,7 @@ return /******/ (function(modules) { // webpackBootstrap
1161
1923
  module.exports = exports['default'];
1162
1924
 
1163
1925
  /***/ }),
1164
- /* 30 */
1926
+ /* 70 */
1165
1927
  /***/ (function(module, exports, __webpack_require__) {
1166
1928
 
1167
1929
  'use strict';
@@ -1171,7 +1933,7 @@ return /******/ (function(modules) { // webpackBootstrap
1171
1933
  exports.__esModule = true;
1172
1934
  exports.registerDefaultDecorators = registerDefaultDecorators;
1173
1935
 
1174
- var _decoratorsInline = __webpack_require__(31);
1936
+ var _decoratorsInline = __webpack_require__(71);
1175
1937
 
1176
1938
  var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
1177
1939
 
@@ -1180,7 +1942,7 @@ return /******/ (function(modules) { // webpackBootstrap
1180
1942
  }
1181
1943
 
1182
1944
  /***/ }),
1183
- /* 31 */
1945
+ /* 71 */
1184
1946
  /***/ (function(module, exports, __webpack_require__) {
1185
1947
 
1186
1948
  'use strict';
@@ -1213,7 +1975,7 @@ return /******/ (function(modules) { // webpackBootstrap
1213
1975
  module.exports = exports['default'];
1214
1976
 
1215
1977
  /***/ }),
1216
- /* 32 */
1978
+ /* 72 */
1217
1979
  /***/ (function(module, exports, __webpack_require__) {
1218
1980
 
1219
1981
  'use strict';
@@ -1264,48 +2026,53 @@ return /******/ (function(modules) { // webpackBootstrap
1264
2026
  module.exports = exports['default'];
1265
2027
 
1266
2028
  /***/ }),
1267
- /* 33 */
2029
+ /* 73 */
1268
2030
  /***/ (function(module, exports, __webpack_require__) {
1269
2031
 
1270
2032
  'use strict';
1271
2033
 
1272
- var _Object$create = __webpack_require__(34)['default'];
2034
+ var _Object$create = __webpack_require__(74)['default'];
1273
2035
 
1274
- var _Object$keys = __webpack_require__(13)['default'];
2036
+ var _Object$keys = __webpack_require__(60)['default'];
1275
2037
 
1276
- var _interopRequireWildcard = __webpack_require__(3)['default'];
2038
+ var _interopRequireDefault = __webpack_require__(1)['default'];
1277
2039
 
1278
2040
  exports.__esModule = true;
1279
2041
  exports.createProtoAccessControl = createProtoAccessControl;
1280
2042
  exports.resultIsAllowed = resultIsAllowed;
1281
2043
  exports.resetLoggedProperties = resetLoggedProperties;
1282
2044
 
1283
- var _createNewLookupObject = __webpack_require__(36);
2045
+ var _utils = __webpack_require__(5);
1284
2046
 
1285
- var _logger = __webpack_require__(32);
2047
+ var _logger = __webpack_require__(72);
1286
2048
 
1287
- var logger = _interopRequireWildcard(_logger);
2049
+ var _logger2 = _interopRequireDefault(_logger);
1288
2050
 
1289
2051
  var loggedProperties = _Object$create(null);
1290
2052
 
1291
2053
  function createProtoAccessControl(runtimeOptions) {
1292
- var defaultMethodWhiteList = _Object$create(null);
1293
- defaultMethodWhiteList['constructor'] = false;
1294
- defaultMethodWhiteList['__defineGetter__'] = false;
1295
- defaultMethodWhiteList['__defineSetter__'] = false;
1296
- defaultMethodWhiteList['__lookupGetter__'] = false;
1297
-
1298
- var defaultPropertyWhiteList = _Object$create(null);
2054
+ // Create an object with "null"-prototype to avoid truthy results on
2055
+ // prototype properties.
2056
+ var propertyWhiteList = _Object$create(null);
1299
2057
  // eslint-disable-next-line no-proto
1300
- defaultPropertyWhiteList['__proto__'] = false;
2058
+ propertyWhiteList['__proto__'] = false;
2059
+ _utils.extend(propertyWhiteList, runtimeOptions.allowedProtoProperties);
2060
+
2061
+ var methodWhiteList = _Object$create(null);
2062
+ methodWhiteList['constructor'] = false;
2063
+ methodWhiteList['__defineGetter__'] = false;
2064
+ methodWhiteList['__defineSetter__'] = false;
2065
+ methodWhiteList['__lookupGetter__'] = false;
2066
+ methodWhiteList['__lookupSetter__'] = false;
2067
+ _utils.extend(methodWhiteList, runtimeOptions.allowedProtoMethods);
1301
2068
 
1302
2069
  return {
1303
2070
  properties: {
1304
- whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),
2071
+ whitelist: propertyWhiteList,
1305
2072
  defaultValue: runtimeOptions.allowProtoPropertiesByDefault
1306
2073
  },
1307
2074
  methods: {
1308
- whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),
2075
+ whitelist: methodWhiteList,
1309
2076
  defaultValue: runtimeOptions.allowProtoMethodsByDefault
1310
2077
  }
1311
2078
  };
@@ -1333,7 +2100,7 @@ return /******/ (function(modules) { // webpackBootstrap
1333
2100
  function logUnexpecedPropertyAccessOnce(propertyName) {
1334
2101
  if (loggedProperties[propertyName] !== true) {
1335
2102
  loggedProperties[propertyName] = true;
1336
- logger.log('error', 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');
2103
+ _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');
1337
2104
  }
1338
2105
  }
1339
2106
 
@@ -1344,13 +2111,13 @@ return /******/ (function(modules) { // webpackBootstrap
1344
2111
  }
1345
2112
 
1346
2113
  /***/ }),
1347
- /* 34 */
2114
+ /* 74 */
1348
2115
  /***/ (function(module, exports, __webpack_require__) {
1349
2116
 
1350
- module.exports = { "default": __webpack_require__(35), __esModule: true };
2117
+ module.exports = { "default": __webpack_require__(75), __esModule: true };
1351
2118
 
1352
2119
  /***/ }),
1353
- /* 35 */
2120
+ /* 75 */
1354
2121
  /***/ (function(module, exports, __webpack_require__) {
1355
2122
 
1356
2123
  var $ = __webpack_require__(9);
@@ -1359,35 +2126,7 @@ return /******/ (function(modules) { // webpackBootstrap
1359
2126
  };
1360
2127
 
1361
2128
  /***/ }),
1362
- /* 36 */
1363
- /***/ (function(module, exports, __webpack_require__) {
1364
-
1365
- 'use strict';
1366
-
1367
- var _Object$create = __webpack_require__(34)['default'];
1368
-
1369
- exports.__esModule = true;
1370
- exports.createNewLookupObject = createNewLookupObject;
1371
-
1372
- var _utils = __webpack_require__(5);
1373
-
1374
- /**
1375
- * Create a new object with "null"-prototype to avoid truthy results on prototype properties.
1376
- * The resulting object can be used with "object[property]" to check if a property exists
1377
- * @param {...object} sources a varargs parameter of source objects that will be merged
1378
- * @returns {object}
1379
- */
1380
-
1381
- function createNewLookupObject() {
1382
- for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {
1383
- sources[_key] = arguments[_key];
1384
- }
1385
-
1386
- return _utils.extend.apply(undefined, [_Object$create(null)].concat(sources));
1387
- }
1388
-
1389
- /***/ }),
1390
- /* 37 */
2129
+ /* 76 */
1391
2130
  /***/ (function(module, exports) {
1392
2131
 
1393
2132
  // Build out our basic SafeString type
@@ -1406,14 +2145,14 @@ return /******/ (function(modules) { // webpackBootstrap
1406
2145
  module.exports = exports['default'];
1407
2146
 
1408
2147
  /***/ }),
1409
- /* 38 */
2148
+ /* 77 */
1410
2149
  /***/ (function(module, exports, __webpack_require__) {
1411
2150
 
1412
2151
  'use strict';
1413
2152
 
1414
- var _Object$seal = __webpack_require__(39)['default'];
2153
+ var _Object$seal = __webpack_require__(78)['default'];
1415
2154
 
1416
- var _Object$keys = __webpack_require__(13)['default'];
2155
+ var _Object$keys = __webpack_require__(60)['default'];
1417
2156
 
1418
2157
  var _interopRequireWildcard = __webpack_require__(3)['default'];
1419
2158
 
@@ -1439,9 +2178,9 @@ return /******/ (function(modules) { // webpackBootstrap
1439
2178
 
1440
2179
  var _helpers = __webpack_require__(10);
1441
2180
 
1442
- var _internalWrapHelper = __webpack_require__(43);
2181
+ var _internalWrapHelper = __webpack_require__(81);
1443
2182
 
1444
- var _internalProtoAccess = __webpack_require__(33);
2183
+ var _internalProtoAccess = __webpack_require__(73);
1445
2184
 
1446
2185
  function checkRevision(compilerInfo) {
1447
2186
  var compilerRevision = compilerInfo && compilerInfo[0] || 1,
@@ -1488,16 +2227,14 @@ return /******/ (function(modules) { // webpackBootstrap
1488
2227
  }
1489
2228
  partial = env.VM.resolvePartial.call(this, partial, context, options);
1490
2229
 
1491
- var extendedOptions = Utils.extend({}, options, {
1492
- hooks: this.hooks,
1493
- protoAccessControl: this.protoAccessControl
1494
- });
2230
+ options.hooks = this.hooks;
2231
+ options.protoAccessControl = this.protoAccessControl;
1495
2232
 
1496
- var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);
2233
+ var result = env.VM.invokePartial.call(this, partial, context, options);
1497
2234
 
1498
2235
  if (result == null && env.compile) {
1499
2236
  options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
1500
- result = options.partials[options.name](context, extendedOptions);
2237
+ result = options.partials[options.name](context, options);
1501
2238
  }
1502
2239
  if (result != null) {
1503
2240
  if (options.indent) {
@@ -1546,7 +2283,7 @@ return /******/ (function(modules) { // webpackBootstrap
1546
2283
  for (var i = 0; i < len; i++) {
1547
2284
  var result = depths[i] && container.lookupProperty(depths[i], name);
1548
2285
  if (result != null) {
1549
- return depths[i][name];
2286
+ return result;
1550
2287
  }
1551
2288
  }
1552
2289
  },
@@ -1628,8 +2365,9 @@ return /******/ (function(modules) { // webpackBootstrap
1628
2365
 
1629
2366
  ret._setup = function (options) {
1630
2367
  if (!options.partial) {
1631
- var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);
1632
- wrapHelpersToPassLookupProperty(mergedHelpers, container);
2368
+ var mergedHelpers = {};
2369
+ addHelpers(mergedHelpers, env.helpers, container);
2370
+ addHelpers(mergedHelpers, options.helpers, container);
1633
2371
  container.helpers = mergedHelpers;
1634
2372
 
1635
2373
  if (templateSpec.usePartial) {
@@ -1695,21 +2433,21 @@ return /******/ (function(modules) { // webpackBootstrap
1695
2433
  function resolvePartial(partial, context, options) {
1696
2434
  if (!partial) {
1697
2435
  if (options.name === '@partial-block') {
1698
- partial = options.data['partial-block'];
2436
+ partial = lookupOwnProperty(options.data, 'partial-block');
1699
2437
  } else {
1700
- partial = options.partials[options.name];
2438
+ partial = lookupOwnProperty(options.partials, options.name);
1701
2439
  }
1702
2440
  } else if (!partial.call && !options.name) {
1703
2441
  // This is a dynamic partial that returned a string
1704
2442
  options.name = partial;
1705
- partial = options.partials[partial];
2443
+ partial = lookupOwnProperty(options.partials, partial);
1706
2444
  }
1707
2445
  return partial;
1708
2446
  }
1709
2447
 
1710
2448
  function invokePartial(partial, context, options) {
1711
2449
  // Use the current closure context to save the partial-block if this partial
1712
- var currentPartialBlock = options.data && options.data['partial-block'];
2450
+ var currentPartialBlock = lookupOwnProperty(options.data, 'partial-block');
1713
2451
  options.partial = true;
1714
2452
  if (options.ids) {
1715
2453
  options.data.contextPath = options.ids[0] || options.data.contextPath;
@@ -1751,6 +2489,12 @@ return /******/ (function(modules) { // webpackBootstrap
1751
2489
  return '';
1752
2490
  }
1753
2491
 
2492
+ function lookupOwnProperty(obj, name) {
2493
+ if (obj && Object.prototype.hasOwnProperty.call(obj, name)) {
2494
+ return obj[name];
2495
+ }
2496
+ }
2497
+
1754
2498
  function initData(context, data) {
1755
2499
  if (!data || !('root' in data)) {
1756
2500
  data = data ? _base.createFrame(data) : {};
@@ -1768,9 +2512,10 @@ return /******/ (function(modules) { // webpackBootstrap
1768
2512
  return prog;
1769
2513
  }
1770
2514
 
1771
- function wrapHelpersToPassLookupProperty(mergedHelpers, container) {
1772
- _Object$keys(mergedHelpers).forEach(function (helperName) {
1773
- var helper = mergedHelpers[helperName];
2515
+ function addHelpers(mergedHelpers, helpers, container) {
2516
+ if (!helpers) return;
2517
+ _Object$keys(helpers).forEach(function (helperName) {
2518
+ var helper = helpers[helperName];
1774
2519
  mergedHelpers[helperName] = passLookupPropertyOption(helper, container);
1775
2520
  });
1776
2521
  }
@@ -1778,46 +2523,39 @@ return /******/ (function(modules) { // webpackBootstrap
1778
2523
  function passLookupPropertyOption(helper, container) {
1779
2524
  var lookupProperty = container.lookupProperty;
1780
2525
  return _internalWrapHelper.wrapHelper(helper, function (options) {
1781
- return Utils.extend({ lookupProperty: lookupProperty }, options);
2526
+ options.lookupProperty = lookupProperty;
2527
+ return options;
1782
2528
  });
1783
2529
  }
1784
2530
 
1785
2531
  /***/ }),
1786
- /* 39 */
2532
+ /* 78 */
1787
2533
  /***/ (function(module, exports, __webpack_require__) {
1788
2534
 
1789
- module.exports = { "default": __webpack_require__(40), __esModule: true };
2535
+ module.exports = { "default": __webpack_require__(79), __esModule: true };
1790
2536
 
1791
2537
  /***/ }),
1792
- /* 40 */
2538
+ /* 79 */
1793
2539
  /***/ (function(module, exports, __webpack_require__) {
1794
2540
 
1795
- __webpack_require__(41);
2541
+ __webpack_require__(80);
1796
2542
  module.exports = __webpack_require__(21).Object.seal;
1797
2543
 
1798
2544
  /***/ }),
1799
- /* 41 */
2545
+ /* 80 */
1800
2546
  /***/ (function(module, exports, __webpack_require__) {
1801
2547
 
1802
2548
  // 19.1.2.17 Object.seal(O)
1803
- var isObject = __webpack_require__(42);
2549
+ var isObject = __webpack_require__(40);
1804
2550
 
1805
- __webpack_require__(18)('seal', function($seal){
2551
+ __webpack_require__(64)('seal', function($seal){
1806
2552
  return function seal(it){
1807
2553
  return $seal && isObject(it) ? $seal(it) : it;
1808
2554
  };
1809
2555
  });
1810
2556
 
1811
2557
  /***/ }),
1812
- /* 42 */
1813
- /***/ (function(module, exports) {
1814
-
1815
- module.exports = function(it){
1816
- return typeof it === 'object' ? it !== null : typeof it === 'function';
1817
- };
1818
-
1819
- /***/ }),
1820
- /* 43 */
2558
+ /* 81 */
1821
2559
  /***/ (function(module, exports) {
1822
2560
 
1823
2561
  'use strict';
@@ -1840,31 +2578,41 @@ return /******/ (function(modules) { // webpackBootstrap
1840
2578
  }
1841
2579
 
1842
2580
  /***/ }),
1843
- /* 44 */
2581
+ /* 82 */
1844
2582
  /***/ (function(module, exports) {
1845
2583
 
1846
- /* WEBPACK VAR INJECTION */(function(global) {'use strict';
2584
+ /* global globalThis */
2585
+ 'use strict';
1847
2586
 
1848
2587
  exports.__esModule = true;
1849
2588
 
1850
2589
  exports['default'] = function (Handlebars) {
1851
2590
  /* istanbul ignore next */
1852
- var root = typeof global !== 'undefined' ? global : window,
1853
- $Handlebars = root.Handlebars;
2591
+ // https://mathiasbynens.be/notes/globalthis
2592
+ (function () {
2593
+ if (typeof globalThis === 'object') return;
2594
+ Object.prototype.__defineGetter__('__magic__', function () {
2595
+ return this;
2596
+ });
2597
+ __magic__.globalThis = __magic__; // eslint-disable-line no-undef
2598
+ delete Object.prototype.__magic__;
2599
+ })();
2600
+
2601
+ var $Handlebars = globalThis.Handlebars;
2602
+
1854
2603
  /* istanbul ignore next */
1855
2604
  Handlebars.noConflict = function () {
1856
- if (root.Handlebars === Handlebars) {
1857
- root.Handlebars = $Handlebars;
2605
+ if (globalThis.Handlebars === Handlebars) {
2606
+ globalThis.Handlebars = $Handlebars;
1858
2607
  }
1859
2608
  return Handlebars;
1860
2609
  };
1861
2610
  };
1862
2611
 
1863
2612
  module.exports = exports['default'];
1864
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
1865
2613
 
1866
2614
  /***/ }),
1867
- /* 45 */
2615
+ /* 83 */
1868
2616
  /***/ (function(module, exports) {
1869
2617
 
1870
2618
  'use strict';
@@ -1899,11 +2647,13 @@ return /******/ (function(modules) { // webpackBootstrap
1899
2647
  module.exports = exports['default'];
1900
2648
 
1901
2649
  /***/ }),
1902
- /* 46 */
2650
+ /* 84 */
1903
2651
  /***/ (function(module, exports, __webpack_require__) {
1904
2652
 
1905
2653
  'use strict';
1906
2654
 
2655
+ var _Object$keys = __webpack_require__(60)['default'];
2656
+
1907
2657
  var _interopRequireDefault = __webpack_require__(1)['default'];
1908
2658
 
1909
2659
  var _interopRequireWildcard = __webpack_require__(3)['default'];
@@ -1912,18 +2662,22 @@ return /******/ (function(modules) { // webpackBootstrap
1912
2662
  exports.parseWithoutProcessing = parseWithoutProcessing;
1913
2663
  exports.parse = parse;
1914
2664
 
1915
- var _parser = __webpack_require__(47);
2665
+ var _parser = __webpack_require__(85);
1916
2666
 
1917
2667
  var _parser2 = _interopRequireDefault(_parser);
1918
2668
 
1919
- var _whitespaceControl = __webpack_require__(48);
2669
+ var _whitespaceControl = __webpack_require__(86);
1920
2670
 
1921
2671
  var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
1922
2672
 
1923
- var _helpers = __webpack_require__(50);
2673
+ var _helpers = __webpack_require__(88);
1924
2674
 
1925
2675
  var Helpers = _interopRequireWildcard(_helpers);
1926
2676
 
2677
+ var _exception = __webpack_require__(6);
2678
+
2679
+ var _exception2 = _interopRequireDefault(_exception);
2680
+
1927
2681
  var _utils = __webpack_require__(5);
1928
2682
 
1929
2683
  exports.parser = _parser2['default'];
@@ -1934,6 +2688,9 @@ return /******/ (function(modules) { // webpackBootstrap
1934
2688
  function parseWithoutProcessing(input, options) {
1935
2689
  // Just return if an already-compiled AST was passed in.
1936
2690
  if (input.type === 'Program') {
2691
+ // When a pre-parsed AST is passed in, validate all node values to prevent
2692
+ // code injection via type-confused literals.
2693
+ validateInputAst(input);
1937
2694
  return input;
1938
2695
  }
1939
2696
 
@@ -1956,8 +2713,60 @@ return /******/ (function(modules) { // webpackBootstrap
1956
2713
  return strip.accept(ast);
1957
2714
  }
1958
2715
 
2716
+ function validateInputAst(ast) {
2717
+ validateAstNode(ast);
2718
+ }
2719
+
2720
+ function validateAstNode(node) {
2721
+ if (node == null) {
2722
+ return;
2723
+ }
2724
+
2725
+ if (Array.isArray(node)) {
2726
+ node.forEach(validateAstNode);
2727
+ return;
2728
+ }
2729
+
2730
+ if (typeof node !== 'object') {
2731
+ return;
2732
+ }
2733
+
2734
+ if (node.type === 'PathExpression') {
2735
+ if (!isValidDepth(node.depth)) {
2736
+ throw new _exception2['default']('Invalid AST: PathExpression.depth must be an integer');
2737
+ }
2738
+ if (!Array.isArray(node.parts)) {
2739
+ throw new _exception2['default']('Invalid AST: PathExpression.parts must be an array');
2740
+ }
2741
+ for (var i = 0; i < node.parts.length; i++) {
2742
+ if (typeof node.parts[i] !== 'string') {
2743
+ throw new _exception2['default']('Invalid AST: PathExpression.parts must only contain strings');
2744
+ }
2745
+ }
2746
+ } else if (node.type === 'NumberLiteral') {
2747
+ if (typeof node.value !== 'number' || !isFinite(node.value)) {
2748
+ throw new _exception2['default']('Invalid AST: NumberLiteral.value must be a number');
2749
+ }
2750
+ } else if (node.type === 'BooleanLiteral') {
2751
+ if (typeof node.value !== 'boolean') {
2752
+ throw new _exception2['default']('Invalid AST: BooleanLiteral.value must be a boolean');
2753
+ }
2754
+ }
2755
+
2756
+ _Object$keys(node).forEach(function (propertyName) {
2757
+ if (propertyName === 'loc') {
2758
+ return;
2759
+ }
2760
+ validateAstNode(node[propertyName]);
2761
+ });
2762
+ }
2763
+
2764
+ function isValidDepth(depth) {
2765
+ return typeof depth === 'number' && isFinite(depth) && Math.floor(depth) === depth && depth >= 0;
2766
+ }
2767
+
1959
2768
  /***/ }),
1960
- /* 47 */
2769
+ /* 85 */
1961
2770
  /***/ (function(module, exports) {
1962
2771
 
1963
2772
  // File ignored in coverage tests via setting in .istanbul.yml
@@ -2698,7 +3507,7 @@ return /******/ (function(modules) { // webpackBootstrap
2698
3507
  module.exports = exports["default"];
2699
3508
 
2700
3509
  /***/ }),
2701
- /* 48 */
3510
+ /* 86 */
2702
3511
  /***/ (function(module, exports, __webpack_require__) {
2703
3512
 
2704
3513
  'use strict';
@@ -2707,7 +3516,7 @@ return /******/ (function(modules) { // webpackBootstrap
2707
3516
 
2708
3517
  exports.__esModule = true;
2709
3518
 
2710
- var _visitor = __webpack_require__(49);
3519
+ var _visitor = __webpack_require__(87);
2711
3520
 
2712
3521
  var _visitor2 = _interopRequireDefault(_visitor);
2713
3522
 
@@ -2922,7 +3731,7 @@ return /******/ (function(modules) { // webpackBootstrap
2922
3731
  module.exports = exports['default'];
2923
3732
 
2924
3733
  /***/ }),
2925
- /* 49 */
3734
+ /* 87 */
2926
3735
  /***/ (function(module, exports, __webpack_require__) {
2927
3736
 
2928
3737
  'use strict';
@@ -3065,7 +3874,7 @@ return /******/ (function(modules) { // webpackBootstrap
3065
3874
  module.exports = exports['default'];
3066
3875
 
3067
3876
  /***/ }),
3068
- /* 50 */
3877
+ /* 88 */
3069
3878
  /***/ (function(module, exports, __webpack_require__) {
3070
3879
 
3071
3880
  'use strict';
@@ -3296,14 +4105,14 @@ return /******/ (function(modules) { // webpackBootstrap
3296
4105
  }
3297
4106
 
3298
4107
  /***/ }),
3299
- /* 51 */
4108
+ /* 89 */
3300
4109
  /***/ (function(module, exports, __webpack_require__) {
3301
4110
 
3302
4111
  /* eslint-disable new-cap */
3303
4112
 
3304
4113
  'use strict';
3305
4114
 
3306
- var _Object$create = __webpack_require__(34)['default'];
4115
+ var _Object$create = __webpack_require__(74)['default'];
3307
4116
 
3308
4117
  var _interopRequireDefault = __webpack_require__(1)['default'];
3309
4118
 
@@ -3318,7 +4127,7 @@ return /******/ (function(modules) { // webpackBootstrap
3318
4127
 
3319
4128
  var _utils = __webpack_require__(5);
3320
4129
 
3321
- var _ast = __webpack_require__(45);
4130
+ var _ast = __webpack_require__(83);
3322
4131
 
3323
4132
  var _ast2 = _interopRequireDefault(_ast);
3324
4133
 
@@ -3867,12 +4676,12 @@ return /******/ (function(modules) { // webpackBootstrap
3867
4676
  }
3868
4677
 
3869
4678
  /***/ }),
3870
- /* 52 */
4679
+ /* 90 */
3871
4680
  /***/ (function(module, exports, __webpack_require__) {
3872
4681
 
3873
4682
  'use strict';
3874
4683
 
3875
- var _Object$keys = __webpack_require__(13)['default'];
4684
+ var _Object$keys = __webpack_require__(60)['default'];
3876
4685
 
3877
4686
  var _interopRequireDefault = __webpack_require__(1)['default'];
3878
4687
 
@@ -3886,7 +4695,7 @@ return /******/ (function(modules) { // webpackBootstrap
3886
4695
 
3887
4696
  var _utils = __webpack_require__(5);
3888
4697
 
3889
- var _codeGen = __webpack_require__(53);
4698
+ var _codeGen = __webpack_require__(91);
3890
4699
 
3891
4700
  var _codeGen2 = _interopRequireDefault(_codeGen);
3892
4701
 
@@ -4031,12 +4840,10 @@ return /******/ (function(modules) { // webpackBootstrap
4031
4840
  var decorators = _context.decorators;
4032
4841
 
4033
4842
  for (i = 0, l = programs.length; i < l; i++) {
4034
- if (programs[i]) {
4035
- ret[i] = programs[i];
4036
- if (decorators[i]) {
4037
- ret[i + '_d'] = decorators[i];
4038
- ret.useDecorators = true;
4039
- }
4843
+ ret[i] = programs[i];
4844
+ if (decorators[i]) {
4845
+ ret[i + '_d'] = decorators[i];
4846
+ ret.useDecorators = true;
4040
4847
  }
4041
4848
  }
4042
4849
 
@@ -4362,20 +5169,21 @@ return /******/ (function(modules) { // webpackBootstrap
4362
5169
  this.resolvePath('data', parts, 0, true, strict);
4363
5170
  },
4364
5171
 
4365
- resolvePath: function resolvePath(type, parts, i, falsy, strict) {
5172
+ resolvePath: function resolvePath(type, parts, startPartIndex, falsy, strict) {
4366
5173
  // istanbul ignore next
4367
5174
 
4368
5175
  var _this2 = this;
4369
5176
 
4370
5177
  if (this.options.strict || this.options.assumeObjects) {
4371
- this.push(strictLookup(this.options.strict && strict, this, parts, type));
5178
+ this.push(strictLookup(this.options.strict && strict, this, parts, startPartIndex, type));
4372
5179
  return;
4373
5180
  }
4374
5181
 
4375
5182
  var len = parts.length;
4376
- for (; i < len; i++) {
5183
+
5184
+ var _loop = function (i) {
4377
5185
  /* eslint-disable no-loop-func */
4378
- this.replaceStack(function (current) {
5186
+ _this2.replaceStack(function (current) {
4379
5187
  var lookup = _this2.nameLookup(current, parts[i], type);
4380
5188
  // We want to ensure that zero and false are handled properly if the context (falsy flag)
4381
5189
  // needs to have the special handling for these values.
@@ -4387,6 +5195,10 @@ return /******/ (function(modules) { // webpackBootstrap
4387
5195
  }
4388
5196
  });
4389
5197
  /* eslint-enable no-loop-func */
5198
+ };
5199
+
5200
+ for (var i = startPartIndex; i < len; i++) {
5201
+ _loop(i);
4390
5202
  }
4391
5203
  },
4392
5204
 
@@ -4504,7 +5316,12 @@ return /******/ (function(modules) { // webpackBootstrap
4504
5316
  var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
4505
5317
  options = this.setupHelperArgs(name, paramSize);
4506
5318
 
4507
- this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);
5319
+ // Store the resolved decorator in a variable and verify it is a function before
5320
+ // calling it. Without this, unregistered decorators can cause an unhandled TypeError
5321
+ // (calling undefined), which crashes the process — enabling Denial of Service.
5322
+ this.decorators.push(['var decorator = ', foundDecorator, ';']);
5323
+ this.decorators.push(['if (typeof decorator !== "function") { throw new Error(', this.quotedString('Missing decorator: "' + name + '"'), '); }']);
5324
+ this.decorators.push(['fn = ', this.decorators.functionCall('decorator', '', ['fn', 'props', 'container', options]), ' || fn;']);
4508
5325
  },
4509
5326
 
4510
5327
  // [invokeHelper]
@@ -4687,8 +5504,8 @@ return /******/ (function(modules) { // webpackBootstrap
4687
5504
  var existing = this.matchExistingProgram(child);
4688
5505
 
4689
5506
  if (existing == null) {
4690
- this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
4691
- var index = this.context.programs.length;
5507
+ // Placeholder to prevent name conflicts for nested children
5508
+ var index = this.context.programs.push('') - 1;
4692
5509
  child.index = index;
4693
5510
  child.name = 'program' + index;
4694
5511
  this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
@@ -5008,20 +5825,19 @@ return /******/ (function(modules) { // webpackBootstrap
5008
5825
  return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
5009
5826
  };
5010
5827
 
5011
- function strictLookup(requireTerminal, compiler, parts, type) {
5828
+ function strictLookup(requireTerminal, compiler, parts, startPartIndex, type) {
5012
5829
  var stack = compiler.popStack(),
5013
- i = 0,
5014
5830
  len = parts.length;
5015
5831
  if (requireTerminal) {
5016
5832
  len--;
5017
5833
  }
5018
5834
 
5019
- for (; i < len; i++) {
5835
+ for (var i = startPartIndex; i < len; i++) {
5020
5836
  stack = compiler.nameLookup(stack, parts[i], type);
5021
5837
  }
5022
5838
 
5023
5839
  if (requireTerminal) {
5024
- return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];
5840
+ return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[len]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];
5025
5841
  } else {
5026
5842
  return stack;
5027
5843
  }
@@ -5031,13 +5847,13 @@ return /******/ (function(modules) { // webpackBootstrap
5031
5847
  module.exports = exports['default'];
5032
5848
 
5033
5849
  /***/ }),
5034
- /* 53 */
5850
+ /* 91 */
5035
5851
  /***/ (function(module, exports, __webpack_require__) {
5036
5852
 
5037
- /* global define */
5853
+ /* global define, require */
5038
5854
  'use strict';
5039
5855
 
5040
- var _Object$keys = __webpack_require__(13)['default'];
5856
+ var _Object$keys = __webpack_require__(60)['default'];
5041
5857
 
5042
5858
  exports.__esModule = true;
5043
5859
 
@@ -5048,7 +5864,7 @@ return /******/ (function(modules) { // webpackBootstrap
5048
5864
  try {
5049
5865
  /* istanbul ignore next */
5050
5866
  if (false) {
5051
- // We don't support this in AMD environments. For these environments, we asusme that
5867
+ // We don't support this in AMD environments. For these environments, we assume that
5052
5868
  // they are running on the browser and thus have no need for the source-map library.
5053
5869
  var SourceMap = require('source-map');
5054
5870
  SourceNode = SourceMap.SourceNode;