ember-source 2.3.2 → 2.4.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 2.3.2
9
+ * @version 2.4.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, requirejs, Ember;
@@ -43,8 +43,14 @@ var mainContext = this;
43
43
  requirejs = require = requireModule = function(name) {
44
44
  return internalRequire(name, null);
45
45
  }
46
+
47
+ // setup `require` module
46
48
  require['default'] = require;
47
49
 
50
+ require.has = function registryHas(moduleName) {
51
+ return !!registry[moduleName] || !!registry[moduleName + '/index'];
52
+ };
53
+
48
54
  function missingModule(name, referrerName) {
49
55
  if (referrerName) {
50
56
  throw new Error('Could not find module ' + name + ' required by: ' + referrerName);
@@ -53,7 +59,15 @@ var mainContext = this;
53
59
  }
54
60
  }
55
61
 
56
- function internalRequire(name, referrerName) {
62
+ function internalRequire(_name, referrerName) {
63
+ var name = _name;
64
+ var mod = registry[name];
65
+
66
+ if (!mod) {
67
+ name = name + '/index';
68
+ mod = registry[name];
69
+ }
70
+
57
71
  var exports = seen[name];
58
72
 
59
73
  if (exports !== undefined) {
@@ -62,11 +76,10 @@ var mainContext = this;
62
76
 
63
77
  exports = seen[name] = {};
64
78
 
65
- if (!registry[name]) {
66
- missingModule(name, referrerName);
79
+ if (!mod) {
80
+ missingModule(_name, referrerName);
67
81
  }
68
82
 
69
- var mod = registry[name];
70
83
  var deps = mod.deps;
71
84
  var callback = mod.callback;
72
85
  var length = deps.length;
@@ -197,19 +210,8 @@ enifed('backburner/deferred-action-queues', ['exports', 'backburner/utils', 'bac
197
210
  };
198
211
  });
199
212
  enifed('backburner/platform', ['exports'], function (exports) {
200
- // In IE 6-8, try/finally doesn't work without a catch.
201
- // Unfortunately, this is impossible to test for since wrapping it in a parent try/catch doesn't trigger the bug.
202
- // This tests for another broken try/catch behavior that only exhibits in the same versions of IE.
203
213
  'use strict';
204
214
 
205
- var needsIETryCatchFix = (function (e, x) {
206
- try {
207
- x();
208
- } catch (e) {} // jshint ignore:line
209
- return !!e;
210
- })();
211
-
212
- exports.needsIETryCatchFix = needsIETryCatchFix;
213
215
  var platform;
214
216
 
215
217
  /* global self */
@@ -537,9 +539,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
537
539
  };
538
540
  }
539
541
 
540
- // ms of delay before we conclude a timeout was lost
541
- var TIMEOUT_STALLED_THRESHOLD = 1000;
542
-
543
542
  Backburner.prototype = {
544
543
  begin: function () {
545
544
  var options = this.options;
@@ -901,8 +900,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
901
900
  return fn;
902
901
  }
903
902
 
904
- this._reinstallStalledTimerTimeout();
905
-
906
903
  // find position to insert
907
904
  var i = _backburnerBinarySearch.default(executeAt, this._timers);
908
905
 
@@ -1099,21 +1096,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
1099
1096
  this._installTimerTimeout();
1100
1097
  },
1101
1098
 
1102
- _reinstallStalledTimerTimeout: function () {
1103
- if (!this._timerTimeoutId) {
1104
- return;
1105
- }
1106
- // if we have a timer we should always have a this._timerTimeoutId
1107
- var minExpiresAt = this._timers[0];
1108
- var delay = _backburnerUtils.now() - minExpiresAt;
1109
- // threshold of a second before we assume that the currently
1110
- // installed timeout will not run, so we don't constantly reinstall
1111
- // timeouts that are delayed but good still
1112
- if (delay < TIMEOUT_STALLED_THRESHOLD) {
1113
- return;
1114
- }
1115
- },
1116
-
1117
1099
  _reinstallTimerTimeout: function () {
1118
1100
  this._clearTimerTimeout();
1119
1101
  this._installTimerTimeout();
@@ -1142,14 +1124,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
1142
1124
  Backburner.prototype.scheduleOnce = Backburner.prototype.deferOnce;
1143
1125
  Backburner.prototype.later = Backburner.prototype.setTimeout;
1144
1126
 
1145
- if (_backburnerPlatform.needsIETryCatchFix) {
1146
- var originalRun = Backburner.prototype.run;
1147
- Backburner.prototype.run = _backburnerUtils.wrapInTryCatch(originalRun);
1148
-
1149
- var originalEnd = Backburner.prototype.end;
1150
- Backburner.prototype.end = _backburnerUtils.wrapInTryCatch(originalEnd);
1151
- }
1152
-
1153
1127
  function getOnError(options) {
1154
1128
  return options.onError || options.onErrorTarget && options.onErrorTarget[options.onErrorMethod];
1155
1129
  }
@@ -1283,7 +1257,8 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1283
1257
  @private
1284
1258
  @method lookup
1285
1259
  @param {String} fullName
1286
- @param {Object} options
1260
+ @param {Object} [options]
1261
+ @param {String} [options.source] The fullname of the request source (used for local lookup)
1287
1262
  @return {any}
1288
1263
  */
1289
1264
  lookup: function (fullName, options) {
@@ -1295,10 +1270,12 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1295
1270
  @private
1296
1271
  @method lookupFactory
1297
1272
  @param {String} fullName
1273
+ @param {Object} [options]
1274
+ @param {String} [options.source] The fullname of the request source (used for local lookup)
1298
1275
  @return {any}
1299
1276
  */
1300
- lookupFactory: function (fullName) {
1301
- return factoryFor(this, this.registry.normalize(fullName));
1277
+ lookupFactory: function (fullName, options) {
1278
+ return factoryFor(this, this.registry.normalize(fullName), options);
1302
1279
  },
1303
1280
 
1304
1281
  /**
@@ -1349,10 +1326,11 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1349
1326
  return container.registry.getOption(fullName, 'singleton') !== false;
1350
1327
  }
1351
1328
 
1352
- function lookup(container, fullName, options) {
1353
- options = options || {};
1329
+ function lookup(container, _fullName, _options) {
1330
+ var options = _options || {};
1331
+ var fullName = _fullName;
1354
1332
 
1355
- if (container.cache[fullName] && options.singleton !== false) {
1333
+ if (container.cache[fullName] !== undefined && options.singleton !== false) {
1356
1334
  return container.cache[fullName];
1357
1335
  }
1358
1336
 
@@ -1405,12 +1383,15 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1405
1383
  return hash;
1406
1384
  }
1407
1385
 
1408
- function factoryFor(container, fullName) {
1386
+ function factoryFor(container, _fullName, _options) {
1387
+ var options = _options || {};
1388
+ var registry = container.registry;
1389
+ var fullName = _fullName;
1390
+
1409
1391
  var cache = container.factoryCache;
1410
1392
  if (cache[fullName]) {
1411
1393
  return cache[fullName];
1412
1394
  }
1413
- var registry = container.registry;
1414
1395
  var factory = registry.resolve(fullName);
1415
1396
  if (factory === undefined) {
1416
1397
  return;
@@ -1592,6 +1573,36 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1592
1573
 
1593
1574
  exports.default = Container;
1594
1575
  });
1576
+
1577
+ // if expandLocalLookup returns falsey, we do not support local lookup
1578
+
1579
+ // if expandLocalLookup returns falsey, we do not support local lookup
1580
+ enifed('container/index', ['exports', 'ember-metal/core', 'container/registry', 'container/container', 'container/owner'], function (exports, _emberMetalCore, _containerRegistry, _containerContainer, _containerOwner) {
1581
+ 'use strict';
1582
+
1583
+ /*
1584
+ Public api for the container is still in flux.
1585
+ The public api, specified on the application namespace should be considered the stable api.
1586
+ // @module container
1587
+ @private
1588
+ */
1589
+
1590
+ /*
1591
+ Flag to enable/disable model factory injections (disabled by default)
1592
+ If model factory injections are enabled, models should not be
1593
+ accessed globally (only through `container.lookupFactory('model:modelName'))`);
1594
+ */
1595
+ _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = false;
1596
+
1597
+ if (_emberMetalCore.default.ENV && typeof _emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS !== 'undefined') {
1598
+ _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = !!_emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS;
1599
+ }
1600
+
1601
+ exports.Registry = _containerRegistry.default;
1602
+ exports.Container = _containerContainer.default;
1603
+ exports.getOwner = _containerOwner.getOwner;
1604
+ exports.setOwner = _containerOwner.setOwner;
1605
+ });
1595
1606
  enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports, _emberMetalSymbol) {
1596
1607
  /**
1597
1608
  @module ember
@@ -1664,7 +1675,7 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
1664
1675
  object[OWNER] = owner;
1665
1676
  }
1666
1677
  });
1667
- enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dictionary', 'ember-metal/assign', 'container/container'], function (exports, _emberMetalDebug, _emberMetalDictionary, _emberMetalAssign, _containerContainer) {
1678
+ enifed('container/registry', ['exports', 'ember-metal/features', 'ember-metal/debug', 'ember-metal/dictionary', 'ember-metal/empty_object', 'ember-metal/assign', 'container/container'], function (exports, _emberMetalFeatures, _emberMetalDebug, _emberMetalDictionary, _emberMetalEmpty_object, _emberMetalAssign, _containerContainer) {
1668
1679
  'use strict';
1669
1680
 
1670
1681
  var VALID_FULL_NAME_REGEXP = /^[^:]+.+:[^:]+$/;
@@ -1700,6 +1711,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1700
1711
  this._factoryTypeInjections = _emberMetalDictionary.default(null);
1701
1712
  this._factoryInjections = _emberMetalDictionary.default(null);
1702
1713
 
1714
+ this._localLookupCache = new _emberMetalEmpty_object.default();
1703
1715
  this._normalizeCache = _emberMetalDictionary.default(null);
1704
1716
  this._resolveCache = _emberMetalDictionary.default(null);
1705
1717
  this._failCache = _emberMetalDictionary.default(null);
@@ -1848,6 +1860,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1848
1860
 
1849
1861
  var normalizedName = this.normalize(fullName);
1850
1862
 
1863
+ this._localLookupCache = new _emberMetalEmpty_object.default();
1864
+
1851
1865
  delete this.registrations[normalizedName];
1852
1866
  delete this._resolveCache[normalizedName];
1853
1867
  delete this._failCache[normalizedName];
@@ -1878,12 +1892,16 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1878
1892
  @private
1879
1893
  @method resolve
1880
1894
  @param {String} fullName
1895
+ @param {Object} [options]
1896
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
1881
1897
  @return {Function} fullName's factory
1882
1898
  */
1883
- resolve: function (fullName) {
1884
- var factory = resolve(this, this.normalize(fullName));
1899
+ resolve: function (fullName, options) {
1900
+ var factory = resolve(this, this.normalize(fullName), options);
1885
1901
  if (factory === undefined && this.fallback) {
1886
- factory = this.fallback.resolve(fullName);
1902
+ var _fallback;
1903
+
1904
+ factory = (_fallback = this.fallback).resolve.apply(_fallback, arguments);
1887
1905
  }
1888
1906
  return factory;
1889
1907
  },
@@ -1960,10 +1978,15 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1960
1978
  @private
1961
1979
  @method has
1962
1980
  @param {String} fullName
1981
+ @param {Object} [options]
1982
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
1963
1983
  @return {Boolean}
1964
1984
  */
1965
- has: function (fullName) {
1966
- return has(this, this.normalize(fullName));
1985
+ has: function (fullName, options) {
1986
+
1987
+ var source = undefined;
1988
+
1989
+ return has(this, this.normalize(fullName), source);
1967
1990
  },
1968
1991
 
1969
1992
  /**
@@ -2005,8 +2028,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2005
2028
  @param {String} fullName
2006
2029
  @param {Object} options
2007
2030
  */
2008
- options: function (fullName, options) {
2009
- options = options || {};
2031
+ options: function (fullName, _options) {
2032
+ var options = _options || {};
2010
2033
  var normalizedName = this.normalize(fullName);
2011
2034
  this._options[normalizedName] = options;
2012
2035
  },
@@ -2324,9 +2347,29 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2324
2347
  };
2325
2348
  }
2326
2349
 
2327
- function resolve(registry, normalizedName) {
2350
+ function expandLocalLookup(registry, normalizedName, normalizedSource) {
2351
+ var cache = registry._localLookupCache;
2352
+ var normalizedNameCache = cache[normalizedName];
2353
+
2354
+ if (!normalizedNameCache) {
2355
+ normalizedNameCache = cache[normalizedName] = new _emberMetalEmpty_object.default();
2356
+ }
2357
+
2358
+ var cached = normalizedNameCache[normalizedSource];
2359
+
2360
+ if (cached !== undefined) {
2361
+ return cached;
2362
+ }
2363
+
2364
+ var expanded = registry.resolver.expandLocalLookup(normalizedName, normalizedSource);
2365
+
2366
+ return normalizedNameCache[normalizedSource] = expanded;
2367
+ }
2368
+
2369
+ function resolve(registry, normalizedName, options) {
2370
+
2328
2371
  var cached = registry._resolveCache[normalizedName];
2329
- if (cached) {
2372
+ if (cached !== undefined) {
2330
2373
  return cached;
2331
2374
  }
2332
2375
  if (registry._failCache[normalizedName]) {
@@ -2339,49 +2382,46 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2339
2382
  resolved = registry.resolver.resolve(normalizedName);
2340
2383
  }
2341
2384
 
2342
- resolved = resolved || registry.registrations[normalizedName];
2385
+ if (resolved === undefined) {
2386
+ resolved = registry.registrations[normalizedName];
2387
+ }
2343
2388
 
2344
- if (resolved) {
2345
- registry._resolveCache[normalizedName] = resolved;
2346
- } else {
2389
+ if (resolved === undefined) {
2347
2390
  registry._failCache[normalizedName] = true;
2391
+ } else {
2392
+ registry._resolveCache[normalizedName] = resolved;
2348
2393
  }
2349
2394
 
2350
2395
  return resolved;
2351
2396
  }
2352
2397
 
2353
- function has(registry, fullName) {
2354
- return registry.resolve(fullName) !== undefined;
2398
+ function has(registry, fullName, source) {
2399
+ return registry.resolve(fullName, { source: source }) !== undefined;
2355
2400
  }
2356
2401
 
2357
2402
  exports.default = Registry;
2358
2403
  });
2359
- enifed('container', ['exports', 'ember-metal/core', 'container/registry', 'container/container', 'container/owner'], function (exports, _emberMetalCore, _containerRegistry, _containerContainer, _containerOwner) {
2360
- 'use strict';
2361
-
2362
- /*
2363
- Public api for the container is still in flux.
2364
- The public api, specified on the application namespace should be considered the stable api.
2365
- // @module container
2366
- @private
2367
- */
2368
2404
 
2369
- /*
2370
- Flag to enable/disable model factory injections (disabled by default)
2371
- If model factory injections are enabled, models should not be
2372
- accessed globally (only through `container.lookupFactory('model:modelName'))`);
2373
- */
2374
- _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = false;
2405
+ /**
2406
+ Given a fullName and a source fullName returns the fully resolved
2407
+ fullName. Used to allow for local lookup.
2408
+ ```javascript
2409
+ var registry = new Registry();
2410
+ // the twitter factory is added to the module system
2411
+ registry.expandLocalLookup('component:post-title', { source: 'template:post' }) // => component:post/post-title
2412
+ ```
2413
+ @private
2414
+ @method expandLocalLookup
2415
+ @param {String} fullName
2416
+ @param {Object} [options]
2417
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
2418
+ @return {String} fullName
2419
+ */
2375
2420
 
2376
- if (_emberMetalCore.default.ENV && typeof _emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS !== 'undefined') {
2377
- _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = !!_emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS;
2378
- }
2421
+ // when `source` is provided expand normalizedName
2422
+ // and source into the full normalizedName
2379
2423
 
2380
- exports.Registry = _containerRegistry.default;
2381
- exports.Container = _containerContainer.default;
2382
- exports.getOwner = _containerOwner.getOwner;
2383
- exports.setOwner = _containerOwner.setOwner;
2384
- });
2424
+ // if expandLocalLookup returns falsey, we do not support local lookup
2385
2425
  enifed('dag-map/platform', ['exports'], function (exports) {
2386
2426
  'use strict';
2387
2427
 
@@ -3624,7 +3664,45 @@ enifed("dom-helper", ["exports", "htmlbars-runtime/morph", "morph-attr", "dom-he
3624
3664
 
3625
3665
  exports.default = DOMHelper;
3626
3666
  });
3627
- enifed('ember-application/system/application-instance', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-runtime/system/object', 'ember-metal/run_loop', 'ember-metal/computed', 'ember-runtime/mixins/container_proxy', 'ember-htmlbars/system/dom-helper', 'container/registry', 'ember-runtime/mixins/registry_proxy', 'ember-metal-views/renderer', 'ember-metal/assign', 'ember-metal/environment', 'ember-runtime/ext/rsvp', 'ember-views/system/jquery'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_set, _emberRuntimeSystemObject, _emberMetalRun_loop, _emberMetalComputed, _emberRuntimeMixinsContainer_proxy, _emberHtmlbarsSystemDomHelper, _containerRegistry, _emberRuntimeMixinsRegistry_proxy, _emberMetalViewsRenderer, _emberMetalAssign, _emberMetalEnvironment, _emberRuntimeExtRsvp, _emberViewsSystemJquery) {
3667
+ enifed('ember/index', ['exports', 'ember-metal', 'ember-runtime', 'ember-views', 'ember-routing', 'ember-application', 'ember-extension-support', 'ember-htmlbars', 'ember-routing-htmlbars', 'ember-routing-views', 'require', 'ember-runtime/system/lazy_load'], function (exports, _emberMetal, _emberRuntime, _emberViews, _emberRouting, _emberApplication, _emberExtensionSupport, _emberHtmlbars, _emberRoutingHtmlbars, _emberRoutingViews, _require, _emberRuntimeSystemLazy_load) {
3668
+ // require the main entry points for each of these packages
3669
+ // this is so that the global exports occur properly
3670
+ 'use strict';
3671
+
3672
+ if (_require.has('ember-template-compiler')) {
3673
+ _require.default('ember-template-compiler');
3674
+ }
3675
+
3676
+ // do this to ensure that Ember.Test is defined properly on the global
3677
+ // if it is present.
3678
+ if (_require.has('ember-testing')) {
3679
+ _require.default('ember-testing');
3680
+ }
3681
+
3682
+ _emberRuntimeSystemLazy_load.runLoadHooks('Ember');
3683
+
3684
+ /**
3685
+ @module ember
3686
+ */
3687
+ });
3688
+ enifed('ember-application/index', ['exports', 'ember-metal/core', 'ember-metal/features', 'ember-runtime/system/lazy_load', 'ember-application/system/resolver', 'ember-application/system/application', 'ember-application/system/application-instance', 'ember-application/system/engine', 'ember-application/system/engine-instance'], function (exports, _emberMetalCore, _emberMetalFeatures, _emberRuntimeSystemLazy_load, _emberApplicationSystemResolver, _emberApplicationSystemApplication, _emberApplicationSystemApplicationInstance, _emberApplicationSystemEngine, _emberApplicationSystemEngineInstance) {
3689
+ 'use strict';
3690
+
3691
+ _emberMetalCore.default.Application = _emberApplicationSystemApplication.default;
3692
+ _emberMetalCore.default.Resolver = _emberApplicationSystemResolver.Resolver;
3693
+ _emberMetalCore.default.DefaultResolver = _emberApplicationSystemResolver.default;
3694
+
3695
+ _emberRuntimeSystemLazy_load.runLoadHooks('Ember.Application', _emberApplicationSystemApplication.default);
3696
+ });
3697
+
3698
+ /**
3699
+ @module ember
3700
+ @submodule ember-application
3701
+ */
3702
+
3703
+ // Expose `EngineInstance` and `ApplicationInstance` for easy overriding.
3704
+ // Reanalyze whether to continue exposing these after feature flag is removed.
3705
+ enifed('ember-application/system/application-instance', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/run_loop', 'ember-metal/computed', 'ember-htmlbars/system/dom-helper', 'ember-runtime/mixins/registry_proxy', 'ember-metal-views/renderer', 'ember-metal/assign', 'ember-metal/environment', 'ember-runtime/ext/rsvp', 'ember-views/system/jquery', 'ember-application/system/engine-instance'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalRun_loop, _emberMetalComputed, _emberHtmlbarsSystemDomHelper, _emberRuntimeMixinsRegistry_proxy, _emberMetalViewsRenderer, _emberMetalAssign, _emberMetalEnvironment, _emberRuntimeExtRsvp, _emberViewsSystemJquery, _emberApplicationSystemEngineInstance) {
3628
3706
  /**
3629
3707
  @module ember
3630
3708
  @submodule ember-application
@@ -3656,12 +3734,10 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3656
3734
 
3657
3735
  @public
3658
3736
  @class Ember.ApplicationInstance
3659
- @extends Ember.Object
3660
- @uses RegistryProxyMixin
3661
- @uses ContainerProxyMixin
3737
+ @extends Ember.EngineInstance
3662
3738
  */
3663
3739
 
3664
- var ApplicationInstance = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsRegistry_proxy.default, _emberRuntimeMixinsContainer_proxy.default, {
3740
+ var ApplicationInstance = _emberApplicationSystemEngineInstance.default.extend({
3665
3741
  /**
3666
3742
  The `Application` for which this is an instance.
3667
3743
  @property {Ember.Application} application
@@ -3692,17 +3768,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3692
3768
  init: function () {
3693
3769
  this._super.apply(this, arguments);
3694
3770
 
3695
- var application = _emberMetalProperty_get.get(this, 'application');
3696
-
3697
- // Create a per-instance registry that will use the application's registry
3698
- // as a fallback for resolving registrations.
3699
- var applicationRegistry = _emberMetalProperty_get.get(application, '__registry__');
3700
- var registry = this.__registry__ = new _containerRegistry.default({
3701
- fallback: applicationRegistry
3702
- });
3703
-
3704
- // Create a per-instance container from the instance's registry
3705
- this.__container__ = registry.container({ owner: this });
3771
+ var application = this.application;
3706
3772
 
3707
3773
  // Register this instance in the per-instance registry.
3708
3774
  //
@@ -3820,7 +3886,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3820
3886
  */
3821
3887
  startRouting: function () {
3822
3888
  var router = _emberMetalProperty_get.get(this, 'router');
3823
- router.startRouting(isResolverModuleBased(this));
3889
+ router.startRouting();
3824
3890
  this._didSetupRouter = true;
3825
3891
  },
3826
3892
 
@@ -3838,7 +3904,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3838
3904
  this._didSetupRouter = true;
3839
3905
 
3840
3906
  var router = _emberMetalProperty_get.get(this, 'router');
3841
- router.setupRouter(isResolverModuleBased(this));
3907
+ router.setupRouter();
3842
3908
  },
3843
3909
 
3844
3910
  /**
@@ -3866,27 +3932,6 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3866
3932
  dispatcher.setup(customEvents, this.rootElement);
3867
3933
 
3868
3934
  return dispatcher;
3869
- },
3870
-
3871
- /**
3872
- @private
3873
- */
3874
- willDestroy: function () {
3875
- this._super.apply(this, arguments);
3876
- _emberMetalRun_loop.default(this.__container__, 'destroy');
3877
- },
3878
-
3879
- /**
3880
- Unregister a factory.
3881
- Overrides `RegistryProxy#unregister` in order to clear any cached instances
3882
- of the unregistered factory.
3883
- @public
3884
- @method unregister
3885
- @param {String} fullName
3886
- */
3887
- unregister: function (fullName) {
3888
- this.__container__.reset(fullName);
3889
- this._super.apply(this, arguments);
3890
3935
  }
3891
3936
  });
3892
3937
 
@@ -4119,10 +4164,6 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
4119
4164
  return env;
4120
4165
  };
4121
4166
 
4122
- function isResolverModuleBased(applicationInstance) {
4123
- return !!applicationInstance.application.__registry__.resolver.moduleBasedResolver;
4124
- }
4125
-
4126
4167
  Object.defineProperty(ApplicationInstance.prototype, 'container', {
4127
4168
  configurable: true,
4128
4169
  enumerable: false,
@@ -4146,23 +4187,13 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
4146
4187
 
4147
4188
  exports.default = ApplicationInstance;
4148
4189
  });
4149
- enifed('ember-application/system/application', ['exports', 'dag-map', 'container/registry', 'ember-metal', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/empty_object', 'ember-runtime/system/lazy_load', 'ember-runtime/system/namespace', 'ember-application/system/resolver', 'ember-metal/run_loop', 'ember-metal/utils', 'ember-runtime/controllers/controller', 'ember-metal-views/renderer', 'ember-htmlbars/system/dom-helper', 'ember-views/views/select', 'ember-routing-views/views/outlet', 'ember-views/views/view', 'ember-views/system/event_dispatcher', 'ember-views/system/jquery', 'ember-routing/system/route', 'ember-routing/system/router', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/location/none_location', 'ember-routing/system/cache', 'ember-application/system/application-instance', 'ember-views/views/text_field', 'ember-views/views/text_area', 'ember-views/views/checkbox', 'ember-views/views/legacy_each_view', 'ember-routing-views/components/link-to', 'ember-routing/services/routing', 'ember-extension-support/container_debug_adapter', 'ember-runtime/mixins/registry_proxy', 'ember-metal/environment', 'ember-runtime/ext/rsvp'], function (exports, _dagMap, _containerRegistry, _emberMetal, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalEmpty_object, _emberRuntimeSystemLazy_load, _emberRuntimeSystemNamespace, _emberApplicationSystemResolver, _emberMetalRun_loop, _emberMetalUtils, _emberRuntimeControllersController, _emberMetalViewsRenderer, _emberHtmlbarsSystemDomHelper, _emberViewsViewsSelect, _emberRoutingViewsViewsOutlet, _emberViewsViewsView, _emberViewsSystemEvent_dispatcher, _emberViewsSystemJquery, _emberRoutingSystemRoute, _emberRoutingSystemRouter, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingLocationNone_location, _emberRoutingSystemCache, _emberApplicationSystemApplicationInstance, _emberViewsViewsText_field, _emberViewsViewsText_area, _emberViewsViewsCheckbox, _emberViewsViewsLegacy_each_view, _emberRoutingViewsComponentsLinkTo, _emberRoutingServicesRouting, _emberExtensionSupportContainer_debug_adapter, _emberRuntimeMixinsRegistry_proxy, _emberMetalEnvironment, _emberRuntimeExtRsvp) {
4190
+ enifed('ember-application/system/application', ['exports', 'ember-metal', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-runtime/system/lazy_load', 'ember-metal/run_loop', 'ember-runtime/controllers/controller', 'ember-metal-views/renderer', 'ember-htmlbars/system/dom-helper', 'ember-views/views/select', 'ember-routing-views/views/outlet', 'ember-views/views/view', 'ember-views/system/event_dispatcher', 'ember-views/system/jquery', 'ember-routing/system/route', 'ember-routing/system/router', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/location/none_location', 'ember-routing/system/cache', 'ember-application/system/application-instance', 'ember-views/views/text_field', 'ember-views/views/text_area', 'ember-views/views/checkbox', 'ember-views/views/legacy_each_view', 'ember-routing-views/components/link-to', 'ember-routing/services/routing', 'ember-extension-support/container_debug_adapter', 'ember-runtime/mixins/registry_proxy', 'ember-metal/environment', 'ember-runtime/ext/rsvp', 'ember-application/system/engine'], function (exports, _emberMetal, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberRuntimeSystemLazy_load, _emberMetalRun_loop, _emberRuntimeControllersController, _emberMetalViewsRenderer, _emberHtmlbarsSystemDomHelper, _emberViewsViewsSelect, _emberRoutingViewsViewsOutlet, _emberViewsViewsView, _emberViewsSystemEvent_dispatcher, _emberViewsSystemJquery, _emberRoutingSystemRoute, _emberRoutingSystemRouter, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingLocationNone_location, _emberRoutingSystemCache, _emberApplicationSystemApplicationInstance, _emberViewsViewsText_field, _emberViewsViewsText_area, _emberViewsViewsCheckbox, _emberViewsViewsLegacy_each_view, _emberRoutingViewsComponentsLinkTo, _emberRoutingServicesRouting, _emberExtensionSupportContainer_debug_adapter, _emberRuntimeMixinsRegistry_proxy, _emberMetalEnvironment, _emberRuntimeExtRsvp, _emberApplicationSystemEngine) {
4150
4191
  /**
4151
4192
  @module ember
4152
4193
  @submodule ember-application
4153
4194
  */
4154
4195
  'use strict';
4155
4196
 
4156
- function props(obj) {
4157
- var properties = [];
4158
-
4159
- for (var key in obj) {
4160
- properties.push(key);
4161
- }
4162
-
4163
- return properties;
4164
- }
4165
-
4166
4197
  var librariesRegistered = false;
4167
4198
 
4168
4199
  /**
@@ -4317,12 +4348,12 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4317
4348
 
4318
4349
  @class Application
4319
4350
  @namespace Ember
4320
- @extends Ember.Namespace
4351
+ @extends Ember.Engine
4321
4352
  @uses RegistryProxyMixin
4322
4353
  @public
4323
4354
  */
4324
4355
 
4325
- var Application = _emberRuntimeSystemNamespace.default.extend(_emberRuntimeMixinsRegistry_proxy.default, {
4356
+ var Application = _emberApplicationSystemEngine.default.extend({
4326
4357
  _suppressDeferredDeprecation: true,
4327
4358
 
4328
4359
  /**
@@ -4448,8 +4479,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4448
4479
  this.$ = _emberViewsSystemJquery.default;
4449
4480
  }
4450
4481
 
4451
- this.buildRegistry();
4452
-
4453
4482
  registerLibraries();
4454
4483
  logLibraryVersions();
4455
4484
 
@@ -4469,18 +4498,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4469
4498
  }
4470
4499
  },
4471
4500
 
4472
- /**
4473
- Build and configure the registry for the current application.
4474
- @private
4475
- @method buildRegistry
4476
- @return {Ember.Registry} the configured registry
4477
- */
4478
- buildRegistry: function () {
4479
- var registry = this.__registry__ = Application.buildRegistry(this);
4480
-
4481
- return registry;
4482
- },
4483
-
4484
4501
  /**
4485
4502
  Create an ApplicationInstance for this application.
4486
4503
  @private
@@ -4490,6 +4507,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4490
4507
  buildInstance: function () {
4491
4508
  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
4492
4509
 
4510
+ options.base = this;
4493
4511
  options.application = this;
4494
4512
  return _emberApplicationSystemApplicationInstance.default.create(options);
4495
4513
  },
@@ -4771,57 +4789,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4771
4789
  _emberMetalRun_loop.default.join(this, handleReset);
4772
4790
  },
4773
4791
 
4774
- /**
4775
- @private
4776
- @method instanceInitializer
4777
- */
4778
- instanceInitializer: function (options) {
4779
- this.constructor.instanceInitializer(options);
4780
- },
4781
-
4782
- /**
4783
- @private
4784
- @method runInitializers
4785
- */
4786
- runInitializers: function () {
4787
- var App = this;
4788
- this._runInitializer('initializers', function (name, initializer) {
4789
- if (initializer.initialize.length === 2) {
4790
-
4791
- initializer.initialize(App.__registry__, App);
4792
- } else {
4793
- initializer.initialize(App);
4794
- }
4795
- });
4796
- },
4797
-
4798
- /**
4799
- @private
4800
- @since 1.12.0
4801
- @method runInstanceInitializers
4802
- */
4803
- runInstanceInitializers: function (instance) {
4804
- this._runInitializer('instanceInitializers', function (name, initializer) {
4805
- initializer.initialize(instance);
4806
- });
4807
- },
4808
-
4809
- _runInitializer: function (bucketName, cb) {
4810
- var initializersByName = _emberMetalProperty_get.get(this.constructor, bucketName);
4811
- var initializers = props(initializersByName);
4812
- var graph = new _dagMap.default();
4813
- var initializer;
4814
-
4815
- for (var i = 0; i < initializers.length; i++) {
4816
- initializer = initializersByName[initializers[i]];
4817
- graph.addEdges(initializer.name, initializer, initializer.before, initializer.after);
4818
- }
4819
-
4820
- graph.topsort(function (vertex) {
4821
- cb(vertex.name, vertex.value);
4822
- });
4823
- },
4824
-
4825
4792
  /**
4826
4793
  @private
4827
4794
  @method didBecomeReady
@@ -4883,21 +4850,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4883
4850
  return this;
4884
4851
  },
4885
4852
 
4886
- /**
4887
- Set this to provide an alternate class to `Ember.DefaultResolver`
4888
- @deprecated Use 'Resolver' instead
4889
- @property resolver
4890
- @public
4891
- */
4892
- resolver: null,
4893
-
4894
- /**
4895
- Set this to provide an alternate class to `Ember.DefaultResolver`
4896
- @property resolver
4897
- @public
4898
- */
4899
- Resolver: null,
4900
-
4901
4853
  // This method must be moved to the application instance object
4902
4854
  willDestroy: function () {
4903
4855
  this._super.apply(this, arguments);
@@ -4913,10 +4865,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4913
4865
  if (this._globalsMode && this.__deprecatedInstance__) {
4914
4866
  this.__deprecatedInstance__.destroy();
4915
4867
  }
4916
- },
4917
-
4918
- initializer: function (options) {
4919
- this.constructor.initializer(options);
4920
4868
  }
4921
4869
  });
4922
4870
 
@@ -4928,63 +4876,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4928
4876
  }
4929
4877
  });
4930
4878
 
4931
- Application.reopenClass({
4932
- /**
4933
- Instance initializers run after all initializers have run. Because
4934
- instance initializers run after the app is fully set up. We have access
4935
- to the store, container, and other items. However, these initializers run
4936
- after code has loaded and are not allowed to defer readiness.
4937
- Instance initializer receives an object which has the following attributes:
4938
- `name`, `before`, `after`, `initialize`. The only required attribute is
4939
- `initialize`, all others are optional.
4940
- * `name` allows you to specify under which name the instanceInitializer is
4941
- registered. This must be a unique name, as trying to register two
4942
- instanceInitializer with the same name will result in an error.
4943
- ```javascript
4944
- Ember.Application.instanceInitializer({
4945
- name: 'namedinstanceInitializer',
4946
- initialize: function(application) {
4947
- Ember.debug('Running namedInitializer!');
4948
- }
4949
- });
4950
- ```
4951
- * `before` and `after` are used to ensure that this initializer is ran prior
4952
- or after the one identified by the value. This value can be a single string
4953
- or an array of strings, referencing the `name` of other initializers.
4954
- * See Ember.Application.initializer for discussion on the usage of before
4955
- and after.
4956
- Example instanceInitializer to preload data into the store.
4957
- ```javascript
4958
- Ember.Application.initializer({
4959
- name: 'preload-data',
4960
- initialize: function(application) {
4961
- var userConfig, userConfigEncoded, store;
4962
- // We have a HTML escaped JSON representation of the user's basic
4963
- // configuration generated server side and stored in the DOM of the main
4964
- // index.html file. This allows the app to have access to a set of data
4965
- // without making any additional remote calls. Good for basic data that is
4966
- // needed for immediate rendering of the page. Keep in mind, this data,
4967
- // like all local models and data can be manipulated by the user, so it
4968
- // should not be relied upon for security or authorization.
4969
- //
4970
- // Grab the encoded data from the meta tag
4971
- userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
4972
- // Unescape the text, then parse the resulting JSON into a real object
4973
- userConfig = JSON.parse(unescape(userConfigEncoded));
4974
- // Lookup the store
4975
- store = application.lookup('service:store');
4976
- // Push the encoded JSON into the store
4977
- store.pushPayload(userConfig);
4978
- }
4979
- });
4980
- ```
4981
- @method instanceInitializer
4982
- @param instanceInitializer
4983
- @public
4984
- */
4985
- instanceInitializer: buildInitializerMethod('instanceInitializers', 'instance initializer')
4986
- });
4987
-
4988
4879
  Application.reopen({
4989
4880
  /**
4990
4881
  Boot a new instance of `Ember.ApplicationInstance` for the current
@@ -5150,6 +5041,336 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5150
5041
  });
5151
5042
 
5152
5043
  Application.reopenClass({
5044
+ /**
5045
+ This creates a registry with the default Ember naming conventions.
5046
+ It also configures the registry:
5047
+ * registered views are created every time they are looked up (they are
5048
+ not singletons)
5049
+ * registered templates are not factories; the registered value is
5050
+ returned directly.
5051
+ * the router receives the application as its `namespace` property
5052
+ * all controllers receive the router as their `target` and `controllers`
5053
+ properties
5054
+ * all controllers receive the application as their `namespace` property
5055
+ * the application view receives the application controller as its
5056
+ `controller` property
5057
+ * the application view receives the application template as its
5058
+ `defaultTemplate` property
5059
+ @private
5060
+ @method buildRegistry
5061
+ @static
5062
+ @param {Ember.Application} namespace the application for which to
5063
+ build the registry
5064
+ @return {Ember.Registry} the built registry
5065
+ @public
5066
+ */
5067
+ buildRegistry: function (namespace) {
5068
+ var registry = this._super.apply(this, arguments);
5069
+
5070
+ registry.optionsForType('component', { singleton: false });
5071
+ registry.optionsForType('view', { singleton: false });
5072
+ registry.optionsForType('template', { instantiate: false });
5073
+
5074
+ registry.register('application:main', namespace, { instantiate: false });
5075
+
5076
+ registry.register('controller:basic', _emberRuntimeControllersController.default, { instantiate: false });
5077
+
5078
+ registry.register('renderer:-dom', { create: function () {
5079
+ return new _emberMetalViewsRenderer.default(new _emberHtmlbarsSystemDomHelper.default());
5080
+ } });
5081
+
5082
+ registry.injection('view', 'renderer', 'renderer:-dom');
5083
+ if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
5084
+ registry.register('view:select', _emberViewsViewsSelect.default);
5085
+ }
5086
+ registry.register('view:-outlet', _emberRoutingViewsViewsOutlet.OutletView);
5087
+
5088
+ registry.register('-view-registry:main', { create: function () {
5089
+ return {};
5090
+ } });
5091
+
5092
+ registry.injection('view', '_viewRegistry', '-view-registry:main');
5093
+
5094
+ registry.register('view:toplevel', _emberViewsViewsView.default.extend());
5095
+
5096
+ registry.register('route:basic', _emberRoutingSystemRoute.default, { instantiate: false });
5097
+ registry.register('event_dispatcher:main', _emberViewsSystemEvent_dispatcher.default);
5098
+
5099
+ registry.injection('router:main', 'namespace', 'application:main');
5100
+ registry.injection('view:-outlet', 'namespace', 'application:main');
5101
+
5102
+ registry.register('location:auto', _emberRoutingLocationAuto_location.default);
5103
+ registry.register('location:hash', _emberRoutingLocationHash_location.default);
5104
+ registry.register('location:history', _emberRoutingLocationHistory_location.default);
5105
+ registry.register('location:none', _emberRoutingLocationNone_location.default);
5106
+
5107
+ registry.injection('controller', 'target', 'router:main');
5108
+ registry.injection('controller', 'namespace', 'application:main');
5109
+
5110
+ registry.register('-bucket-cache:main', _emberRoutingSystemCache.default);
5111
+ registry.injection('router', '_bucketCache', '-bucket-cache:main');
5112
+ registry.injection('route', '_bucketCache', '-bucket-cache:main');
5113
+ registry.injection('controller', '_bucketCache', '-bucket-cache:main');
5114
+
5115
+ registry.injection('route', 'router', 'router:main');
5116
+
5117
+ registry.register('component:-text-field', _emberViewsViewsText_field.default);
5118
+ registry.register('component:-text-area', _emberViewsViewsText_area.default);
5119
+ registry.register('component:-checkbox', _emberViewsViewsCheckbox.default);
5120
+ registry.register('view:-legacy-each', _emberViewsViewsLegacy_each_view.default);
5121
+ registry.register('component:link-to', _emberRoutingViewsComponentsLinkTo.default);
5122
+
5123
+ // Register the routing service...
5124
+ registry.register('service:-routing', _emberRoutingServicesRouting.default);
5125
+ // Then inject the app router into it
5126
+ registry.injection('service:-routing', 'router', 'router:main');
5127
+
5128
+ // DEBUGGING
5129
+ registry.register('resolver-for-debugging:main', registry.resolver, { instantiate: false });
5130
+ registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main');
5131
+ registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main');
5132
+ // Custom resolver authors may want to register their own ContainerDebugAdapter with this key
5133
+
5134
+ registry.register('container-debug-adapter:main', _emberExtensionSupportContainer_debug_adapter.default);
5135
+
5136
+ return registry;
5137
+ }
5138
+ });
5139
+
5140
+ function registerLibraries() {
5141
+ if (!librariesRegistered) {
5142
+ librariesRegistered = true;
5143
+
5144
+ if (_emberMetalEnvironment.default.hasDOM) {
5145
+ _emberMetal.default.libraries.registerCoreLibrary('jQuery', _emberViewsSystemJquery.default().jquery);
5146
+ }
5147
+ }
5148
+ }
5149
+
5150
+ function logLibraryVersions() {
5151
+ if (_emberMetal.default.LOG_VERSION) {
5152
+ // we only need to see this once per Application#init
5153
+ _emberMetal.default.LOG_VERSION = false;
5154
+ var libs = _emberMetal.default.libraries._registry;
5155
+
5156
+ var nameLengths = libs.map(function (item) {
5157
+ return _emberMetalProperty_get.get(item, 'name.length');
5158
+ });
5159
+
5160
+ var maxNameLength = Math.max.apply(this, nameLengths);
5161
+
5162
+ for (var i = 0, l = libs.length; i < l; i++) {
5163
+ var lib = libs[i];
5164
+ var spaces = new Array(maxNameLength - lib.name.length + 1).join(' ');
5165
+ }
5166
+ }
5167
+ }
5168
+
5169
+ exports.default = Application;
5170
+ });
5171
+ // Ember.libraries, LOG_VERSION, Namespace, BOOTED
5172
+
5173
+ // Force-assign these flags to their default values when the feature is
5174
+ // disabled, this ensures we can rely on their values in other paths.
5175
+ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/system/object', 'container/registry', 'ember-runtime/mixins/container_proxy', 'ember-runtime/mixins/registry_proxy', 'ember-metal/run_loop'], function (exports, _emberRuntimeSystemObject, _containerRegistry, _emberRuntimeMixinsContainer_proxy, _emberRuntimeMixinsRegistry_proxy, _emberMetalRun_loop) {
5176
+ /**
5177
+ @module ember
5178
+ @submodule ember-application
5179
+ */
5180
+
5181
+ 'use strict';
5182
+
5183
+ /**
5184
+ The `EngineInstance` encapsulates all of the stateful aspects of a
5185
+ running `Engine`.
5186
+
5187
+ @public
5188
+ @class Ember.EngineInstance
5189
+ @extends Ember.Object
5190
+ @uses RegistryProxyMixin
5191
+ @uses ContainerProxyMixin
5192
+ */
5193
+
5194
+ var EngineInstance = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsRegistry_proxy.default, _emberRuntimeMixinsContainer_proxy.default, {
5195
+ /**
5196
+ The base `Engine` for which this is an instance.
5197
+ @property {Ember.Engine} engine
5198
+ @private
5199
+ */
5200
+ base: null,
5201
+
5202
+ init: function () {
5203
+ this._super.apply(this, arguments);
5204
+
5205
+ var base = this.base;
5206
+
5207
+ if (!base) {
5208
+ base = this.application;
5209
+ this.base = base;
5210
+ }
5211
+
5212
+ // Create a per-instance registry that will use the application's registry
5213
+ // as a fallback for resolving registrations.
5214
+ var registry = this.__registry__ = new _containerRegistry.default({
5215
+ fallback: base.__registry__
5216
+ });
5217
+
5218
+ // Create a per-instance container from the instance's registry
5219
+ this.__container__ = registry.container({ owner: this });
5220
+ },
5221
+
5222
+ /**
5223
+ Unregister a factory.
5224
+ Overrides `RegistryProxy#unregister` in order to clear any cached instances
5225
+ of the unregistered factory.
5226
+ @public
5227
+ @method unregister
5228
+ @param {String} fullName
5229
+ */
5230
+ unregister: function (fullName) {
5231
+ this.__container__.reset(fullName);
5232
+ this._super.apply(this, arguments);
5233
+ },
5234
+
5235
+ /**
5236
+ @private
5237
+ */
5238
+ willDestroy: function () {
5239
+ this._super.apply(this, arguments);
5240
+ _emberMetalRun_loop.default(this.__container__, 'destroy');
5241
+ }
5242
+ });
5243
+
5244
+ exports.default = EngineInstance;
5245
+ });
5246
+ enifed('ember-application/system/engine', ['exports', 'ember-runtime/system/namespace', 'container/registry', 'ember-runtime/mixins/registry_proxy', 'dag-map', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/debug', 'ember-metal/utils', 'ember-metal/empty_object', 'ember-application/system/resolver', 'ember-application/system/engine-instance'], function (exports, _emberRuntimeSystemNamespace, _containerRegistry, _emberRuntimeMixinsRegistry_proxy, _dagMap, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalDebug, _emberMetalUtils, _emberMetalEmpty_object, _emberApplicationSystemResolver, _emberApplicationSystemEngineInstance) {
5247
+ /**
5248
+ @module ember
5249
+ @submodule ember-application
5250
+ */
5251
+ 'use strict';
5252
+
5253
+ function props(obj) {
5254
+ var properties = [];
5255
+
5256
+ for (var key in obj) {
5257
+ properties.push(key);
5258
+ }
5259
+
5260
+ return properties;
5261
+ }
5262
+
5263
+ /**
5264
+ The `Engine` class contains core functionality for both applications and
5265
+ engines.
5266
+
5267
+ Each engine manages a registry that's used for dependency injection and
5268
+ exposed through `RegistryProxy`.
5269
+
5270
+ Engines also manage initializers and instance initializers.
5271
+
5272
+ Engines can spawn `EngineInstance` instances via `buildInstance()`.
5273
+
5274
+ @class Engine
5275
+ @namespace Ember
5276
+ @extends Ember.Namespace
5277
+ @uses RegistryProxy
5278
+ @public
5279
+ */
5280
+ var Engine = _emberRuntimeSystemNamespace.default.extend(_emberRuntimeMixinsRegistry_proxy.default, {
5281
+ init: function () {
5282
+ this._super.apply(this, arguments);
5283
+
5284
+ this.buildRegistry();
5285
+ },
5286
+
5287
+ /**
5288
+ Create an EngineInstance for this application.
5289
+ @private
5290
+ @method buildInstance
5291
+ @return {Ember.EngineInstance} the application instance
5292
+ */
5293
+ buildInstance: function () {
5294
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
5295
+
5296
+ options.base = this;
5297
+ return _emberApplicationSystemEngineInstance.default.create(options);
5298
+ },
5299
+
5300
+ /**
5301
+ Build and configure the registry for the current application.
5302
+ @private
5303
+ @method buildRegistry
5304
+ @return {Ember.Registry} the configured registry
5305
+ */
5306
+ buildRegistry: function () {
5307
+ var registry = this.__registry__ = this.constructor.buildRegistry(this);
5308
+
5309
+ return registry;
5310
+ },
5311
+
5312
+ /**
5313
+ @private
5314
+ @method initializer
5315
+ */
5316
+ initializer: function (options) {
5317
+ this.constructor.initializer(options);
5318
+ },
5319
+
5320
+ /**
5321
+ @private
5322
+ @method instanceInitializer
5323
+ */
5324
+ instanceInitializer: function (options) {
5325
+ this.constructor.instanceInitializer(options);
5326
+ },
5327
+
5328
+ /**
5329
+ @private
5330
+ @method runInitializers
5331
+ */
5332
+ runInitializers: function () {
5333
+ var _this = this;
5334
+
5335
+ this._runInitializer('initializers', function (name, initializer) {
5336
+ if (initializer.initialize.length === 2) {
5337
+
5338
+ initializer.initialize(_this.__registry__, _this);
5339
+ } else {
5340
+ initializer.initialize(_this);
5341
+ }
5342
+ });
5343
+ },
5344
+
5345
+ /**
5346
+ @private
5347
+ @since 1.12.0
5348
+ @method runInstanceInitializers
5349
+ */
5350
+ runInstanceInitializers: function (instance) {
5351
+ this._runInitializer('instanceInitializers', function (name, initializer) {
5352
+ initializer.initialize(instance);
5353
+ });
5354
+ },
5355
+
5356
+ _runInitializer: function (bucketName, cb) {
5357
+ var initializersByName = _emberMetalProperty_get.get(this.constructor, bucketName);
5358
+ var initializers = props(initializersByName);
5359
+ var graph = new _dagMap.default();
5360
+ var initializer;
5361
+
5362
+ for (var i = 0; i < initializers.length; i++) {
5363
+ initializer = initializersByName[initializers[i]];
5364
+ graph.addEdges(initializer.name, initializer, initializer.before, initializer.after);
5365
+ }
5366
+
5367
+ graph.topsort(function (vertex) {
5368
+ cb(vertex.name, vertex.value);
5369
+ });
5370
+ }
5371
+ });
5372
+
5373
+ Engine.reopenClass({
5153
5374
  initializers: new _emberMetalEmpty_object.default(),
5154
5375
  instanceInitializers: new _emberMetalEmpty_object.default(),
5155
5376
 
@@ -5247,6 +5468,61 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5247
5468
 
5248
5469
  initializer: buildInitializerMethod('initializers', 'initializer'),
5249
5470
 
5471
+ /**
5472
+ Instance initializers run after all initializers have run. Because
5473
+ instance initializers run after the app is fully set up. We have access
5474
+ to the store, container, and other items. However, these initializers run
5475
+ after code has loaded and are not allowed to defer readiness.
5476
+ Instance initializer receives an object which has the following attributes:
5477
+ `name`, `before`, `after`, `initialize`. The only required attribute is
5478
+ `initialize`, all others are optional.
5479
+ * `name` allows you to specify under which name the instanceInitializer is
5480
+ registered. This must be a unique name, as trying to register two
5481
+ instanceInitializer with the same name will result in an error.
5482
+ ```javascript
5483
+ Ember.Application.instanceInitializer({
5484
+ name: 'namedinstanceInitializer',
5485
+ initialize: function(application) {
5486
+ Ember.debug('Running namedInitializer!');
5487
+ }
5488
+ });
5489
+ ```
5490
+ * `before` and `after` are used to ensure that this initializer is ran prior
5491
+ or after the one identified by the value. This value can be a single string
5492
+ or an array of strings, referencing the `name` of other initializers.
5493
+ * See Ember.Application.initializer for discussion on the usage of before
5494
+ and after.
5495
+ Example instanceInitializer to preload data into the store.
5496
+ ```javascript
5497
+ Ember.Application.initializer({
5498
+ name: 'preload-data',
5499
+ initialize: function(application) {
5500
+ var userConfig, userConfigEncoded, store;
5501
+ // We have a HTML escaped JSON representation of the user's basic
5502
+ // configuration generated server side and stored in the DOM of the main
5503
+ // index.html file. This allows the app to have access to a set of data
5504
+ // without making any additional remote calls. Good for basic data that is
5505
+ // needed for immediate rendering of the page. Keep in mind, this data,
5506
+ // like all local models and data can be manipulated by the user, so it
5507
+ // should not be relied upon for security or authorization.
5508
+ //
5509
+ // Grab the encoded data from the meta tag
5510
+ userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
5511
+ // Unescape the text, then parse the resulting JSON into a real object
5512
+ userConfig = JSON.parse(unescape(userConfigEncoded));
5513
+ // Lookup the store
5514
+ store = application.lookup('service:store');
5515
+ // Push the encoded JSON into the store
5516
+ store.pushPayload(userConfig);
5517
+ }
5518
+ });
5519
+ ```
5520
+ @method instanceInitializer
5521
+ @param instanceInitializer
5522
+ @public
5523
+ */
5524
+ instanceInitializer: buildInitializerMethod('instanceInitializers', 'instance initializer'),
5525
+
5250
5526
  /**
5251
5527
  This creates a registry with the default Ember naming conventions.
5252
5528
  It also configures the registry:
@@ -5277,74 +5553,23 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5277
5553
 
5278
5554
  registry.set = _emberMetalProperty_set.set;
5279
5555
 
5280
- registry.optionsForType('component', { singleton: false });
5281
- registry.optionsForType('view', { singleton: false });
5282
- registry.optionsForType('template', { instantiate: false });
5283
-
5284
- registry.register('application:main', namespace, { instantiate: false });
5285
-
5286
- registry.register('controller:basic', _emberRuntimeControllersController.default, { instantiate: false });
5287
-
5288
- registry.register('renderer:-dom', { create: function () {
5289
- return new _emberMetalViewsRenderer.default(new _emberHtmlbarsSystemDomHelper.default());
5290
- } });
5291
-
5292
- registry.injection('view', 'renderer', 'renderer:-dom');
5293
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
5294
- registry.register('view:select', _emberViewsViewsSelect.default);
5295
- }
5296
- registry.register('view:-outlet', _emberRoutingViewsViewsOutlet.OutletView);
5297
-
5298
- registry.register('-view-registry:main', { create: function () {
5299
- return {};
5300
- } });
5301
-
5302
- registry.injection('view', '_viewRegistry', '-view-registry:main');
5303
-
5304
- registry.register('view:toplevel', _emberViewsViewsView.default.extend());
5305
-
5306
- registry.register('route:basic', _emberRoutingSystemRoute.default, { instantiate: false });
5307
- registry.register('event_dispatcher:main', _emberViewsSystemEvent_dispatcher.default);
5308
-
5309
- registry.injection('router:main', 'namespace', 'application:main');
5310
- registry.injection('view:-outlet', 'namespace', 'application:main');
5311
-
5312
- registry.register('location:auto', _emberRoutingLocationAuto_location.default);
5313
- registry.register('location:hash', _emberRoutingLocationHash_location.default);
5314
- registry.register('location:history', _emberRoutingLocationHistory_location.default);
5315
- registry.register('location:none', _emberRoutingLocationNone_location.default);
5316
-
5317
- registry.injection('controller', 'target', 'router:main');
5318
- registry.injection('controller', 'namespace', 'application:main');
5319
-
5320
- registry.register('-bucket-cache:main', _emberRoutingSystemCache.default);
5321
- registry.injection('router', '_bucketCache', '-bucket-cache:main');
5322
- registry.injection('route', '_bucketCache', '-bucket-cache:main');
5323
- registry.injection('controller', '_bucketCache', '-bucket-cache:main');
5324
-
5325
- registry.injection('route', 'router', 'router:main');
5326
-
5327
- registry.register('component:-text-field', _emberViewsViewsText_field.default);
5328
- registry.register('component:-text-area', _emberViewsViewsText_area.default);
5329
- registry.register('component:-checkbox', _emberViewsViewsCheckbox.default);
5330
- registry.register('view:-legacy-each', _emberViewsViewsLegacy_each_view.default);
5331
- registry.register('component:link-to', _emberRoutingViewsComponentsLinkTo.default);
5332
-
5333
- // Register the routing service...
5334
- registry.register('service:-routing', _emberRoutingServicesRouting.default);
5335
- // Then inject the app router into it
5336
- registry.injection('service:-routing', 'router', 'router:main');
5337
-
5338
- // DEBUGGING
5339
- registry.register('resolver-for-debugging:main', registry.resolver, { instantiate: false });
5340
- registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main');
5341
- registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main');
5342
- // Custom resolver authors may want to register their own ContainerDebugAdapter with this key
5556
+ return registry;
5557
+ },
5343
5558
 
5344
- registry.register('container-debug-adapter:main', _emberExtensionSupportContainer_debug_adapter.default);
5559
+ /**
5560
+ Set this to provide an alternate class to `Ember.DefaultResolver`
5561
+ @deprecated Use 'Resolver' instead
5562
+ @property resolver
5563
+ @public
5564
+ */
5565
+ resolver: null,
5345
5566
 
5346
- return registry;
5347
- }
5567
+ /**
5568
+ Set this to provide an alternate class to `Ember.DefaultResolver`
5569
+ @property resolver
5570
+ @public
5571
+ */
5572
+ Resolver: null
5348
5573
  });
5349
5574
 
5350
5575
  /**
@@ -5371,35 +5596,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5371
5596
  });
5372
5597
  }
5373
5598
 
5374
- function registerLibraries() {
5375
- if (!librariesRegistered) {
5376
- librariesRegistered = true;
5377
-
5378
- if (_emberMetalEnvironment.default.hasDOM) {
5379
- _emberMetal.default.libraries.registerCoreLibrary('jQuery', _emberViewsSystemJquery.default().jquery);
5380
- }
5381
- }
5382
- }
5383
-
5384
- function logLibraryVersions() {
5385
- if (_emberMetal.default.LOG_VERSION) {
5386
- // we only need to see this once per Application#init
5387
- _emberMetal.default.LOG_VERSION = false;
5388
- var libs = _emberMetal.default.libraries._registry;
5389
-
5390
- var nameLengths = libs.map(function (item) {
5391
- return _emberMetalProperty_get.get(item, 'name.length');
5392
- });
5393
-
5394
- var maxNameLength = Math.max.apply(this, nameLengths);
5395
-
5396
- for (var i = 0, l = libs.length; i < l; i++) {
5397
- var lib = libs[i];
5398
- var spaces = new Array(maxNameLength - lib.name.length + 1).join(' ');
5399
- }
5400
- }
5401
- }
5402
-
5403
5599
  function buildInitializerMethod(bucketName, humanName) {
5404
5600
  return function (initializer) {
5405
5601
  // If this is the first initializer being added to a subclass, we are going to reopen the class
@@ -5416,12 +5612,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5416
5612
  };
5417
5613
  }
5418
5614
 
5419
- exports.default = Application;
5615
+ exports.default = Engine;
5420
5616
  });
5421
- // Ember.libraries, LOG_VERSION, Namespace, BOOTED
5422
-
5423
- // Force-assign these flags to their default values when the feature is
5424
- // disabled, this ensures we can rely on their values in other paths.
5425
5617
  enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-runtime/system/string', 'ember-runtime/system/object', 'ember-runtime/system/namespace', 'ember-htmlbars/helpers', 'ember-application/utils/validate-type', 'ember-metal/dictionary', 'ember-htmlbars/template_registry'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberRuntimeSystemString, _emberRuntimeSystemObject, _emberRuntimeSystemNamespace, _emberHtmlbarsHelpers, _emberApplicationUtilsValidateType, _emberMetalDictionary, _emberHtmlbarsTemplate_registry) {
5426
5618
  /**
5427
5619
  @module ember
@@ -5618,8 +5810,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
5618
5810
  var name = fullNameWithoutType;
5619
5811
  var namespace = _emberMetalProperty_get.get(this, 'namespace');
5620
5812
  var root = namespace;
5813
+ var lastSlashIndex = name.lastIndexOf('/');
5814
+ var dirname = lastSlashIndex !== -1 ? name.slice(0, lastSlashIndex) : null;
5621
5815
 
5622
- if (type !== 'template' && name.indexOf('/') !== -1) {
5816
+ if (type !== 'template' && lastSlashIndex !== -1) {
5623
5817
  var parts = name.split('/');
5624
5818
  name = parts[parts.length - 1];
5625
5819
  var namespaceName = _emberRuntimeSystemString.capitalize(parts.slice(0, -1).join('.'));
@@ -5636,6 +5830,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
5636
5830
  fullName: fullName,
5637
5831
  type: type,
5638
5832
  fullNameWithoutType: fullNameWithoutType,
5833
+ dirname: dirname,
5639
5834
  name: name,
5640
5835
  root: root,
5641
5836
  resolveMethodName: 'resolve' + resolveMethodName
@@ -5889,20 +6084,6 @@ enifed('ember-application/utils/validate-type', ['exports', 'ember-metal/debug']
5889
6084
  if (action === 'deprecate') {} else {}
5890
6085
  }
5891
6086
  });
5892
- enifed('ember-application', ['exports', 'ember-metal/core', 'ember-runtime/system/lazy_load', 'ember-application/system/resolver', 'ember-application/system/application'], function (exports, _emberMetalCore, _emberRuntimeSystemLazy_load, _emberApplicationSystemResolver, _emberApplicationSystemApplication) {
5893
- 'use strict';
5894
-
5895
- _emberMetalCore.default.Application = _emberApplicationSystemApplication.default;
5896
- _emberMetalCore.default.Resolver = _emberApplicationSystemResolver.Resolver;
5897
- _emberMetalCore.default.DefaultResolver = _emberApplicationSystemResolver.default;
5898
-
5899
- _emberRuntimeSystemLazy_load.runLoadHooks('Ember.Application', _emberApplicationSystemApplication.default);
5900
- });
5901
-
5902
- /**
5903
- @module ember
5904
- @submodule ember-application
5905
- */
5906
6087
  enifed('ember-extension-support/container_debug_adapter', ['exports', 'ember-metal/core', 'ember-runtime/system/native_array', 'ember-runtime/utils', 'ember-runtime/system/string', 'ember-runtime/system/namespace', 'ember-runtime/system/object'], function (exports, _emberMetalCore, _emberRuntimeSystemNative_array, _emberRuntimeUtils, _emberRuntimeSystemString, _emberRuntimeSystemNamespace, _emberRuntimeSystemObject) {
5907
6088
  'use strict';
5908
6089
 
@@ -6485,7 +6666,7 @@ enifed('ember-extension-support/data_adapter', ['exports', 'ember-metal/property
6485
6666
  }
6486
6667
  });
6487
6668
  });
6488
- enifed('ember-extension-support', ['exports', 'ember-metal/core', 'ember-extension-support/data_adapter', 'ember-extension-support/container_debug_adapter'], function (exports, _emberMetalCore, _emberExtensionSupportData_adapter, _emberExtensionSupportContainer_debug_adapter) {
6669
+ enifed('ember-extension-support/index', ['exports', 'ember-metal/core', 'ember-extension-support/data_adapter', 'ember-extension-support/container_debug_adapter'], function (exports, _emberMetalCore, _emberExtensionSupportData_adapter, _emberExtensionSupportContainer_debug_adapter) {
6489
6670
  /**
6490
6671
  @module ember
6491
6672
  @submodule ember-extension-support
@@ -7130,7 +7311,7 @@ enifed('ember-htmlbars/helpers/if_unless', ['exports', 'ember-metal/debug', 'emb
7130
7311
  /**
7131
7312
  Use the `if` block helper to conditionally render a block depending on a
7132
7313
  property. If the property is "falsey", for example: `false`, `undefined`,
7133
- `null`, `""`, `0` or an empty array, the block will not be rendered.
7314
+ `null`, `""`, `0`, `NaN` or an empty array, the block will not be rendered.
7134
7315
 
7135
7316
  ```handlebars
7136
7317
  {{! will not render if foo is falsey}}
@@ -7566,7 +7747,7 @@ enifed("ember-htmlbars/hooks/cleanup-render-node", ["exports"], function (export
7566
7747
  }
7567
7748
  }
7568
7749
  });
7569
- enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember-htmlbars/node-managers/component-node-manager', 'ember-views/system/build-component-template', 'ember-htmlbars/utils/lookup-component', 'ember-metal/assign', 'ember-metal/empty_object', 'ember-metal/cache', 'ember-htmlbars/system/lookup-helper', 'ember-htmlbars/keywords/closure-component'], function (exports, _emberMetalDebug, _emberHtmlbarsNodeManagersComponentNodeManager, _emberViewsSystemBuildComponentTemplate, _emberHtmlbarsUtilsLookupComponent, _emberMetalAssign, _emberMetalEmpty_object, _emberMetalCache, _emberHtmlbarsSystemLookupHelper, _emberHtmlbarsKeywordsClosureComponent) {
7750
+ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/features', 'ember-metal/debug', 'ember-htmlbars/node-managers/component-node-manager', 'ember-views/system/build-component-template', 'ember-htmlbars/utils/lookup-component', 'ember-metal/assign', 'ember-metal/empty_object', 'ember-metal/cache', 'ember-htmlbars/system/lookup-helper', 'ember-htmlbars/keywords/closure-component'], function (exports, _emberMetalFeatures, _emberMetalDebug, _emberHtmlbarsNodeManagersComponentNodeManager, _emberViewsSystemBuildComponentTemplate, _emberHtmlbarsUtilsLookupComponent, _emberMetalAssign, _emberMetalEmpty_object, _emberMetalCache, _emberHtmlbarsSystemLookupHelper, _emberHtmlbarsKeywordsClosureComponent) {
7570
7751
  'use strict';
7571
7752
 
7572
7753
  exports.default = componentHook;
@@ -7655,7 +7836,10 @@ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember
7655
7836
  var component = undefined,
7656
7837
  layout = undefined;
7657
7838
  if (isDasherized || !isAngleBracket) {
7658
- var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, tagName);
7839
+ var options = {};
7840
+
7841
+ var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, tagName, options);
7842
+
7659
7843
  component = result.component;
7660
7844
  layout = result.layout;
7661
7845
 
@@ -8148,6 +8332,16 @@ enifed('ember-htmlbars/hooks/has-helper', ['exports', 'ember-htmlbars/system/loo
8148
8332
  if (owner.hasRegistration(registrationName)) {
8149
8333
  return true;
8150
8334
  }
8335
+
8336
+ var options = {};
8337
+ var moduleName = env.meta && env.meta.moduleName;
8338
+ if (moduleName) {
8339
+ options.source = 'template:' + moduleName;
8340
+ }
8341
+
8342
+ if (owner.hasRegistration(registrationName, options)) {
8343
+ return true;
8344
+ }
8151
8345
  }
8152
8346
 
8153
8347
  return false;
@@ -8441,6 +8635,158 @@ enifed("ember-htmlbars/hooks/will-cleanup-tree", ["exports"], function (exports)
8441
8635
  view.ownerView._destroyingSubtreeForView = view;
8442
8636
  }
8443
8637
  });
8638
+ enifed('ember-htmlbars/index', ['exports', 'ember-metal/core', 'ember-metal/features', 'ember-template-compiler', 'ember-htmlbars/system/make_bound_helper', 'ember-htmlbars/helpers', 'ember-htmlbars/helpers/if_unless', 'ember-htmlbars/helpers/with', 'ember-htmlbars/helpers/loc', 'ember-htmlbars/helpers/log', 'ember-htmlbars/helpers/each', 'ember-htmlbars/helpers/each-in', 'ember-htmlbars/helpers/-normalize-class', 'ember-htmlbars/helpers/-concat', 'ember-htmlbars/helpers/-join-classes', 'ember-htmlbars/helpers/-legacy-each-with-controller', 'ember-htmlbars/helpers/-legacy-each-with-keyword', 'ember-htmlbars/helpers/-html-safe', 'ember-htmlbars/helpers/hash', 'ember-htmlbars/system/dom-helper', 'ember-htmlbars/helper', 'ember-htmlbars/glimmer-component', 'ember-htmlbars/template_registry', 'ember-htmlbars/system/bootstrap', 'ember-htmlbars/compat'], function (exports, _emberMetalCore, _emberMetalFeatures, _emberTemplateCompiler, _emberHtmlbarsSystemMake_bound_helper, _emberHtmlbarsHelpers, _emberHtmlbarsHelpersIf_unless, _emberHtmlbarsHelpersWith, _emberHtmlbarsHelpersLoc, _emberHtmlbarsHelpersLog, _emberHtmlbarsHelpersEach, _emberHtmlbarsHelpersEachIn, _emberHtmlbarsHelpersNormalizeClass, _emberHtmlbarsHelpersConcat, _emberHtmlbarsHelpersJoinClasses, _emberHtmlbarsHelpersLegacyEachWithController, _emberHtmlbarsHelpersLegacyEachWithKeyword, _emberHtmlbarsHelpersHtmlSafe, _emberHtmlbarsHelpersHash, _emberHtmlbarsSystemDomHelper, _emberHtmlbarsHelper, _emberHtmlbarsGlimmerComponent, _emberHtmlbarsTemplate_registry, _emberHtmlbarsSystemBootstrap, _emberHtmlbarsCompat) {
8639
+ /**
8640
+ Ember templates are executed by [HTMLBars](https://github.com/tildeio/htmlbars),
8641
+ an HTML-friendly version of [Handlebars](http://handlebarsjs.com/). Any valid Handlebars syntax is valid in an Ember template.
8642
+
8643
+ ### Showing a property
8644
+
8645
+ Templates manage the flow of an application's UI, and display state (through
8646
+ the DOM) to a user. For example, given a component with the property "name",
8647
+ that component's template can use the name in several ways:
8648
+
8649
+ ```javascript
8650
+ // app/components/person.js
8651
+ export default Ember.Component.extend({
8652
+ name: 'Jill'
8653
+ });
8654
+ ```
8655
+
8656
+ ```handlebars
8657
+ {{! app/components/person.hbs }}
8658
+ {{name}}
8659
+ <div>{{name}}</div>
8660
+ <span data-name={{name}}></span>
8661
+ ```
8662
+
8663
+ Any time the "name" property on the component changes, the DOM will be
8664
+ updated.
8665
+
8666
+ Properties can be chained as well:
8667
+
8668
+ ```handlebars
8669
+ {{aUserModel.name}}
8670
+ <div>{{listOfUsers.firstObject.name}}</div>
8671
+ ```
8672
+
8673
+ ### Using Ember helpers
8674
+
8675
+ When content is passed in mustaches `{{}}`, Ember will first try to find a helper
8676
+ or component with that name. For example, the `if` helper:
8677
+
8678
+ ```handlebars
8679
+ {{if name "I have a name" "I have no name"}}
8680
+ <span data-has-name={{if name true}}></span>
8681
+ ```
8682
+
8683
+ The returned value is placed where the `{{}}` is called. The above style is
8684
+ called "inline". A second style of helper usage is called "block". For example:
8685
+
8686
+ ```handlebars
8687
+ {{#if name}}
8688
+ I have a name
8689
+ {{else}}
8690
+ I have no name
8691
+ {{/if}}
8692
+ ```
8693
+
8694
+ The block form of helpers allows you to control how the UI is created based
8695
+ on the values of properties.
8696
+
8697
+ A third form of helper is called "nested". For example here the concat
8698
+ helper will add " Doe" to a displayed name if the person has no last name:
8699
+
8700
+ ```handlebars
8701
+ <span data-name={{concat firstName (
8702
+ if lastName (concat " " lastName) "Doe"
8703
+ )}}></span>
8704
+ ```
8705
+
8706
+ Ember's built-in helpers are described under the [Ember.Templates.helpers](/api/classes/Ember.Templates.helpers.html)
8707
+ namespace. Documentation on creating custom helpers can be found under
8708
+ [Ember.Helper](/api/classes/Ember.Helper.html).
8709
+
8710
+ ### Invoking a Component
8711
+
8712
+ Ember components represent state to the UI of an application. Further
8713
+ reading on components can be found under [Ember.Component](/api/classes/Ember.Component.html).
8714
+
8715
+ @module ember
8716
+ @submodule ember-templates
8717
+ @main ember-templates
8718
+ @public
8719
+ */
8720
+
8721
+ /**
8722
+
8723
+ [HTMLBars](https://github.com/tildeio/htmlbars) is a [Handlebars](http://handlebarsjs.com/)
8724
+ compatible templating engine used by Ember.js. The classes and namespaces
8725
+ covered by this documentation attempt to focus on APIs for interacting
8726
+ with HTMLBars itself. For more general guidance on Ember.js templates and
8727
+ helpers, please see the [ember-templates](/api/modules/ember-templates.html)
8728
+ package.
8729
+
8730
+ @module ember
8731
+ @submodule ember-htmlbars
8732
+ @main ember-htmlbars
8733
+ @public
8734
+ */
8735
+ 'use strict';
8736
+
8737
+ _emberHtmlbarsHelpers.registerHelper('if', _emberHtmlbarsHelpersIf_unless.ifHelper);
8738
+ _emberHtmlbarsHelpers.registerHelper('unless', _emberHtmlbarsHelpersIf_unless.unlessHelper);
8739
+ _emberHtmlbarsHelpers.registerHelper('with', _emberHtmlbarsHelpersWith.default);
8740
+ _emberHtmlbarsHelpers.registerHelper('loc', _emberHtmlbarsHelpersLoc.default);
8741
+ _emberHtmlbarsHelpers.registerHelper('log', _emberHtmlbarsHelpersLog.default);
8742
+ _emberHtmlbarsHelpers.registerHelper('each', _emberHtmlbarsHelpersEach.default);
8743
+ _emberHtmlbarsHelpers.registerHelper('each-in', _emberHtmlbarsHelpersEachIn.default);
8744
+ _emberHtmlbarsHelpers.registerHelper('-normalize-class', _emberHtmlbarsHelpersNormalizeClass.default);
8745
+ _emberHtmlbarsHelpers.registerHelper('concat', _emberHtmlbarsHelpersConcat.default);
8746
+ _emberHtmlbarsHelpers.registerHelper('-join-classes', _emberHtmlbarsHelpersJoinClasses.default);
8747
+ _emberHtmlbarsHelpers.registerHelper('-html-safe', _emberHtmlbarsHelpersHtmlSafe.default);
8748
+
8749
+ _emberHtmlbarsHelpers.registerHelper('hash', _emberHtmlbarsHelpersHash.default);
8750
+
8751
+ if (_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
8752
+ _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-controller', _emberHtmlbarsHelpersLegacyEachWithController.default);
8753
+ _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-keyword', _emberHtmlbarsHelpersLegacyEachWithKeyword.default);
8754
+ }
8755
+
8756
+ _emberMetalCore.default.HTMLBars = {
8757
+ template: _emberTemplateCompiler.template,
8758
+ compile: _emberTemplateCompiler.compile,
8759
+ precompile: _emberTemplateCompiler.precompile,
8760
+ makeBoundHelper: _emberHtmlbarsSystemMake_bound_helper.default,
8761
+ registerPlugin: _emberTemplateCompiler.registerPlugin,
8762
+ DOMHelper: _emberHtmlbarsSystemDomHelper.default
8763
+ };
8764
+
8765
+ _emberHtmlbarsHelper.default.helper = _emberHtmlbarsHelper.helper;
8766
+ _emberMetalCore.default.Helper = _emberHtmlbarsHelper.default;
8767
+
8768
+ /**
8769
+ Global hash of shared templates. This will automatically be populated
8770
+ by the build tools so that you can store your Handlebars templates in
8771
+ separate files that get loaded into JavaScript at buildtime.
8772
+
8773
+ @property TEMPLATES
8774
+ @for Ember
8775
+ @type Object
8776
+ @private
8777
+ */
8778
+ Object.defineProperty(_emberMetalCore.default, 'TEMPLATES', {
8779
+ configurable: false,
8780
+ get: _emberHtmlbarsTemplate_registry.getTemplates,
8781
+ set: _emberHtmlbarsTemplate_registry.setTemplates
8782
+ });
8783
+ });
8784
+
8785
+ // importing adds template bootstrapping
8786
+ // initializer to enable embedded templates
8787
+
8788
+ // importing ember-htmlbars/compat updates the
8789
+ // Ember.Handlebars global if htmlbars is enabled
8444
8790
  enifed('ember-htmlbars/keywords/closure-component', ['exports', 'ember-metal/debug', 'ember-metal/is_none', 'ember-metal/symbol', 'ember-metal/streams/stream', 'ember-metal/empty_object', 'ember-metal/streams/utils', 'ember-htmlbars/hooks/subexpr', 'ember-metal/assign', 'ember-htmlbars/utils/extract-positional-params', 'ember-htmlbars/utils/lookup-component'], function (exports, _emberMetalDebug, _emberMetalIs_none, _emberMetalSymbol, _emberMetalStreamsStream, _emberMetalEmpty_object, _emberMetalStreamsUtils, _emberHtmlbarsHooksSubexpr, _emberMetalAssign, _emberHtmlbarsUtilsExtractPositionalParams, _emberHtmlbarsUtilsLookupComponent) {
8445
8791
  /**
8446
8792
  @module ember
@@ -8761,7 +9107,7 @@ enifed('ember-htmlbars/keywords/collection', ['exports', 'ember-views/streams/ut
8761
9107
  return viewClassOrInstance;
8762
9108
  }
8763
9109
  });
8764
- enifed('ember-htmlbars/keywords/component', ['exports', 'htmlbars-runtime/hooks', 'ember-htmlbars/keywords/closure-component', 'ember-metal/features'], function (exports, _htmlbarsRuntimeHooks, _emberHtmlbarsKeywordsClosureComponent, _emberMetalFeatures) {
9110
+ enifed('ember-htmlbars/keywords/component', ['exports', 'htmlbars-runtime/hooks', 'ember-htmlbars/keywords/closure-component', 'ember-metal/features', 'ember-metal/empty_object', 'ember-metal/assign'], function (exports, _htmlbarsRuntimeHooks, _emberHtmlbarsKeywordsClosureComponent, _emberMetalFeatures, _emberMetalEmpty_object, _emberMetalAssign) {
8765
9111
  /**
8766
9112
  @module ember
8767
9113
  @submodule ember-templates
@@ -8841,11 +9187,14 @@ enifed('ember-htmlbars/keywords/component', ['exports', 'htmlbars-runtime/hooks'
8841
9187
  */
8842
9188
 
8843
9189
  exports.default = function (morph, env, scope, params, hash, template, inverse, visitor) {
8844
- if (morph) {
8845
- _htmlbarsRuntimeHooks.keyword('@element_component', morph, env, scope, params, hash, template, inverse, visitor);
8846
- return true;
9190
+ if (!morph) {
9191
+ return _emberHtmlbarsKeywordsClosureComponent.default(env, params, hash);
8847
9192
  }
8848
- return _emberHtmlbarsKeywordsClosureComponent.default(env, params, hash);
9193
+
9194
+ var newHash = _emberMetalAssign.default(new _emberMetalEmpty_object.default(), hash);
9195
+
9196
+ _htmlbarsRuntimeHooks.keyword('@element_component', morph, env, scope, params, newHash, template, inverse, visitor);
9197
+ return true;
8849
9198
  };
8850
9199
  });
8851
9200
  enifed('ember-htmlbars/keywords/debugger', ['exports', 'ember-metal/debug'], function (exports, _emberMetalDebug) {
@@ -8948,7 +9297,7 @@ enifed('ember-htmlbars/keywords/each', ['exports'], function (exports) {
8948
9297
  return false;
8949
9298
  }
8950
9299
  });
8951
- enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/assign', 'ember-htmlbars/keywords/closure-component'], function (exports, _emberMetalAssign, _emberHtmlbarsKeywordsClosureComponent) {
9300
+ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/assign', 'ember-htmlbars/keywords/closure-component', 'ember-htmlbars/utils/lookup-component', 'ember-htmlbars/utils/extract-positional-params'], function (exports, _emberMetalAssign, _emberHtmlbarsKeywordsClosureComponent, _emberHtmlbarsUtilsLookupComponent, _emberHtmlbarsUtilsExtractPositionalParams) {
8952
9301
  'use strict';
8953
9302
 
8954
9303
  exports.default = {
@@ -8995,6 +9344,8 @@ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/ass
8995
9344
 
8996
9345
  var params = _ref.slice(1);
8997
9346
 
9347
+ var isRerender = arguments.length <= 8 || arguments[8] === undefined ? false : arguments[8];
9348
+
8998
9349
  var _morph$getState = morph.getState();
8999
9350
 
9000
9351
  var componentPath = _morph$getState.componentPath;
@@ -9007,6 +9358,13 @@ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/ass
9007
9358
 
9008
9359
  path = env.hooks.getValue(path);
9009
9360
 
9361
+ if (isRerender) {
9362
+ var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, componentPath);
9363
+ var component = result.component;
9364
+
9365
+ _emberHtmlbarsUtilsExtractPositionalParams.default(null, component, params, hash);
9366
+ }
9367
+
9010
9368
  if (_emberHtmlbarsKeywordsClosureComponent.isComponentCell(path)) {
9011
9369
  var closureComponent = env.hooks.getValue(path);
9012
9370
 
@@ -9522,7 +9880,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
9522
9880
 
9523
9881
  'use strict';
9524
9882
 
9525
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.3.2';
9883
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.4.0-beta.2';
9526
9884
 
9527
9885
  /**
9528
9886
  The `{{outlet}}` helper lets you specify where a child routes will render in
@@ -9604,7 +9962,11 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
9604
9962
  },
9605
9963
 
9606
9964
  childEnv: function (state, env) {
9607
- return env.childWithOutletState(state.outletState && state.outletState.outlets, true);
9965
+ var outletState = state.outletState;
9966
+ var toRender = outletState && outletState.render;
9967
+ var meta = toRender && toRender.template && toRender.template.meta;
9968
+
9969
+ return env.childWithOutletState(outletState && outletState.outlets, true, meta);
9608
9970
  },
9609
9971
 
9610
9972
  isStable: function (lastState, nextState) {
@@ -10612,7 +10974,8 @@ enifed('ember-htmlbars/node-managers/component-node-manager', ['exports', 'ember
10612
10974
  var component = this.component;
10613
10975
 
10614
10976
  return _emberHtmlbarsSystemInstrumentationSupport.instrument(component, function ComponentNodeManager_render_instrument() {
10615
- var env = _env.childWithView(component);
10977
+ var meta = this.block && this.block.template.meta;
10978
+ var env = _env.childWithView(component, meta);
10616
10979
 
10617
10980
  env.renderer.componentWillRender(component);
10618
10981
  env.renderedViews.push(component.elementId);
@@ -10858,6 +11221,10 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
10858
11221
  var newEnv = env;
10859
11222
  if (component) {
10860
11223
  newEnv = env.childWithView(component);
11224
+ } else {
11225
+ var meta = this.block && this.block.template.meta;
11226
+
11227
+ newEnv = env.childWithMeta(meta);
10861
11228
  }
10862
11229
 
10863
11230
  if (component) {
@@ -10908,7 +11275,12 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
10908
11275
  env.renderer.willRender(component);
10909
11276
 
10910
11277
  env.renderedViews.push(component.elementId);
11278
+ } else {
11279
+ var meta = this.block && this.block.template.meta;
11280
+
11281
+ newEnv = env.childWithMeta(meta);
10911
11282
  }
11283
+
10912
11284
  if (this.block) {
10913
11285
  this.block.invoke(newEnv, [], undefined, this.renderNode, this.scope, visitor);
10914
11286
  }
@@ -10954,7 +11326,7 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
10954
11326
 
10955
11327
  mergeBindings(props, snapshot);
10956
11328
 
10957
- var owner = options.parentView ? _containerOwner.getOwner(options.parentView) : env.owner;
11329
+ var owner = env.owner;
10958
11330
 
10959
11331
  _containerOwner.setOwner(props, owner);
10960
11332
  props.renderer = options.parentView ? options.parentView.renderer : owner && owner.lookup('renderer:-dom');
@@ -11181,7 +11553,7 @@ enifed('ember-htmlbars/system/bootstrap', ['exports', 'ember-views/component_loo
11181
11553
  /**
11182
11554
  Find templates stored in the head tag as script tags and make them available
11183
11555
  to `Ember.CoreView` in the global `Ember.TEMPLATES` object. This will be run
11184
- as as jQuery DOM-ready callback.
11556
+ as a jQuery DOM-ready callback.
11185
11557
 
11186
11558
  Script tags with `text/x-handlebars` will be compiled
11187
11559
  with Ember's template compiler and are suitable for use as a view's template.
@@ -11325,6 +11697,8 @@ enifed('ember-htmlbars/system/invoke-helper', ['exports', 'ember-metal/debug', '
11325
11697
  exports.buildHelperStream = buildHelperStream;
11326
11698
 
11327
11699
  function buildHelperStream(helper, params, hash, templates, env, scope, label) {
11700
+ var isAnyKindOfHelper = helper.isHelperInstance || helper.isHelperFactory;
11701
+
11328
11702
  if (helper.isHelperFactory) {
11329
11703
  return new _emberHtmlbarsStreamsHelperFactory.default(helper, params, hash, label);
11330
11704
  } else if (helper.isHelperInstance) {
@@ -11375,19 +11749,15 @@ enifed('ember-htmlbars/system/lookup-helper', ['exports', 'ember-metal/debug', '
11375
11749
  @param {String} name the name of the helper to lookup
11376
11750
  @return {Helper}
11377
11751
  */
11378
-
11379
- function findHelper(name, view, env) {
11752
+ function _findHelper(name, view, env, options) {
11380
11753
  var helper = env.helpers[name];
11381
11754
 
11382
11755
  if (!helper) {
11383
11756
  var owner = env.owner;
11384
11757
  if (validateLazyHelperName(name, owner, env.hooks.keywords)) {
11385
11758
  var helperName = 'helper:' + name;
11386
- // See https://github.com/emberjs/ember.js/issues/13071
11387
- // See https://bugs.chromium.org/p/v8/issues/detail?id=4839
11388
- var registered = owner.hasRegistration(helperName);
11389
- if (registered) {
11390
- helper = owner._lookupFactory(helperName);
11759
+ if (owner.hasRegistration(helperName, options)) {
11760
+ helper = owner._lookupFactory(helperName, options);
11391
11761
  }
11392
11762
  }
11393
11763
  }
@@ -11395,6 +11765,24 @@ enifed('ember-htmlbars/system/lookup-helper', ['exports', 'ember-metal/debug', '
11395
11765
  return helper;
11396
11766
  }
11397
11767
 
11768
+ function findHelper(name, view, env) {
11769
+ var options = {};
11770
+ var moduleName = env.meta && env.meta.moduleName;
11771
+ if (moduleName) {
11772
+ options.source = 'template:' + moduleName;
11773
+ }
11774
+
11775
+ var localHelper = _findHelper(name, view, env, options);
11776
+
11777
+ // local match found, use it
11778
+ if (localHelper) {
11779
+ return localHelper;
11780
+ }
11781
+
11782
+ // fallback to global
11783
+ return _findHelper(name, view, env);
11784
+ }
11785
+
11398
11786
  function lookupHelper(name, view, env) {
11399
11787
  var helper = findHelper(name, view, env);
11400
11788
 
@@ -11474,6 +11862,7 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
11474
11862
  this.owner = options.owner;
11475
11863
  this.renderer = options.renderer;
11476
11864
  this.dom = options.dom;
11865
+ this.meta = options.meta;
11477
11866
 
11478
11867
  this.hooks = _emberHtmlbarsEnv.default.hooks;
11479
11868
  this.helpers = _emberHtmlbarsEnv.default.helpers;
@@ -11481,17 +11870,35 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
11481
11870
  this.destinedForDOM = this.renderer._destinedForDOM;
11482
11871
  }
11483
11872
 
11484
- RenderEnv.build = function (view) {
11873
+ RenderEnv.build = function (view, meta) {
11485
11874
  return new RenderEnv({
11486
11875
  view: view,
11487
11876
  outletState: view.outletState,
11488
11877
  owner: _containerOwner.getOwner(view),
11489
11878
  renderer: view.renderer,
11490
- dom: view.renderer._dom
11879
+ dom: view.renderer._dom,
11880
+ meta: meta
11881
+ });
11882
+ };
11883
+
11884
+ RenderEnv.prototype.childWithMeta = function (meta) {
11885
+ return new RenderEnv({
11886
+ view: this.view,
11887
+ outletState: this.outletState,
11888
+ owner: this.owner,
11889
+ renderer: this.renderer,
11890
+ dom: this.dom,
11891
+ lifecycleHooks: this.lifecycleHooks,
11892
+ renderedViews: this.renderedViews,
11893
+ renderedNodes: this.renderedNodes,
11894
+ hasParentOutlet: this.hasParentOutlet,
11895
+ meta: meta
11491
11896
  });
11492
11897
  };
11493
11898
 
11494
11899
  RenderEnv.prototype.childWithView = function (view) {
11900
+ var meta = arguments.length <= 1 || arguments[1] === undefined ? this.meta : arguments[1];
11901
+
11495
11902
  return new RenderEnv({
11496
11903
  view: view,
11497
11904
  outletState: this.outletState,
@@ -11501,12 +11908,14 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
11501
11908
  lifecycleHooks: this.lifecycleHooks,
11502
11909
  renderedViews: this.renderedViews,
11503
11910
  renderedNodes: this.renderedNodes,
11504
- hasParentOutlet: this.hasParentOutlet
11911
+ hasParentOutlet: this.hasParentOutlet,
11912
+ meta: meta
11505
11913
  });
11506
11914
  };
11507
11915
 
11508
11916
  RenderEnv.prototype.childWithOutletState = function (outletState) {
11509
11917
  var hasParentOutlet = arguments.length <= 1 || arguments[1] === undefined ? this.hasParentOutlet : arguments[1];
11918
+ var meta = arguments.length <= 2 || arguments[2] === undefined ? this.meta : arguments[2];
11510
11919
 
11511
11920
  return new RenderEnv({
11512
11921
  view: this.view,
@@ -11517,7 +11926,8 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
11517
11926
  lifecycleHooks: this.lifecycleHooks,
11518
11927
  renderedViews: this.renderedViews,
11519
11928
  renderedNodes: this.renderedNodes,
11520
- hasParentOutlet: hasParentOutlet
11929
+ hasParentOutlet: hasParentOutlet,
11930
+ meta: meta
11521
11931
  });
11522
11932
  };
11523
11933
  });
@@ -11530,7 +11940,8 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-htmlbars/node-man
11530
11940
  // HTMLBars propagates the existing env and renders templates for a given render node.
11531
11941
 
11532
11942
  function renderHTMLBarsBlock(view, block, renderNode) {
11533
- var env = _emberHtmlbarsSystemRenderEnv.default.build(view);
11943
+ var meta = block && block.template && block.template.meta;
11944
+ var env = _emberHtmlbarsSystemRenderEnv.default.build(view, meta);
11534
11945
 
11535
11946
  view.env = env;
11536
11947
  _emberHtmlbarsNodeManagersViewNodeManager.createOrUpdateComponent(view, {}, null, renderNode, env);
@@ -12483,7 +12894,7 @@ enifed('ember-htmlbars/utils/extract-positional-params', ['exports', 'ember-meta
12483
12894
  }
12484
12895
  }
12485
12896
  });
12486
- enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-htmlbars/system/lookup-helper', 'ember-htmlbars/keywords/closure-component', 'ember-metal/streams/utils'], function (exports, _emberHtmlbarsSystemLookupHelper, _emberHtmlbarsKeywordsClosureComponent, _emberMetalStreamsUtils) {
12897
+ enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-metal/features', 'ember-htmlbars/system/lookup-helper', 'ember-htmlbars/keywords/closure-component', 'ember-metal/streams/utils'], function (exports, _emberMetalFeatures, _emberHtmlbarsSystemLookupHelper, _emberHtmlbarsKeywordsClosureComponent, _emberMetalStreamsUtils) {
12487
12898
  /**
12488
12899
  @module ember
12489
12900
  @submodule ember-htmlbars
@@ -12493,6 +12904,10 @@ enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-htmlbars/system/l
12493
12904
 
12494
12905
  exports.default = isComponent;
12495
12906
 
12907
+ function hasComponentOrTemplate(owner, path, options) {
12908
+ return owner.hasRegistration('component:' + path, options) || owner.hasRegistration('template:components/' + path, options);
12909
+ }
12910
+
12496
12911
  /*
12497
12912
  Given a path name, returns whether or not a component with that
12498
12913
  name was found in the container.
@@ -12516,23 +12931,34 @@ enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-htmlbars/system/l
12516
12931
  if (!_emberHtmlbarsSystemLookupHelper.CONTAINS_DASH_CACHE.get(path)) {
12517
12932
  return false;
12518
12933
  }
12519
- return owner.hasRegistration('component:' + path) || owner.hasRegistration('template:components/' + path);
12934
+
12935
+ if (hasComponentOrTemplate(owner, path)) {
12936
+ return true; // global component found
12937
+ } else {
12938
+ return false;
12939
+ }
12520
12940
  }
12521
12941
  }
12522
12942
  });
12523
- enifed('ember-htmlbars/utils/lookup-component', ['exports'], function (exports) {
12943
+
12944
+ // without a source moduleName we can not perform local lookups
12945
+ enifed('ember-htmlbars/utils/lookup-component', ['exports', 'ember-metal/features'], function (exports, _emberMetalFeatures) {
12524
12946
  'use strict';
12525
12947
 
12526
12948
  exports.default = lookupComponent;
12527
12949
 
12528
- function lookupComponent(container, tagName) {
12529
- var componentLookup = container.lookup('component-lookup:main');
12530
-
12950
+ function lookupComponentPair(componentLookup, owner, tagName, options) {
12531
12951
  return {
12532
- component: componentLookup.componentFor(tagName, container),
12533
- layout: componentLookup.layoutFor(tagName, container)
12952
+ component: componentLookup.componentFor(tagName, owner, options),
12953
+ layout: componentLookup.layoutFor(tagName, owner, options)
12534
12954
  };
12535
12955
  }
12956
+
12957
+ function lookupComponent(owner, tagName, options) {
12958
+ var componentLookup = owner.lookup('component-lookup:main');
12959
+
12960
+ return lookupComponentPair(componentLookup, owner, tagName);
12961
+ }
12536
12962
  });
12537
12963
  enifed('ember-htmlbars/utils/new-stream', ['exports', 'ember-metal/streams/proxy-stream', 'ember-htmlbars/utils/subscribe'], function (exports, _emberMetalStreamsProxyStream, _emberHtmlbarsUtilsSubscribe) {
12538
12964
  'use strict';
@@ -12654,158 +13080,6 @@ enifed('ember-htmlbars/utils/update-scope', ['exports', 'ember-metal/streams/pro
12654
13080
  }
12655
13081
  }
12656
13082
  });
12657
- enifed('ember-htmlbars', ['exports', 'ember-metal/core', 'ember-metal/features', 'ember-template-compiler', 'ember-htmlbars/system/make_bound_helper', 'ember-htmlbars/helpers', 'ember-htmlbars/helpers/if_unless', 'ember-htmlbars/helpers/with', 'ember-htmlbars/helpers/loc', 'ember-htmlbars/helpers/log', 'ember-htmlbars/helpers/each', 'ember-htmlbars/helpers/each-in', 'ember-htmlbars/helpers/-normalize-class', 'ember-htmlbars/helpers/-concat', 'ember-htmlbars/helpers/-join-classes', 'ember-htmlbars/helpers/-legacy-each-with-controller', 'ember-htmlbars/helpers/-legacy-each-with-keyword', 'ember-htmlbars/helpers/-html-safe', 'ember-htmlbars/helpers/hash', 'ember-htmlbars/system/dom-helper', 'ember-htmlbars/helper', 'ember-htmlbars/glimmer-component', 'ember-htmlbars/template_registry', 'ember-htmlbars/system/bootstrap', 'ember-htmlbars/compat'], function (exports, _emberMetalCore, _emberMetalFeatures, _emberTemplateCompiler, _emberHtmlbarsSystemMake_bound_helper, _emberHtmlbarsHelpers, _emberHtmlbarsHelpersIf_unless, _emberHtmlbarsHelpersWith, _emberHtmlbarsHelpersLoc, _emberHtmlbarsHelpersLog, _emberHtmlbarsHelpersEach, _emberHtmlbarsHelpersEachIn, _emberHtmlbarsHelpersNormalizeClass, _emberHtmlbarsHelpersConcat, _emberHtmlbarsHelpersJoinClasses, _emberHtmlbarsHelpersLegacyEachWithController, _emberHtmlbarsHelpersLegacyEachWithKeyword, _emberHtmlbarsHelpersHtmlSafe, _emberHtmlbarsHelpersHash, _emberHtmlbarsSystemDomHelper, _emberHtmlbarsHelper, _emberHtmlbarsGlimmerComponent, _emberHtmlbarsTemplate_registry, _emberHtmlbarsSystemBootstrap, _emberHtmlbarsCompat) {
12658
- /**
12659
- Ember templates are executed by [HTMLBars](https://github.com/tildeio/htmlbars),
12660
- an HTML-friendly version of [Handlebars](http://handlebarsjs.com/). Any valid Handlebars syntax is valid in an Ember template.
12661
-
12662
- ### Showing a property
12663
-
12664
- Templates manage the flow of an application's UI, and display state (through
12665
- the DOM) to a user. For example, given a component with the property "name",
12666
- that component's template can use the name in several ways:
12667
-
12668
- ```javascript
12669
- // app/components/person.js
12670
- export default Ember.Component.extend({
12671
- name: 'Jill'
12672
- });
12673
- ```
12674
-
12675
- ```handlebars
12676
- {{! app/components/person.hbs }}
12677
- {{name}}
12678
- <div>{{name}}</div>
12679
- <span data-name={{name}}></span>
12680
- ```
12681
-
12682
- Any time the "name" property on the component changes, the DOM will be
12683
- updated.
12684
-
12685
- Properties can be chained as well:
12686
-
12687
- ```handlebars
12688
- {{aUserModel.name}}
12689
- <div>{{listOfUsers.firstObject.name}}</div>
12690
- ```
12691
-
12692
- ### Using Ember helpers
12693
-
12694
- When content is passed in mustaches `{{}}`, Ember will first try to find a helper
12695
- or component with that name. For example, the `if` helper:
12696
-
12697
- ```handlebars
12698
- {{if name "I have a name" "I have no name"}}
12699
- <span data-has-name={{if name true}}></span>
12700
- ```
12701
-
12702
- The returned value is placed where the `{{}}` is called. The above style is
12703
- called "inline". A second style of helper usage is called "block". For example:
12704
-
12705
- ```handlebars
12706
- {{#if name}}
12707
- I have a name
12708
- {{else}}
12709
- I have no name
12710
- {{/if}}
12711
- ```
12712
-
12713
- The block form of helpers allows you to control how the UI is created based
12714
- on the values of properties.
12715
-
12716
- A third form of helper is called "nested". For example here the concat
12717
- helper will add " Doe" to a displayed name if the person has no last name:
12718
-
12719
- ```handlebars
12720
- <span data-name={{concat firstName (
12721
- if lastName (concat " " lastName) "Doe"
12722
- )}}></span>
12723
- ```
12724
-
12725
- Ember's built-in helpers are described under the [Ember.Templates.helpers](/api/classes/Ember.Templates.helpers.html)
12726
- namespace. Documentation on creating custom helpers can be found under
12727
- [Ember.Helper](/api/classes/Ember.Helper.html).
12728
-
12729
- ### Invoking a Component
12730
-
12731
- Ember components represent state to the UI of an application. Further
12732
- reading on components can be found under [Ember.Component](/api/classes/Ember.Component.html).
12733
-
12734
- @module ember
12735
- @submodule ember-templates
12736
- @main ember-templates
12737
- @public
12738
- */
12739
-
12740
- /**
12741
-
12742
- [HTMLBars](https://github.com/tildeio/htmlbars) is a [Handlebars](http://handlebarsjs.com/)
12743
- compatible templating engine used by Ember.js. The classes and namespaces
12744
- covered by this documentation attempt to focus on APIs for interacting
12745
- with HTMLBars itself. For more general guidance on Ember.js templates and
12746
- helpers, please see the [ember-templates](/api/modules/ember-templates.html)
12747
- package.
12748
-
12749
- @module ember
12750
- @submodule ember-htmlbars
12751
- @main ember-htmlbars
12752
- @public
12753
- */
12754
- 'use strict';
12755
-
12756
- _emberHtmlbarsHelpers.registerHelper('if', _emberHtmlbarsHelpersIf_unless.ifHelper);
12757
- _emberHtmlbarsHelpers.registerHelper('unless', _emberHtmlbarsHelpersIf_unless.unlessHelper);
12758
- _emberHtmlbarsHelpers.registerHelper('with', _emberHtmlbarsHelpersWith.default);
12759
- _emberHtmlbarsHelpers.registerHelper('loc', _emberHtmlbarsHelpersLoc.default);
12760
- _emberHtmlbarsHelpers.registerHelper('log', _emberHtmlbarsHelpersLog.default);
12761
- _emberHtmlbarsHelpers.registerHelper('each', _emberHtmlbarsHelpersEach.default);
12762
- _emberHtmlbarsHelpers.registerHelper('each-in', _emberHtmlbarsHelpersEachIn.default);
12763
- _emberHtmlbarsHelpers.registerHelper('-normalize-class', _emberHtmlbarsHelpersNormalizeClass.default);
12764
- _emberHtmlbarsHelpers.registerHelper('concat', _emberHtmlbarsHelpersConcat.default);
12765
- _emberHtmlbarsHelpers.registerHelper('-join-classes', _emberHtmlbarsHelpersJoinClasses.default);
12766
- _emberHtmlbarsHelpers.registerHelper('-html-safe', _emberHtmlbarsHelpersHtmlSafe.default);
12767
-
12768
- _emberHtmlbarsHelpers.registerHelper('hash', _emberHtmlbarsHelpersHash.default);
12769
-
12770
- if (_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
12771
- _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-controller', _emberHtmlbarsHelpersLegacyEachWithController.default);
12772
- _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-keyword', _emberHtmlbarsHelpersLegacyEachWithKeyword.default);
12773
- }
12774
-
12775
- _emberMetalCore.default.HTMLBars = {
12776
- template: _emberTemplateCompiler.template,
12777
- compile: _emberTemplateCompiler.compile,
12778
- precompile: _emberTemplateCompiler.precompile,
12779
- makeBoundHelper: _emberHtmlbarsSystemMake_bound_helper.default,
12780
- registerPlugin: _emberTemplateCompiler.registerPlugin,
12781
- DOMHelper: _emberHtmlbarsSystemDomHelper.default
12782
- };
12783
-
12784
- _emberHtmlbarsHelper.default.helper = _emberHtmlbarsHelper.helper;
12785
- _emberMetalCore.default.Helper = _emberHtmlbarsHelper.default;
12786
-
12787
- /**
12788
- Global hash of shared templates. This will automatically be populated
12789
- by the build tools so that you can store your Handlebars templates in
12790
- separate files that get loaded into JavaScript at buildtime.
12791
-
12792
- @property TEMPLATES
12793
- @for Ember
12794
- @type Object
12795
- @private
12796
- */
12797
- Object.defineProperty(_emberMetalCore.default, 'TEMPLATES', {
12798
- configurable: false,
12799
- get: _emberHtmlbarsTemplate_registry.getTemplates,
12800
- set: _emberHtmlbarsTemplate_registry.setTemplates
12801
- });
12802
- });
12803
-
12804
- // importing adds template bootstrapping
12805
- // initializer to enable embedded templates
12806
-
12807
- // importing ember-htmlbars/compat updates the
12808
- // Ember.Handlebars global if htmlbars is enabled
12809
13083
  enifed('ember-metal/alias', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/error', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/dependent_keys'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalError, _emberMetalProperties, _emberMetalComputed, _emberMetalUtils, _emberMetalMeta, _emberMetalDependent_keys) {
12810
13084
  'use strict';
12811
13085
 
@@ -13504,9 +13778,9 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
13504
13778
  },
13505
13779
 
13506
13780
  // key: the string key that is part of a path changed
13507
- // revalidate: boolean the chains that are watching this value should revalidate
13508
- // callback: function that will be called with the the object and path that
13509
- // will be/are invalidated by this key change depending on the
13781
+ // revalidate: boolean; the chains that are watching this value should revalidate
13782
+ // callback: function that will be called with the object and path that
13783
+ // will be/are invalidated by this key change, depending on
13510
13784
  // whether the revalidate flag is passed
13511
13785
  notify: function (key, revalidate, callback) {
13512
13786
  var nodes = this.chains[key];
@@ -13861,6 +14135,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
13861
14135
 
13862
14136
  function UNDEFINED() {}
13863
14137
 
14138
+ var DEEP_EACH_REGEX = /\.@each\.[^.]+\./;
14139
+
13864
14140
  // ..........................................................
13865
14141
  // COMPUTED PROPERTY
13866
14142
  //
@@ -15156,9 +15432,11 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
15156
15432
  });
15157
15433
  }
15158
15434
  });
15159
- enifed('ember-metal/core', ['exports'], function (exports) {
15435
+ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require) {
15160
15436
  /*globals Ember:true,ENV,EmberENV */
15161
15437
 
15438
+ 'use strict';
15439
+
15162
15440
  /**
15163
15441
  @module ember
15164
15442
  @submodule ember-metal
@@ -15179,12 +15457,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15179
15457
 
15180
15458
  @class Ember
15181
15459
  @static
15182
- @version 2.3.2
15460
+ @version 2.4.0-beta.2
15183
15461
  @public
15184
15462
  */
15185
15463
 
15186
- 'use strict';
15187
-
15188
15464
  if ('undefined' === typeof Ember) {
15189
15465
  // Create core object. Make it act like an instance of Ember.Namespace so that
15190
15466
  // objects assigned to it are given a sane string representation.
@@ -15210,7 +15486,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15210
15486
 
15211
15487
  // The debug functions are exported to globals with `require` to
15212
15488
  // prevent babel-plugin-filter-imports from removing them.
15213
- var debugModule = Ember.__loader.require('ember-metal/debug');
15489
+ var debugModule = _require.default('ember-metal/debug');
15214
15490
  Ember.assert = debugModule.assert;
15215
15491
  Ember.warn = debugModule.warn;
15216
15492
  Ember.debug = debugModule.debug;
@@ -15223,11 +15499,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15223
15499
 
15224
15500
  @property VERSION
15225
15501
  @type String
15226
- @default '2.3.2'
15502
+ @default '2.4.0-beta.2'
15227
15503
  @static
15228
15504
  @public
15229
15505
  */
15230
- Ember.VERSION = '2.3.2';
15506
+ Ember.VERSION = '2.4.0-beta.2';
15231
15507
 
15232
15508
  /**
15233
15509
  The hash of environment variables used to control various configuration
@@ -15491,18 +15767,24 @@ enifed('ember-metal/deprecate_property', ['exports', 'ember-metal/debug', 'ember
15491
15767
  });
15492
15768
  }
15493
15769
  });
15494
- enifed('ember-metal/dictionary', ['exports'], function (exports) {
15770
+ enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
15771
+ 'use strict';
15772
+
15773
+ exports.default = makeDictionary;
15774
+
15495
15775
  // the delete is meant to hint at runtimes that this object should remain in
15496
15776
  // dictionary mode. This is clearly a runtime specific hack, but currently it
15497
15777
  // appears worthwhile in some usecases. Please note, these deletes do increase
15498
15778
  // the cost of creation dramatically over a plain Object.create. And as this
15499
15779
  // only makes sense for long-lived dictionaries that aren't instantiated often.
15500
- 'use strict';
15501
-
15502
- exports.default = makeDictionary;
15503
15780
 
15504
15781
  function makeDictionary(parent) {
15505
- var dict = Object.create(parent);
15782
+ var dict;
15783
+ if (parent === null) {
15784
+ dict = new _emberMetalEmpty_object.default();
15785
+ } else {
15786
+ dict = Object.create(parent);
15787
+ }
15506
15788
  dict['_dict'] = null;
15507
15789
  delete dict['_dict'];
15508
15790
  return dict;
@@ -16121,6 +16403,218 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
16121
16403
  return ret;
16122
16404
  }
16123
16405
  });
16406
+ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
16407
+ /**
16408
+ @module ember
16409
+ @submodule ember-metal
16410
+ */
16411
+
16412
+ // BEGIN IMPORTS
16413
+ 'use strict';
16414
+
16415
+ _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
16416
+ _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
16417
+ _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
16418
+ _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
16419
+ _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
16420
+ _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
16421
+ _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
16422
+ _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
16423
+ _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
16424
+ _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
16425
+ _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
16426
+ _emberMetalComputed.computed.alias = _emberMetalAlias.default;
16427
+ _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
16428
+ _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
16429
+ _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
16430
+ _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
16431
+ _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
16432
+ _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
16433
+ _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
16434
+ _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
16435
+
16436
+ // END IMPORTS
16437
+
16438
+ // BEGIN EXPORTS
16439
+ var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
16440
+ EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
16441
+ EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
16442
+ EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
16443
+ EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
16444
+
16445
+ _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
16446
+ _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
16447
+
16448
+ _emberMetalCore.default._Cache = _emberMetalCache.default;
16449
+
16450
+ _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
16451
+ _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
16452
+ _emberMetalCore.default.platform = {
16453
+ defineProperty: true,
16454
+ hasPropertyAccessors: true
16455
+ };
16456
+
16457
+ _emberMetalCore.default.Error = _emberMetalError.default;
16458
+ _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
16459
+ _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
16460
+ _emberMetalCore.default.meta = _emberMetalMeta.meta;
16461
+ _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
16462
+
16463
+ _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
16464
+ _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
16465
+ _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
16466
+ _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
16467
+ _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
16468
+ _emberMetalCore.default.apply = _emberMetalUtils.apply;
16469
+ _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
16470
+ _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
16471
+
16472
+ _emberMetalCore.default.Logger = _emberMetalLogger.default;
16473
+
16474
+ _emberMetalCore.default.get = _emberMetalProperty_get.get;
16475
+ _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
16476
+ _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
16477
+ _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
16478
+
16479
+ _emberMetalCore.default.on = _emberMetalEvents.on;
16480
+ _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
16481
+ _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
16482
+ _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
16483
+ _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
16484
+ _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
16485
+ _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
16486
+ _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
16487
+ _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
16488
+ _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
16489
+
16490
+ _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
16491
+
16492
+ _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
16493
+ _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
16494
+ _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
16495
+ _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
16496
+ _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
16497
+ _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
16498
+
16499
+ _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
16500
+
16501
+ _emberMetalCore.default.set = _emberMetalProperty_set.set;
16502
+ _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
16503
+
16504
+ _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
16505
+ _emberMetalCore.default.Map = _emberMetalMap.Map;
16506
+ _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
16507
+
16508
+ _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
16509
+ _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
16510
+
16511
+ _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
16512
+ _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
16513
+
16514
+ _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
16515
+ _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
16516
+ _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
16517
+ _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
16518
+
16519
+ _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
16520
+ _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
16521
+
16522
+ _emberMetalCore.default.watch = _emberMetalWatching.watch;
16523
+ _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
16524
+ _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
16525
+ _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
16526
+ _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
16527
+
16528
+ _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
16529
+
16530
+ _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
16531
+ _emberMetalCore.default.computed = _emberMetalComputed.computed;
16532
+ _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
16533
+
16534
+ _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
16535
+ _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
16536
+ _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
16537
+ _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
16538
+ _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
16539
+
16540
+ _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
16541
+ _emberMetalCore.default.required = _emberMetalMixin.required;
16542
+ _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
16543
+ _emberMetalCore.default.observer = _emberMetalMixin.observer;
16544
+ _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
16545
+ _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
16546
+ _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
16547
+
16548
+ _emberMetalCore.default.bind = _emberMetalBinding.bind;
16549
+ _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
16550
+ _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
16551
+
16552
+ _emberMetalCore.default.run = _emberMetalRun_loop.default;
16553
+
16554
+ /**
16555
+ @class Backburner
16556
+ @for Ember
16557
+ @private
16558
+ */
16559
+ _emberMetalCore.default.Backburner = _backburner.default;
16560
+ // this is the new go forward, once Ember Data updates to using `_Backburner` we
16561
+ // can remove the non-underscored version.
16562
+ _emberMetalCore.default._Backburner = _backburner.default;
16563
+
16564
+ _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
16565
+ _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
16566
+
16567
+ _emberMetalCore.default.isNone = _emberMetalIs_none.default;
16568
+ _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
16569
+ _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
16570
+ _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
16571
+
16572
+ _emberMetalCore.default.merge = _emberMetalMerge.default;
16573
+
16574
+ _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
16575
+ _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
16576
+
16577
+ /**
16578
+ A function may be assigned to `Ember.onerror` to be called when Ember
16579
+ internals encounter an error. This is useful for specialized error handling
16580
+ and reporting code.
16581
+
16582
+ ```javascript
16583
+ Ember.onerror = function(error) {
16584
+ Em.$.ajax('/report-error', 'POST', {
16585
+ stack: error.stack,
16586
+ otherInformation: 'whatever app state you want to provide'
16587
+ });
16588
+ };
16589
+ ```
16590
+
16591
+ Internally, `Ember.onerror` is used as Backburner's error handler.
16592
+
16593
+ @event onerror
16594
+ @for Ember
16595
+ @param {Exception} error the error object
16596
+ @public
16597
+ */
16598
+ _emberMetalCore.default.onerror = null;
16599
+ // END EXPORTS
16600
+
16601
+ // do this for side-effects of updating Ember.assert, warn, etc when
16602
+ // ember-debug is present
16603
+ // This needs to be called before any deprecateFunc
16604
+ if (_require.has('ember-debug')) {
16605
+ _require.default('ember-debug');
16606
+ } else {
16607
+ _emberMetalCore.default.Debug = {};
16608
+
16609
+ _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
16610
+ _emberMetalCore.default.Debug.registerWarnHandler = function () {};
16611
+ }
16612
+
16613
+ _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create);
16614
+ _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys);
16615
+
16616
+ exports.default = _emberMetalCore.default;
16617
+ });
16124
16618
  enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties', 'container/owner'], function (exports, _emberMetalDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties, _containerOwner) {
16125
16619
  'use strict';
16126
16620
 
@@ -16557,13 +17051,18 @@ enifed('ember-metal/is_present', ['exports', 'ember-metal/is_blank'], function (
16557
17051
  Ember.isPresent(null); // false
16558
17052
  Ember.isPresent(undefined); // false
16559
17053
  Ember.isPresent(''); // false
16560
- Ember.isPresent([]); // false
16561
- Ember.isPresent('\n\t'); // false
16562
17054
  Ember.isPresent(' '); // false
17055
+ Ember.isPresent('\n\t'); // false
17056
+ Ember.isPresent([]); // false
17057
+ Ember.isPresent({ length: 0 }) // false
17058
+ Ember.isPresent(false); // true
17059
+ Ember.isPresent(true); // true
17060
+ Ember.isPresent('string'); // true
17061
+ Ember.isPresent(0); // true
17062
+ Ember.isPresent(function() {}) // true
16563
17063
  Ember.isPresent({}); // true
16564
17064
  Ember.isPresent(false); // true
16565
17065
  Ember.isPresent('\n\t Hello'); // true
16566
- Ember.isPresent('Hello world'); // true
16567
17066
  Ember.isPresent([1,2,3]); // true
16568
17067
  ```
16569
17068
 
@@ -18328,7 +18827,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/error',
18328
18827
  //filters will be created as a separate array during the object's initialization
18329
18828
  App.Filterable = Ember.Mixin.create({
18330
18829
  init: function() {
18331
- this._super.apply(this, arguments);
18830
+ this._super(...arguments);
18332
18831
  this.set("filters", Ember.A());
18333
18832
  }
18334
18833
  });
@@ -19057,6 +19556,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19057
19556
  exports.Descriptor = Descriptor;
19058
19557
  exports.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION;
19059
19558
  exports.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION;
19559
+ exports.INHERITING_GETTER_FUNCTION = INHERITING_GETTER_FUNCTION;
19060
19560
  exports.defineProperty = defineProperty;
19061
19561
 
19062
19562
  // ..........................................................
@@ -19075,12 +19575,31 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19075
19575
  this.isDescriptor = true;
19076
19576
  }
19077
19577
 
19578
+ var REDEFINE_SUPPORTED = (function () {
19579
+ // https://github.com/spalger/kibana/commit/b7e35e6737df585585332857a4c397dc206e7ff9
19580
+ var a = Object.create(Object.prototype, {
19581
+ prop: {
19582
+ configurable: true,
19583
+ value: 1
19584
+ }
19585
+ });
19586
+
19587
+ Object.defineProperty(a, 'prop', {
19588
+ configurable: true,
19589
+ value: 2
19590
+ });
19591
+
19592
+ return a.prop === 2;
19593
+ })();
19078
19594
  // ..........................................................
19079
19595
  // DEFINING PROPERTIES API
19080
19596
  //
19081
19597
 
19082
19598
  function MANDATORY_SETTER_FUNCTION(name) {
19083
- return function SETTER_FUNCTION(value) {};
19599
+ function SETTER_FUNCTION(value) {}
19600
+
19601
+ SETTER_FUNCTION.isMandatorySetter = true;
19602
+ return SETTER_FUNCTION;
19084
19603
  }
19085
19604
 
19086
19605
  function DEFAULT_GETTER_FUNCTION(name) {
@@ -19090,6 +19609,16 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19090
19609
  };
19091
19610
  }
19092
19611
 
19612
+ function INHERITING_GETTER_FUNCTION(name) {
19613
+ function IGETTER_FUNCTION() {
19614
+ var proto = Object.getPrototypeOf(this);
19615
+ return proto && proto[name];
19616
+ }
19617
+
19618
+ IGETTER_FUNCTION.isInheritingGetter = true;
19619
+ return IGETTER_FUNCTION;
19620
+ }
19621
+
19093
19622
  /**
19094
19623
  NOTE: This is a low-level method used by other parts of the API. You almost
19095
19624
  never want to call this method directly. Instead you should use
@@ -19187,6 +19716,12 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19187
19716
 
19188
19717
  return this;
19189
19718
  }
19719
+
19720
+ function handleBrokenPhantomDefineProperty(obj, keyName, desc) {
19721
+ // https://github.com/ariya/phantomjs/issues/11856
19722
+ Object.defineProperty(obj, keyName, { configurable: true, writable: true, value: 'iCry' });
19723
+ Object.defineProperty(obj, keyName, desc);
19724
+ }
19190
19725
  });
19191
19726
  enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/symbol'], function (exports, _emberMetalUtils, _emberMetalMeta, _emberMetalEvents, _emberMetalObserver_set, _emberMetalSymbol) {
19192
19727
  'use strict';
@@ -19471,7 +20006,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
19471
20006
  exports.endPropertyChanges = endPropertyChanges;
19472
20007
  exports.changeProperties = changeProperties;
19473
20008
  });
19474
- enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) {
20009
+ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/error', 'ember-metal/path_cache'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalError, _emberMetalPath_cache) {
19475
20010
  /**
19476
20011
  @module ember-metal
19477
20012
  */
@@ -19525,7 +20060,6 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
19525
20060
  return obj;
19526
20061
  }
19527
20062
 
19528
- var meta = _emberMetalMeta.peekMeta(obj);
19529
20063
  var value = obj[keyName];
19530
20064
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
19531
20065
  var ret;
@@ -19648,7 +20182,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
19648
20182
 
19649
20183
  exports.default = get;
19650
20184
  });
19651
- enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) {
20185
+ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta', 'ember-metal/utils'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta, _emberMetalUtils) {
19652
20186
  'use strict';
19653
20187
 
19654
20188
  exports.set = set;
@@ -21554,6 +22088,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
21554
22088
  exports.inspect = inspect;
21555
22089
  exports.apply = apply;
21556
22090
  exports.applyStr = applyStr;
22091
+ exports.lookupDescriptor = lookupDescriptor;
21557
22092
  var _uuid = 0;
21558
22093
 
21559
22094
  /**
@@ -22087,18 +22622,32 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
22087
22622
  }
22088
22623
  }
22089
22624
 
22625
+ function lookupDescriptor(obj, keyName) {
22626
+ var current = obj;
22627
+ while (current) {
22628
+ var descriptor = Object.getOwnPropertyDescriptor(current, keyName);
22629
+
22630
+ if (descriptor) {
22631
+ return descriptor;
22632
+ }
22633
+
22634
+ current = Object.getPrototypeOf(current);
22635
+ }
22636
+
22637
+ return null;
22638
+ }
22639
+
22090
22640
  exports.GUID_KEY = GUID_KEY;
22091
22641
  exports.makeArray = makeArray;
22092
22642
  exports.canInvoke = canInvoke;
22093
22643
  });
22094
- enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties) {
22644
+ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties', 'ember-metal/utils'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties, _emberMetalUtils) {
22095
22645
  'use strict';
22096
22646
 
22097
22647
  exports.watchKey = watchKey;
22098
22648
  exports.unwatchKey = unwatchKey;
22099
22649
 
22100
- var handleMandatorySetter = undefined,
22101
- lookupDescriptor = undefined;
22650
+ var handleMandatorySetter = undefined;
22102
22651
 
22103
22652
  function watchKey(obj, keyName, meta) {
22104
22653
  // can't watch length on Array - it is special...
@@ -22134,6 +22683,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22134
22683
 
22135
22684
  var possibleDesc = obj[keyName];
22136
22685
  var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
22686
+
22137
22687
  if (desc && desc.didUnwatch) {
22138
22688
  desc.didUnwatch(obj, keyName);
22139
22689
  }
@@ -22147,9 +22697,22 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22147
22697
  }
22148
22698
  });
22149
22699
 
22700
+ // NOTE: this is dropped for prod + minified builds
22701
+
22702
+ // Future traveler, although this code looks scary. It merely exists in
22703
+ // development to aid in development asertions. Production builds of
22704
+ // ember strip this entire block out
22705
+
22150
22706
  // this x in Y deopts, so keeping it in this function is better;
22151
22707
 
22152
- // redefine to set as enumerable
22708
+ // It is true, the following code looks quite WAT. But have no fear, It
22709
+ // exists purely to improve development ergonomics and is removed from
22710
+ // ember.min.js and ember.prod.js builds.
22711
+ //
22712
+ // Some further context: Once a property is watched by ember, bypassing `set`
22713
+ // for mutation, will bypass observation. This code exists to assert when
22714
+ // that occurs, and attempt to provide more helpful feedback. The alternative
22715
+ // is tricky to debug partially observable properties.
22153
22716
  enifed('ember-metal/watch_path', ['exports', 'ember-metal/meta', 'ember-metal/chains'], function (exports, _emberMetalMeta, _emberMetalChains) {
22154
22717
  'use strict';
22155
22718
 
@@ -22308,6 +22871,11 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
22308
22871
  }
22309
22872
  }
22310
22873
  });
22874
+ enifed('ember-metal-views/index', ['exports', 'ember-metal-views/renderer'], function (exports, _emberMetalViewsRenderer) {
22875
+ 'use strict';
22876
+
22877
+ exports.Renderer = _emberMetalViewsRenderer.default;
22878
+ });
22311
22879
  enifed('ember-metal-views/renderer', ['exports', 'ember-metal/run_loop', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/assign', 'ember-metal/set_properties', 'ember-views/system/build-component-template', 'ember-metal/environment'], function (exports, _emberMetalRun_loop, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalAssign, _emberMetalSet_properties, _emberViewsSystemBuildComponentTemplate, _emberMetalEnvironment) {
22312
22880
  'use strict';
22313
22881
 
@@ -22588,223 +23156,6 @@ enifed('ember-metal-views/renderer', ['exports', 'ember-metal/run_loop', 'ember-
22588
23156
 
22589
23157
  exports.default = Renderer;
22590
23158
  });
22591
- enifed('ember-metal-views', ['exports', 'ember-metal-views/renderer'], function (exports, _emberMetalViewsRenderer) {
22592
- 'use strict';
22593
-
22594
- exports.Renderer = _emberMetalViewsRenderer.default;
22595
- });
22596
- enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
22597
- /**
22598
- @module ember
22599
- @submodule ember-metal
22600
- */
22601
-
22602
- // BEGIN IMPORTS
22603
- 'use strict';
22604
-
22605
- _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
22606
- _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
22607
- _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
22608
- _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
22609
- _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
22610
- _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
22611
- _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
22612
- _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
22613
- _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
22614
- _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
22615
- _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
22616
- _emberMetalComputed.computed.alias = _emberMetalAlias.default;
22617
- _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
22618
- _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
22619
- _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
22620
- _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
22621
- _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
22622
- _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
22623
- _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
22624
- _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
22625
-
22626
- // END IMPORTS
22627
-
22628
- // BEGIN EXPORTS
22629
- var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
22630
- EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
22631
- EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
22632
- EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
22633
- EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
22634
-
22635
- _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
22636
- _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
22637
-
22638
- _emberMetalCore.default._Cache = _emberMetalCache.default;
22639
-
22640
- _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
22641
- _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
22642
- _emberMetalCore.default.platform = {
22643
- defineProperty: true,
22644
- hasPropertyAccessors: true
22645
- };
22646
-
22647
- _emberMetalCore.default.Error = _emberMetalError.default;
22648
- _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
22649
- _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
22650
- _emberMetalCore.default.meta = _emberMetalMeta.meta;
22651
- _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
22652
-
22653
- _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
22654
- _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
22655
- _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
22656
- _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
22657
- _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
22658
- _emberMetalCore.default.apply = _emberMetalUtils.apply;
22659
- _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
22660
- _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
22661
-
22662
- _emberMetalCore.default.Logger = _emberMetalLogger.default;
22663
-
22664
- _emberMetalCore.default.get = _emberMetalProperty_get.get;
22665
- _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
22666
- _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
22667
- _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
22668
-
22669
- _emberMetalCore.default.on = _emberMetalEvents.on;
22670
- _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
22671
- _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
22672
- _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
22673
- _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
22674
- _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
22675
- _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
22676
- _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
22677
- _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
22678
- _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
22679
-
22680
- _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
22681
-
22682
- _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
22683
- _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
22684
- _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
22685
- _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
22686
- _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
22687
- _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
22688
-
22689
- _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
22690
-
22691
- _emberMetalCore.default.set = _emberMetalProperty_set.set;
22692
- _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
22693
-
22694
- _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
22695
- _emberMetalCore.default.Map = _emberMetalMap.Map;
22696
- _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
22697
-
22698
- _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
22699
- _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
22700
-
22701
- _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
22702
- _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
22703
-
22704
- _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
22705
- _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
22706
- _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
22707
- _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
22708
-
22709
- _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
22710
- _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
22711
-
22712
- _emberMetalCore.default.watch = _emberMetalWatching.watch;
22713
- _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
22714
- _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
22715
- _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
22716
- _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
22717
-
22718
- _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
22719
-
22720
- _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
22721
- _emberMetalCore.default.computed = _emberMetalComputed.computed;
22722
- _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
22723
-
22724
- _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
22725
- _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
22726
- _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
22727
- _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
22728
- _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
22729
-
22730
- _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
22731
- _emberMetalCore.default.required = _emberMetalMixin.required;
22732
- _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
22733
- _emberMetalCore.default.observer = _emberMetalMixin.observer;
22734
- _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
22735
- _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
22736
- _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
22737
-
22738
- _emberMetalCore.default.bind = _emberMetalBinding.bind;
22739
- _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
22740
- _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
22741
-
22742
- _emberMetalCore.default.run = _emberMetalRun_loop.default;
22743
-
22744
- /**
22745
- @class Backburner
22746
- @for Ember
22747
- @private
22748
- */
22749
- _emberMetalCore.default.Backburner = _backburner.default;
22750
- // this is the new go forward, once Ember Data updates to using `_Backburner` we
22751
- // can remove the non-underscored version.
22752
- _emberMetalCore.default._Backburner = _backburner.default;
22753
-
22754
- _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
22755
- _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
22756
-
22757
- _emberMetalCore.default.isNone = _emberMetalIs_none.default;
22758
- _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
22759
- _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
22760
- _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
22761
-
22762
- _emberMetalCore.default.merge = _emberMetalMerge.default;
22763
-
22764
- _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
22765
- _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
22766
-
22767
- /**
22768
- A function may be assigned to `Ember.onerror` to be called when Ember
22769
- internals encounter an error. This is useful for specialized error handling
22770
- and reporting code.
22771
-
22772
- ```javascript
22773
- Ember.onerror = function(error) {
22774
- Em.$.ajax('/report-error', 'POST', {
22775
- stack: error.stack,
22776
- otherInformation: 'whatever app state you want to provide'
22777
- });
22778
- };
22779
- ```
22780
-
22781
- Internally, `Ember.onerror` is used as Backburner's error handler.
22782
-
22783
- @event onerror
22784
- @for Ember
22785
- @param {Exception} error the error object
22786
- @public
22787
- */
22788
- _emberMetalCore.default.onerror = null;
22789
- // END EXPORTS
22790
-
22791
- // do this for side-effects of updating Ember.assert, warn, etc when
22792
- // ember-debug is present
22793
- // This needs to be called before any deprecateFunc
22794
- if (_emberMetalCore.default.__loader.registry['ember-debug']) {
22795
- requireModule('ember-debug');
22796
- } else {
22797
- _emberMetalCore.default.Debug = {};
22798
-
22799
- _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
22800
- _emberMetalCore.default.Debug.registerWarnHandler = function () {};
22801
- }
22802
-
22803
- _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create);
22804
- _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys);
22805
-
22806
- exports.default = _emberMetalCore.default;
22807
- });
22808
23159
  enifed('ember-routing/ext/controller', ['exports', 'ember-metal/property_get', 'ember-runtime/mixins/controller'], function (exports, _emberMetalProperty_get, _emberRuntimeMixinsController) {
22809
23160
  'use strict';
22810
23161
 
@@ -22977,6 +23328,31 @@ enifed('ember-routing/ext/run_loop', ['exports', 'ember-metal/run_loop'], functi
22977
23328
  // 'actions' queue first.
22978
23329
  _emberMetalRun_loop.default._addQueue('routerTransitions', 'actions');
22979
23330
  });
23331
+ enifed('ember-routing/index', ['exports', 'ember-metal/core', 'ember-routing/ext/run_loop', 'ember-routing/ext/controller', 'ember-routing/location/api', 'ember-routing/location/none_location', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/system/generate_controller', 'ember-routing/system/controller_for', 'ember-routing/system/dsl', 'ember-routing/system/router', 'ember-routing/system/route'], function (exports, _emberMetalCore, _emberRoutingExtRun_loop, _emberRoutingExtController, _emberRoutingLocationApi, _emberRoutingLocationNone_location, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingSystemGenerate_controller, _emberRoutingSystemController_for, _emberRoutingSystemDsl, _emberRoutingSystemRouter, _emberRoutingSystemRoute) {
23332
+ /**
23333
+ @module ember
23334
+ @submodule ember-routing
23335
+ */
23336
+
23337
+ 'use strict';
23338
+
23339
+ _emberMetalCore.default.Location = _emberRoutingLocationApi.default;
23340
+ _emberMetalCore.default.AutoLocation = _emberRoutingLocationAuto_location.default;
23341
+ _emberMetalCore.default.HashLocation = _emberRoutingLocationHash_location.default;
23342
+ _emberMetalCore.default.HistoryLocation = _emberRoutingLocationHistory_location.default;
23343
+ _emberMetalCore.default.NoneLocation = _emberRoutingLocationNone_location.default;
23344
+
23345
+ _emberMetalCore.default.controllerFor = _emberRoutingSystemController_for.default;
23346
+ _emberMetalCore.default.generateControllerFactory = _emberRoutingSystemGenerate_controller.generateControllerFactory;
23347
+ _emberMetalCore.default.generateController = _emberRoutingSystemGenerate_controller.default;
23348
+ _emberMetalCore.default.RouterDSL = _emberRoutingSystemDsl.default;
23349
+ _emberMetalCore.default.Router = _emberRoutingSystemRouter.default;
23350
+ _emberMetalCore.default.Route = _emberRoutingSystemRoute.default;
23351
+
23352
+ exports.default = _emberMetalCore.default;
23353
+ });
23354
+
23355
+ // ES6TODO: Cleanup modules with side-effects below
22980
23356
  enifed('ember-routing/location/api', ['exports', 'ember-metal/debug', 'ember-metal/environment', 'ember-routing/location/util'], function (exports, _emberMetalDebug, _emberMetalEnvironment, _emberRoutingLocationUtil) {
22981
23357
  'use strict';
22982
23358
 
@@ -24155,7 +24531,10 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug'], function (e
24155
24531
  this.parent = name;
24156
24532
  this.enableLoadingSubstates = options && options.enableLoadingSubstates;
24157
24533
  this.matches = [];
24534
+ this.explicitIndex = undefined;
24535
+ this.options = options;
24158
24536
  }
24537
+
24159
24538
  exports.default = DSL;
24160
24539
 
24161
24540
  DSL.prototype = {
@@ -24177,9 +24556,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug'], function (e
24177
24556
 
24178
24557
  if (callback) {
24179
24558
  var fullName = getFullName(this, name, options.resetNamespace);
24180
- var dsl = new DSL(fullName, {
24181
- enableLoadingSubstates: this.enableLoadingSubstates
24182
- });
24559
+ var dsl = new DSL(fullName, this.options);
24183
24560
 
24184
24561
  createRoute(dsl, 'loading');
24185
24562
  createRoute(dsl, 'error', { path: dummyErrorRoute });
@@ -25580,7 +25957,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
25580
25957
  this.route('post', { path: '/posts/:post_id' });
25581
25958
  });
25582
25959
  ```
25583
- The model for the `post` route is `store.find('post', params.post_id)`.
25960
+ The model for the `post` route is `store.findRecord('post', params.post_id)`.
25584
25961
  By default, if your route has a dynamic segment ending in `_id`:
25585
25962
  * The model class is determined from the segment (`post_id`'s
25586
25963
  class is `App.Post`)
@@ -25598,13 +25975,13 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
25598
25975
  // no dynamic segment, model hook always called
25599
25976
  this.transitionTo('posts');
25600
25977
  // model passed in, so model hook not called
25601
- thePost = store.find('post', 1);
25978
+ thePost = store.findRecord('post', 1);
25602
25979
  this.transitionTo('post', thePost);
25603
25980
  // integer passed in, model hook is called
25604
25981
  this.transitionTo('post', 1);
25605
25982
  // model id passed in, model hook is called
25606
25983
  // useful for forcing the hook to execute
25607
- thePost = store.find('post', 1);
25984
+ thePost = store.findRecord('post', 1);
25608
25985
  this.transitionTo('post', thePost.id);
25609
25986
  ```
25610
25987
  This hook follows the asynchronous/promise semantics
@@ -25615,7 +25992,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
25615
25992
  ```javascript
25616
25993
  App.PostRoute = Ember.Route.extend({
25617
25994
  model: function(params) {
25618
- return this.store.find('post', params.post_id);
25995
+ return this.store.findRecord('post', params.post_id);
25619
25996
  }
25620
25997
  });
25621
25998
  ```
@@ -25778,7 +26155,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
25778
26155
  ```javascript
25779
26156
  App.PhotosRoute = Ember.Route.extend({
25780
26157
  model: function() {
25781
- return this.store.find('photo');
26158
+ return this.store.findAll('photo');
25782
26159
  },
25783
26160
  setupController: function(controller, model) {
25784
26161
  // Call _super for default behavior
@@ -26103,7 +26480,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26103
26480
  ```
26104
26481
  @method disconnectOutlet
26105
26482
  @param {Object|String} options the options hash or outlet name
26106
- @private
26483
+ @public
26107
26484
  */
26108
26485
  disconnectOutlet: function (options) {
26109
26486
  var outletName;
@@ -26205,6 +26582,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26205
26582
  var LOG_VIEW_LOOKUPS = _emberMetalProperty_get.get(route.router, 'namespace.LOG_VIEW_LOOKUPS');
26206
26583
  var into = options && options.into && options.into.replace(/\//g, '.');
26207
26584
  var outlet = options && options.outlet || 'main';
26585
+ var owner = _containerOwner.getOwner(route);
26208
26586
 
26209
26587
  if (name) {
26210
26588
  name = name.replace(/\//g, '.');
@@ -26216,15 +26594,15 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26216
26594
 
26217
26595
  if (!controller) {
26218
26596
  if (namePassed) {
26219
- controller = _containerOwner.getOwner(route).lookup('controller:' + name) || route.controllerName || route.routeName;
26597
+ controller = owner.lookup('controller:' + name) || route.controllerName || route.routeName;
26220
26598
  } else {
26221
- controller = route.controllerName || _containerOwner.getOwner(route).lookup('controller:' + name);
26599
+ controller = route.controllerName || owner.lookup('controller:' + name);
26222
26600
  }
26223
26601
  }
26224
26602
 
26225
26603
  if (typeof controller === 'string') {
26226
26604
  var controllerName = controller;
26227
- controller = _containerOwner.getOwner(route).lookup('controller:' + controllerName);
26605
+ controller = owner.lookup('controller:' + controllerName);
26228
26606
  if (!controller) {
26229
26607
  throw new _emberMetalError.default('You passed `controller: \'' + controllerName + '\'` into the `render` method, but no such controller could be found.');
26230
26608
  }
@@ -26238,7 +26616,6 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26238
26616
  controller.set('model', options.model);
26239
26617
  }
26240
26618
 
26241
- var owner = _containerOwner.getOwner(route);
26242
26619
  viewName = options && options.view || namePassed && name || route.viewName || name;
26243
26620
  ViewClass = owner._lookupFactory('view:' + viewName);
26244
26621
  template = owner.lookup('template:' + templateName);
@@ -26249,6 +26626,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26249
26626
  }
26250
26627
 
26251
26628
  var renderOptions = {
26629
+ owner: owner,
26252
26630
  into: into,
26253
26631
  outlet: outlet,
26254
26632
  name: name,
@@ -26381,6 +26759,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26381
26759
  enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-metal/error', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/properties', 'ember-metal/empty_object', 'ember-metal/computed', 'ember-metal/assign', 'ember-metal/run_loop', 'ember-runtime/system/object', 'ember-runtime/mixins/evented', 'ember-routing/system/dsl', 'ember-routing/location/api', 'ember-routing/utils', 'ember-metal/utils', 'ember-routing/system/router_state', 'container/owner', 'ember-metal/dictionary', 'router', 'router/transition'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberMetalError, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalProperties, _emberMetalEmpty_object, _emberMetalComputed, _emberMetalAssign, _emberMetalRun_loop, _emberRuntimeSystemObject, _emberRuntimeMixinsEvented, _emberRoutingSystemDsl, _emberRoutingLocationApi, _emberRoutingUtils, _emberMetalUtils, _emberRoutingSystemRouter_state, _containerOwner, _emberMetalDictionary, _router4, _routerTransition) {
26382
26760
  'use strict';
26383
26761
 
26762
+ exports.triggerEvent = triggerEvent;
26763
+
26384
26764
  function K() {
26385
26765
  return this;
26386
26766
  }
@@ -26423,7 +26803,7 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26423
26803
  */
26424
26804
  rootURL: '/',
26425
26805
 
26426
- _initRouterJs: function (moduleBasedResolver) {
26806
+ _initRouterJs: function () {
26427
26807
  var router = this.router = new _router4.default();
26428
26808
  router.triggerEvent = triggerEvent;
26429
26809
 
@@ -26431,19 +26811,13 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26431
26811
  router._triggerWillLeave = K;
26432
26812
 
26433
26813
  var dslCallbacks = this.constructor.dslCallbacks || [K];
26434
- var dsl = new _emberRoutingSystemDsl.default(null, {
26435
- enableLoadingSubstates: !!moduleBasedResolver
26436
- });
26814
+ var dsl = this._buildDSL();
26437
26815
 
26438
- function generateDSL() {
26439
- this.route('application', { path: '/', resetNamespace: true, overrideNameAssertion: true }, function () {
26440
- for (var i = 0; i < dslCallbacks.length; i++) {
26441
- dslCallbacks[i].call(this);
26442
- }
26443
- });
26444
- }
26445
-
26446
- generateDSL.call(dsl);
26816
+ dsl.route('application', { path: '/', resetNamespace: true, overrideNameAssertion: true }, function () {
26817
+ for (var i = 0; i < dslCallbacks.length; i++) {
26818
+ dslCallbacks[i].call(this);
26819
+ }
26820
+ });
26447
26821
 
26448
26822
  if (_emberMetalProperty_get.get(this, 'namespace.LOG_TRANSITIONS_INTERNAL')) {
26449
26823
  router.log = _emberMetalLogger.default.debug;
@@ -26452,7 +26826,17 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26452
26826
  router.map(dsl.generate());
26453
26827
  },
26454
26828
 
26829
+ _buildDSL: function () {
26830
+ var moduleBasedResolver = this._hasModuleBasedResolver();
26831
+
26832
+ return new _emberRoutingSystemDsl.default(null, {
26833
+ enableLoadingSubstates: !!moduleBasedResolver
26834
+ });
26835
+ },
26836
+
26455
26837
  init: function () {
26838
+ this._super.apply(this, arguments);
26839
+
26456
26840
  this._activeViews = {};
26457
26841
  this._qpCache = new _emberMetalEmpty_object.default();
26458
26842
  this._resetQueuedQueryParameterChanges();
@@ -26478,6 +26862,22 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26478
26862
  return _emberMetalProperty_get.get(this, 'location').getURL();
26479
26863
  }),
26480
26864
 
26865
+ _hasModuleBasedResolver: function () {
26866
+ var owner = _containerOwner.getOwner(this);
26867
+
26868
+ if (!owner) {
26869
+ return false;
26870
+ }
26871
+
26872
+ var resolver = owner.application && owner.application.__registry__ && owner.application.__registry__.resolver;
26873
+
26874
+ if (!resolver) {
26875
+ return false;
26876
+ }
26877
+
26878
+ return !!resolver.moduleBasedResolver;
26879
+ },
26880
+
26481
26881
  /**
26482
26882
  Initializes the current router instance and sets up the change handling
26483
26883
  event listeners used by the instances `location` implementation.
@@ -26486,10 +26886,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26486
26886
  @method startRouting
26487
26887
  @private
26488
26888
  */
26489
- startRouting: function (moduleBasedResolver) {
26889
+ startRouting: function () {
26490
26890
  var initialURL = _emberMetalProperty_get.get(this, 'initialURL');
26491
26891
 
26492
- if (this.setupRouter(moduleBasedResolver)) {
26892
+ if (this.setupRouter()) {
26493
26893
  if (typeof initialURL === 'undefined') {
26494
26894
  initialURL = _emberMetalProperty_get.get(this, 'location').getURL();
26495
26895
  }
@@ -26500,10 +26900,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
26500
26900
  }
26501
26901
  },
26502
26902
 
26503
- setupRouter: function (moduleBasedResolver) {
26903
+ setupRouter: function () {
26504
26904
  var _this = this;
26505
26905
 
26506
- this._initRouterJs(moduleBasedResolver);
26906
+ this._initRouterJs();
26507
26907
  this._setupLocation();
26508
26908
 
26509
26909
  var router = this.router;
@@ -27779,6 +28179,22 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/d
27779
28179
  });
27780
28180
  }
27781
28181
  });
28182
+ enifed('ember-routing-htmlbars/index', ['exports', 'ember-metal/core', 'ember-htmlbars/helpers', 'ember-htmlbars/keywords', 'ember-routing-htmlbars/helpers/query-params', 'ember-routing-htmlbars/keywords/action', 'ember-routing-htmlbars/keywords/element-action', 'ember-routing-htmlbars/keywords/render'], function (exports, _emberMetalCore, _emberHtmlbarsHelpers, _emberHtmlbarsKeywords, _emberRoutingHtmlbarsHelpersQueryParams, _emberRoutingHtmlbarsKeywordsAction, _emberRoutingHtmlbarsKeywordsElementAction, _emberRoutingHtmlbarsKeywordsRender) {
28183
+ /**
28184
+ @module ember
28185
+ @submodule ember-routing-htmlbars
28186
+ */
28187
+
28188
+ 'use strict';
28189
+
28190
+ _emberHtmlbarsHelpers.registerHelper('query-params', _emberRoutingHtmlbarsHelpersQueryParams.queryParamsHelper);
28191
+
28192
+ _emberHtmlbarsKeywords.registerKeyword('action', _emberRoutingHtmlbarsKeywordsAction.default);
28193
+ _emberHtmlbarsKeywords.registerKeyword('@element_action', _emberRoutingHtmlbarsKeywordsElementAction.default);
28194
+ _emberHtmlbarsKeywords.registerKeyword('render', _emberRoutingHtmlbarsKeywordsRender.default);
28195
+
28196
+ exports.default = _emberMetalCore.default;
28197
+ });
27782
28198
  enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/hooks', 'ember-routing-htmlbars/keywords/closure-action'], function (exports, _htmlbarsRuntimeHooks, _emberRoutingHtmlbarsKeywordsClosureAction) {
27783
28199
  /**
27784
28200
  @module ember
@@ -27963,7 +28379,7 @@ enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/h
27963
28379
  supply an `on` option to the helper to specify a different DOM event name:
27964
28380
 
27965
28381
  ```handlebars
27966
- <div {{action "anActionName" on="double-click"}}>
28382
+ <div {{action "anActionName" on="doubleClick"}}>
27967
28383
  click me
27968
28384
  </div>
27969
28385
  ```
@@ -28550,22 +28966,6 @@ enifed('ember-routing-htmlbars/keywords/render', ['exports', 'ember-metal/debug'
28550
28966
  });
28551
28967
 
28552
28968
  // use the singleton controller
28553
- enifed('ember-routing-htmlbars', ['exports', 'ember-metal/core', 'ember-htmlbars/helpers', 'ember-htmlbars/keywords', 'ember-routing-htmlbars/helpers/query-params', 'ember-routing-htmlbars/keywords/action', 'ember-routing-htmlbars/keywords/element-action', 'ember-routing-htmlbars/keywords/render'], function (exports, _emberMetalCore, _emberHtmlbarsHelpers, _emberHtmlbarsKeywords, _emberRoutingHtmlbarsHelpersQueryParams, _emberRoutingHtmlbarsKeywordsAction, _emberRoutingHtmlbarsKeywordsElementAction, _emberRoutingHtmlbarsKeywordsRender) {
28554
- /**
28555
- @module ember
28556
- @submodule ember-routing-htmlbars
28557
- */
28558
-
28559
- 'use strict';
28560
-
28561
- _emberHtmlbarsHelpers.registerHelper('query-params', _emberRoutingHtmlbarsHelpersQueryParams.queryParamsHelper);
28562
-
28563
- _emberHtmlbarsKeywords.registerKeyword('action', _emberRoutingHtmlbarsKeywordsAction.default);
28564
- _emberHtmlbarsKeywords.registerKeyword('@element_action', _emberRoutingHtmlbarsKeywordsElementAction.default);
28565
- _emberHtmlbarsKeywords.registerKeyword('render', _emberRoutingHtmlbarsKeywordsRender.default);
28566
-
28567
- exports.default = _emberMetalCore.default;
28568
- });
28569
28969
  enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/computed', 'ember-metal/computed_macros', 'ember-views/system/utils', 'ember-views/components/component', 'ember-runtime/inject', 'ember-runtime/system/service', 'ember-runtime/mixins/controller', 'ember-htmlbars/node-managers/component-node-manager', 'ember-htmlbars/templates/link-to'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberMetalProperty_get, _emberMetalComputed, _emberMetalComputed_macros, _emberViewsSystemUtils, _emberViewsComponentsComponent, _emberRuntimeInject, _emberRuntimeSystemService, _emberRuntimeMixinsController, _emberHtmlbarsNodeManagersComponentNodeManager, _emberHtmlbarsTemplatesLinkTo) {
28570
28970
  /**
28571
28971
  @module ember
@@ -28709,8 +29109,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
28709
29109
  ### Keeping a link active for other routes
28710
29110
 
28711
29111
  If you need a link to be 'active' even when it doesn't match
28712
- the current route, you can use the the `current-when`
28713
- argument.
29112
+ the current route, you can use the `current-when` argument.
28714
29113
 
28715
29114
  ```handlebars
28716
29115
  {{#link-to 'photoGallery' current-when='photos'}}
@@ -28741,7 +29140,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
28741
29140
  the model context of the linked route:
28742
29141
 
28743
29142
  ```javascript
28744
- App.Router.map(function() {
29143
+ Router.map(function() {
28745
29144
  this.route("photoGallery", {path: "hamster-photos/:photo_id"});
28746
29145
  });
28747
29146
  ```
@@ -28766,7 +29165,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
28766
29165
  route with the dynamic segments:
28767
29166
 
28768
29167
  ```javascript
28769
- App.Router.map(function() {
29168
+ Router.map(function() {
28770
29169
  this.route("photoGallery", { path: "hamster-photos/:photo_id" }, function() {
28771
29170
  this.route("comment", {path: "comments/:comment_id"});
28772
29171
  });
@@ -28793,7 +29192,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
28793
29192
  of the dynamic segment:
28794
29193
 
28795
29194
  ```javascript
28796
- App.Router.map(function() {
29195
+ Router.map(function() {
28797
29196
  this.route("photoGallery", { path: "hamster-photos/:photo_id" });
28798
29197
  });
28799
29198
  ```
@@ -28883,7 +29282,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
28883
29282
 
28884
29283
  'use strict';
28885
29284
 
28886
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.3.2';
29285
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.4.0-beta.2';
28887
29286
 
28888
29287
  /**
28889
29288
  `Ember.LinkComponent` renders an element whose `click` event triggers a
@@ -29009,7 +29408,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29009
29408
  and `disabled` classes. It is discouraged to override these directly.
29010
29409
  @property classNameBindings
29011
29410
  @type Array
29012
- @default ['active', 'loading', 'disabled']
29411
+ @default ['active', 'loading', 'disabled', 'ember-transitioning-in', 'ember-transitioning-out']
29013
29412
  @public
29014
29413
  */
29015
29414
  classNameBindings: ['active', 'loading', 'disabled', 'transitioningIn', 'transitioningOut'],
@@ -29045,13 +29444,13 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29045
29444
  ```javascript
29046
29445
  App.MyLinkComponent = Ember.LinkComponent.extend({
29047
29446
  init: function() {
29048
- this._super.apply(this, arguments);
29447
+ this._super(...arguments);
29049
29448
  Ember.Logger.log('Event is ' + this.get('eventName'));
29050
29449
  }
29051
29450
  });
29052
29451
  ```
29053
29452
  NOTE: If you do override `init` for a framework class like `Ember.View`,
29054
- be sure to call `this._super.apply(this, arguments)` in your
29453
+ be sure to call `this._super(...arguments)` in your
29055
29454
  `init` declaration! If you don't, Ember may not have an opportunity to
29056
29455
  do important setup work, and you'll see strange behavior in your
29057
29456
  application.
@@ -29362,6 +29761,19 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29362
29761
  exports.default = LinkComponent;
29363
29762
  });
29364
29763
  // creates inject.service
29764
+ enifed('ember-routing-views/index', ['exports', 'ember-metal/core', 'ember-routing-views/components/link-to', 'ember-routing-views/views/outlet'], function (exports, _emberMetalCore, _emberRoutingViewsComponentsLinkTo, _emberRoutingViewsViewsOutlet) {
29765
+ /**
29766
+ @module ember
29767
+ @submodule ember-routing-views
29768
+ */
29769
+
29770
+ 'use strict';
29771
+
29772
+ _emberMetalCore.default.LinkComponent = _emberRoutingViewsComponentsLinkTo.default;
29773
+ _emberMetalCore.default.OutletView = _emberRoutingViewsViewsOutlet.OutletView;
29774
+
29775
+ exports.default = _emberMetalCore.default;
29776
+ });
29365
29777
  enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view', 'ember-htmlbars/templates/top-level-view'], function (exports, _emberViewsViewsView, _emberHtmlbarsTemplatesTopLevelView) {
29366
29778
  /**
29367
29779
  @module ember
@@ -29370,7 +29782,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
29370
29782
 
29371
29783
  'use strict';
29372
29784
 
29373
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.3.2';
29785
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.4.0-beta.2';
29374
29786
 
29375
29787
  var CoreOutletView = _emberViewsViewsView.default.extend({
29376
29788
  defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
@@ -29407,44 +29819,6 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
29407
29819
  var OutletView = CoreOutletView.extend({ tagName: '' });
29408
29820
  exports.OutletView = OutletView;
29409
29821
  });
29410
- enifed('ember-routing-views', ['exports', 'ember-metal/core', 'ember-routing-views/components/link-to', 'ember-routing-views/views/outlet'], function (exports, _emberMetalCore, _emberRoutingViewsComponentsLinkTo, _emberRoutingViewsViewsOutlet) {
29411
- /**
29412
- @module ember
29413
- @submodule ember-routing-views
29414
- */
29415
-
29416
- 'use strict';
29417
-
29418
- _emberMetalCore.default.LinkComponent = _emberRoutingViewsComponentsLinkTo.default;
29419
- _emberMetalCore.default.OutletView = _emberRoutingViewsViewsOutlet.OutletView;
29420
-
29421
- exports.default = _emberMetalCore.default;
29422
- });
29423
- enifed('ember-routing', ['exports', 'ember-metal/core', 'ember-routing/ext/run_loop', 'ember-routing/ext/controller', 'ember-routing/location/api', 'ember-routing/location/none_location', 'ember-routing/location/hash_location', 'ember-routing/location/history_location', 'ember-routing/location/auto_location', 'ember-routing/system/generate_controller', 'ember-routing/system/controller_for', 'ember-routing/system/dsl', 'ember-routing/system/router', 'ember-routing/system/route'], function (exports, _emberMetalCore, _emberRoutingExtRun_loop, _emberRoutingExtController, _emberRoutingLocationApi, _emberRoutingLocationNone_location, _emberRoutingLocationHash_location, _emberRoutingLocationHistory_location, _emberRoutingLocationAuto_location, _emberRoutingSystemGenerate_controller, _emberRoutingSystemController_for, _emberRoutingSystemDsl, _emberRoutingSystemRouter, _emberRoutingSystemRoute) {
29424
- /**
29425
- @module ember
29426
- @submodule ember-routing
29427
- */
29428
-
29429
- 'use strict';
29430
-
29431
- _emberMetalCore.default.Location = _emberRoutingLocationApi.default;
29432
- _emberMetalCore.default.AutoLocation = _emberRoutingLocationAuto_location.default;
29433
- _emberMetalCore.default.HashLocation = _emberRoutingLocationHash_location.default;
29434
- _emberMetalCore.default.HistoryLocation = _emberRoutingLocationHistory_location.default;
29435
- _emberMetalCore.default.NoneLocation = _emberRoutingLocationNone_location.default;
29436
-
29437
- _emberMetalCore.default.controllerFor = _emberRoutingSystemController_for.default;
29438
- _emberMetalCore.default.generateControllerFactory = _emberRoutingSystemGenerate_controller.generateControllerFactory;
29439
- _emberMetalCore.default.generateController = _emberRoutingSystemGenerate_controller.default;
29440
- _emberMetalCore.default.RouterDSL = _emberRoutingSystemDsl.default;
29441
- _emberMetalCore.default.Router = _emberRoutingSystemRouter.default;
29442
- _emberMetalCore.default.Route = _emberRoutingSystemRoute.default;
29443
-
29444
- exports.default = _emberMetalCore.default;
29445
- });
29446
-
29447
- // ES6TODO: Cleanup modules with side-effects below
29448
29822
  enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtime/mixins/comparable'], function (exports, _emberRuntimeUtils, _emberRuntimeMixinsComparable) {
29449
29823
  'use strict';
29450
29824
 
@@ -29467,28 +29841,59 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
29467
29841
  //
29468
29842
  // the spaceship operator
29469
29843
  //
29844
+ // `. ___
29845
+ // __,' __`. _..----....____
29846
+ // __...--.'``;. ,. ;``--..__ .' ,-._ _.-'
29847
+ // _..-''-------' `' `' `' O ``-''._ (,;') _,'
29848
+ // ,'________________ \`-._`-','
29849
+ // `._ ```````````------...___ '-.._'-:
29850
+ // ```--.._ ,. ````--...__\-.
29851
+ // `.--. `-` "INFINTIY IS LESS ____ | |`
29852
+ // `. `. THAN BEYOND" ,'`````. ; ;`
29853
+ // `._`. __________ `. \'__/`
29854
+ // `-:._____/______/___/____`. \ `
29855
+ // | `._ `. \
29856
+ // `._________`-. `. `.___
29857
+ // SSt `------'`
29470
29858
  function spaceship(a, b) {
29471
29859
  var diff = a - b;
29472
29860
  return (diff > 0) - (diff < 0);
29473
29861
  }
29474
29862
 
29475
29863
  /**
29476
- This will compare two javascript values of possibly different types.
29477
- It will tell you which one is greater than the other by returning:
29864
+ Compares two javascript values and returns:
29478
29865
 
29479
29866
  - -1 if the first is smaller than the second,
29480
29867
  - 0 if both are equal,
29481
29868
  - 1 if the first is greater than the second.
29482
29869
 
29483
- The order is calculated based on `Ember.ORDER_DEFINITION`, if types are different.
29484
- In case they have the same type an appropriate comparison for this type is made.
29485
-
29486
29870
  ```javascript
29487
29871
  Ember.compare('hello', 'hello'); // 0
29488
29872
  Ember.compare('abc', 'dfg'); // -1
29489
29873
  Ember.compare(2, 1); // 1
29490
29874
  ```
29491
29875
 
29876
+ If the types of the two objects are different precedence occurs in the
29877
+ following order, with types earlier in the list considered `<` types
29878
+ later in the list:
29879
+
29880
+ - undefined
29881
+ - null
29882
+ - boolean
29883
+ - number
29884
+ - string
29885
+ - array
29886
+ - object
29887
+ - instance
29888
+ - function
29889
+ - class
29890
+ - date
29891
+
29892
+ ```javascript
29893
+ Ember.compare('hello', 50); // 1
29894
+ Ember.compare(50, 'hello'); // -1
29895
+ ```
29896
+
29492
29897
  @method compare
29493
29898
  @for Ember
29494
29899
  @param {Object} v First value to compare
@@ -30402,19 +30807,21 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/debug', 'ember-runtime/sys
30402
30807
  }
30403
30808
 
30404
30809
  /**
30405
- Creates a clone of the passed object. This function can take just about
30406
- any type of object and create a clone of it, including primitive values
30407
- (which are not actually cloned because they are immutable).
30810
+ Creates a shallow copy of the passed object. A deep copy of the object is
30811
+ returned if the optional `deep` argument is `true`.
30408
30812
 
30409
- If the passed object implements the `copy()` method, then this function
30410
- will simply call that method and return the result. Please see
30411
- `Ember.Copyable` for further details.
30813
+ If the passed object implements the `Ember.Copyable` interface, then this
30814
+ function will delegate to the object's `copy()` method and return the
30815
+ result. See `Ember.Copyable` for further details.
30816
+
30817
+ For primitive values (which are immutable in JavaScript), the passed object
30818
+ is simply returned.
30412
30819
 
30413
30820
  @method copy
30414
30821
  @for Ember
30415
30822
  @param {Object} obj The object to clone
30416
- @param {Boolean} deep If true, a deep copy of the object is made
30417
- @return {Object} The cloned object
30823
+ @param {Boolean} [deep=false] If true, a deep copy of the object is made.
30824
+ @return {Object} The copied object
30418
30825
  @public
30419
30826
  */
30420
30827
 
@@ -30588,7 +30995,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-metal/core', 'ember-meta
30588
30995
  }
30589
30996
  });
