ember-source 4.5.0-alpha.3 → 4.5.0-alpha.4

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.
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 4.5.0-alpha.3
9
+ * @version 4.5.0-alpha.4
10
10
  */
11
11
  /* eslint-disable no-var */
12
12
 
@@ -5946,6 +5946,12 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
5946
5946
 
5947
5947
 
5948
5948
  (0, _globalContext.default)({
5949
+ FEATURES: {
5950
+ DEFAULT_HELPER_MANAGER: Boolean(true
5951
+ /* EMBER_DEFAULT_HELPER_MANAGER */
5952
+ )
5953
+ },
5954
+
5949
5955
  scheduleRevalidate() {
5950
5956
  _runloop._backburner.ensureInstance();
5951
5957
  },
@@ -28606,7 +28612,7 @@ define("@ember/canary-features/index", ["exports", "@ember/-internals/environmen
28606
28612
  Object.defineProperty(_exports, "__esModule", {
28607
28613
  value: true
28608
28614
  });
28609
- _exports.FEATURES = _exports.EMBER_UNIQUE_ID_HELPER = _exports.EMBER_LIBRARIES_ISREGISTERED = _exports.EMBER_IMPROVED_INSTRUMENTATION = _exports.DEFAULT_FEATURES = void 0;
28615
+ _exports.FEATURES = _exports.EMBER_UNIQUE_ID_HELPER = _exports.EMBER_LIBRARIES_ISREGISTERED = _exports.EMBER_IMPROVED_INSTRUMENTATION = _exports.EMBER_DEFAULT_HELPER_MANAGER = _exports.DEFAULT_FEATURES = void 0;
28610
28616
  _exports.isEnabled = isEnabled;
28611
28617
 
28612
28618
  /**
@@ -28622,7 +28628,8 @@ define("@ember/canary-features/index", ["exports", "@ember/-internals/environmen
28622
28628
  var DEFAULT_FEATURES = {
28623
28629
  EMBER_LIBRARIES_ISREGISTERED: null,
28624
28630
  EMBER_IMPROVED_INSTRUMENTATION: null,
28625
- EMBER_UNIQUE_ID_HELPER: true
28631
+ EMBER_UNIQUE_ID_HELPER: true,
28632
+ EMBER_DEFAULT_HELPER_MANAGER: true
28626
28633
  };
28627
28634
  /**
28628
28635
  The hash of enabled Canary features. Add to this, any canary features
@@ -28680,6 +28687,8 @@ define("@ember/canary-features/index", ["exports", "@ember/-internals/environmen
28680
28687
  _exports.EMBER_IMPROVED_INSTRUMENTATION = EMBER_IMPROVED_INSTRUMENTATION;
28681
28688
  var EMBER_UNIQUE_ID_HELPER = featureValue(FEATURES.EMBER_UNIQUE_ID_HELPER);
28682
28689
  _exports.EMBER_UNIQUE_ID_HELPER = EMBER_UNIQUE_ID_HELPER;
28690
+ var EMBER_DEFAULT_HELPER_MANAGER = featureValue(FEATURES.EMBER_DEFAULT_HELPER_MANAGER);
28691
+ _exports.EMBER_DEFAULT_HELPER_MANAGER = EMBER_DEFAULT_HELPER_MANAGER;
28683
28692
  });
28684
28693
  define("@ember/component/helper", ["exports", "@ember/-internals/glimmer"], function (_exports, _glimmer) {
28685
28694
  "use strict";
@@ -35417,7 +35426,7 @@ define("@glimmer/global-context", ["exports"], function (_exports) {
35417
35426
  Object.defineProperty(_exports, "__esModule", {
35418
35427
  value: true
35419
35428
  });
35420
- _exports.warnIfStyleNotTrusted = _exports.toIterator = _exports.toBool = _exports.testOverrideGlobalContext = _exports.setProp = _exports.setPath = _exports.scheduleRevalidate = _exports.scheduleDestroyed = _exports.scheduleDestroy = _exports.getProp = _exports.getPath = _exports.deprecate = _exports.default = _exports.assertGlobalContextWasSet = _exports.assert = void 0;
35429
+ _exports.warnIfStyleNotTrusted = _exports.toIterator = _exports.toBool = _exports.testOverrideGlobalContext = _exports.setProp = _exports.setPath = _exports.scheduleRevalidate = _exports.scheduleDestroyed = _exports.scheduleDestroy = _exports.getProp = _exports.getPath = _exports.deprecate = _exports.default = _exports.assertGlobalContextWasSet = _exports.assert = _exports.FEATURE_DEFAULT_HELPER_MANAGER = void 0;
35421
35430
 
35422
35431
  /**
35423
35432
  * This package contains global context functions for Glimmer. These functions
@@ -35433,12 +35442,16 @@ define("@glimmer/global-context", ["exports"], function (_exports) {
35433
35442
  * - Never change over time
35434
35443
  *
35435
35444
  */
35445
+ var FEATURE_DEFAULT_HELPER_MANAGER = true; //////////
35436
35446
 
35437
35447
  /**
35438
35448
  * Schedules a VM revalidation.
35439
35449
  *
35440
35450
  * Note: this has a default value so that tags can warm themselves when first loaded.
35441
35451
  */
35452
+
35453
+ _exports.FEATURE_DEFAULT_HELPER_MANAGER = FEATURE_DEFAULT_HELPER_MANAGER;
35454
+
35442
35455
  var scheduleRevalidate = () => {};
35443
35456
  /**
35444
35457
  * Schedules a destructor to run
@@ -35540,6 +35553,8 @@ define("@glimmer/global-context", ["exports"], function (_exports) {
35540
35553
  var globalContextWasSet = false;
35541
35554
 
35542
35555
  function setGlobalContext(context) {
35556
+ var _a;
35557
+
35543
35558
  if (true
35544
35559
  /* DEBUG */
35545
35560
  ) {
@@ -35562,6 +35577,10 @@ define("@glimmer/global-context", ["exports"], function (_exports) {
35562
35577
  _exports.warnIfStyleNotTrusted = warnIfStyleNotTrusted = context.warnIfStyleNotTrusted;
35563
35578
  _exports.assert = assert = context.assert;
35564
35579
  _exports.deprecate = deprecate = context.deprecate;
35580
+
35581
+ if (typeof ((_a = context.FEATURES) === null || _a === void 0 ? void 0 : _a.DEFAULT_HELPER_MANAGER) === 'boolean') {
35582
+ _exports.FEATURE_DEFAULT_HELPER_MANAGER = FEATURE_DEFAULT_HELPER_MANAGER = context.FEATURES.DEFAULT_HELPER_MANAGER;
35583
+ }
35565
35584
  }
35566
35585
 
35567
35586
  var assertGlobalContextWasSet;
@@ -35713,7 +35732,7 @@ define("@glimmer/low-level", ["exports"], function (_exports) {
35713
35732
 
35714
35733
  _exports.Stack = Stack;
35715
35734
  });
35716
- define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@glimmer/validator", "@glimmer/destroyable"], function (_exports, _util, _reference, _validator, _destroyable) {
35735
+ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@glimmer/validator", "@glimmer/destroyable", "@glimmer/global-context"], function (_exports, _util, _reference, _validator, _destroyable, _globalContext) {
35717
35736
  "use strict";
35718
35737
 
35719
35738
  Object.defineProperty(_exports, "__esModule", {
@@ -35744,137 +35763,6 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
35744
35763
  _exports.setInternalHelperManager = setInternalHelperManager;
35745
35764
  _exports.setInternalModifierManager = setInternalModifierManager;
35746
35765
  _exports.setModifierManager = setModifierManager;
35747
- var COMPONENT_MANAGERS = new WeakMap();
35748
- var MODIFIER_MANAGERS = new WeakMap();
35749
- var HELPER_MANAGERS = new WeakMap(); ///////////
35750
-
35751
- var getPrototypeOf = Object.getPrototypeOf;
35752
-
35753
- function setManager(map, manager, obj) {
35754
- if (true
35755
- /* DEBUG */
35756
- && (typeof obj !== 'object' || obj === null) && typeof obj !== 'function') {
35757
- throw new Error(`Attempted to set a manager on a non-object value. Managers can only be associated with objects or functions. Value was ${(0, _util.debugToString)(obj)}`);
35758
- }
35759
-
35760
- if (true
35761
- /* DEBUG */
35762
- && map.has(obj)) {
35763
- throw new Error(`Attempted to set the same type of manager multiple times on a value. You can only associate one manager of each type with a given value. Value was ${(0, _util.debugToString)(obj)}`);
35764
- }
35765
-
35766
- map.set(obj, manager);
35767
- return obj;
35768
- }
35769
-
35770
- function getManager(map, obj) {
35771
- var pointer = obj;
35772
-
35773
- while (pointer !== undefined && pointer !== null) {
35774
- var manager = map.get(pointer);
35775
-
35776
- if (manager !== undefined) {
35777
- return manager;
35778
- }
35779
-
35780
- pointer = getPrototypeOf(pointer);
35781
- }
35782
-
35783
- return undefined;
35784
- } ///////////
35785
-
35786
-
35787
- function setInternalModifierManager(manager, definition) {
35788
- return setManager(MODIFIER_MANAGERS, manager, definition);
35789
- }
35790
-
35791
- function getInternalModifierManager(definition, isOptional) {
35792
- if (true
35793
- /* DEBUG */
35794
- && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
35795
- throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);
35796
- }
35797
-
35798
- var manager = getManager(MODIFIER_MANAGERS, definition);
35799
-
35800
- if (manager === undefined) {
35801
- if (isOptional === true) {
35802
- return null;
35803
- } else if (true
35804
- /* DEBUG */
35805
- ) {
35806
- throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
35807
- }
35808
- }
35809
-
35810
- return manager;
35811
- }
35812
-
35813
- function setInternalHelperManager(manager, definition) {
35814
- return setManager(HELPER_MANAGERS, manager, definition);
35815
- }
35816
-
35817
- function getInternalHelperManager(definition, isOptional) {
35818
- if (true
35819
- /* DEBUG */
35820
- && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
35821
- throw new Error(`Attempted to use a value as a helper, but it was not an object or function. Helper definitions must be objects or functions with an associated helper manager. The value was: ${definition}`);
35822
- }
35823
-
35824
- var manager = getManager(HELPER_MANAGERS, definition);
35825
-
35826
- if (manager === undefined) {
35827
- if (isOptional === true) {
35828
- return null;
35829
- } else if (true
35830
- /* DEBUG */
35831
- ) {
35832
- throw new Error(`Attempted to load a helper, but there wasn't a helper manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
35833
- }
35834
- }
35835
-
35836
- return manager;
35837
- }
35838
-
35839
- function setInternalComponentManager(factory, obj) {
35840
- return setManager(COMPONENT_MANAGERS, factory, obj);
35841
- }
35842
-
35843
- function getInternalComponentManager(definition, isOptional) {
35844
- if (true
35845
- /* DEBUG */
35846
- && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
35847
- throw new Error(`Attempted to use a value as a component, but it was not an object or function. Component definitions must be objects or functions with an associated component manager. The value was: ${definition}`);
35848
- }
35849
-
35850
- var manager = getManager(COMPONENT_MANAGERS, definition);
35851
-
35852
- if (manager === undefined) {
35853
- if (isOptional === true) {
35854
- return null;
35855
- } else if (true
35856
- /* DEBUG */
35857
- ) {
35858
- throw new Error(`Attempted to load a component, but there wasn't a component manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
35859
- }
35860
- }
35861
-
35862
- return manager;
35863
- } ///////////
35864
-
35865
-
35866
- function hasInternalComponentManager(definition) {
35867
- return getManager(COMPONENT_MANAGERS, definition) !== undefined;
35868
- }
35869
-
35870
- function hasInternalHelperManager(definition) {
35871
- return getManager(HELPER_MANAGERS, definition) !== undefined;
35872
- }
35873
-
35874
- function hasInternalModifierManager(definition) {
35875
- return getManager(MODIFIER_MANAGERS, definition) !== undefined;
35876
- }
35877
-
35878
35766
  var FROM_CAPABILITIES = true
35879
35767
  /* DEBUG */
35880
35768
  ? new _util._WeakSet() : undefined;
@@ -36069,7 +35957,7 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36069
35957
  /* DEBUG */
36070
35958
  ) {
36071
35959
  var setHandler = function (_target, prop) {
36072
- throw new Error(`You attempted to set ${String(prop)} on the arguments of a component, helper, or modifier. Arguments are immutable and cannot be updated directly, they always represent the values that is passed down. If you want to set default values, you should use a getter and local tracked state instead.`);
35960
+ throw new Error(`You attempted to set ${String(prop)} on the arguments of a component, helper, or modifier. Arguments are immutable and cannot be updated directly; they always represent the values that are passed down. If you want to set default values, you should use a getter and local tracked state instead.`);
36073
35961
  };
36074
35962
 
36075
35963
  var forInDebugHandler = () => {
@@ -36145,6 +36033,325 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36145
36033
  };
36146
36034
  }
36147
36035
 
36036
+ function helperCapabilities(managerAPI, options) {
36037
+ if (options === void 0) {
36038
+ options = {};
36039
+ }
36040
+
36041
+ if (true
36042
+ /* DEBUG */
36043
+ && managerAPI !== '3.23') {
36044
+ throw new Error('Invalid helper manager compatibility specified');
36045
+ }
36046
+
36047
+ if (true
36048
+ /* DEBUG */
36049
+ && (!(options.hasValue || options.hasScheduledEffect) || options.hasValue && options.hasScheduledEffect)) {
36050
+ throw new Error('You must pass either the `hasValue` OR the `hasScheduledEffect` capability when defining a helper manager. Passing neither, or both, is not permitted.');
36051
+ }
36052
+
36053
+ if (true
36054
+ /* DEBUG */
36055
+ && options.hasScheduledEffect) {
36056
+ throw new Error('The `hasScheduledEffect` capability has not yet been implemented for helper managers. Please pass `hasValue` instead');
36057
+ }
36058
+
36059
+ return buildCapabilities({
36060
+ hasValue: Boolean(options.hasValue),
36061
+ hasDestroyable: Boolean(options.hasDestroyable),
36062
+ hasScheduledEffect: Boolean(options.hasScheduledEffect)
36063
+ });
36064
+ } ////////////
36065
+
36066
+
36067
+ function hasValue(manager) {
36068
+ return manager.capabilities.hasValue;
36069
+ }
36070
+
36071
+ function hasDestroyable(manager) {
36072
+ return manager.capabilities.hasDestroyable;
36073
+ } ////////////
36074
+
36075
+
36076
+ class CustomHelperManager {
36077
+ constructor(factory) {
36078
+ this.factory = factory;
36079
+ this.helperManagerDelegates = new WeakMap();
36080
+ this.undefinedDelegate = null;
36081
+ }
36082
+
36083
+ getDelegateForOwner(owner) {
36084
+ var delegate = this.helperManagerDelegates.get(owner);
36085
+
36086
+ if (delegate === undefined) {
36087
+ var {
36088
+ factory
36089
+ } = this;
36090
+ delegate = factory(owner);
36091
+
36092
+ if (true
36093
+ /* DEBUG */
36094
+ && !FROM_CAPABILITIES.has(delegate.capabilities)) {
36095
+ // TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
36096
+ throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
36097
+ }
36098
+
36099
+ this.helperManagerDelegates.set(owner, delegate);
36100
+ }
36101
+
36102
+ return delegate;
36103
+ }
36104
+
36105
+ getDelegateFor(owner) {
36106
+ if (owner === undefined) {
36107
+ var {
36108
+ undefinedDelegate
36109
+ } = this;
36110
+
36111
+ if (undefinedDelegate === null) {
36112
+ var {
36113
+ factory
36114
+ } = this;
36115
+ this.undefinedDelegate = undefinedDelegate = factory(undefined);
36116
+ }
36117
+
36118
+ return undefinedDelegate;
36119
+ } else {
36120
+ return this.getDelegateForOwner(owner);
36121
+ }
36122
+ }
36123
+
36124
+ getHelper(definition) {
36125
+ return (capturedArgs, owner) => {
36126
+ var _a, _b;
36127
+
36128
+ var manager = this.getDelegateFor(owner);
36129
+ var args = argsProxyFor(capturedArgs, 'helper');
36130
+ var bucket = manager.createHelper(definition, args);
36131
+
36132
+ if (hasValue(manager)) {
36133
+ var cache = (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, true
36134
+ /* DEBUG */
36135
+ && manager.getDebugName && manager.getDebugName(definition));
36136
+
36137
+ if (hasDestroyable(manager)) {
36138
+ (0, _destroyable.associateDestroyableChild)(cache, manager.getDestroyable(bucket));
36139
+ }
36140
+
36141
+ return cache;
36142
+ } else if (hasDestroyable(manager)) {
36143
+ var ref = (0, _reference.createConstRef)(undefined, true
36144
+ /* DEBUG */
36145
+ && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
36146
+ (0, _destroyable.associateDestroyableChild)(ref, manager.getDestroyable(bucket));
36147
+ return ref;
36148
+ } else {
36149
+ return _reference.UNDEFINED_REFERENCE;
36150
+ }
36151
+ };
36152
+ }
36153
+
36154
+ }
36155
+
36156
+ _exports.CustomHelperManager = CustomHelperManager;
36157
+
36158
+ class FunctionHelperManager {
36159
+ constructor() {
36160
+ this.capabilities = buildCapabilities({
36161
+ hasValue: true,
36162
+ hasDestroyable: false,
36163
+ hasScheduledEffect: false
36164
+ });
36165
+ }
36166
+
36167
+ createHelper(fn, args) {
36168
+ return {
36169
+ fn,
36170
+ args
36171
+ };
36172
+ }
36173
+
36174
+ getValue(_ref) {
36175
+ var {
36176
+ fn,
36177
+ args
36178
+ } = _ref;
36179
+
36180
+ if (Object.keys(args.named).length > 0) {
36181
+ var argsForFn = [...args.positional, args.named];
36182
+ return fn(...argsForFn);
36183
+ }
36184
+
36185
+ return fn(...args.positional);
36186
+ }
36187
+
36188
+ getDebugName(fn) {
36189
+ if (fn.name) {
36190
+ return `(helper function ${fn.name})`;
36191
+ }
36192
+
36193
+ return '(anonymous helper function)';
36194
+ }
36195
+
36196
+ }
36197
+
36198
+ var COMPONENT_MANAGERS = new WeakMap();
36199
+ var MODIFIER_MANAGERS = new WeakMap();
36200
+ var HELPER_MANAGERS = new WeakMap(); ///////////
36201
+
36202
+ var getPrototypeOf = Object.getPrototypeOf;
36203
+
36204
+ function setManager(map, manager, obj) {
36205
+ if (true
36206
+ /* DEBUG */
36207
+ && (typeof obj !== 'object' || obj === null) && typeof obj !== 'function') {
36208
+ throw new Error(`Attempted to set a manager on a non-object value. Managers can only be associated with objects or functions. Value was ${(0, _util.debugToString)(obj)}`);
36209
+ }
36210
+
36211
+ if (true
36212
+ /* DEBUG */
36213
+ && map.has(obj)) {
36214
+ throw new Error(`Attempted to set the same type of manager multiple times on a value. You can only associate one manager of each type with a given value. Value was ${(0, _util.debugToString)(obj)}`);
36215
+ }
36216
+
36217
+ map.set(obj, manager);
36218
+ return obj;
36219
+ }
36220
+
36221
+ function getManager(map, obj) {
36222
+ var pointer = obj;
36223
+
36224
+ while (pointer !== undefined && pointer !== null) {
36225
+ var manager = map.get(pointer);
36226
+
36227
+ if (manager !== undefined) {
36228
+ return manager;
36229
+ }
36230
+
36231
+ pointer = getPrototypeOf(pointer);
36232
+ }
36233
+
36234
+ return undefined;
36235
+ } ///////////
36236
+
36237
+
36238
+ function setInternalModifierManager(manager, definition) {
36239
+ return setManager(MODIFIER_MANAGERS, manager, definition);
36240
+ }
36241
+
36242
+ function getInternalModifierManager(definition, isOptional) {
36243
+ if (true
36244
+ /* DEBUG */
36245
+ && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
36246
+ throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);
36247
+ }
36248
+
36249
+ var manager = getManager(MODIFIER_MANAGERS, definition);
36250
+
36251
+ if (manager === undefined) {
36252
+ if (isOptional === true) {
36253
+ return null;
36254
+ } else if (true
36255
+ /* DEBUG */
36256
+ ) {
36257
+ throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
36258
+ }
36259
+ }
36260
+
36261
+ return manager;
36262
+ }
36263
+
36264
+ function setInternalHelperManager(manager, definition) {
36265
+ return setManager(HELPER_MANAGERS, manager, definition);
36266
+ }
36267
+
36268
+ var DEFAULT_MANAGER = new CustomHelperManager(() => new FunctionHelperManager());
36269
+
36270
+ function getInternalHelperManager(definition, isOptional) {
36271
+ if (true
36272
+ /* DEBUG */
36273
+ && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
36274
+ throw new Error(`Attempted to use a value as a helper, but it was not an object or function. Helper definitions must be objects or functions with an associated helper manager. The value was: ${definition}`);
36275
+ }
36276
+
36277
+ var manager = getManager(HELPER_MANAGERS, definition);
36278
+
36279
+ if (_globalContext.FEATURE_DEFAULT_HELPER_MANAGER) {
36280
+ // Functions are special-cased because functions are defined
36281
+ // as the "default" helper, per: https://github.com/emberjs/rfcs/pull/756
36282
+ if (manager === undefined && typeof definition === 'function') {
36283
+ manager = DEFAULT_MANAGER;
36284
+ }
36285
+ }
36286
+
36287
+ if (manager) {
36288
+ return manager;
36289
+ } else if (isOptional === true) {
36290
+ return null;
36291
+ } else if (true
36292
+ /* DEBUG */
36293
+ ) {
36294
+ throw new Error(`Attempted to load a helper, but there wasn't a helper manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
36295
+ }
36296
+
36297
+ return null;
36298
+ }
36299
+
36300
+ function setInternalComponentManager(factory, obj) {
36301
+ return setManager(COMPONENT_MANAGERS, factory, obj);
36302
+ }
36303
+
36304
+ function getInternalComponentManager(definition, isOptional) {
36305
+ if (true
36306
+ /* DEBUG */
36307
+ && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {
36308
+ throw new Error(`Attempted to use a value as a component, but it was not an object or function. Component definitions must be objects or functions with an associated component manager. The value was: ${definition}`);
36309
+ }
36310
+
36311
+ var manager = getManager(COMPONENT_MANAGERS, definition);
36312
+
36313
+ if (manager === undefined) {
36314
+ if (isOptional === true) {
36315
+ return null;
36316
+ } else if (true
36317
+ /* DEBUG */
36318
+ ) {
36319
+ throw new Error(`Attempted to load a component, but there wasn't a component manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
36320
+ }
36321
+ }
36322
+
36323
+ return manager;
36324
+ } ///////////
36325
+
36326
+
36327
+ function hasInternalComponentManager(definition) {
36328
+ return hasDefaultComponentManager(definition) || getManager(COMPONENT_MANAGERS, definition) !== undefined;
36329
+ }
36330
+
36331
+ function hasInternalHelperManager(definition) {
36332
+ return hasDefaultHelperManager(definition) || getManager(HELPER_MANAGERS, definition) !== undefined;
36333
+ }
36334
+
36335
+ function hasInternalModifierManager(definition) {
36336
+ return hasDefaultModifierManager(definition) || getManager(MODIFIER_MANAGERS, definition) !== undefined;
36337
+ }
36338
+
36339
+ function hasDefaultComponentManager(_definition) {
36340
+ return false;
36341
+ }
36342
+
36343
+ function hasDefaultHelperManager(definition) {
36344
+ if (_globalContext.FEATURE_DEFAULT_HELPER_MANAGER) {
36345
+ return typeof definition === 'function';
36346
+ }
36347
+
36348
+ return false;
36349
+ }
36350
+
36351
+ function hasDefaultModifierManager(_definition) {
36352
+ return false;
36353
+ }
36354
+
36148
36355
  var CAPABILITIES = {
36149
36356
  dynamicLayout: false,
36150
36357
  dynamicTag: false,
@@ -36278,22 +36485,22 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36278
36485
  }
36279
36486
  }
36280
36487
 
36281
- didCreate(_ref) {
36488
+ didCreate(_ref2) {
36282
36489
  var {
36283
36490
  component,
36284
36491
  delegate
36285
- } = _ref;
36492
+ } = _ref2;
36286
36493
 
36287
36494
  if (hasAsyncLifeCycleCallbacks(delegate)) {
36288
36495
  delegate.didCreateComponent(component);
36289
36496
  }
36290
36497
  }
36291
36498
 
36292
- didUpdate(_ref2) {
36499
+ didUpdate(_ref3) {
36293
36500
  var {
36294
36501
  component,
36295
36502
  delegate
36296
- } = _ref2;
36503
+ } = _ref3;
36297
36504
 
36298
36505
  if (hasAsyncUpdateHook(delegate)) {
36299
36506
  delegate.didUpdateComponent(component);
@@ -36304,11 +36511,11 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36304
36511
 
36305
36512
  didUpdateLayout() {}
36306
36513
 
36307
- getSelf(_ref3) {
36514
+ getSelf(_ref4) {
36308
36515
  var {
36309
36516
  component,
36310
36517
  delegate
36311
- } = _ref3;
36518
+ } = _ref4;
36312
36519
  return (0, _reference.createConstRef)(delegate.getContext(component), 'this');
36313
36520
  }
36314
36521
 
@@ -36445,27 +36652,27 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36445
36652
  return state;
36446
36653
  }
36447
36654
 
36448
- getDebugName(_ref4) {
36655
+ getDebugName(_ref5) {
36449
36656
  var {
36450
36657
  debugName
36451
- } = _ref4;
36658
+ } = _ref5;
36452
36659
  return debugName;
36453
36660
  }
36454
36661
 
36455
- getTag(_ref5) {
36662
+ getTag(_ref6) {
36456
36663
  var {
36457
36664
  tag
36458
- } = _ref5;
36665
+ } = _ref6;
36459
36666
  return tag;
36460
36667
  }
36461
36668
 
36462
- install(_ref6) {
36669
+ install(_ref7) {
36463
36670
  var {
36464
36671
  element,
36465
36672
  args,
36466
36673
  modifier,
36467
36674
  delegate
36468
- } = _ref6;
36675
+ } = _ref7;
36469
36676
  var {
36470
36677
  capabilities
36471
36678
  } = delegate;
@@ -36477,12 +36684,12 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36477
36684
  }
36478
36685
  }
36479
36686
 
36480
- update(_ref7) {
36687
+ update(_ref8) {
36481
36688
  var {
36482
36689
  args,
36483
36690
  modifier,
36484
36691
  delegate
36485
- } = _ref7;
36692
+ } = _ref8;
36486
36693
  var {
36487
36694
  capabilities
36488
36695
  } = delegate;
@@ -36502,128 +36709,6 @@ define("@glimmer/manager", ["exports", "@glimmer/util", "@glimmer/reference", "@
36502
36709
 
36503
36710
  _exports.CustomModifierManager = CustomModifierManager;
36504
36711
 
36505
- function helperCapabilities(managerAPI, options) {
36506
- if (options === void 0) {
36507
- options = {};
36508
- }
36509
-
36510
- if (true
36511
- /* DEBUG */
36512
- && managerAPI !== '3.23') {
36513
- throw new Error('Invalid helper manager compatibility specified');
36514
- }
36515
-
36516
- if (true
36517
- /* DEBUG */
36518
- && (!(options.hasValue || options.hasScheduledEffect) || options.hasValue && options.hasScheduledEffect)) {
36519
- throw new Error('You must pass either the `hasValue` OR the `hasScheduledEffect` capability when defining a helper manager. Passing neither, or both, is not permitted.');
36520
- }
36521
-
36522
- if (true
36523
- /* DEBUG */
36524
- && options.hasScheduledEffect) {
36525
- throw new Error('The `hasScheduledEffect` capability has not yet been implemented for helper managers. Please pass `hasValue` instead');
36526
- }
36527
-
36528
- return buildCapabilities({
36529
- hasValue: Boolean(options.hasValue),
36530
- hasDestroyable: Boolean(options.hasDestroyable),
36531
- hasScheduledEffect: Boolean(options.hasScheduledEffect)
36532
- });
36533
- } ////////////
36534
-
36535
-
36536
- function hasValue(manager) {
36537
- return manager.capabilities.hasValue;
36538
- }
36539
-
36540
- function hasDestroyable(manager) {
36541
- return manager.capabilities.hasDestroyable;
36542
- } ////////////
36543
-
36544
-
36545
- class CustomHelperManager {
36546
- constructor(factory) {
36547
- this.factory = factory;
36548
- this.helperManagerDelegates = new WeakMap();
36549
- this.undefinedDelegate = null;
36550
- }
36551
-
36552
- getDelegateForOwner(owner) {
36553
- var delegate = this.helperManagerDelegates.get(owner);
36554
-
36555
- if (delegate === undefined) {
36556
- var {
36557
- factory
36558
- } = this;
36559
- delegate = factory(owner);
36560
-
36561
- if (true
36562
- /* DEBUG */
36563
- && !FROM_CAPABILITIES.has(delegate.capabilities)) {
36564
- // TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
36565
- throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
36566
- }
36567
-
36568
- this.helperManagerDelegates.set(owner, delegate);
36569
- }
36570
-
36571
- return delegate;
36572
- }
36573
-
36574
- getDelegateFor(owner) {
36575
- if (owner === undefined) {
36576
- var {
36577
- undefinedDelegate
36578
- } = this;
36579
-
36580
- if (undefinedDelegate === null) {
36581
- var {
36582
- factory
36583
- } = this;
36584
- this.undefinedDelegate = undefinedDelegate = factory(undefined);
36585
- }
36586
-
36587
- return undefinedDelegate;
36588
- } else {
36589
- return this.getDelegateForOwner(owner);
36590
- }
36591
- }
36592
-
36593
- getHelper(definition) {
36594
- return (capturedArgs, owner) => {
36595
- var _a, _b;
36596
-
36597
- var manager = this.getDelegateFor(owner);
36598
- var args = argsProxyFor(capturedArgs, 'helper');
36599
- var bucket = manager.createHelper(definition, args);
36600
-
36601
- if (hasValue(manager)) {
36602
- var cache = (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, true
36603
- /* DEBUG */
36604
- && manager.getDebugName && manager.getDebugName(definition));
36605
-
36606
- if (hasDestroyable(manager)) {
36607
- (0, _destroyable.associateDestroyableChild)(cache, manager.getDestroyable(bucket));
36608
- }
36609
-
36610
- return cache;
36611
- } else if (hasDestroyable(manager)) {
36612
- var ref = (0, _reference.createConstRef)(undefined, true
36613
- /* DEBUG */
36614
- && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
36615
- (0, _destroyable.associateDestroyableChild)(ref, manager.getDestroyable(bucket));
36616
- return ref;
36617
- } else {
36618
- return _reference.UNDEFINED_REFERENCE;
36619
- }
36620
- };
36621
- }
36622
-
36623
- }
36624
-
36625
- _exports.CustomHelperManager = CustomHelperManager;
36626
-
36627
36712
  function setComponentManager(factory, obj) {
36628
36713
  return setInternalComponentManager(new CustomComponentManager(factory), obj);
36629
36714
  }
@@ -48148,7 +48233,7 @@ define("@glimmer/runtime", ["exports", "@glimmer/util", "@glimmer/reference", "@
48148
48233
 
48149
48234
  function assertCallbackIsFn(callbackRef) {
48150
48235
  if (!(callbackRef && ((0, _reference.isInvokableRef)(callbackRef) || typeof (0, _reference.valueForRef)(callbackRef) === 'function'))) {
48151
- throw new Error(`You must pass a function as the \`fn\` helpers first argument, you passed ${callbackRef ? (0, _reference.valueForRef)(callbackRef) : callbackRef}. While rendering:\n\n${callbackRef === null || callbackRef === void 0 ? void 0 : callbackRef.debugLabel}`);
48236
+ throw new Error(`You must pass a function as the \`fn\` helper's first argument, you passed ${callbackRef ? (0, _reference.valueForRef)(callbackRef) : callbackRef}. While rendering:\n\n${callbackRef === null || callbackRef === void 0 ? void 0 : callbackRef.debugLabel}`);
48152
48237
  }
48153
48238
  }
48154
48239
 
@@ -48527,7 +48612,7 @@ define("@glimmer/runtime", ["exports", "@glimmer/util", "@glimmer/reference", "@
48527
48612
  var value = (0, _reference.valueForRef)(userProvidedCallbackReference);
48528
48613
 
48529
48614
  if (typeof value !== 'function') {
48530
- throw new Error(`You must pass a function as the second argument to the \`on\` modifier, you passed ${value === null ? 'null' : typeof value}. While rendering:\n\n${userProvidedCallbackReference.debugLabel}`);
48615
+ throw new Error(`You must pass a function as the second argument to the \`on\` modifier; you passed ${value === null ? 'null' : typeof value}. While rendering:\n\n${userProvidedCallbackReference.debugLabel}`);
48531
48616
  }
48532
48617
  }
48533
48618
 
@@ -49008,29 +49093,7 @@ define("@glimmer/util", ["exports"], function (_exports) {
49008
49093
  return node.nodeValue === SERIALIZATION_FIRST_NODE_STRING;
49009
49094
  }
49010
49095
 
49011
- var _a;
49012
-
49013
- var {
49014
- keys: objKeys
49015
- } = Object;
49016
-
49017
- function assignFn(obj) {
49018
- for (var i = 1; i < arguments.length; i++) {
49019
- var assignment = arguments[i];
49020
- if (assignment === null || typeof assignment !== 'object') continue;
49021
-
49022
- var _keys = objKeys(assignment);
49023
-
49024
- for (var j = 0; j < _keys.length; j++) {
49025
- var key = _keys[j];
49026
- obj[key] = assignment[key];
49027
- }
49028
- }
49029
-
49030
- return obj;
49031
- }
49032
-
49033
- var assign = (_a = Object.assign) !== null && _a !== void 0 ? _a : assignFn;
49096
+ var assign = Object.assign;
49034
49097
  _exports.assign = assign;
49035
49098
 
49036
49099
  function fillNulls(count) {
@@ -54632,7 +54695,7 @@ define("ember/version", ["exports"], function (_exports) {
54632
54695
  value: true
54633
54696
  });
54634
54697
  _exports.default = void 0;
54635
- var _default = "4.5.0-alpha.3";
54698
+ var _default = "4.5.0-alpha.4";
54636
54699
  _exports.default = _default;
54637
54700
  });
54638
54701
  define("route-recognizer", ["exports"], function (_exports) {