30590
30997
  // Ember.EXTEND_PROTOTYPES
30591
- enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/logger', 'ember-metal/run_loop', 'rsvp'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalLogger, _emberMetalRun_loop, _rsvp) {
30998
+ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'require', 'ember-metal/debug', 'ember-metal/logger', 'ember-metal/run_loop', 'rsvp'], function (exports, _emberMetalCore, _require, _emberMetalDebug, _emberMetalLogger, _emberMetalRun_loop, _rsvp) {
30592
30999
  'use strict';
30593
31000
 
30594
31001
  exports.onerrorDefault = onerrorDefault;
@@ -30648,8 +31055,8 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/de
30648
31055
  if (error && error.name !== 'TransitionAborted') {
30649
31056
  if (_emberMetalCore.default.testing) {
30650
31057
  // ES6TODO: remove when possible
30651
- if (!Test && _emberMetalCore.default.__loader.registry[testModuleName]) {
30652
- Test = requireModule(testModuleName)['default'];
31058
+ if (!Test && _require.has(testModuleName)) {
31059
+ Test = _require.default(testModuleName)['default'];
30653
31060
  }
30654
31061
 
30655
31062
  if (Test && Test.adapter) {
@@ -30787,6 +31194,116 @@ enifed('ember-runtime/ext/string', ['exports', 'ember-metal/core', 'ember-runtim
30787
31194
  }
30788
31195
  });
30789
31196
  // Ember.EXTEND_PROTOTYPES
31197
+ enifed('ember-runtime/index', ['exports', 'ember-metal', 'ember-runtime/is-equal', 'ember-runtime/compare', 'ember-runtime/copy', 'ember-runtime/inject', 'ember-runtime/system/namespace', 'ember-runtime/system/object', 'ember-runtime/system/container', 'ember-runtime/system/array_proxy', 'ember-runtime/system/object_proxy', 'ember-runtime/system/core_object', 'ember-runtime/system/native_array', 'ember-runtime/system/string', 'ember-runtime/system/lazy_load', 'ember-runtime/mixins/array', 'ember-runtime/mixins/comparable', 'ember-runtime/mixins/copyable', 'ember-runtime/mixins/enumerable', 'ember-runtime/mixins/freezable', 'ember-runtime/mixins/-proxy', 'ember-runtime/mixins/observable', 'ember-runtime/mixins/action_handler', 'ember-runtime/mixins/mutable_enumerable', 'ember-runtime/mixins/mutable_array', 'ember-runtime/mixins/target_action_support', 'ember-runtime/mixins/evented', 'ember-runtime/mixins/promise_proxy', 'ember-runtime/computed/reduce_computed_macros', 'ember-runtime/controllers/controller', 'ember-runtime/mixins/controller', 'ember-runtime/system/service', 'ember-runtime/ext/rsvp', 'ember-runtime/ext/string', 'ember-runtime/ext/function', 'ember-runtime/utils', 'ember-metal/features', 'ember-runtime/mixins/registry_proxy', 'ember-runtime/mixins/container_proxy', 'ember-runtime/string_registry'], function (exports, _emberMetal, _emberRuntimeIsEqual, _emberRuntimeCompare, _emberRuntimeCopy, _emberRuntimeInject, _emberRuntimeSystemNamespace, _emberRuntimeSystemObject, _emberRuntimeSystemContainer, _emberRuntimeSystemArray_proxy, _emberRuntimeSystemObject_proxy, _emberRuntimeSystemCore_object, _emberRuntimeSystemNative_array, _emberRuntimeSystemString, _emberRuntimeSystemLazy_load, _emberRuntimeMixinsArray, _emberRuntimeMixinsComparable, _emberRuntimeMixinsCopyable, _emberRuntimeMixinsEnumerable, _emberRuntimeMixinsFreezable, _emberRuntimeMixinsProxy, _emberRuntimeMixinsObservable, _emberRuntimeMixinsAction_handler, _emberRuntimeMixinsMutable_enumerable, _emberRuntimeMixinsMutable_array, _emberRuntimeMixinsTarget_action_support, _emberRuntimeMixinsEvented, _emberRuntimeMixinsPromise_proxy, _emberRuntimeComputedReduce_computed_macros, _emberRuntimeControllersController, _emberRuntimeMixinsController, _emberRuntimeSystemService, _emberRuntimeExtRsvp, _emberRuntimeExtString, _emberRuntimeExtFunction, _emberRuntimeUtils, _emberMetalFeatures, _emberRuntimeMixinsRegistry_proxy, _emberRuntimeMixinsContainer_proxy, _emberRuntimeString_registry) {
31198
+ /**
31199
+ @module ember
31200
+ @submodule ember-runtime
31201
+ */
31202
+
31203
+ // BEGIN IMPORTS
31204
+ 'use strict';
31205
+
31206
+ // END IMPORTS
31207
+
31208
+ // BEGIN EXPORTS
31209
+ _emberMetal.default.compare = _emberRuntimeCompare.default;
31210
+ _emberMetal.default.copy = _emberRuntimeCopy.default;
31211
+ _emberMetal.default.isEqual = _emberRuntimeIsEqual.default;
31212
+
31213
+ _emberMetal.default.inject = _emberRuntimeInject.default;
31214
+
31215
+ _emberMetal.default.Array = _emberRuntimeMixinsArray.default;
31216
+
31217
+ _emberMetal.default.Comparable = _emberRuntimeMixinsComparable.default;
31218
+ _emberMetal.default.Copyable = _emberRuntimeMixinsCopyable.default;
31219
+
31220
+ _emberMetal.default.Freezable = _emberRuntimeMixinsFreezable.Freezable;
31221
+ _emberMetal.default.FROZEN_ERROR = _emberRuntimeMixinsFreezable.FROZEN_ERROR;
31222
+
31223
+ _emberMetal.default.MutableEnumerable = _emberRuntimeMixinsMutable_enumerable.default;
31224
+ _emberMetal.default.MutableArray = _emberRuntimeMixinsMutable_array.default;
31225
+
31226
+ _emberMetal.default.TargetActionSupport = _emberRuntimeMixinsTarget_action_support.default;
31227
+ _emberMetal.default.Evented = _emberRuntimeMixinsEvented.default;
31228
+
31229
+ _emberMetal.default.PromiseProxyMixin = _emberRuntimeMixinsPromise_proxy.default;
31230
+
31231
+ _emberMetal.default.Observable = _emberRuntimeMixinsObservable.default;
31232
+
31233
+ _emberMetal.default.typeOf = _emberRuntimeUtils.typeOf;
31234
+ _emberMetal.default.isArray = _emberRuntimeUtils.isArray;
31235
+
31236
+ // ES6TODO: this seems a less than ideal way/place to add properties to Ember.computed
31237
+ var EmComputed = _emberMetal.default.computed;
31238
+
31239
+ EmComputed.sum = _emberRuntimeComputedReduce_computed_macros.sum;
31240
+ EmComputed.min = _emberRuntimeComputedReduce_computed_macros.min;
31241
+ EmComputed.max = _emberRuntimeComputedReduce_computed_macros.max;
31242
+ EmComputed.map = _emberRuntimeComputedReduce_computed_macros.map;
31243
+ EmComputed.sort = _emberRuntimeComputedReduce_computed_macros.sort;
31244
+ EmComputed.setDiff = _emberRuntimeComputedReduce_computed_macros.setDiff;
31245
+ EmComputed.mapBy = _emberRuntimeComputedReduce_computed_macros.mapBy;
31246
+ EmComputed.filter = _emberRuntimeComputedReduce_computed_macros.filter;
31247
+ EmComputed.filterBy = _emberRuntimeComputedReduce_computed_macros.filterBy;
31248
+ EmComputed.uniq = _emberRuntimeComputedReduce_computed_macros.uniq;
31249
+ EmComputed.union = _emberRuntimeComputedReduce_computed_macros.union;
31250
+ EmComputed.intersect = _emberRuntimeComputedReduce_computed_macros.intersect;
31251
+ EmComputed.collect = _emberRuntimeComputedReduce_computed_macros.collect;
31252
+
31253
+ _emberMetal.default.String = _emberRuntimeSystemString.default;
31254
+ _emberMetal.default.Object = _emberRuntimeSystemObject.default;
31255
+ _emberMetal.default.Container = _emberRuntimeSystemContainer.Container;
31256
+ _emberMetal.default.Registry = _emberRuntimeSystemContainer.Registry;
31257
+
31258
+ _emberMetal.default.getOwner = _emberRuntimeSystemContainer.getOwner;
31259
+ _emberMetal.default.setOwner = _emberRuntimeSystemContainer.setOwner;
31260
+
31261
+ _emberMetal.default._RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
31262
+ _emberMetal.default._ContainerProxyMixin = _emberRuntimeMixinsContainer_proxy.default;
31263
+
31264
+ _emberMetal.default.Namespace = _emberRuntimeSystemNamespace.default;
31265
+ _emberMetal.default.Enumerable = _emberRuntimeMixinsEnumerable.default;
31266
+ _emberMetal.default.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
31267
+ _emberMetal.default.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
31268
+ _emberMetal.default.ActionHandler = _emberRuntimeMixinsAction_handler.default;
31269
+ _emberMetal.default.CoreObject = _emberRuntimeSystemCore_object.default;
31270
+ _emberMetal.default.NativeArray = _emberRuntimeSystemNative_array.default;
31271
+ // ES6TODO: Currently we must rely on the global from ember-metal/core to avoid circular deps
31272
+ // Ember.A = A;
31273
+ _emberMetal.default.onLoad = _emberRuntimeSystemLazy_load.onLoad;
31274
+ _emberMetal.default.runLoadHooks = _emberRuntimeSystemLazy_load.runLoadHooks;
31275
+
31276
+ _emberMetal.default.Controller = _emberRuntimeControllersController.default;
31277
+ _emberMetal.default.ControllerMixin = _emberRuntimeMixinsController.default;
31278
+
31279
+ _emberMetal.default.Service = _emberRuntimeSystemService.default;
31280
+
31281
+ _emberMetal.default._ProxyMixin = _emberRuntimeMixinsProxy.default;
31282
+
31283
+ _emberMetal.default.RSVP = _emberRuntimeExtRsvp.default;
31284
+ // END EXPORTS
31285
+
31286
+ /**
31287
+ Defines the hash of localized strings for the current language. Used by
31288
+ the `Ember.String.loc()` helper. To localize, add string values to this
31289
+ hash.
31290
+
31291
+ @property STRINGS
31292
+ @for Ember
31293
+ @type Object
31294
+ @private
31295
+ */
31296
+ Object.defineProperty(_emberMetal.default, 'STRINGS', {
31297
+ configurable: false,
31298
+ get: _emberRuntimeString_registry.getStrings,
31299
+ set: _emberRuntimeString_registry.setStrings
31300
+ });
31301
+
31302
+ exports.default = _emberMetal.default;
31303
+ });
31304
+ // just for side effect of extending Ember.RSVP
31305
+ // just for side effect of extending String.prototype
31306
+ // just for side effect of extending Function.prototype
30790
31307
  enifed('ember-runtime/inject', ['exports', 'ember-metal/debug', 'ember-metal/injected_property'], function (exports, _emberMetalDebug, _emberMetalInjected_property) {
30791
31308
  'use strict';
30792
31309
 
@@ -30867,16 +31384,34 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/debug', 'ember-metal/inj
30867
31384
  });
30868
31385
  enifed('ember-runtime/is-equal', ['exports'], function (exports) {
30869
31386
  /**
30870
- Compares two objects, returning true if they are logically equal. This is
30871
- a deeper comparison than a simple triple equal. For sets it will compare the
30872
- internal objects. For any other object that implements `isEqual()` it will
30873
- respect that method.
31387
+ Compares two objects, returning true if they are equal.
30874
31388
 
30875
31389
  ```javascript
30876
31390
  Ember.isEqual('hello', 'hello'); // true
30877
31391
  Ember.isEqual(1, 2); // false
31392
+ ```
31393
+
31394
+ `isEqual` is a more specific comparison than a triple equal comparison.
31395
+ It will call the `isEqual` instance method on the objects being
31396
+ compared, allowing finer control over when objects should be considered
31397
+ equal to each other.
31398
+
31399
+ ```javascript
31400
+ let Person = Ember.Object.extend({
31401
+ isEqual(other) { return this.ssn == other.ssn; }
31402
+ });
31403
+
31404
+ let personA = Person.create({name: 'Muhammad Ali', ssn: '123-45-6789'});
31405
+ let personB = Person.create({name: 'Cassius Clay', ssn: '123-45-6789'});
31406
+
31407
+ Ember.isEqual(personA, personB); // true
31408
+ ```
31409
+
31410
+ Due to the expense of array comparisons, collections will never be equal to
31411
+ each other even if each of their items are equal to each other.
31412
+
31413
+ ```javascript
30878
31414
  Ember.isEqual([4, 2], [4, 2]); // false
30879
- Ember.isEqual({ isEqual() { return true;} }, null) // true
30880
31415
  ```
30881
31416
 
30882
31417
  @method isEqual
@@ -31053,7 +31588,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
31053
31588
  }
31054
31589
  });
31055
31590
  ```
31056
- It is also possible to call `this._super.apply(this, arguments)` from within an
31591
+ It is also possible to call `this._super(...arguments)` from within an
31057
31592
  action handler if it overrides a handler defined on a parent
31058
31593
  class or mixin:
31059
31594
  Take for example the following routes:
@@ -31069,7 +31604,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
31069
31604
  actions: {
31070
31605
  debugRouteInformation: function() {
31071
31606
  // also call the debugRouteInformation of mixed in App.DebugRoute
31072
- this._super.apply(this, arguments);
31607
+ this._super(...arguments);
31073
31608
  // show additional annoyance
31074
31609
  window.alert(...);
31075
31610
  }
@@ -31483,7 +32018,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
31483
32018
  * `arrayDidChange(observedObj, start, removeCount, addCount)` - This method will be
31484
32019
  called just after the array is modified.
31485
32020
  Both callbacks will be passed the observed object, starting index of the
31486
- change as well a a count of the items to be removed and added. You can use
32021
+ change as well as a count of the items to be removed and added. You can use
31487
32022
  these callbacks to optionally inspect the array during the change, clear
31488
32023
  caches, or do any other bookkeeping necessary.
31489
32024
  In addition to passing a target, you can also include an options hash
@@ -34159,7 +34694,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal/property_g
34159
34694
  proxy.get('isFulfilled') //=> false
34160
34695
  ```
34161
34696
 
34162
- When the the $.getJSON completes, and the promise is fulfilled
34697
+ When the $.getJSON completes, and the promise is fulfilled
34163
34698
  with json, the life cycle attributes will update accordingly.
34164
34699
 
34165
34700
  ```javascript
@@ -35287,7 +35822,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
35287
35822
  // alerts 'Name is Steve'.
35288
35823
  ```
35289
35824
  NOTE: If you do override `init` for a framework class like `Ember.View`,
35290
- be sure to call `this._super.apply(this, arguments)` in your
35825
+ be sure to call `this._super(...arguments)` in your
35291
35826
  `init` declaration! If you don't, Ember may not have an opportunity to
35292
35827
  do important setup work, and you'll see strange behavior in your
35293
35828
  application.
@@ -36446,7 +36981,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
36446
36981
  classNames: ['pagination'],
36447
36982
 
36448
36983
  init: function() {
36449
- this._super.apply(this, arguments);
36984
+ this._super(...arguments);
36450
36985
  if (!this.get('content')) {
36451
36986
  this.set('content', Ember.A());
36452
36987
  }
@@ -36962,14 +37497,14 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
36962
37497
  /**
36963
37498
  Returns true if the passed object is an array or Array-like.
36964
37499
 
36965
- Ember Array Protocol:
37500
+ Objects are considered Array-like if any of the following are true:
36966
37501
 
36967
- - the object has an objectAt property
36968
37502
  - the object is a native Array
37503
+ - the object has an objectAt property
36969
37504
  - the object is an Object, and has a length property
36970
37505
 
36971
37506
  Unlike `Ember.typeOf` this method returns true even if the passed object is
36972
- not formally array but appears to be array-like (i.e. implements `Ember.Array`)
37507
+ not formally an array but appears to be array-like (i.e. implements `Ember.Array`)
36973
37508
 
36974
37509
  ```javascript
36975
37510
  Ember.isArray(); // false
@@ -37006,7 +37541,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
37006
37541
  }
37007
37542
 
37008
37543
  /**
37009
- Returns a consistent type for the passed item.
37544
+ Returns a consistent type for the passed object.
37010
37545
 
37011
37546
  Use this instead of the built-in `typeof` to get the type of an item.
37012
37547
  It will return the same result across all browsers and includes a bit
@@ -37085,117 +37620,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
37085
37620
  return ret;
37086
37621
  }
37087
37622
  });
37088
- enifed('ember-runtime', ['exports', 'ember-metal', 'ember-runtime/is-equal', 'ember-runtime/compare', 'ember-runtime/copy', 'ember-runtime/inject', 'ember-runtime/system/namespace', 'ember-runtime/system/object', 'ember-runtime/system/container', 'ember-runtime/system/array_proxy', 'ember-runtime/system/object_proxy', 'ember-runtime/system/core_object', 'ember-runtime/system/native_array', 'ember-runtime/system/string', 'ember-runtime/system/lazy_load', 'ember-runtime/mixins/array', 'ember-runtime/mixins/comparable', 'ember-runtime/mixins/copyable', 'ember-runtime/mixins/enumerable', 'ember-runtime/mixins/freezable', 'ember-runtime/mixins/-proxy', 'ember-runtime/mixins/observable', 'ember-runtime/mixins/action_handler', 'ember-runtime/mixins/mutable_enumerable', 'ember-runtime/mixins/mutable_array', 'ember-runtime/mixins/target_action_support', 'ember-runtime/mixins/evented', 'ember-runtime/mixins/promise_proxy', 'ember-runtime/computed/reduce_computed_macros', 'ember-runtime/controllers/controller', 'ember-runtime/mixins/controller', 'ember-runtime/system/service', 'ember-runtime/ext/rsvp', 'ember-runtime/ext/string', 'ember-runtime/ext/function', 'ember-runtime/utils', 'ember-metal/features', 'ember-runtime/mixins/registry_proxy', 'ember-runtime/mixins/container_proxy', 'ember-runtime/string_registry'], function (exports, _emberMetal, _emberRuntimeIsEqual, _emberRuntimeCompare, _emberRuntimeCopy, _emberRuntimeInject, _emberRuntimeSystemNamespace, _emberRuntimeSystemObject, _emberRuntimeSystemContainer, _emberRuntimeSystemArray_proxy, _emberRuntimeSystemObject_proxy, _emberRuntimeSystemCore_object, _emberRuntimeSystemNative_array, _emberRuntimeSystemString, _emberRuntimeSystemLazy_load, _emberRuntimeMixinsArray, _emberRuntimeMixinsComparable, _emberRuntimeMixinsCopyable, _emberRuntimeMixinsEnumerable, _emberRuntimeMixinsFreezable, _emberRuntimeMixinsProxy, _emberRuntimeMixinsObservable, _emberRuntimeMixinsAction_handler, _emberRuntimeMixinsMutable_enumerable, _emberRuntimeMixinsMutable_array, _emberRuntimeMixinsTarget_action_support, _emberRuntimeMixinsEvented, _emberRuntimeMixinsPromise_proxy, _emberRuntimeComputedReduce_computed_macros, _emberRuntimeControllersController, _emberRuntimeMixinsController, _emberRuntimeSystemService, _emberRuntimeExtRsvp, _emberRuntimeExtString, _emberRuntimeExtFunction, _emberRuntimeUtils, _emberMetalFeatures, _emberRuntimeMixinsRegistry_proxy, _emberRuntimeMixinsContainer_proxy, _emberRuntimeString_registry) {
37089
- /**
37090
- @module ember
37091
- @submodule ember-runtime
37092
- */
37093
-
37094
- // BEGIN IMPORTS
37095
- 'use strict';
37096
-
37097
- // END IMPORTS
37098
-
37099
- // BEGIN EXPORTS
37100
- _emberMetal.default.compare = _emberRuntimeCompare.default;
37101
- _emberMetal.default.copy = _emberRuntimeCopy.default;
37102
- _emberMetal.default.isEqual = _emberRuntimeIsEqual.default;
37103
-
37104
- _emberMetal.default.inject = _emberRuntimeInject.default;
37105
-
37106
- _emberMetal.default.Array = _emberRuntimeMixinsArray.default;
37107
-
37108
- _emberMetal.default.Comparable = _emberRuntimeMixinsComparable.default;
37109
- _emberMetal.default.Copyable = _emberRuntimeMixinsCopyable.default;
37110
-
37111
- _emberMetal.default.Freezable = _emberRuntimeMixinsFreezable.Freezable;
37112
- _emberMetal.default.FROZEN_ERROR = _emberRuntimeMixinsFreezable.FROZEN_ERROR;
37113
-
37114
- _emberMetal.default.MutableEnumerable = _emberRuntimeMixinsMutable_enumerable.default;
37115
- _emberMetal.default.MutableArray = _emberRuntimeMixinsMutable_array.default;
37116
-
37117
- _emberMetal.default.TargetActionSupport = _emberRuntimeMixinsTarget_action_support.default;
37118
- _emberMetal.default.Evented = _emberRuntimeMixinsEvented.default;
37119
-
37120
- _emberMetal.default.PromiseProxyMixin = _emberRuntimeMixinsPromise_proxy.default;
37121
-
37122
- _emberMetal.default.Observable = _emberRuntimeMixinsObservable.default;
37123
-
37124
- _emberMetal.default.typeOf = _emberRuntimeUtils.typeOf;
37125
- _emberMetal.default.isArray = _emberRuntimeUtils.isArray;
37126
-
37127
- // ES6TODO: this seems a less than ideal way/place to add properties to Ember.computed
37128
- var EmComputed = _emberMetal.default.computed;
37129
-
37130
- EmComputed.sum = _emberRuntimeComputedReduce_computed_macros.sum;
37131
- EmComputed.min = _emberRuntimeComputedReduce_computed_macros.min;
37132
- EmComputed.max = _emberRuntimeComputedReduce_computed_macros.max;
37133
- EmComputed.map = _emberRuntimeComputedReduce_computed_macros.map;
37134
- EmComputed.sort = _emberRuntimeComputedReduce_computed_macros.sort;
37135
- EmComputed.setDiff = _emberRuntimeComputedReduce_computed_macros.setDiff;
37136
- EmComputed.mapBy = _emberRuntimeComputedReduce_computed_macros.mapBy;
37137
- EmComputed.filter = _emberRuntimeComputedReduce_computed_macros.filter;
37138
- EmComputed.filterBy = _emberRuntimeComputedReduce_computed_macros.filterBy;
37139
- EmComputed.uniq = _emberRuntimeComputedReduce_computed_macros.uniq;
37140
- EmComputed.union = _emberRuntimeComputedReduce_computed_macros.union;
37141
- EmComputed.intersect = _emberRuntimeComputedReduce_computed_macros.intersect;
37142
- EmComputed.collect = _emberRuntimeComputedReduce_computed_macros.collect;
37143
-
37144
- _emberMetal.default.String = _emberRuntimeSystemString.default;
37145
- _emberMetal.default.Object = _emberRuntimeSystemObject.default;
37146
- _emberMetal.default.Container = _emberRuntimeSystemContainer.Container;
37147
- _emberMetal.default.Registry = _emberRuntimeSystemContainer.Registry;
37148
-
37149
- _emberMetal.default.getOwner = _emberRuntimeSystemContainer.getOwner;
37150
- _emberMetal.default.setOwner = _emberRuntimeSystemContainer.setOwner;
37151
-
37152
- _emberMetal.default._RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
37153
- _emberMetal.default._ContainerProxyMixin = _emberRuntimeMixinsContainer_proxy.default;
37154
-
37155
- _emberMetal.default.Namespace = _emberRuntimeSystemNamespace.default;
37156
- _emberMetal.default.Enumerable = _emberRuntimeMixinsEnumerable.default;
37157
- _emberMetal.default.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
37158
- _emberMetal.default.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
37159
- _emberMetal.default.ActionHandler = _emberRuntimeMixinsAction_handler.default;
37160
- _emberMetal.default.CoreObject = _emberRuntimeSystemCore_object.default;
37161
- _emberMetal.default.NativeArray = _emberRuntimeSystemNative_array.default;
37162
- // ES6TODO: Currently we must rely on the global from ember-metal/core to avoid circular deps
37163
- // Ember.A = A;
37164
- _emberMetal.default.onLoad = _emberRuntimeSystemLazy_load.onLoad;
37165
- _emberMetal.default.runLoadHooks = _emberRuntimeSystemLazy_load.runLoadHooks;
37166
-
37167
- _emberMetal.default.Controller = _emberRuntimeControllersController.default;
37168
- _emberMetal.default.ControllerMixin = _emberRuntimeMixinsController.default;
37169
-
37170
- _emberMetal.default.Service = _emberRuntimeSystemService.default;
37171
-
37172
- _emberMetal.default._ProxyMixin = _emberRuntimeMixinsProxy.default;
37173
-
37174
- _emberMetal.default.RSVP = _emberRuntimeExtRsvp.default;
37175
- // END EXPORTS
37176
-
37177
- /**
37178
- Defines the hash of localized strings for the current language. Used by
37179
- the `Ember.String.loc()` helper. To localize, add string values to this
37180
- hash.
37181
-
37182
- @property STRINGS
37183
- @for Ember
37184
- @type Object
37185
- @private
37186
- */
37187
- Object.defineProperty(_emberMetal.default, 'STRINGS', {
37188
- configurable: false,
37189
- get: _emberRuntimeString_registry.getStrings,
37190
- set: _emberRuntimeString_registry.setStrings
37191
- });
37192
-
37193
- exports.default = _emberMetal.default;
37194
- });
37195
- // just for side effect of extending Ember.RSVP
37196
- // just for side effect of extending String.prototype
37197
- // just for side effect of extending Function.prototype
37198
- enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
37623
+ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
37199
37624
  /**
37200
37625
  @module ember
37201
37626
  @submodule ember-template-compiler
@@ -37205,8 +37630,8 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/cor
37205
37630
  var compile, compileSpec;
37206
37631
 
37207
37632
  exports.default = function (string) {
37208
- if ((!compile || !compileSpec) && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
37209
- var Compiler = requireModule('htmlbars-compiler/compiler');
37633
+ if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) {
37634
+ var Compiler = _require.default('htmlbars-compiler/compiler');
37210
37635
 
37211
37636
  compile = Compiler.compile;
37212
37637
  compileSpec = Compiler.compileSpec;
@@ -37231,6 +37656,34 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
37231
37656
  EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default;
37232
37657
  EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default;
37233
37658
  });
37659
+ enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
37660
+ 'use strict';
37661
+
37662
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
37663
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
37664
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
37665
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
37666
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
37667
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
37668
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
37669
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
37670
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
37671
+
37672
+ if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
37673
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
37674
+ } else {
37675
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
37676
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
37677
+ }
37678
+
37679
+ exports._Ember = _emberMetal.default;
37680
+ exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
37681
+ exports.compile = _emberTemplateCompilerSystemCompile.default;
37682
+ exports.template = _emberTemplateCompilerSystemTemplate.default;
37683
+ exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
37684
+ });
37685
+
37686
+ // used for adding Ember.Handlebars.compile for backwards compat
37234
37687
  enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
37235
37688
  'use strict';
37236
37689
 
@@ -38147,7 +38600,7 @@ enifed('ember-template-compiler/system/calculate-location-display', ['exports'],
38147
38600
  return moduleInfo;
38148
38601
  }
38149
38602
  });
38150
- enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
38603
+ enifed('ember-template-compiler/system/compile', ['exports', 'require', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _require, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
38151
38604
  /**
38152
38605
  @module ember
38153
38606
  @submodule ember-template-compiler
@@ -38169,8 +38622,8 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core',
38169
38622
  */
38170
38623
 
38171
38624
  exports.default = function (templateString, options) {
38172
- if (!compile && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
38173
- compile = requireModule('htmlbars-compiler/compiler').compile;
38625
+ if (!compile && _require.has('htmlbars-compiler/compiler')) {
38626
+ compile = _require.default('htmlbars-compiler/compiler').compile;
38174
38627
  }
38175
38628
 
38176
38629
  if (!compile) {
@@ -38222,7 +38675,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
38222
38675
  options.buildMeta = function buildMeta(program) {
38223
38676
  return {
38224
38677
  fragmentReason: fragmentReason(program),
38225
- revision: 'Ember@2.3.2',
38678
+ revision: 'Ember@2.4.0-beta.2',
38226
38679
  loc: program.loc,
38227
38680
  moduleName: options.moduleName
38228
38681
  };
@@ -38288,7 +38741,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
38288
38741
  }
38289
38742
  }
38290
38743
  });
38291
- enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
38744
+ enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
38292
38745
  /**
38293
38746
  @module ember
38294
38747
  @submodule ember-template-compiler
@@ -38309,8 +38762,8 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/cor
38309
38762
  */
38310
38763
 
38311
38764
  exports.default = function (templateString, options) {
38312
- if (!compileSpec && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
38313
- compileSpec = requireModule('htmlbars-compiler/compiler').compileSpec;
38765
+ if (!compileSpec && _require.has('htmlbars-compiler/compiler')) {
38766
+ compileSpec = _require.default('htmlbars-compiler/compiler').compileSpec;
38314
38767
  }
38315
38768
 
38316
38769
  if (!compileSpec) {
@@ -38348,34 +38801,6 @@ enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/
38348
38801
  return templateSpec;
38349
38802
  };
38350
38803
  });
38351
- enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
38352
- 'use strict';
38353
-
38354
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
38355
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
38356
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
38357
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
38358
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
38359
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
38360
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
38361
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
38362
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
38363
-
38364
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
38365
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
38366
- } else {
38367
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
38368
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
38369
- }
38370
-
38371
- exports._Ember = _emberMetal.default;
38372
- exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
38373
- exports.compile = _emberTemplateCompilerSystemCompile.default;
38374
- exports.template = _emberTemplateCompilerSystemTemplate.default;
38375
- exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
38376
- });
38377
-
38378
- // used for adding Ember.Handlebars.compile for backwards compat
38379
38804
  enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember-metal/symbol', 'ember-metal/property_events'], function (exports, _emberMetalMixin, _emberMetalSymbol, _emberMetalProperty_events) {
38380
38805
  'use strict';
38381
38806
 
@@ -38514,22 +38939,22 @@ enifed('ember-views/component_lookup', ['exports', 'ember-metal/core', 'ember-me
38514
38939
  }
38515
38940
  },
38516
38941
 
38517
- componentFor: function (name, owner) {
38942
+ componentFor: function (name, owner, options) {
38518
38943
  if (this.invalidName(name)) {
38519
38944
  return;
38520
38945
  }
38521
38946
 
38522
38947
  var fullName = 'component:' + name;
38523
- return owner._lookupFactory(fullName);
38948
+ return owner._lookupFactory(fullName, options);
38524
38949
  },
38525
38950
 
38526
- layoutFor: function (name, owner) {
38951
+ layoutFor: function (name, owner, options) {
38527
38952
  if (this.invalidName(name)) {
38528
38953
  return;
38529
38954
  }
38530
38955
 
38531
38956
  var templateFullName = 'template:components/' + name;
38532
- return owner.lookup(templateFullName);
38957
+ return owner.lookup(templateFullName, options);
38533
38958
  }
38534
38959
  });
38535
38960
  });
@@ -38948,6 +39373,75 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/debug', 'emb
38948
39373
 
38949
39374
  exports.default = Component;
38950
39375
  });
39376
+ enifed('ember-views/index', ['exports', 'ember-runtime', 'ember-views/system/jquery', 'ember-views/system/utils', 'ember-views/system/ext', 'ember-views/views/states', 'ember-metal-views/renderer', 'ember-views/views/core_view', 'ember-views/views/view', 'ember-views/views/container_view', 'ember-views/views/collection_view', 'ember-views/components/component', 'ember-views/system/event_dispatcher', 'ember-views/mixins/view_target_action_support', 'ember-views/component_lookup', 'ember-views/views/checkbox', 'ember-views/mixins/text_support', 'ember-views/views/text_field', 'ember-views/views/text_area', 'ember-views/views/select', 'ember-views/compat/metamorph_view', 'ember-views/views/legacy_each_view'], function (exports, _emberRuntime, _emberViewsSystemJquery, _emberViewsSystemUtils, _emberViewsSystemExt, _emberViewsViewsStates, _emberMetalViewsRenderer, _emberViewsViewsCore_view, _emberViewsViewsView, _emberViewsViewsContainer_view, _emberViewsViewsCollection_view, _emberViewsComponentsComponent, _emberViewsSystemEvent_dispatcher, _emberViewsMixinsView_target_action_support, _emberViewsComponent_lookup, _emberViewsViewsCheckbox, _emberViewsMixinsText_support, _emberViewsViewsText_field, _emberViewsViewsText_area, _emberViewsViewsSelect, _emberViewsCompatMetamorph_view, _emberViewsViewsLegacy_each_view) {
39377
+ /**
39378
+ @module ember
39379
+ @submodule ember-views
39380
+ */
39381
+
39382
+ // BEGIN IMPORTS
39383
+ 'use strict';
39384
+
39385
+ // END IMPORTS
39386
+
39387
+ /**
39388
+ Alias for jQuery
39389
+
39390
+ @method $
39391
+ @for Ember
39392
+ @public
39393
+ */
39394
+
39395
+ // BEGIN EXPORTS
39396
+ _emberRuntime.default.$ = _emberViewsSystemJquery.default;
39397
+
39398
+ _emberRuntime.default.ViewTargetActionSupport = _emberViewsMixinsView_target_action_support.default;
39399
+
39400
+ var ViewUtils = _emberRuntime.default.ViewUtils = {};
39401
+ ViewUtils.isSimpleClick = _emberViewsSystemUtils.isSimpleClick;
39402
+ ViewUtils.getViewClientRects = _emberViewsSystemUtils.getViewClientRects;
39403
+ ViewUtils.getViewBoundingClientRect = _emberViewsSystemUtils.getViewBoundingClientRect;
39404
+
39405
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
39406
+ _emberRuntime.default.CoreView = _emberViewsViewsCore_view.DeprecatedCoreView;
39407
+ _emberRuntime.default.View = _emberViewsViewsView.DeprecatedView;
39408
+ _emberRuntime.default.View.states = _emberViewsViewsStates.states;
39409
+ _emberRuntime.default.View.cloneStates = _emberViewsViewsStates.cloneStates;
39410
+ _emberRuntime.default.View._Renderer = _emberMetalViewsRenderer.default;
39411
+ _emberRuntime.default.ContainerView = _emberViewsViewsContainer_view.DeprecatedContainerView;
39412
+ _emberRuntime.default.CollectionView = _emberViewsViewsCollection_view.default;
39413
+ }
39414
+
39415
+ _emberRuntime.default._Renderer = _emberMetalViewsRenderer.default;
39416
+
39417
+ _emberRuntime.default.Checkbox = _emberViewsViewsCheckbox.default;
39418
+ _emberRuntime.default.TextField = _emberViewsViewsText_field.default;
39419
+ _emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
39420
+
39421
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
39422
+ _emberRuntime.default.Select = _emberViewsViewsSelect.Select;
39423
+ }
39424
+
39425
+ _emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
39426
+ _emberRuntime.default.SelectOptgroup = _emberViewsViewsSelect.SelectOptgroup;
39427
+
39428
+ _emberRuntime.default.TextSupport = _emberViewsMixinsText_support.default;
39429
+ _emberRuntime.default.ComponentLookup = _emberViewsComponent_lookup.default;
39430
+ _emberRuntime.default.Component = _emberViewsComponentsComponent.default;
39431
+ _emberRuntime.default.EventDispatcher = _emberViewsSystemEvent_dispatcher.default;
39432
+
39433
+ // Deprecated:
39434
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
39435
+ _emberRuntime.default._Metamorph = _emberViewsCompatMetamorph_view._Metamorph;
39436
+ _emberRuntime.default._MetamorphView = _emberViewsCompatMetamorph_view.default;
39437
+ _emberRuntime.default._LegacyEachView = _emberViewsViewsLegacy_each_view.default;
39438
+ }
39439
+
39440
+ // END EXPORTS
39441
+
39442
+ exports.default = _emberRuntime.default;
39443
+ });
39444
+ // for the side effect of extending Ember.run.queues
38951
39445
  enifed('ember-views/mixins/aria_role_support', ['exports', 'ember-metal/mixin'], function (exports, _emberMetalMixin) {
38952
39446
  /**
38953
39447
  @module ember
@@ -39153,7 +39647,10 @@ enifed('ember-views/mixins/legacy_child_views_support', ['exports', 'ember-metal
39153
39647
 
39154
39648
  exports.default = _emberMetalMixin.Mixin.create({
39155
39649
  linkChild: function (instance) {
39156
- _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
39650
+ if (!instance[_containerOwner.OWNER]) {
39651
+ _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
39652
+ }
39653
+
39157
39654
  if (_emberMetalProperty_get.get(instance, 'parentView') !== this) {
39158
39655
  // linkChild should be idempotent
39159
39656
  _emberMetalProperty_set.set(instance, 'parentView', this);
@@ -39756,7 +40253,10 @@ enifed('ember-views/mixins/view_child_views_support', ['exports', 'ember-metal/d
39756
40253
  },
39757
40254
 
39758
40255
  linkChild: function (instance) {
39759
- _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
40256
+ if (!instance[_containerOwner.OWNER]) {
40257
+ _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
40258
+ }
40259
+
39760
40260
  instance.parentView = this;
39761
40261
  instance.ownerView = this.ownerView;
39762
40262
  },
@@ -41589,7 +42089,7 @@ enifed('ember-views/system/ext', ['exports', 'ember-metal/run_loop'], function (
41589
42089
 
41590
42090
  // Add a new named queue for rendering views that happens
41591
42091
  // after bindings have synced, and a queue for scheduling actions
41592
- // that that should occur after view rendering.
42092
+ // that should occur after view rendering.
41593
42093
  _emberMetalRun_loop.default._addQueue('render', 'actions');
41594
42094
  _emberMetalRun_loop.default._addQueue('afterRender', 'render');
41595
42095
  });
@@ -42241,7 +42741,7 @@ enifed('ember-views/views/collection_view', ['exports', 'ember-metal/core', 'emb
42241
42741
  enifed('ember-views/views/container_view', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-runtime/mixins/mutable_array', 'ember-runtime/system/native_array', 'ember-views/views/view', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/mixin', 'ember-metal/events', 'ember-htmlbars/templates/container-view'], function (exports, _emberMetalCore, _emberMetalDebug, _emberRuntimeMixinsMutable_array, _emberRuntimeSystemNative_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
42242
42742
  'use strict';
42243
42743
 
42244
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.3.2';
42744
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.4.0-beta.2';
42245
42745
 
42246
42746
  /**
42247
42747
  @module ember
@@ -43958,7 +44458,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
43958
44458
  <div id="ember1" class="ember-view disabled"></div>
43959
44459
  ```
43960
44460
 
43961
- Updates to the the value of a class name binding will result in automatic
44461
+ Updates to the value of a class name binding will result in automatic
43962
44462
  update of the HTML `class` attribute in the view's rendered HTML
43963
44463
  representation. If the value becomes `false` or `undefined` the class name
43964
44464
  will be removed.
@@ -44055,7 +44555,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
44055
44555
  });
44056
44556
  ```
44057
44557
 
44058
- Updates to the the property of an attribute binding will result in automatic
44558
+ Updates to the property of an attribute binding will result in automatic
44059
44559
  update of the HTML attribute in the view's rendered HTML representation.
44060
44560
 
44061
44561
  `attributeBindings` is a concatenated property. See [Ember.Object](/api/classes/Ember.Object.html)
@@ -44239,7 +44739,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
44239
44739
  ```javascript
44240
44740
  AView = Ember.View.extend({
44241
44741
  click: function(event) {
44242
- // will be called when when an instance's
44742
+ // will be called when an instance's
44243
44743
  // rendered element is clicked
44244
44744
  }
44245
44745
  });
@@ -44260,7 +44760,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
44260
44760
  AView = Ember.View.extend({
44261
44761
  eventManager: Ember.Object.create({
44262
44762
  doubleClick: function(event, view) {
44263
- // will be called when when an instance's
44763
+ // will be called when an instance's
44264
44764
  // rendered element or any rendering
44265
44765
  // of this view's descendant
44266
44766
  // elements is clicked
@@ -44495,96 +44995,6 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
44495
44995
  exports.DeprecatedView = DeprecatedView;
44496
44996
  });
44497
44997
  // for the side effect of extending Ember.run.queues
44498
- enifed('ember-views', ['exports', 'ember-runtime', 'ember-views/system/jquery', 'ember-views/system/utils', 'ember-views/system/ext', 'ember-views/views/states', 'ember-metal-views/renderer', 'ember-views/views/core_view', 'ember-views/views/view', 'ember-views/views/container_view', 'ember-views/views/collection_view', 'ember-views/components/component', 'ember-views/system/event_dispatcher', 'ember-views/mixins/view_target_action_support', 'ember-views/component_lookup', 'ember-views/views/checkbox', 'ember-views/mixins/text_support', 'ember-views/views/text_field', 'ember-views/views/text_area', 'ember-views/views/select', 'ember-views/compat/metamorph_view', 'ember-views/views/legacy_each_view'], function (exports, _emberRuntime, _emberViewsSystemJquery, _emberViewsSystemUtils, _emberViewsSystemExt, _emberViewsViewsStates, _emberMetalViewsRenderer, _emberViewsViewsCore_view, _emberViewsViewsView, _emberViewsViewsContainer_view, _emberViewsViewsCollection_view, _emberViewsComponentsComponent, _emberViewsSystemEvent_dispatcher, _emberViewsMixinsView_target_action_support, _emberViewsComponent_lookup, _emberViewsViewsCheckbox, _emberViewsMixinsText_support, _emberViewsViewsText_field, _emberViewsViewsText_area, _emberViewsViewsSelect, _emberViewsCompatMetamorph_view, _emberViewsViewsLegacy_each_view) {
44499
- /**
44500
- @module ember
44501
- @submodule ember-views
44502
- */
44503
-
44504
- // BEGIN IMPORTS
44505
- 'use strict';
44506
-
44507
- // END IMPORTS
44508
-
44509
- /**
44510
- Alias for jQuery
44511
-
44512
- @method $
44513
- @for Ember
44514
- @public
44515
- */
44516
-
44517
- // BEGIN EXPORTS
44518
- _emberRuntime.default.$ = _emberViewsSystemJquery.default;
44519
-
44520
- _emberRuntime.default.ViewTargetActionSupport = _emberViewsMixinsView_target_action_support.default;
44521
-
44522
- var ViewUtils = _emberRuntime.default.ViewUtils = {};
44523
- ViewUtils.isSimpleClick = _emberViewsSystemUtils.isSimpleClick;
44524
- ViewUtils.getViewClientRects = _emberViewsSystemUtils.getViewClientRects;
44525
- ViewUtils.getViewBoundingClientRect = _emberViewsSystemUtils.getViewBoundingClientRect;
44526
-
44527
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
44528
- _emberRuntime.default.CoreView = _emberViewsViewsCore_view.DeprecatedCoreView;
44529
- _emberRuntime.default.View = _emberViewsViewsView.DeprecatedView;
44530
- _emberRuntime.default.View.states = _emberViewsViewsStates.states;
44531
- _emberRuntime.default.View.cloneStates = _emberViewsViewsStates.cloneStates;
44532
- _emberRuntime.default.View._Renderer = _emberMetalViewsRenderer.default;
44533
- _emberRuntime.default.ContainerView = _emberViewsViewsContainer_view.DeprecatedContainerView;
44534
- _emberRuntime.default.CollectionView = _emberViewsViewsCollection_view.default;
44535
- }
44536
-
44537
- _emberRuntime.default._Renderer = _emberMetalViewsRenderer.default;
44538
-
44539
- _emberRuntime.default.Checkbox = _emberViewsViewsCheckbox.default;
44540
- _emberRuntime.default.TextField = _emberViewsViewsText_field.default;
44541
- _emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
44542
-
44543
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
44544
- _emberRuntime.default.Select = _emberViewsViewsSelect.Select;
44545
- }
44546
-
44547
- _emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
44548
- _emberRuntime.default.SelectOptgroup = _emberViewsViewsSelect.SelectOptgroup;
44549
-
44550
- _emberRuntime.default.TextSupport = _emberViewsMixinsText_support.default;
44551
- _emberRuntime.default.ComponentLookup = _emberViewsComponent_lookup.default;
44552
- _emberRuntime.default.Component = _emberViewsComponentsComponent.default;
44553
- _emberRuntime.default.EventDispatcher = _emberViewsSystemEvent_dispatcher.default;
44554
-
44555
- // Deprecated:
44556
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
44557
- _emberRuntime.default._Metamorph = _emberViewsCompatMetamorph_view._Metamorph;
44558
- _emberRuntime.default._MetamorphView = _emberViewsCompatMetamorph_view.default;
44559
- _emberRuntime.default._LegacyEachView = _emberViewsViewsLegacy_each_view.default;
44560
- }
44561
-
44562
- // END EXPORTS
44563
-
44564
- exports.default = _emberRuntime.default;
44565
- });
44566
- // for the side effect of extending Ember.run.queues
44567
- enifed('ember', ['exports', 'ember-metal', 'ember-runtime', 'ember-views', 'ember-routing', 'ember-application', 'ember-extension-support', 'ember-htmlbars', 'ember-routing-htmlbars', 'ember-routing-views', 'ember-metal/core', 'ember-runtime/system/lazy_load'], function (exports, _emberMetal, _emberRuntime, _emberViews, _emberRouting, _emberApplication, _emberExtensionSupport, _emberHtmlbars, _emberRoutingHtmlbars, _emberRoutingViews, _emberMetalCore, _emberRuntimeSystemLazy_load) {
44568
- // require the main entry points for each of these packages
44569
- // this is so that the global exports occur properly
44570
- 'use strict';
44571
-
44572
- if (_emberMetalCore.default.__loader.registry['ember-template-compiler']) {
44573
- requireModule('ember-template-compiler');
44574
- }
44575
-
44576
- // do this to ensure that Ember.Test is defined properly on the global
44577
- // if it is present.
44578
- if (_emberMetalCore.default.__loader.registry['ember-testing']) {
44579
- requireModule('ember-testing');
44580
- }
44581
-
44582
- _emberRuntimeSystemLazy_load.runLoadHooks('Ember');
44583
-
44584
- /**
44585
- @module ember
44586
- */
44587
- });
44588
44998
  enifed('htmlbars-runtime/expression-visitor', ['exports'], function (exports) {
44589
44999
  /**
44590
45000
  # Expression Nodes: