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) {
@@ -1296,11 +1271,13 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1296
1271
  @private
1297
1272
  @method lookupFactory
1298
1273
  @param {String} fullName
1274
+ @param {Object} [options]
1275
+ @param {String} [options.source] The fullname of the request source (used for local lookup)
1299
1276
  @return {any}
1300
1277
  */
1301
- lookupFactory: function (fullName) {
1278
+ lookupFactory: function (fullName, options) {
1302
1279
  _emberMetalDebug.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1303
- return factoryFor(this, this.registry.normalize(fullName));
1280
+ return factoryFor(this, this.registry.normalize(fullName), options);
1304
1281
  },
1305
1282
 
1306
1283
  /**
@@ -1351,10 +1328,11 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1351
1328
  return container.registry.getOption(fullName, 'singleton') !== false;
1352
1329
  }
1353
1330
 
1354
- function lookup(container, fullName, options) {
1355
- options = options || {};
1331
+ function lookup(container, _fullName, _options) {
1332
+ var options = _options || {};
1333
+ var fullName = _fullName;
1356
1334
 
1357
- if (container.cache[fullName] && options.singleton !== false) {
1335
+ if (container.cache[fullName] !== undefined && options.singleton !== false) {
1358
1336
  return container.cache[fullName];
1359
1337
  }
1360
1338
 
@@ -1407,12 +1385,15 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1407
1385
  return hash;
1408
1386
  }
1409
1387
 
1410
- function factoryFor(container, fullName) {
1388
+ function factoryFor(container, _fullName, _options) {
1389
+ var options = _options || {};
1390
+ var registry = container.registry;
1391
+ var fullName = _fullName;
1392
+
1411
1393
  var cache = container.factoryCache;
1412
1394
  if (cache[fullName]) {
1413
1395
  return cache[fullName];
1414
1396
  }
1415
- var registry = container.registry;
1416
1397
  var factory = registry.resolve(fullName);
1417
1398
  if (factory === undefined) {
1418
1399
  return;
@@ -1596,6 +1577,36 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
1596
1577
 
1597
1578
  exports.default = Container;
1598
1579
  });
1580
+
1581
+ // if expandLocalLookup returns falsey, we do not support local lookup
1582
+
1583
+ // if expandLocalLookup returns falsey, we do not support local lookup
1584
+ enifed('container/index', ['exports', 'ember-metal/core', 'container/registry', 'container/container', 'container/owner'], function (exports, _emberMetalCore, _containerRegistry, _containerContainer, _containerOwner) {
1585
+ 'use strict';
1586
+
1587
+ /*
1588
+ Public api for the container is still in flux.
1589
+ The public api, specified on the application namespace should be considered the stable api.
1590
+ // @module container
1591
+ @private
1592
+ */
1593
+
1594
+ /*
1595
+ Flag to enable/disable model factory injections (disabled by default)
1596
+ If model factory injections are enabled, models should not be
1597
+ accessed globally (only through `container.lookupFactory('model:modelName'))`);
1598
+ */
1599
+ _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = false;
1600
+
1601
+ if (_emberMetalCore.default.ENV && typeof _emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS !== 'undefined') {
1602
+ _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = !!_emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS;
1603
+ }
1604
+
1605
+ exports.Registry = _containerRegistry.default;
1606
+ exports.Container = _containerContainer.default;
1607
+ exports.getOwner = _containerOwner.getOwner;
1608
+ exports.setOwner = _containerOwner.setOwner;
1609
+ });
1599
1610
  enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports, _emberMetalSymbol) {
1600
1611
  /**
1601
1612
  @module ember
@@ -1668,7 +1679,7 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
1668
1679
  object[OWNER] = owner;
1669
1680
  }
1670
1681
  });
1671
- enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dictionary', 'ember-metal/assign', 'container/container'], function (exports, _emberMetalDebug, _emberMetalDictionary, _emberMetalAssign, _containerContainer) {
1682
+ 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) {
1672
1683
  'use strict';
1673
1684
 
1674
1685
  var VALID_FULL_NAME_REGEXP = /^[^:]+.+:[^:]+$/;
@@ -1704,6 +1715,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1704
1715
  this._factoryTypeInjections = _emberMetalDictionary.default(null);
1705
1716
  this._factoryInjections = _emberMetalDictionary.default(null);
1706
1717
 
1718
+ this._localLookupCache = new _emberMetalEmpty_object.default();
1707
1719
  this._normalizeCache = _emberMetalDictionary.default(null);
1708
1720
  this._resolveCache = _emberMetalDictionary.default(null);
1709
1721
  this._failCache = _emberMetalDictionary.default(null);
@@ -1854,6 +1866,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1854
1866
 
1855
1867
  var normalizedName = this.normalize(fullName);
1856
1868
 
1869
+ this._localLookupCache = new _emberMetalEmpty_object.default();
1870
+
1857
1871
  delete this.registrations[normalizedName];
1858
1872
  delete this._resolveCache[normalizedName];
1859
1873
  delete this._failCache[normalizedName];
@@ -1884,13 +1898,17 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1884
1898
  @private
1885
1899
  @method resolve
1886
1900
  @param {String} fullName
1901
+ @param {Object} [options]
1902
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
1887
1903
  @return {Function} fullName's factory
1888
1904
  */
1889
- resolve: function (fullName) {
1905
+ resolve: function (fullName, options) {
1890
1906
  _emberMetalDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
1891
- var factory = resolve(this, this.normalize(fullName));
1907
+ var factory = resolve(this, this.normalize(fullName), options);
1892
1908
  if (factory === undefined && this.fallback) {
1893
- factory = this.fallback.resolve(fullName);
1909
+ var _fallback;
1910
+
1911
+ factory = (_fallback = this.fallback).resolve.apply(_fallback, arguments);
1894
1912
  }
1895
1913
  return factory;
1896
1914
  },
@@ -1967,11 +1985,16 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
1967
1985
  @private
1968
1986
  @method has
1969
1987
  @param {String} fullName
1988
+ @param {Object} [options]
1989
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
1970
1990
  @return {Boolean}
1971
1991
  */
1972
- has: function (fullName) {
1992
+ has: function (fullName, options) {
1973
1993
  _emberMetalDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
1974
- return has(this, this.normalize(fullName));
1994
+
1995
+ var source = undefined;
1996
+
1997
+ return has(this, this.normalize(fullName), source);
1975
1998
  },
1976
1999
 
1977
2000
  /**
@@ -2013,8 +2036,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2013
2036
  @param {String} fullName
2014
2037
  @param {Object} options
2015
2038
  */
2016
- options: function (fullName, options) {
2017
- options = options || {};
2039
+ options: function (fullName, _options) {
2040
+ var options = _options || {};
2018
2041
  var normalizedName = this.normalize(fullName);
2019
2042
  this._options[normalizedName] = options;
2020
2043
  },
@@ -2336,9 +2359,29 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2336
2359
  };
2337
2360
  }
2338
2361
 
2339
- function resolve(registry, normalizedName) {
2362
+ function expandLocalLookup(registry, normalizedName, normalizedSource) {
2363
+ var cache = registry._localLookupCache;
2364
+ var normalizedNameCache = cache[normalizedName];
2365
+
2366
+ if (!normalizedNameCache) {
2367
+ normalizedNameCache = cache[normalizedName] = new _emberMetalEmpty_object.default();
2368
+ }
2369
+
2370
+ var cached = normalizedNameCache[normalizedSource];
2371
+
2372
+ if (cached !== undefined) {
2373
+ return cached;
2374
+ }
2375
+
2376
+ var expanded = registry.resolver.expandLocalLookup(normalizedName, normalizedSource);
2377
+
2378
+ return normalizedNameCache[normalizedSource] = expanded;
2379
+ }
2380
+
2381
+ function resolve(registry, normalizedName, options) {
2382
+
2340
2383
  var cached = registry._resolveCache[normalizedName];
2341
- if (cached) {
2384
+ if (cached !== undefined) {
2342
2385
  return cached;
2343
2386
  }
2344
2387
  if (registry._failCache[normalizedName]) {
@@ -2351,49 +2394,46 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
2351
2394
  resolved = registry.resolver.resolve(normalizedName);
2352
2395
  }
2353
2396
 
2354
- resolved = resolved || registry.registrations[normalizedName];
2397
+ if (resolved === undefined) {
2398
+ resolved = registry.registrations[normalizedName];
2399
+ }
2355
2400
 
2356
- if (resolved) {
2357
- registry._resolveCache[normalizedName] = resolved;
2358
- } else {
2401
+ if (resolved === undefined) {
2359
2402
  registry._failCache[normalizedName] = true;
2403
+ } else {
2404
+ registry._resolveCache[normalizedName] = resolved;
2360
2405
  }
2361
2406
 
2362
2407
  return resolved;
2363
2408
  }
2364
2409
 
2365
- function has(registry, fullName) {
2366
- return registry.resolve(fullName) !== undefined;
2410
+ function has(registry, fullName, source) {
2411
+ return registry.resolve(fullName, { source: source }) !== undefined;
2367
2412
  }
2368
2413
 
2369
2414
  exports.default = Registry;
2370
2415
  });
2371
- enifed('container', ['exports', 'ember-metal/core', 'container/registry', 'container/container', 'container/owner'], function (exports, _emberMetalCore, _containerRegistry, _containerContainer, _containerOwner) {
2372
- 'use strict';
2373
-
2374
- /*
2375
- Public api for the container is still in flux.
2376
- The public api, specified on the application namespace should be considered the stable api.
2377
- // @module container
2378
- @private
2379
- */
2380
2416
 
2381
- /*
2382
- Flag to enable/disable model factory injections (disabled by default)
2383
- If model factory injections are enabled, models should not be
2384
- accessed globally (only through `container.lookupFactory('model:modelName'))`);
2385
- */
2386
- _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = false;
2417
+ /**
2418
+ Given a fullName and a source fullName returns the fully resolved
2419
+ fullName. Used to allow for local lookup.
2420
+ ```javascript
2421
+ var registry = new Registry();
2422
+ // the twitter factory is added to the module system
2423
+ registry.expandLocalLookup('component:post-title', { source: 'template:post' }) // => component:post/post-title
2424
+ ```
2425
+ @private
2426
+ @method expandLocalLookup
2427
+ @param {String} fullName
2428
+ @param {Object} [options]
2429
+ @param {String} [options.source] the fullname of the request source (used for local lookups)
2430
+ @return {String} fullName
2431
+ */
2387
2432
 
2388
- if (_emberMetalCore.default.ENV && typeof _emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS !== 'undefined') {
2389
- _emberMetalCore.default.MODEL_FACTORY_INJECTIONS = !!_emberMetalCore.default.ENV.MODEL_FACTORY_INJECTIONS;
2390
- }
2433
+ // when `source` is provided expand normalizedName
2434
+ // and source into the full normalizedName
2391
2435
 
2392
- exports.Registry = _containerRegistry.default;
2393
- exports.Container = _containerContainer.default;
2394
- exports.getOwner = _containerOwner.getOwner;
2395
- exports.setOwner = _containerOwner.setOwner;
2396
- });
2436
+ // if expandLocalLookup returns falsey, we do not support local lookup
2397
2437
  enifed('dag-map/platform', ['exports'], function (exports) {
2398
2438
  'use strict';
2399
2439
 
@@ -3636,7 +3676,45 @@ enifed("dom-helper", ["exports", "htmlbars-runtime/morph", "morph-attr", "dom-he
3636
3676
 
3637
3677
  exports.default = DOMHelper;
3638
3678
  });
3639
- 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) {
3679
+ 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) {
3680
+ // require the main entry points for each of these packages
3681
+ // this is so that the global exports occur properly
3682
+ 'use strict';
3683
+
3684
+ if (_require.has('ember-template-compiler')) {
3685
+ _require.default('ember-template-compiler');
3686
+ }
3687
+
3688
+ // do this to ensure that Ember.Test is defined properly on the global
3689
+ // if it is present.
3690
+ if (_require.has('ember-testing')) {
3691
+ _require.default('ember-testing');
3692
+ }
3693
+
3694
+ _emberRuntimeSystemLazy_load.runLoadHooks('Ember');
3695
+
3696
+ /**
3697
+ @module ember
3698
+ */
3699
+ });
3700
+ 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) {
3701
+ 'use strict';
3702
+
3703
+ _emberMetalCore.default.Application = _emberApplicationSystemApplication.default;
3704
+ _emberMetalCore.default.Resolver = _emberApplicationSystemResolver.Resolver;
3705
+ _emberMetalCore.default.DefaultResolver = _emberApplicationSystemResolver.default;
3706
+
3707
+ _emberRuntimeSystemLazy_load.runLoadHooks('Ember.Application', _emberApplicationSystemApplication.default);
3708
+ });
3709
+
3710
+ /**
3711
+ @module ember
3712
+ @submodule ember-application
3713
+ */
3714
+
3715
+ // Expose `EngineInstance` and `ApplicationInstance` for easy overriding.
3716
+ // Reanalyze whether to continue exposing these after feature flag is removed.
3717
+ 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) {
3640
3718
  /**
3641
3719
  @module ember
3642
3720
  @submodule ember-application
@@ -3668,12 +3746,10 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3668
3746
 
3669
3747
  @public
3670
3748
  @class Ember.ApplicationInstance
3671
- @extends Ember.Object
3672
- @uses RegistryProxyMixin
3673
- @uses ContainerProxyMixin
3749
+ @extends Ember.EngineInstance
3674
3750
  */
3675
3751
 
3676
- var ApplicationInstance = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsRegistry_proxy.default, _emberRuntimeMixinsContainer_proxy.default, {
3752
+ var ApplicationInstance = _emberApplicationSystemEngineInstance.default.extend({
3677
3753
  /**
3678
3754
  The `Application` for which this is an instance.
3679
3755
  @property {Ember.Application} application
@@ -3704,17 +3780,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3704
3780
  init: function () {
3705
3781
  this._super.apply(this, arguments);
3706
3782
 
3707
- var application = _emberMetalProperty_get.get(this, 'application');
3708
-
3709
- // Create a per-instance registry that will use the application's registry
3710
- // as a fallback for resolving registrations.
3711
- var applicationRegistry = _emberMetalProperty_get.get(application, '__registry__');
3712
- var registry = this.__registry__ = new _containerRegistry.default({
3713
- fallback: applicationRegistry
3714
- });
3715
-
3716
- // Create a per-instance container from the instance's registry
3717
- this.__container__ = registry.container({ owner: this });
3783
+ var application = this.application;
3718
3784
 
3719
3785
  // Register this instance in the per-instance registry.
3720
3786
  //
@@ -3832,7 +3898,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3832
3898
  */
3833
3899
  startRouting: function () {
3834
3900
  var router = _emberMetalProperty_get.get(this, 'router');
3835
- router.startRouting(isResolverModuleBased(this));
3901
+ router.startRouting();
3836
3902
  this._didSetupRouter = true;
3837
3903
  },
3838
3904
 
@@ -3850,7 +3916,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3850
3916
  this._didSetupRouter = true;
3851
3917
 
3852
3918
  var router = _emberMetalProperty_get.get(this, 'router');
3853
- router.setupRouter(isResolverModuleBased(this));
3919
+ router.setupRouter();
3854
3920
  },
3855
3921
 
3856
3922
  /**
@@ -3878,27 +3944,6 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3878
3944
  dispatcher.setup(customEvents, this.rootElement);
3879
3945
 
3880
3946
  return dispatcher;
3881
- },
3882
-
3883
- /**
3884
- @private
3885
- */
3886
- willDestroy: function () {
3887
- this._super.apply(this, arguments);
3888
- _emberMetalRun_loop.default(this.__container__, 'destroy');
3889
- },
3890
-
3891
- /**
3892
- Unregister a factory.
3893
- Overrides `RegistryProxy#unregister` in order to clear any cached instances
3894
- of the unregistered factory.
3895
- @public
3896
- @method unregister
3897
- @param {String} fullName
3898
- */
3899
- unregister: function (fullName) {
3900
- this.__container__.reset(fullName);
3901
- this._super.apply(this, arguments);
3902
3947
  }
3903
3948
  });
3904
3949
 
@@ -4131,10 +4176,6 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
4131
4176
  return env;
4132
4177
  };
4133
4178
 
4134
- function isResolverModuleBased(applicationInstance) {
4135
- return !!applicationInstance.application.__registry__.resolver.moduleBasedResolver;
4136
- }
4137
-
4138
4179
  Object.defineProperty(ApplicationInstance.prototype, 'container', {
4139
4180
  configurable: true,
4140
4181
  enumerable: false,
@@ -4163,23 +4204,13 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
4163
4204
 
4164
4205
  exports.default = ApplicationInstance;
4165
4206
  });
4166
- 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) {
4207
+ 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) {
4167
4208
  /**
4168
4209
  @module ember
4169
4210
  @submodule ember-application
4170
4211
  */
4171
4212
  'use strict';
4172
4213
 
4173
- function props(obj) {
4174
- var properties = [];
4175
-
4176
- for (var key in obj) {
4177
- properties.push(key);
4178
- }
4179
-
4180
- return properties;
4181
- }
4182
-
4183
4214
  var librariesRegistered = false;
4184
4215
 
4185
4216
  /**
@@ -4334,12 +4365,12 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4334
4365
 
4335
4366
  @class Application
4336
4367
  @namespace Ember
4337
- @extends Ember.Namespace
4368
+ @extends Ember.Engine
4338
4369
  @uses RegistryProxyMixin
4339
4370
  @public
4340
4371
  */
4341
4372
 
4342
- var Application = _emberRuntimeSystemNamespace.default.extend(_emberRuntimeMixinsRegistry_proxy.default, {
4373
+ var Application = _emberApplicationSystemEngine.default.extend({
4343
4374
  _suppressDeferredDeprecation: true,
4344
4375
 
4345
4376
  /**
@@ -4465,8 +4496,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4465
4496
  this.$ = _emberViewsSystemJquery.default;
4466
4497
  }
4467
4498
 
4468
- this.buildRegistry();
4469
-
4470
4499
  registerLibraries();
4471
4500
  logLibraryVersions();
4472
4501
 
@@ -4486,18 +4515,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4486
4515
  }
4487
4516
  },
4488
4517
 
4489
- /**
4490
- Build and configure the registry for the current application.
4491
- @private
4492
- @method buildRegistry
4493
- @return {Ember.Registry} the configured registry
4494
- */
4495
- buildRegistry: function () {
4496
- var registry = this.__registry__ = Application.buildRegistry(this);
4497
-
4498
- return registry;
4499
- },
4500
-
4501
4518
  /**
4502
4519
  Create an ApplicationInstance for this application.
4503
4520
  @private
@@ -4507,6 +4524,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4507
4524
  buildInstance: function () {
4508
4525
  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
4509
4526
 
4527
+ options.base = this;
4510
4528
  options.application = this;
4511
4529
  return _emberApplicationSystemApplicationInstance.default.create(options);
4512
4530
  },
@@ -4792,64 +4810,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4792
4810
  _emberMetalRun_loop.default.join(this, handleReset);
4793
4811
  },
4794
4812
 
4795
- /**
4796
- @private
4797
- @method instanceInitializer
4798
- */
4799
- instanceInitializer: function (options) {
4800
- this.constructor.instanceInitializer(options);
4801
- },
4802
-
4803
- /**
4804
- @private
4805
- @method runInitializers
4806
- */
4807
- runInitializers: function () {
4808
- var App = this;
4809
- this._runInitializer('initializers', function (name, initializer) {
4810
- _emberMetalDebug.assert('No application initializer named \'' + name + '\'', !!initializer);
4811
- if (initializer.initialize.length === 2) {
4812
- _emberMetalDebug.deprecate('The `initialize` method for Application initializer \'' + name + '\' should take only one argument - `App`, an instance of an `Application`.', false, {
4813
- id: 'ember-application.app-initializer-initialize-arguments',
4814
- until: '3.0.0',
4815
- url: 'http://emberjs.com/deprecations/v2.x/#toc_initializer-arity'
4816
- });
4817
-
4818
- initializer.initialize(App.__registry__, App);
4819
- } else {
4820
- initializer.initialize(App);
4821
- }
4822
- });
4823
- },
4824
-
4825
- /**
4826
- @private
4827
- @since 1.12.0
4828
- @method runInstanceInitializers
4829
- */
4830
- runInstanceInitializers: function (instance) {
4831
- this._runInitializer('instanceInitializers', function (name, initializer) {
4832
- _emberMetalDebug.assert('No instance initializer named \'' + name + '\'', !!initializer);
4833
- initializer.initialize(instance);
4834
- });
4835
- },
4836
-
4837
- _runInitializer: function (bucketName, cb) {
4838
- var initializersByName = _emberMetalProperty_get.get(this.constructor, bucketName);
4839
- var initializers = props(initializersByName);
4840
- var graph = new _dagMap.default();
4841
- var initializer;
4842
-
4843
- for (var i = 0; i < initializers.length; i++) {
4844
- initializer = initializersByName[initializers[i]];
4845
- graph.addEdges(initializer.name, initializer, initializer.before, initializer.after);
4846
- }
4847
-
4848
- graph.topsort(function (vertex) {
4849
- cb(vertex.name, vertex.value);
4850
- });
4851
- },
4852
-
4853
4813
  /**
4854
4814
  @private
4855
4815
  @method didBecomeReady
@@ -4911,21 +4871,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4911
4871
  return this;
4912
4872
  },
4913
4873
 
4914
- /**
4915
- Set this to provide an alternate class to `Ember.DefaultResolver`
4916
- @deprecated Use 'Resolver' instead
4917
- @property resolver
4918
- @public
4919
- */
4920
- resolver: null,
4921
-
4922
- /**
4923
- Set this to provide an alternate class to `Ember.DefaultResolver`
4924
- @property resolver
4925
- @public
4926
- */
4927
- Resolver: null,
4928
-
4929
4874
  // This method must be moved to the application instance object
4930
4875
  willDestroy: function () {
4931
4876
  this._super.apply(this, arguments);
@@ -4941,10 +4886,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4941
4886
  if (this._globalsMode && this.__deprecatedInstance__) {
4942
4887
  this.__deprecatedInstance__.destroy();
4943
4888
  }
4944
- },
4945
-
4946
- initializer: function (options) {
4947
- this.constructor.initializer(options);
4948
4889
  }
4949
4890
  });
4950
4891
 
@@ -4956,63 +4897,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4956
4897
  }
4957
4898
  });
4958
4899
 
4959
- Application.reopenClass({
4960
- /**
4961
- Instance initializers run after all initializers have run. Because
4962
- instance initializers run after the app is fully set up. We have access
4963
- to the store, container, and other items. However, these initializers run
4964
- after code has loaded and are not allowed to defer readiness.
4965
- Instance initializer receives an object which has the following attributes:
4966
- `name`, `before`, `after`, `initialize`. The only required attribute is
4967
- `initialize`, all others are optional.
4968
- * `name` allows you to specify under which name the instanceInitializer is
4969
- registered. This must be a unique name, as trying to register two
4970
- instanceInitializer with the same name will result in an error.
4971
- ```javascript
4972
- Ember.Application.instanceInitializer({
4973
- name: 'namedinstanceInitializer',
4974
- initialize: function(application) {
4975
- Ember.debug('Running namedInitializer!');
4976
- }
4977
- });
4978
- ```
4979
- * `before` and `after` are used to ensure that this initializer is ran prior
4980
- or after the one identified by the value. This value can be a single string
4981
- or an array of strings, referencing the `name` of other initializers.
4982
- * See Ember.Application.initializer for discussion on the usage of before
4983
- and after.
4984
- Example instanceInitializer to preload data into the store.
4985
- ```javascript
4986
- Ember.Application.initializer({
4987
- name: 'preload-data',
4988
- initialize: function(application) {
4989
- var userConfig, userConfigEncoded, store;
4990
- // We have a HTML escaped JSON representation of the user's basic
4991
- // configuration generated server side and stored in the DOM of the main
4992
- // index.html file. This allows the app to have access to a set of data
4993
- // without making any additional remote calls. Good for basic data that is
4994
- // needed for immediate rendering of the page. Keep in mind, this data,
4995
- // like all local models and data can be manipulated by the user, so it
4996
- // should not be relied upon for security or authorization.
4997
- //
4998
- // Grab the encoded data from the meta tag
4999
- userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
5000
- // Unescape the text, then parse the resulting JSON into a real object
5001
- userConfig = JSON.parse(unescape(userConfigEncoded));
5002
- // Lookup the store
5003
- store = application.lookup('service:store');
5004
- // Push the encoded JSON into the store
5005
- store.pushPayload(userConfig);
5006
- }
5007
- });
5008
- ```
5009
- @method instanceInitializer
5010
- @param instanceInitializer
5011
- @public
5012
- */
5013
- instanceInitializer: buildInitializerMethod('instanceInitializers', 'instance initializer')
5014
- });
5015
-
5016
4900
  Application.reopen({
5017
4901
  /**
5018
4902
  Boot a new instance of `Ember.ApplicationInstance` for the current
@@ -5178,6 +5062,346 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5178
5062
  });
5179
5063
 
5180
5064
  Application.reopenClass({
5065
+ /**
5066
+ This creates a registry with the default Ember naming conventions.
5067
+ It also configures the registry:
5068
+ * registered views are created every time they are looked up (they are
5069
+ not singletons)
5070
+ * registered templates are not factories; the registered value is
5071
+ returned directly.
5072
+ * the router receives the application as its `namespace` property
5073
+ * all controllers receive the router as their `target` and `controllers`
5074
+ properties
5075
+ * all controllers receive the application as their `namespace` property
5076
+ * the application view receives the application controller as its
5077
+ `controller` property
5078
+ * the application view receives the application template as its
5079
+ `defaultTemplate` property
5080
+ @private
5081
+ @method buildRegistry
5082
+ @static
5083
+ @param {Ember.Application} namespace the application for which to
5084
+ build the registry
5085
+ @return {Ember.Registry} the built registry
5086
+ @public
5087
+ */
5088
+ buildRegistry: function (namespace) {
5089
+ var registry = this._super.apply(this, arguments);
5090
+
5091
+ registry.optionsForType('component', { singleton: false });
5092
+ registry.optionsForType('view', { singleton: false });
5093
+ registry.optionsForType('template', { instantiate: false });
5094
+
5095
+ registry.register('application:main', namespace, { instantiate: false });
5096
+
5097
+ registry.register('controller:basic', _emberRuntimeControllersController.default, { instantiate: false });
5098
+
5099
+ registry.register('renderer:-dom', { create: function () {
5100
+ return new _emberMetalViewsRenderer.default(new _emberHtmlbarsSystemDomHelper.default());
5101
+ } });
5102
+
5103
+ registry.injection('view', 'renderer', 'renderer:-dom');
5104
+ if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
5105
+ registry.register('view:select', _emberViewsViewsSelect.default);
5106
+ }
5107
+ registry.register('view:-outlet', _emberRoutingViewsViewsOutlet.OutletView);
5108
+
5109
+ registry.register('-view-registry:main', { create: function () {
5110
+ return {};
5111
+ } });
5112
+
5113
+ registry.injection('view', '_viewRegistry', '-view-registry:main');
5114
+
5115
+ registry.register('view:toplevel', _emberViewsViewsView.default.extend());
5116
+
5117
+ registry.register('route:basic', _emberRoutingSystemRoute.default, { instantiate: false });
5118
+ registry.register('event_dispatcher:main', _emberViewsSystemEvent_dispatcher.default);
5119
+
5120
+ registry.injection('router:main', 'namespace', 'application:main');
5121
+ registry.injection('view:-outlet', 'namespace', 'application:main');
5122
+
5123
+ registry.register('location:auto', _emberRoutingLocationAuto_location.default);
5124
+ registry.register('location:hash', _emberRoutingLocationHash_location.default);
5125
+ registry.register('location:history', _emberRoutingLocationHistory_location.default);
5126
+ registry.register('location:none', _emberRoutingLocationNone_location.default);
5127
+
5128
+ registry.injection('controller', 'target', 'router:main');
5129
+ registry.injection('controller', 'namespace', 'application:main');
5130
+
5131
+ registry.register('-bucket-cache:main', _emberRoutingSystemCache.default);
5132
+ registry.injection('router', '_bucketCache', '-bucket-cache:main');
5133
+ registry.injection('route', '_bucketCache', '-bucket-cache:main');
5134
+ registry.injection('controller', '_bucketCache', '-bucket-cache:main');
5135
+
5136
+ registry.injection('route', 'router', 'router:main');
5137
+
5138
+ registry.register('component:-text-field', _emberViewsViewsText_field.default);
5139
+ registry.register('component:-text-area', _emberViewsViewsText_area.default);
5140
+ registry.register('component:-checkbox', _emberViewsViewsCheckbox.default);
5141
+ registry.register('view:-legacy-each', _emberViewsViewsLegacy_each_view.default);
5142
+ registry.register('component:link-to', _emberRoutingViewsComponentsLinkTo.default);
5143
+
5144
+ // Register the routing service...
5145
+ registry.register('service:-routing', _emberRoutingServicesRouting.default);
5146
+ // Then inject the app router into it
5147
+ registry.injection('service:-routing', 'router', 'router:main');
5148
+
5149
+ // DEBUGGING
5150
+ registry.register('resolver-for-debugging:main', registry.resolver, { instantiate: false });
5151
+ registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main');
5152
+ registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main');
5153
+ // Custom resolver authors may want to register their own ContainerDebugAdapter with this key
5154
+
5155
+ registry.register('container-debug-adapter:main', _emberExtensionSupportContainer_debug_adapter.default);
5156
+
5157
+ return registry;
5158
+ }
5159
+ });
5160
+
5161
+ function registerLibraries() {
5162
+ if (!librariesRegistered) {
5163
+ librariesRegistered = true;
5164
+
5165
+ if (_emberMetalEnvironment.default.hasDOM) {
5166
+ _emberMetal.default.libraries.registerCoreLibrary('jQuery', _emberViewsSystemJquery.default().jquery);
5167
+ }
5168
+ }
5169
+ }
5170
+
5171
+ function logLibraryVersions() {
5172
+ if (_emberMetal.default.LOG_VERSION) {
5173
+ // we only need to see this once per Application#init
5174
+ _emberMetal.default.LOG_VERSION = false;
5175
+ var libs = _emberMetal.default.libraries._registry;
5176
+
5177
+ var nameLengths = libs.map(function (item) {
5178
+ return _emberMetalProperty_get.get(item, 'name.length');
5179
+ });
5180
+
5181
+ var maxNameLength = Math.max.apply(this, nameLengths);
5182
+
5183
+ _emberMetalDebug.debug('-------------------------------');
5184
+ for (var i = 0, l = libs.length; i < l; i++) {
5185
+ var lib = libs[i];
5186
+ var spaces = new Array(maxNameLength - lib.name.length + 1).join(' ');
5187
+ _emberMetalDebug.debug([lib.name, spaces, ' : ', lib.version].join(''));
5188
+ }
5189
+ _emberMetalDebug.debug('-------------------------------');
5190
+ }
5191
+ }
5192
+
5193
+ exports.default = Application;
5194
+ });
5195
+ // Ember.libraries, LOG_VERSION, Namespace, BOOTED
5196
+
5197
+ // Force-assign these flags to their default values when the feature is
5198
+ // disabled, this ensures we can rely on their values in other paths.
5199
+ 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) {
5200
+ /**
5201
+ @module ember
5202
+ @submodule ember-application
5203
+ */
5204
+
5205
+ 'use strict';
5206
+
5207
+ /**
5208
+ The `EngineInstance` encapsulates all of the stateful aspects of a
5209
+ running `Engine`.
5210
+
5211
+ @public
5212
+ @class Ember.EngineInstance
5213
+ @extends Ember.Object
5214
+ @uses RegistryProxyMixin
5215
+ @uses ContainerProxyMixin
5216
+ */
5217
+
5218
+ var EngineInstance = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsRegistry_proxy.default, _emberRuntimeMixinsContainer_proxy.default, {
5219
+ /**
5220
+ The base `Engine` for which this is an instance.
5221
+ @property {Ember.Engine} engine
5222
+ @private
5223
+ */
5224
+ base: null,
5225
+
5226
+ init: function () {
5227
+ this._super.apply(this, arguments);
5228
+
5229
+ var base = this.base;
5230
+
5231
+ if (!base) {
5232
+ base = this.application;
5233
+ this.base = base;
5234
+ }
5235
+
5236
+ // Create a per-instance registry that will use the application's registry
5237
+ // as a fallback for resolving registrations.
5238
+ var registry = this.__registry__ = new _containerRegistry.default({
5239
+ fallback: base.__registry__
5240
+ });
5241
+
5242
+ // Create a per-instance container from the instance's registry
5243
+ this.__container__ = registry.container({ owner: this });
5244
+ },
5245
+
5246
+ /**
5247
+ Unregister a factory.
5248
+ Overrides `RegistryProxy#unregister` in order to clear any cached instances
5249
+ of the unregistered factory.
5250
+ @public
5251
+ @method unregister
5252
+ @param {String} fullName
5253
+ */
5254
+ unregister: function (fullName) {
5255
+ this.__container__.reset(fullName);
5256
+ this._super.apply(this, arguments);
5257
+ },
5258
+
5259
+ /**
5260
+ @private
5261
+ */
5262
+ willDestroy: function () {
5263
+ this._super.apply(this, arguments);
5264
+ _emberMetalRun_loop.default(this.__container__, 'destroy');
5265
+ }
5266
+ });
5267
+
5268
+ exports.default = EngineInstance;
5269
+ });
5270
+ 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) {
5271
+ /**
5272
+ @module ember
5273
+ @submodule ember-application
5274
+ */
5275
+ 'use strict';
5276
+
5277
+ function props(obj) {
5278
+ var properties = [];
5279
+
5280
+ for (var key in obj) {
5281
+ properties.push(key);
5282
+ }
5283
+
5284
+ return properties;
5285
+ }
5286
+
5287
+ /**
5288
+ The `Engine` class contains core functionality for both applications and
5289
+ engines.
5290
+
5291
+ Each engine manages a registry that's used for dependency injection and
5292
+ exposed through `RegistryProxy`.
5293
+
5294
+ Engines also manage initializers and instance initializers.
5295
+
5296
+ Engines can spawn `EngineInstance` instances via `buildInstance()`.
5297
+
5298
+ @class Engine
5299
+ @namespace Ember
5300
+ @extends Ember.Namespace
5301
+ @uses RegistryProxy
5302
+ @public
5303
+ */
5304
+ var Engine = _emberRuntimeSystemNamespace.default.extend(_emberRuntimeMixinsRegistry_proxy.default, {
5305
+ init: function () {
5306
+ this._super.apply(this, arguments);
5307
+
5308
+ this.buildRegistry();
5309
+ },
5310
+
5311
+ /**
5312
+ Create an EngineInstance for this application.
5313
+ @private
5314
+ @method buildInstance
5315
+ @return {Ember.EngineInstance} the application instance
5316
+ */
5317
+ buildInstance: function () {
5318
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
5319
+
5320
+ options.base = this;
5321
+ return _emberApplicationSystemEngineInstance.default.create(options);
5322
+ },
5323
+
5324
+ /**
5325
+ Build and configure the registry for the current application.
5326
+ @private
5327
+ @method buildRegistry
5328
+ @return {Ember.Registry} the configured registry
5329
+ */
5330
+ buildRegistry: function () {
5331
+ var registry = this.__registry__ = this.constructor.buildRegistry(this);
5332
+
5333
+ return registry;
5334
+ },
5335
+
5336
+ /**
5337
+ @private
5338
+ @method initializer
5339
+ */
5340
+ initializer: function (options) {
5341
+ this.constructor.initializer(options);
5342
+ },
5343
+
5344
+ /**
5345
+ @private
5346
+ @method instanceInitializer
5347
+ */
5348
+ instanceInitializer: function (options) {
5349
+ this.constructor.instanceInitializer(options);
5350
+ },
5351
+
5352
+ /**
5353
+ @private
5354
+ @method runInitializers
5355
+ */
5356
+ runInitializers: function () {
5357
+ var _this = this;
5358
+
5359
+ this._runInitializer('initializers', function (name, initializer) {
5360
+ _emberMetalDebug.assert('No application initializer named \'' + name + '\'', !!initializer);
5361
+ if (initializer.initialize.length === 2) {
5362
+ _emberMetalDebug.deprecate('The `initialize` method for Application initializer \'' + name + '\' should take only one argument - `App`, an instance of an `Application`.', false, {
5363
+ id: 'ember-application.app-initializer-initialize-arguments',
5364
+ until: '3.0.0',
5365
+ url: 'http://emberjs.com/deprecations/v2.x/#toc_initializer-arity'
5366
+ });
5367
+
5368
+ initializer.initialize(_this.__registry__, _this);
5369
+ } else {
5370
+ initializer.initialize(_this);
5371
+ }
5372
+ });
5373
+ },
5374
+
5375
+ /**
5376
+ @private
5377
+ @since 1.12.0
5378
+ @method runInstanceInitializers
5379
+ */
5380
+ runInstanceInitializers: function (instance) {
5381
+ this._runInitializer('instanceInitializers', function (name, initializer) {
5382
+ _emberMetalDebug.assert('No instance initializer named \'' + name + '\'', !!initializer);
5383
+ initializer.initialize(instance);
5384
+ });
5385
+ },
5386
+
5387
+ _runInitializer: function (bucketName, cb) {
5388
+ var initializersByName = _emberMetalProperty_get.get(this.constructor, bucketName);
5389
+ var initializers = props(initializersByName);
5390
+ var graph = new _dagMap.default();
5391
+ var initializer;
5392
+
5393
+ for (var i = 0; i < initializers.length; i++) {
5394
+ initializer = initializersByName[initializers[i]];
5395
+ graph.addEdges(initializer.name, initializer, initializer.before, initializer.after);
5396
+ }
5397
+
5398
+ graph.topsort(function (vertex) {
5399
+ cb(vertex.name, vertex.value);
5400
+ });
5401
+ }
5402
+ });
5403
+
5404
+ Engine.reopenClass({
5181
5405
  initializers: new _emberMetalEmpty_object.default(),
5182
5406
  instanceInitializers: new _emberMetalEmpty_object.default(),
5183
5407
 
@@ -5275,6 +5499,61 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5275
5499
 
5276
5500
  initializer: buildInitializerMethod('initializers', 'initializer'),
5277
5501
 
5502
+ /**
5503
+ Instance initializers run after all initializers have run. Because
5504
+ instance initializers run after the app is fully set up. We have access
5505
+ to the store, container, and other items. However, these initializers run
5506
+ after code has loaded and are not allowed to defer readiness.
5507
+ Instance initializer receives an object which has the following attributes:
5508
+ `name`, `before`, `after`, `initialize`. The only required attribute is
5509
+ `initialize`, all others are optional.
5510
+ * `name` allows you to specify under which name the instanceInitializer is
5511
+ registered. This must be a unique name, as trying to register two
5512
+ instanceInitializer with the same name will result in an error.
5513
+ ```javascript
5514
+ Ember.Application.instanceInitializer({
5515
+ name: 'namedinstanceInitializer',
5516
+ initialize: function(application) {
5517
+ Ember.debug('Running namedInitializer!');
5518
+ }
5519
+ });
5520
+ ```
5521
+ * `before` and `after` are used to ensure that this initializer is ran prior
5522
+ or after the one identified by the value. This value can be a single string
5523
+ or an array of strings, referencing the `name` of other initializers.
5524
+ * See Ember.Application.initializer for discussion on the usage of before
5525
+ and after.
5526
+ Example instanceInitializer to preload data into the store.
5527
+ ```javascript
5528
+ Ember.Application.initializer({
5529
+ name: 'preload-data',
5530
+ initialize: function(application) {
5531
+ var userConfig, userConfigEncoded, store;
5532
+ // We have a HTML escaped JSON representation of the user's basic
5533
+ // configuration generated server side and stored in the DOM of the main
5534
+ // index.html file. This allows the app to have access to a set of data
5535
+ // without making any additional remote calls. Good for basic data that is
5536
+ // needed for immediate rendering of the page. Keep in mind, this data,
5537
+ // like all local models and data can be manipulated by the user, so it
5538
+ // should not be relied upon for security or authorization.
5539
+ //
5540
+ // Grab the encoded data from the meta tag
5541
+ userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
5542
+ // Unescape the text, then parse the resulting JSON into a real object
5543
+ userConfig = JSON.parse(unescape(userConfigEncoded));
5544
+ // Lookup the store
5545
+ store = application.lookup('service:store');
5546
+ // Push the encoded JSON into the store
5547
+ store.pushPayload(userConfig);
5548
+ }
5549
+ });
5550
+ ```
5551
+ @method instanceInitializer
5552
+ @param instanceInitializer
5553
+ @public
5554
+ */
5555
+ instanceInitializer: buildInitializerMethod('instanceInitializers', 'instance initializer'),
5556
+
5278
5557
  /**
5279
5558
  This creates a registry with the default Ember naming conventions.
5280
5559
  It also configures the registry:
@@ -5305,74 +5584,23 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5305
5584
 
5306
5585
  registry.set = _emberMetalProperty_set.set;
5307
5586
 
5308
- registry.optionsForType('component', { singleton: false });
5309
- registry.optionsForType('view', { singleton: false });
5310
- registry.optionsForType('template', { instantiate: false });
5311
-
5312
- registry.register('application:main', namespace, { instantiate: false });
5313
-
5314
- registry.register('controller:basic', _emberRuntimeControllersController.default, { instantiate: false });
5315
-
5316
- registry.register('renderer:-dom', { create: function () {
5317
- return new _emberMetalViewsRenderer.default(new _emberHtmlbarsSystemDomHelper.default());
5318
- } });
5319
-
5320
- registry.injection('view', 'renderer', 'renderer:-dom');
5321
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
5322
- registry.register('view:select', _emberViewsViewsSelect.default);
5323
- }
5324
- registry.register('view:-outlet', _emberRoutingViewsViewsOutlet.OutletView);
5325
-
5326
- registry.register('-view-registry:main', { create: function () {
5327
- return {};
5328
- } });
5329
-
5330
- registry.injection('view', '_viewRegistry', '-view-registry:main');
5331
-
5332
- registry.register('view:toplevel', _emberViewsViewsView.default.extend());
5333
-
5334
- registry.register('route:basic', _emberRoutingSystemRoute.default, { instantiate: false });
5335
- registry.register('event_dispatcher:main', _emberViewsSystemEvent_dispatcher.default);
5336
-
5337
- registry.injection('router:main', 'namespace', 'application:main');
5338
- registry.injection('view:-outlet', 'namespace', 'application:main');
5339
-
5340
- registry.register('location:auto', _emberRoutingLocationAuto_location.default);
5341
- registry.register('location:hash', _emberRoutingLocationHash_location.default);
5342
- registry.register('location:history', _emberRoutingLocationHistory_location.default);
5343
- registry.register('location:none', _emberRoutingLocationNone_location.default);
5344
-
5345
- registry.injection('controller', 'target', 'router:main');
5346
- registry.injection('controller', 'namespace', 'application:main');
5347
-
5348
- registry.register('-bucket-cache:main', _emberRoutingSystemCache.default);
5349
- registry.injection('router', '_bucketCache', '-bucket-cache:main');
5350
- registry.injection('route', '_bucketCache', '-bucket-cache:main');
5351
- registry.injection('controller', '_bucketCache', '-bucket-cache:main');
5352
-
5353
- registry.injection('route', 'router', 'router:main');
5354
-
5355
- registry.register('component:-text-field', _emberViewsViewsText_field.default);
5356
- registry.register('component:-text-area', _emberViewsViewsText_area.default);
5357
- registry.register('component:-checkbox', _emberViewsViewsCheckbox.default);
5358
- registry.register('view:-legacy-each', _emberViewsViewsLegacy_each_view.default);
5359
- registry.register('component:link-to', _emberRoutingViewsComponentsLinkTo.default);
5360
-
5361
- // Register the routing service...
5362
- registry.register('service:-routing', _emberRoutingServicesRouting.default);
5363
- // Then inject the app router into it
5364
- registry.injection('service:-routing', 'router', 'router:main');
5365
-
5366
- // DEBUGGING
5367
- registry.register('resolver-for-debugging:main', registry.resolver, { instantiate: false });
5368
- registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main');
5369
- registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main');
5370
- // Custom resolver authors may want to register their own ContainerDebugAdapter with this key
5587
+ return registry;
5588
+ },
5371
5589
 
5372
- registry.register('container-debug-adapter:main', _emberExtensionSupportContainer_debug_adapter.default);
5590
+ /**
5591
+ Set this to provide an alternate class to `Ember.DefaultResolver`
5592
+ @deprecated Use 'Resolver' instead
5593
+ @property resolver
5594
+ @public
5595
+ */
5596
+ resolver: null,
5373
5597
 
5374
- return registry;
5375
- }
5598
+ /**
5599
+ Set this to provide an alternate class to `Ember.DefaultResolver`
5600
+ @property resolver
5601
+ @public
5602
+ */
5603
+ Resolver: null
5376
5604
  });
5377
5605
 
5378
5606
  /**
@@ -5399,38 +5627,6 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5399
5627
  });
5400
5628
  }
5401
5629
 
5402
- function registerLibraries() {
5403
- if (!librariesRegistered) {
5404
- librariesRegistered = true;
5405
-
5406
- if (_emberMetalEnvironment.default.hasDOM) {
5407
- _emberMetal.default.libraries.registerCoreLibrary('jQuery', _emberViewsSystemJquery.default().jquery);
5408
- }
5409
- }
5410
- }
5411
-
5412
- function logLibraryVersions() {
5413
- if (_emberMetal.default.LOG_VERSION) {
5414
- // we only need to see this once per Application#init
5415
- _emberMetal.default.LOG_VERSION = false;
5416
- var libs = _emberMetal.default.libraries._registry;
5417
-
5418
- var nameLengths = libs.map(function (item) {
5419
- return _emberMetalProperty_get.get(item, 'name.length');
5420
- });
5421
-
5422
- var maxNameLength = Math.max.apply(this, nameLengths);
5423
-
5424
- _emberMetalDebug.debug('-------------------------------');
5425
- for (var i = 0, l = libs.length; i < l; i++) {
5426
- var lib = libs[i];
5427
- var spaces = new Array(maxNameLength - lib.name.length + 1).join(' ');
5428
- _emberMetalDebug.debug([lib.name, spaces, ' : ', lib.version].join(''));
5429
- }
5430
- _emberMetalDebug.debug('-------------------------------');
5431
- }
5432
- }
5433
-
5434
5630
  function buildInitializerMethod(bucketName, humanName) {
5435
5631
  return function (initializer) {
5436
5632
  // If this is the first initializer being added to a subclass, we are going to reopen the class
@@ -5451,12 +5647,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
5451
5647
  };
5452
5648
  }
5453
5649
 
5454
- exports.default = Application;
5650
+ exports.default = Engine;
5455
5651
  });
5456
- // Ember.libraries, LOG_VERSION, Namespace, BOOTED
5457
-
5458
- // Force-assign these flags to their default values when the feature is
5459
- // disabled, this ensures we can rely on their values in other paths.
5460
5652
  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) {
5461
5653
  /**
5462
5654
  @module ember
@@ -5655,8 +5847,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
5655
5847
  var name = fullNameWithoutType;
5656
5848
  var namespace = _emberMetalProperty_get.get(this, 'namespace');
5657
5849
  var root = namespace;
5850
+ var lastSlashIndex = name.lastIndexOf('/');
5851
+ var dirname = lastSlashIndex !== -1 ? name.slice(0, lastSlashIndex) : null;
5658
5852
 
5659
- if (type !== 'template' && name.indexOf('/') !== -1) {
5853
+ if (type !== 'template' && lastSlashIndex !== -1) {
5660
5854
  var parts = name.split('/');
5661
5855
  name = parts[parts.length - 1];
5662
5856
  var namespaceName = _emberRuntimeSystemString.capitalize(parts.slice(0, -1).join('.'));
@@ -5675,6 +5869,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
5675
5869
  fullName: fullName,
5676
5870
  type: type,
5677
5871
  fullNameWithoutType: fullNameWithoutType,
5872
+ dirname: dirname,
5678
5873
  name: name,
5679
5874
  root: root,
5680
5875
  resolveMethodName: 'resolve' + resolveMethodName
@@ -5934,20 +6129,6 @@ enifed('ember-application/utils/validate-type', ['exports', 'ember-metal/debug']
5934
6129
  }
5935
6130
  }
5936
6131
  });
5937
- 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) {
5938
- 'use strict';
5939
-
5940
- _emberMetalCore.default.Application = _emberApplicationSystemApplication.default;
5941
- _emberMetalCore.default.Resolver = _emberApplicationSystemResolver.Resolver;
5942
- _emberMetalCore.default.DefaultResolver = _emberApplicationSystemResolver.default;
5943
-
5944
- _emberRuntimeSystemLazy_load.runLoadHooks('Ember.Application', _emberApplicationSystemApplication.default);
5945
- });
5946
-
5947
- /**
5948
- @module ember
5949
- @submodule ember-application
5950
- */
5951
6132
  enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-metal/logger', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalError, _emberMetalLogger, _emberDebugHandlers) {
5952
6133
  /*global __fail__*/
5953
6134
 
@@ -6131,80 +6312,7 @@ enifed('ember-debug/handlers', ['exports', 'ember-debug/is-plain-function', 'emb
6131
6312
  }
6132
6313
  }
6133
6314
  });
6134
- enifed('ember-debug/is-plain-function', ['exports'], function (exports) {
6135
- 'use strict';
6136
-
6137
- exports.default = isPlainFunction;
6138
-
6139
- function isPlainFunction(test) {
6140
- return typeof test === 'function' && test.PrototypeMixin === undefined;
6141
- }
6142
- });
6143
- enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) {
6144
- 'use strict';
6145
-
6146
- var _slice = Array.prototype.slice;
6147
- exports.registerHandler = registerHandler;
6148
- exports.default = warn;
6149
-
6150
- function registerHandler(handler) {
6151
- _emberDebugHandlers.registerHandler('warn', handler);
6152
- }
6153
-
6154
- registerHandler(function logWarning(message, options) {
6155
- _emberMetalLogger.default.warn('WARNING: ' + message);
6156
- if ('trace' in _emberMetalLogger.default) {
6157
- _emberMetalLogger.default.trace();
6158
- }
6159
- });
6160
-
6161
- var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.';
6162
- exports.missingOptionsDeprecation = missingOptionsDeprecation;
6163
- var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
6164
-
6165
- exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
6166
- /**
6167
- @module ember
6168
- @submodule ember-debug
6169
- */
6170
-
6171
- /**
6172
- Display a warning with the provided message. Ember build tools will
6173
- remove any calls to `Ember.warn()` when doing a production build.
6174
-
6175
- @method warn
6176
- @param {String} message A warning to display.
6177
- @param {Boolean} test An optional boolean. If falsy, the warning
6178
- will be displayed.
6179
- @param {Object} options An ojbect that can be used to pass a unique
6180
- `id` for this warning. The `id` can be used by Ember debugging tools
6181
- to change the behavior (raise, log, or silence) for that specific warning.
6182
- The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
6183
- @for Ember
6184
- @public
6185
- */
6186
-
6187
- function warn(message, test, options) {
6188
- if (!options) {
6189
- _emberMetalDebug.deprecate(missingOptionsDeprecation, false, {
6190
- id: 'ember-debug.warn-options-missing',
6191
- until: '3.0.0',
6192
- url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
6193
- });
6194
- }
6195
-
6196
- if (options && !options.id) {
6197
- _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, {
6198
- id: 'ember-debug.warn-id-missing',
6199
- until: '3.0.0',
6200
- url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
6201
- });
6202
- }
6203
-
6204
- _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments)));
6205
- }
6206
- });
6207
- enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) {
6315
+ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) {
6208
6316
  'use strict';
6209
6317
 
6210
6318
  exports._warnIfUsingStrippedFeatureFlags = _warnIfUsingStrippedFeatureFlags;
@@ -6498,6 +6606,79 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'embe
6498
6606
  _emberMetalDebug.warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.');
6499
6607
  }
6500
6608
  });
6609
+ enifed('ember-debug/is-plain-function', ['exports'], function (exports) {
6610
+ 'use strict';
6611
+
6612
+ exports.default = isPlainFunction;
6613
+
6614
+ function isPlainFunction(test) {
6615
+ return typeof test === 'function' && test.PrototypeMixin === undefined;
6616
+ }
6617
+ });
6618
+ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) {
6619
+ 'use strict';
6620
+
6621
+ var _slice = Array.prototype.slice;
6622
+ exports.registerHandler = registerHandler;
6623
+ exports.default = warn;
6624
+
6625
+ function registerHandler(handler) {
6626
+ _emberDebugHandlers.registerHandler('warn', handler);
6627
+ }
6628
+
6629
+ registerHandler(function logWarning(message, options) {
6630
+ _emberMetalLogger.default.warn('WARNING: ' + message);
6631
+ if ('trace' in _emberMetalLogger.default) {
6632
+ _emberMetalLogger.default.trace();
6633
+ }
6634
+ });
6635
+
6636
+ var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.';
6637
+ exports.missingOptionsDeprecation = missingOptionsDeprecation;
6638
+ var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
6639
+
6640
+ exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
6641
+ /**
6642
+ @module ember
6643
+ @submodule ember-debug
6644
+ */
6645
+
6646
+ /**
6647
+ Display a warning with the provided message. Ember build tools will
6648
+ remove any calls to `Ember.warn()` when doing a production build.
6649
+
6650
+ @method warn
6651
+ @param {String} message A warning to display.
6652
+ @param {Boolean} test An optional boolean. If falsy, the warning
6653
+ will be displayed.
6654
+ @param {Object} options An ojbect that can be used to pass a unique
6655
+ `id` for this warning. The `id` can be used by Ember debugging tools
6656
+ to change the behavior (raise, log, or silence) for that specific warning.
6657
+ The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
6658
+ @for Ember
6659
+ @public
6660
+ */
6661
+
6662
+ function warn(message, test, options) {
6663
+ if (!options) {
6664
+ _emberMetalDebug.deprecate(missingOptionsDeprecation, false, {
6665
+ id: 'ember-debug.warn-options-missing',
6666
+ until: '3.0.0',
6667
+ url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
6668
+ });
6669
+ }
6670
+
6671
+ if (options && !options.id) {
6672
+ _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, {
6673
+ id: 'ember-debug.warn-id-missing',
6674
+ until: '3.0.0',
6675
+ url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
6676
+ });
6677
+ }
6678
+
6679
+ _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments)));
6680
+ }
6681
+ });
6501
6682
  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) {
6502
6683
  'use strict';
6503
6684
 
@@ -7080,7 +7261,7 @@ enifed('ember-extension-support/data_adapter', ['exports', 'ember-metal/property
7080
7261
  }
7081
7262
  });
7082
7263
  });
7083
- 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) {
7264
+ 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) {
7084
7265
  /**
7085
7266
  @module ember
7086
7267
  @submodule ember-extension-support
@@ -7726,7 +7907,7 @@ enifed('ember-htmlbars/helpers/if_unless', ['exports', 'ember-metal/debug', 'emb
7726
7907
  /**
7727
7908
  Use the `if` block helper to conditionally render a block depending on a
7728
7909
  property. If the property is "falsey", for example: `false`, `undefined`,
7729
- `null`, `""`, `0` or an empty array, the block will not be rendered.
7910
+ `null`, `""`, `0`, `NaN` or an empty array, the block will not be rendered.
7730
7911
 
7731
7912
  ```handlebars
7732
7913
  {{! will not render if foo is falsey}}
@@ -8165,7 +8346,7 @@ enifed("ember-htmlbars/hooks/cleanup-render-node", ["exports"], function (export
8165
8346
  }
8166
8347
  }
8167
8348
  });
8168
- 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) {
8349
+ 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) {
8169
8350
  'use strict';
8170
8351
 
8171
8352
  exports.default = componentHook;
@@ -8254,7 +8435,10 @@ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember
8254
8435
  var component = undefined,
8255
8436
  layout = undefined;
8256
8437
  if (isDasherized || !isAngleBracket) {
8257
- var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, tagName);
8438
+ var options = {};
8439
+
8440
+ var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, tagName, options);
8441
+
8258
8442
  component = result.component;
8259
8443
  layout = result.layout;
8260
8444
 
@@ -8749,6 +8933,16 @@ enifed('ember-htmlbars/hooks/has-helper', ['exports', 'ember-htmlbars/system/loo
8749
8933
  if (owner.hasRegistration(registrationName)) {
8750
8934
  return true;
8751
8935
  }
8936
+
8937
+ var options = {};
8938
+ var moduleName = env.meta && env.meta.moduleName;
8939
+ if (moduleName) {
8940
+ options.source = 'template:' + moduleName;
8941
+ }
8942
+
8943
+ if (owner.hasRegistration(registrationName, options)) {
8944
+ return true;
8945
+ }
8752
8946
  }
8753
8947
 
8754
8948
  return false;
@@ -9044,6 +9238,158 @@ enifed("ember-htmlbars/hooks/will-cleanup-tree", ["exports"], function (exports)
9044
9238
  view.ownerView._destroyingSubtreeForView = view;
9045
9239
  }
9046
9240
  });
9241
+ 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) {
9242
+ /**
9243
+ Ember templates are executed by [HTMLBars](https://github.com/tildeio/htmlbars),
9244
+ an HTML-friendly version of [Handlebars](http://handlebarsjs.com/). Any valid Handlebars syntax is valid in an Ember template.
9245
+
9246
+ ### Showing a property
9247
+
9248
+ Templates manage the flow of an application's UI, and display state (through
9249
+ the DOM) to a user. For example, given a component with the property "name",
9250
+ that component's template can use the name in several ways:
9251
+
9252
+ ```javascript
9253
+ // app/components/person.js
9254
+ export default Ember.Component.extend({
9255
+ name: 'Jill'
9256
+ });
9257
+ ```
9258
+
9259
+ ```handlebars
9260
+ {{! app/components/person.hbs }}
9261
+ {{name}}
9262
+ <div>{{name}}</div>
9263
+ <span data-name={{name}}></span>
9264
+ ```
9265
+
9266
+ Any time the "name" property on the component changes, the DOM will be
9267
+ updated.
9268
+
9269
+ Properties can be chained as well:
9270
+
9271
+ ```handlebars
9272
+ {{aUserModel.name}}
9273
+ <div>{{listOfUsers.firstObject.name}}</div>
9274
+ ```
9275
+
9276
+ ### Using Ember helpers
9277
+
9278
+ When content is passed in mustaches `{{}}`, Ember will first try to find a helper
9279
+ or component with that name. For example, the `if` helper:
9280
+
9281
+ ```handlebars
9282
+ {{if name "I have a name" "I have no name"}}
9283
+ <span data-has-name={{if name true}}></span>
9284
+ ```
9285
+
9286
+ The returned value is placed where the `{{}}` is called. The above style is
9287
+ called "inline". A second style of helper usage is called "block". For example:
9288
+
9289
+ ```handlebars
9290
+ {{#if name}}
9291
+ I have a name
9292
+ {{else}}
9293
+ I have no name
9294
+ {{/if}}
9295
+ ```
9296
+
9297
+ The block form of helpers allows you to control how the UI is created based
9298
+ on the values of properties.
9299
+
9300
+ A third form of helper is called "nested". For example here the concat
9301
+ helper will add " Doe" to a displayed name if the person has no last name:
9302
+
9303
+ ```handlebars
9304
+ <span data-name={{concat firstName (
9305
+ if lastName (concat " " lastName) "Doe"
9306
+ )}}></span>
9307
+ ```
9308
+
9309
+ Ember's built-in helpers are described under the [Ember.Templates.helpers](/api/classes/Ember.Templates.helpers.html)
9310
+ namespace. Documentation on creating custom helpers can be found under
9311
+ [Ember.Helper](/api/classes/Ember.Helper.html).
9312
+
9313
+ ### Invoking a Component
9314
+
9315
+ Ember components represent state to the UI of an application. Further
9316
+ reading on components can be found under [Ember.Component](/api/classes/Ember.Component.html).
9317
+
9318
+ @module ember
9319
+ @submodule ember-templates
9320
+ @main ember-templates
9321
+ @public
9322
+ */
9323
+
9324
+ /**
9325
+
9326
+ [HTMLBars](https://github.com/tildeio/htmlbars) is a [Handlebars](http://handlebarsjs.com/)
9327
+ compatible templating engine used by Ember.js. The classes and namespaces
9328
+ covered by this documentation attempt to focus on APIs for interacting
9329
+ with HTMLBars itself. For more general guidance on Ember.js templates and
9330
+ helpers, please see the [ember-templates](/api/modules/ember-templates.html)
9331
+ package.
9332
+
9333
+ @module ember
9334
+ @submodule ember-htmlbars
9335
+ @main ember-htmlbars
9336
+ @public
9337
+ */
9338
+ 'use strict';
9339
+
9340
+ _emberHtmlbarsHelpers.registerHelper('if', _emberHtmlbarsHelpersIf_unless.ifHelper);
9341
+ _emberHtmlbarsHelpers.registerHelper('unless', _emberHtmlbarsHelpersIf_unless.unlessHelper);
9342
+ _emberHtmlbarsHelpers.registerHelper('with', _emberHtmlbarsHelpersWith.default);
9343
+ _emberHtmlbarsHelpers.registerHelper('loc', _emberHtmlbarsHelpersLoc.default);
9344
+ _emberHtmlbarsHelpers.registerHelper('log', _emberHtmlbarsHelpersLog.default);
9345
+ _emberHtmlbarsHelpers.registerHelper('each', _emberHtmlbarsHelpersEach.default);
9346
+ _emberHtmlbarsHelpers.registerHelper('each-in', _emberHtmlbarsHelpersEachIn.default);
9347
+ _emberHtmlbarsHelpers.registerHelper('-normalize-class', _emberHtmlbarsHelpersNormalizeClass.default);
9348
+ _emberHtmlbarsHelpers.registerHelper('concat', _emberHtmlbarsHelpersConcat.default);
9349
+ _emberHtmlbarsHelpers.registerHelper('-join-classes', _emberHtmlbarsHelpersJoinClasses.default);
9350
+ _emberHtmlbarsHelpers.registerHelper('-html-safe', _emberHtmlbarsHelpersHtmlSafe.default);
9351
+
9352
+ _emberHtmlbarsHelpers.registerHelper('hash', _emberHtmlbarsHelpersHash.default);
9353
+
9354
+ if (_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
9355
+ _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-controller', _emberHtmlbarsHelpersLegacyEachWithController.default);
9356
+ _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-keyword', _emberHtmlbarsHelpersLegacyEachWithKeyword.default);
9357
+ }
9358
+
9359
+ _emberMetalCore.default.HTMLBars = {
9360
+ template: _emberTemplateCompiler.template,
9361
+ compile: _emberTemplateCompiler.compile,
9362
+ precompile: _emberTemplateCompiler.precompile,
9363
+ makeBoundHelper: _emberHtmlbarsSystemMake_bound_helper.default,
9364
+ registerPlugin: _emberTemplateCompiler.registerPlugin,
9365
+ DOMHelper: _emberHtmlbarsSystemDomHelper.default
9366
+ };
9367
+
9368
+ _emberHtmlbarsHelper.default.helper = _emberHtmlbarsHelper.helper;
9369
+ _emberMetalCore.default.Helper = _emberHtmlbarsHelper.default;
9370
+
9371
+ /**
9372
+ Global hash of shared templates. This will automatically be populated
9373
+ by the build tools so that you can store your Handlebars templates in
9374
+ separate files that get loaded into JavaScript at buildtime.
9375
+
9376
+ @property TEMPLATES
9377
+ @for Ember
9378
+ @type Object
9379
+ @private
9380
+ */
9381
+ Object.defineProperty(_emberMetalCore.default, 'TEMPLATES', {
9382
+ configurable: false,
9383
+ get: _emberHtmlbarsTemplate_registry.getTemplates,
9384
+ set: _emberHtmlbarsTemplate_registry.setTemplates
9385
+ });
9386
+ });
9387
+
9388
+ // importing adds template bootstrapping
9389
+ // initializer to enable embedded templates
9390
+
9391
+ // importing ember-htmlbars/compat updates the
9392
+ // Ember.Handlebars global if htmlbars is enabled
9047
9393
  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) {
9048
9394
  /**
9049
9395
  @module ember
@@ -9367,7 +9713,7 @@ enifed('ember-htmlbars/keywords/collection', ['exports', 'ember-views/streams/ut
9367
9713
  return viewClassOrInstance;
9368
9714
  }
9369
9715
  });
9370
- enifed('ember-htmlbars/keywords/component', ['exports', 'htmlbars-runtime/hooks', 'ember-htmlbars/keywords/closure-component', 'ember-metal/features'], function (exports, _htmlbarsRuntimeHooks, _emberHtmlbarsKeywordsClosureComponent, _emberMetalFeatures) {
9716
+ 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) {
9371
9717
  /**
9372
9718
  @module ember
9373
9719
  @submodule ember-templates
@@ -9447,11 +9793,14 @@ enifed('ember-htmlbars/keywords/component', ['exports', 'htmlbars-runtime/hooks'
9447
9793
  */
9448
9794
 
9449
9795
  exports.default = function (morph, env, scope, params, hash, template, inverse, visitor) {
9450
- if (morph) {
9451
- _htmlbarsRuntimeHooks.keyword('@element_component', morph, env, scope, params, hash, template, inverse, visitor);
9452
- return true;
9796
+ if (!morph) {
9797
+ return _emberHtmlbarsKeywordsClosureComponent.default(env, params, hash);
9453
9798
  }
9454
- return _emberHtmlbarsKeywordsClosureComponent.default(env, params, hash);
9799
+
9800
+ var newHash = _emberMetalAssign.default(new _emberMetalEmpty_object.default(), hash);
9801
+
9802
+ _htmlbarsRuntimeHooks.keyword('@element_component', morph, env, scope, params, newHash, template, inverse, visitor);
9803
+ return true;
9455
9804
  };
9456
9805
  });
9457
9806
  enifed('ember-htmlbars/keywords/debugger', ['exports', 'ember-metal/debug'], function (exports, _emberMetalDebug) {
@@ -9556,7 +9905,7 @@ enifed('ember-htmlbars/keywords/each', ['exports'], function (exports) {
9556
9905
  return false;
9557
9906
  }
9558
9907
  });
9559
- enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/assign', 'ember-htmlbars/keywords/closure-component'], function (exports, _emberMetalAssign, _emberHtmlbarsKeywordsClosureComponent) {
9908
+ 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) {
9560
9909
  'use strict';
9561
9910
 
9562
9911
  exports.default = {
@@ -9603,6 +9952,8 @@ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/ass
9603
9952
 
9604
9953
  var params = _ref.slice(1);
9605
9954
 
9955
+ var isRerender = arguments.length <= 8 || arguments[8] === undefined ? false : arguments[8];
9956
+
9606
9957
  var _morph$getState = morph.getState();
9607
9958
 
9608
9959
  var componentPath = _morph$getState.componentPath;
@@ -9615,6 +9966,13 @@ enifed('ember-htmlbars/keywords/element-component', ['exports', 'ember-metal/ass
9615
9966
 
9616
9967
  path = env.hooks.getValue(path);
9617
9968
 
9969
+ if (isRerender) {
9970
+ var result = _emberHtmlbarsUtilsLookupComponent.default(env.owner, componentPath);
9971
+ var component = result.component;
9972
+
9973
+ _emberHtmlbarsUtilsExtractPositionalParams.default(null, component, params, hash);
9974
+ }
9975
+
9618
9976
  if (_emberHtmlbarsKeywordsClosureComponent.isComponentCell(path)) {
9619
9977
  var closureComponent = env.hooks.getValue(path);
9620
9978
 
@@ -10137,7 +10495,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
10137
10495
 
10138
10496
  'use strict';
10139
10497
 
10140
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.3.2';
10498
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.4.0-beta.2';
10141
10499
 
10142
10500
  /**
10143
10501
  The `{{outlet}}` helper lets you specify where a child routes will render in
@@ -10219,7 +10577,11 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
10219
10577
  },
10220
10578
 
10221
10579
  childEnv: function (state, env) {
10222
- return env.childWithOutletState(state.outletState && state.outletState.outlets, true);
10580
+ var outletState = state.outletState;
10581
+ var toRender = outletState && outletState.render;
10582
+ var meta = toRender && toRender.template && toRender.template.meta;
10583
+
10584
+ return env.childWithOutletState(outletState && outletState.outlets, true, meta);
10223
10585
  },
10224
10586
 
10225
10587
  isStable: function (lastState, nextState) {
@@ -11279,7 +11641,8 @@ enifed('ember-htmlbars/node-managers/component-node-manager', ['exports', 'ember
11279
11641
  var component = this.component;
11280
11642
 
11281
11643
  return _emberHtmlbarsSystemInstrumentationSupport.instrument(component, function ComponentNodeManager_render_instrument() {
11282
- var env = _env.childWithView(component);
11644
+ var meta = this.block && this.block.template.meta;
11645
+ var env = _env.childWithView(component, meta);
11283
11646
 
11284
11647
  env.renderer.componentWillRender(component);
11285
11648
  env.renderedViews.push(component.elementId);
@@ -11536,6 +11899,10 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
11536
11899
  var newEnv = env;
11537
11900
  if (component) {
11538
11901
  newEnv = env.childWithView(component);
11902
+ } else {
11903
+ var meta = this.block && this.block.template.meta;
11904
+
11905
+ newEnv = env.childWithMeta(meta);
11539
11906
  }
11540
11907
 
11541
11908
  if (component) {
@@ -11586,7 +11953,12 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
11586
11953
  env.renderer.willRender(component);
11587
11954
 
11588
11955
  env.renderedViews.push(component.elementId);
11956
+ } else {
11957
+ var meta = this.block && this.block.template.meta;
11958
+
11959
+ newEnv = env.childWithMeta(meta);
11589
11960
  }
11961
+
11590
11962
  if (this.block) {
11591
11963
  this.block.invoke(newEnv, [], undefined, this.renderNode, this.scope, visitor);
11592
11964
  }
@@ -11632,7 +12004,7 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
11632
12004
 
11633
12005
  mergeBindings(props, snapshot);
11634
12006
 
11635
- var owner = options.parentView ? _containerOwner.getOwner(options.parentView) : env.owner;
12007
+ var owner = env.owner;
11636
12008
 
11637
12009
  _containerOwner.setOwner(props, owner);
11638
12010
  props.renderer = options.parentView ? options.parentView.renderer : owner && owner.lookup('renderer:-dom');
@@ -11862,7 +12234,7 @@ enifed('ember-htmlbars/system/bootstrap', ['exports', 'ember-views/component_loo
11862
12234
  /**
11863
12235
  Find templates stored in the head tag as script tags and make them available
11864
12236
  to `Ember.CoreView` in the global `Ember.TEMPLATES` object. This will be run
11865
- as as jQuery DOM-ready callback.
12237
+ as a jQuery DOM-ready callback.
11866
12238
 
11867
12239
  Script tags with `text/x-handlebars` will be compiled
11868
12240
  with Ember's template compiler and are suitable for use as a view's template.
@@ -12006,8 +12378,9 @@ enifed('ember-htmlbars/system/invoke-helper', ['exports', 'ember-metal/debug', '
12006
12378
  exports.buildHelperStream = buildHelperStream;
12007
12379
 
12008
12380
  function buildHelperStream(helper, params, hash, templates, env, scope, label) {
12009
- _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.template || !templates.template.meta);
12010
- _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.element);
12381
+ var isAnyKindOfHelper = helper.isHelperInstance || helper.isHelperFactory;
12382
+ _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(isAnyKindOfHelper && templates && templates.template && templates.template.meta));
12383
+ _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(isAnyKindOfHelper && templates && templates.element));
12011
12384
  if (helper.isHelperFactory) {
12012
12385
  return new _emberHtmlbarsStreamsHelperFactory.default(helper, params, hash, label);
12013
12386
  } else if (helper.isHelperInstance) {
@@ -12058,19 +12431,15 @@ enifed('ember-htmlbars/system/lookup-helper', ['exports', 'ember-metal/debug', '
12058
12431
  @param {String} name the name of the helper to lookup
12059
12432
  @return {Helper}
12060
12433
  */
12061
-
12062
- function findHelper(name, view, env) {
12434
+ function _findHelper(name, view, env, options) {
12063
12435
  var helper = env.helpers[name];
12064
12436
 
12065
12437
  if (!helper) {
12066
12438
  var owner = env.owner;
12067
12439
  if (validateLazyHelperName(name, owner, env.hooks.keywords)) {
12068
12440
  var helperName = 'helper:' + name;
12069
- // See https://github.com/emberjs/ember.js/issues/13071
12070
- // See https://bugs.chromium.org/p/v8/issues/detail?id=4839
12071
- var registered = owner.hasRegistration(helperName);
12072
- if (registered) {
12073
- helper = owner._lookupFactory(helperName);
12441
+ if (owner.hasRegistration(helperName, options)) {
12442
+ helper = owner._lookupFactory(helperName, options);
12074
12443
  _emberMetalDebug.assert('Expected to find an Ember.Helper with the name ' + helperName + ', but found an object of type ' + typeof helper + ' instead.', helper.isHelperFactory || helper.isHelperInstance);
12075
12444
  }
12076
12445
  }
@@ -12079,6 +12448,24 @@ enifed('ember-htmlbars/system/lookup-helper', ['exports', 'ember-metal/debug', '
12079
12448
  return helper;
12080
12449
  }
12081
12450
 
12451
+ function findHelper(name, view, env) {
12452
+ var options = {};
12453
+ var moduleName = env.meta && env.meta.moduleName;
12454
+ if (moduleName) {
12455
+ options.source = 'template:' + moduleName;
12456
+ }
12457
+
12458
+ var localHelper = _findHelper(name, view, env, options);
12459
+
12460
+ // local match found, use it
12461
+ if (localHelper) {
12462
+ return localHelper;
12463
+ }
12464
+
12465
+ // fallback to global
12466
+ return _findHelper(name, view, env);
12467
+ }
12468
+
12082
12469
  function lookupHelper(name, view, env) {
12083
12470
  var helper = findHelper(name, view, env);
12084
12471
 
@@ -12161,6 +12548,7 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
12161
12548
  this.owner = options.owner;
12162
12549
  this.renderer = options.renderer;
12163
12550
  this.dom = options.dom;
12551
+ this.meta = options.meta;
12164
12552
 
12165
12553
  this.hooks = _emberHtmlbarsEnv.default.hooks;
12166
12554
  this.helpers = _emberHtmlbarsEnv.default.helpers;
@@ -12168,17 +12556,35 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
12168
12556
  this.destinedForDOM = this.renderer._destinedForDOM;
12169
12557
  }
12170
12558
 
12171
- RenderEnv.build = function (view) {
12559
+ RenderEnv.build = function (view, meta) {
12172
12560
  return new RenderEnv({
12173
12561
  view: view,
12174
12562
  outletState: view.outletState,
12175
12563
  owner: _containerOwner.getOwner(view),
12176
12564
  renderer: view.renderer,
12177
- dom: view.renderer._dom
12565
+ dom: view.renderer._dom,
12566
+ meta: meta
12567
+ });
12568
+ };
12569
+
12570
+ RenderEnv.prototype.childWithMeta = function (meta) {
12571
+ return new RenderEnv({
12572
+ view: this.view,
12573
+ outletState: this.outletState,
12574
+ owner: this.owner,
12575
+ renderer: this.renderer,
12576
+ dom: this.dom,
12577
+ lifecycleHooks: this.lifecycleHooks,
12578
+ renderedViews: this.renderedViews,
12579
+ renderedNodes: this.renderedNodes,
12580
+ hasParentOutlet: this.hasParentOutlet,
12581
+ meta: meta
12178
12582
  });
12179
12583
  };
12180
12584
 
12181
12585
  RenderEnv.prototype.childWithView = function (view) {
12586
+ var meta = arguments.length <= 1 || arguments[1] === undefined ? this.meta : arguments[1];
12587
+
12182
12588
  return new RenderEnv({
12183
12589
  view: view,
12184
12590
  outletState: this.outletState,
@@ -12188,12 +12594,14 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
12188
12594
  lifecycleHooks: this.lifecycleHooks,
12189
12595
  renderedViews: this.renderedViews,
12190
12596
  renderedNodes: this.renderedNodes,
12191
- hasParentOutlet: this.hasParentOutlet
12597
+ hasParentOutlet: this.hasParentOutlet,
12598
+ meta: meta
12192
12599
  });
12193
12600
  };
12194
12601
 
12195
12602
  RenderEnv.prototype.childWithOutletState = function (outletState) {
12196
12603
  var hasParentOutlet = arguments.length <= 1 || arguments[1] === undefined ? this.hasParentOutlet : arguments[1];
12604
+ var meta = arguments.length <= 2 || arguments[2] === undefined ? this.meta : arguments[2];
12197
12605
 
12198
12606
  return new RenderEnv({
12199
12607
  view: this.view,
@@ -12204,7 +12612,8 @@ enifed('ember-htmlbars/system/render-env', ['exports', 'ember-htmlbars/env', 'em
12204
12612
  lifecycleHooks: this.lifecycleHooks,
12205
12613
  renderedViews: this.renderedViews,
12206
12614
  renderedNodes: this.renderedNodes,
12207
- hasParentOutlet: hasParentOutlet
12615
+ hasParentOutlet: hasParentOutlet,
12616
+ meta: meta
12208
12617
  });
12209
12618
  };
12210
12619
  });
@@ -12217,7 +12626,8 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-htmlbars/node-man
12217
12626
  // HTMLBars propagates the existing env and renders templates for a given render node.
12218
12627
 
12219
12628
  function renderHTMLBarsBlock(view, block, renderNode) {
12220
- var env = _emberHtmlbarsSystemRenderEnv.default.build(view);
12629
+ var meta = block && block.template && block.template.meta;
12630
+ var env = _emberHtmlbarsSystemRenderEnv.default.build(view, meta);
12221
12631
 
12222
12632
  view.env = env;
12223
12633
  _emberHtmlbarsNodeManagersViewNodeManager.createOrUpdateComponent(view, {}, null, renderNode, env);
@@ -13173,7 +13583,7 @@ enifed('ember-htmlbars/utils/extract-positional-params', ['exports', 'ember-meta
13173
13583
  }
13174
13584
  }
13175
13585
  });
13176
- 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) {
13586
+ 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) {
13177
13587
  /**
13178
13588
  @module ember
13179
13589
  @submodule ember-htmlbars
@@ -13183,6 +13593,10 @@ enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-htmlbars/system/l
13183
13593
 
13184
13594
  exports.default = isComponent;
13185
13595
 
13596
+ function hasComponentOrTemplate(owner, path, options) {
13597
+ return owner.hasRegistration('component:' + path, options) || owner.hasRegistration('template:components/' + path, options);
13598
+ }
13599
+
13186
13600
  /*
13187
13601
  Given a path name, returns whether or not a component with that
13188
13602
  name was found in the container.
@@ -13206,23 +13620,34 @@ enifed('ember-htmlbars/utils/is-component', ['exports', 'ember-htmlbars/system/l
13206
13620
  if (!_emberHtmlbarsSystemLookupHelper.CONTAINS_DASH_CACHE.get(path)) {
13207
13621
  return false;
13208
13622
  }
13209
- return owner.hasRegistration('component:' + path) || owner.hasRegistration('template:components/' + path);
13623
+
13624
+ if (hasComponentOrTemplate(owner, path)) {
13625
+ return true; // global component found
13626
+ } else {
13627
+ return false;
13628
+ }
13210
13629
  }
13211
13630
  }
13212
13631
  });
13213
- enifed('ember-htmlbars/utils/lookup-component', ['exports'], function (exports) {
13632
+
13633
+ // without a source moduleName we can not perform local lookups
13634
+ enifed('ember-htmlbars/utils/lookup-component', ['exports', 'ember-metal/features'], function (exports, _emberMetalFeatures) {
13214
13635
  'use strict';
13215
13636
 
13216
13637
  exports.default = lookupComponent;
13217
13638
 
13218
- function lookupComponent(container, tagName) {
13219
- var componentLookup = container.lookup('component-lookup:main');
13220
-
13639
+ function lookupComponentPair(componentLookup, owner, tagName, options) {
13221
13640
  return {
13222
- component: componentLookup.componentFor(tagName, container),
13223
- layout: componentLookup.layoutFor(tagName, container)
13641
+ component: componentLookup.componentFor(tagName, owner, options),
13642
+ layout: componentLookup.layoutFor(tagName, owner, options)
13224
13643
  };
13225
13644
  }
13645
+
13646
+ function lookupComponent(owner, tagName, options) {
13647
+ var componentLookup = owner.lookup('component-lookup:main');
13648
+
13649
+ return lookupComponentPair(componentLookup, owner, tagName);
13650
+ }
13226
13651
  });
13227
13652
  enifed('ember-htmlbars/utils/new-stream', ['exports', 'ember-metal/streams/proxy-stream', 'ember-htmlbars/utils/subscribe'], function (exports, _emberMetalStreamsProxyStream, _emberHtmlbarsUtilsSubscribe) {
13228
13653
  'use strict';
@@ -13344,158 +13769,6 @@ enifed('ember-htmlbars/utils/update-scope', ['exports', 'ember-metal/streams/pro
13344
13769
  }
13345
13770
  }
13346
13771
  });
13347
- 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) {
13348
- /**
13349
- Ember templates are executed by [HTMLBars](https://github.com/tildeio/htmlbars),
13350
- an HTML-friendly version of [Handlebars](http://handlebarsjs.com/). Any valid Handlebars syntax is valid in an Ember template.
13351
-
13352
- ### Showing a property
13353
-
13354
- Templates manage the flow of an application's UI, and display state (through
13355
- the DOM) to a user. For example, given a component with the property "name",
13356
- that component's template can use the name in several ways:
13357
-
13358
- ```javascript
13359
- // app/components/person.js
13360
- export default Ember.Component.extend({
13361
- name: 'Jill'
13362
- });
13363
- ```
13364
-
13365
- ```handlebars
13366
- {{! app/components/person.hbs }}
13367
- {{name}}
13368
- <div>{{name}}</div>
13369
- <span data-name={{name}}></span>
13370
- ```
13371
-
13372
- Any time the "name" property on the component changes, the DOM will be
13373
- updated.
13374
-
13375
- Properties can be chained as well:
13376
-
13377
- ```handlebars
13378
- {{aUserModel.name}}
13379
- <div>{{listOfUsers.firstObject.name}}</div>
13380
- ```
13381
-
13382
- ### Using Ember helpers
13383
-
13384
- When content is passed in mustaches `{{}}`, Ember will first try to find a helper
13385
- or component with that name. For example, the `if` helper:
13386
-
13387
- ```handlebars
13388
- {{if name "I have a name" "I have no name"}}
13389
- <span data-has-name={{if name true}}></span>
13390
- ```
13391
-
13392
- The returned value is placed where the `{{}}` is called. The above style is
13393
- called "inline". A second style of helper usage is called "block". For example:
13394
-
13395
- ```handlebars
13396
- {{#if name}}
13397
- I have a name
13398
- {{else}}
13399
- I have no name
13400
- {{/if}}
13401
- ```
13402
-
13403
- The block form of helpers allows you to control how the UI is created based
13404
- on the values of properties.
13405
-
13406
- A third form of helper is called "nested". For example here the concat
13407
- helper will add " Doe" to a displayed name if the person has no last name:
13408
-
13409
- ```handlebars
13410
- <span data-name={{concat firstName (
13411
- if lastName (concat " " lastName) "Doe"
13412
- )}}></span>
13413
- ```
13414
-
13415
- Ember's built-in helpers are described under the [Ember.Templates.helpers](/api/classes/Ember.Templates.helpers.html)
13416
- namespace. Documentation on creating custom helpers can be found under
13417
- [Ember.Helper](/api/classes/Ember.Helper.html).
13418
-
13419
- ### Invoking a Component
13420
-
13421
- Ember components represent state to the UI of an application. Further
13422
- reading on components can be found under [Ember.Component](/api/classes/Ember.Component.html).
13423
-
13424
- @module ember
13425
- @submodule ember-templates
13426
- @main ember-templates
13427
- @public
13428
- */
13429
-
13430
- /**
13431
-
13432
- [HTMLBars](https://github.com/tildeio/htmlbars) is a [Handlebars](http://handlebarsjs.com/)
13433
- compatible templating engine used by Ember.js. The classes and namespaces
13434
- covered by this documentation attempt to focus on APIs for interacting
13435
- with HTMLBars itself. For more general guidance on Ember.js templates and
13436
- helpers, please see the [ember-templates](/api/modules/ember-templates.html)
13437
- package.
13438
-
13439
- @module ember
13440
- @submodule ember-htmlbars
13441
- @main ember-htmlbars
13442
- @public
13443
- */
13444
- 'use strict';
13445
-
13446
- _emberHtmlbarsHelpers.registerHelper('if', _emberHtmlbarsHelpersIf_unless.ifHelper);
13447
- _emberHtmlbarsHelpers.registerHelper('unless', _emberHtmlbarsHelpersIf_unless.unlessHelper);
13448
- _emberHtmlbarsHelpers.registerHelper('with', _emberHtmlbarsHelpersWith.default);
13449
- _emberHtmlbarsHelpers.registerHelper('loc', _emberHtmlbarsHelpersLoc.default);
13450
- _emberHtmlbarsHelpers.registerHelper('log', _emberHtmlbarsHelpersLog.default);
13451
- _emberHtmlbarsHelpers.registerHelper('each', _emberHtmlbarsHelpersEach.default);
13452
- _emberHtmlbarsHelpers.registerHelper('each-in', _emberHtmlbarsHelpersEachIn.default);
13453
- _emberHtmlbarsHelpers.registerHelper('-normalize-class', _emberHtmlbarsHelpersNormalizeClass.default);
13454
- _emberHtmlbarsHelpers.registerHelper('concat', _emberHtmlbarsHelpersConcat.default);
13455
- _emberHtmlbarsHelpers.registerHelper('-join-classes', _emberHtmlbarsHelpersJoinClasses.default);
13456
- _emberHtmlbarsHelpers.registerHelper('-html-safe', _emberHtmlbarsHelpersHtmlSafe.default);
13457
-
13458
- _emberHtmlbarsHelpers.registerHelper('hash', _emberHtmlbarsHelpersHash.default);
13459
-
13460
- if (_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
13461
- _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-controller', _emberHtmlbarsHelpersLegacyEachWithController.default);
13462
- _emberHtmlbarsHelpers.registerHelper('-legacy-each-with-keyword', _emberHtmlbarsHelpersLegacyEachWithKeyword.default);
13463
- }
13464
-
13465
- _emberMetalCore.default.HTMLBars = {
13466
- template: _emberTemplateCompiler.template,
13467
- compile: _emberTemplateCompiler.compile,
13468
- precompile: _emberTemplateCompiler.precompile,
13469
- makeBoundHelper: _emberHtmlbarsSystemMake_bound_helper.default,
13470
- registerPlugin: _emberTemplateCompiler.registerPlugin,
13471
- DOMHelper: _emberHtmlbarsSystemDomHelper.default
13472
- };
13473
-
13474
- _emberHtmlbarsHelper.default.helper = _emberHtmlbarsHelper.helper;
13475
- _emberMetalCore.default.Helper = _emberHtmlbarsHelper.default;
13476
-
13477
- /**
13478
- Global hash of shared templates. This will automatically be populated
13479
- by the build tools so that you can store your Handlebars templates in
13480
- separate files that get loaded into JavaScript at buildtime.
13481
-
13482
- @property TEMPLATES
13483
- @for Ember
13484
- @type Object
13485
- @private
13486
- */
13487
- Object.defineProperty(_emberMetalCore.default, 'TEMPLATES', {
13488
- configurable: false,
13489
- get: _emberHtmlbarsTemplate_registry.getTemplates,
13490
- set: _emberHtmlbarsTemplate_registry.setTemplates
13491
- });
13492
- });
13493
-
13494
- // importing adds template bootstrapping
13495
- // initializer to enable embedded templates
13496
-
13497
- // importing ember-htmlbars/compat updates the
13498
- // Ember.Handlebars global if htmlbars is enabled
13499
13772
  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) {
13500
13773
  'use strict';
13501
13774
 
@@ -14197,9 +14470,9 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
14197
14470
  },
14198
14471
 
14199
14472
  // key: the string key that is part of a path changed
14200
- // revalidate: boolean the chains that are watching this value should revalidate
14201
- // callback: function that will be called with the the object and path that
14202
- // will be/are invalidated by this key change depending on the
14473
+ // revalidate: boolean; the chains that are watching this value should revalidate
14474
+ // callback: function that will be called with the object and path that
14475
+ // will be/are invalidated by this key change, depending on
14203
14476
  // whether the revalidate flag is passed
14204
14477
  notify: function (key, revalidate, callback) {
14205
14478
  var nodes = this.chains[key];
@@ -14556,6 +14829,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
14556
14829
 
14557
14830
  function UNDEFINED() {}
14558
14831
 
14832
+ var DEEP_EACH_REGEX = /\.@each\.[^.]+\./;
14833
+
14559
14834
  // ..........................................................
14560
14835
  // COMPUTED PROPERTY
14561
14836
  //
@@ -14783,6 +15058,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
14783
15058
  var args;
14784
15059
 
14785
15060
  var addArg = function (property) {
15061
+ _emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + 'You cannot use nested forms like todos.@each.owner.name or todos.@each.owner.@each.name. ' + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
14786
15062
  args.push(property);
14787
15063
  };
14788
15064
 
@@ -15863,9 +16139,11 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
15863
16139
  });
15864
16140
  }
15865
16141
  });
15866
- enifed('ember-metal/core', ['exports'], function (exports) {
16142
+ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require) {
15867
16143
  /*globals Ember:true,ENV,EmberENV */
15868
16144
 
16145
+ 'use strict';
16146
+
15869
16147
  /**
15870
16148
  @module ember
15871
16149
  @submodule ember-metal
@@ -15886,12 +16164,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15886
16164
 
15887
16165
  @class Ember
15888
16166
  @static
15889
- @version 2.3.2
16167
+ @version 2.4.0-beta.2
15890
16168
  @public
15891
16169
  */
15892
16170
 
15893
- 'use strict';
15894
-
15895
16171
  if ('undefined' === typeof Ember) {
15896
16172
  // Create core object. Make it act like an instance of Ember.Namespace so that
15897
16173
  // objects assigned to it are given a sane string representation.
@@ -15917,7 +16193,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15917
16193
 
15918
16194
  // The debug functions are exported to globals with `require` to
15919
16195
  // prevent babel-plugin-filter-imports from removing them.
15920
- var debugModule = Ember.__loader.require('ember-metal/debug');
16196
+ var debugModule = _require.default('ember-metal/debug');
15921
16197
  Ember.assert = debugModule.assert;
15922
16198
  Ember.warn = debugModule.warn;
15923
16199
  Ember.debug = debugModule.debug;
@@ -15930,11 +16206,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15930
16206
 
15931
16207
  @property VERSION
15932
16208
  @type String
15933
- @default '2.3.2'
16209
+ @default '2.4.0-beta.2'
15934
16210
  @static
15935
16211
  @public
15936
16212
  */
15937
- Ember.VERSION = '2.3.2';
16213
+ Ember.VERSION = '2.4.0-beta.2';
15938
16214
 
15939
16215
  /**
15940
16216
  The hash of environment variables used to control various configuration
@@ -16200,18 +16476,24 @@ enifed('ember-metal/deprecate_property', ['exports', 'ember-metal/debug', 'ember
16200
16476
  });
16201
16477
  }
16202
16478
  });
16203
- enifed('ember-metal/dictionary', ['exports'], function (exports) {
16479
+ enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
16480
+ 'use strict';
16481
+
16482
+ exports.default = makeDictionary;
16483
+
16204
16484
  // the delete is meant to hint at runtimes that this object should remain in
16205
16485
  // dictionary mode. This is clearly a runtime specific hack, but currently it
16206
16486
  // appears worthwhile in some usecases. Please note, these deletes do increase
16207
16487
  // the cost of creation dramatically over a plain Object.create. And as this
16208
16488
  // only makes sense for long-lived dictionaries that aren't instantiated often.
16209
- 'use strict';
16210
-
16211
- exports.default = makeDictionary;
16212
16489
 
16213
16490
  function makeDictionary(parent) {
16214
- var dict = Object.create(parent);
16491
+ var dict;
16492
+ if (parent === null) {
16493
+ dict = new _emberMetalEmpty_object.default();
16494
+ } else {
16495
+ dict = Object.create(parent);
16496
+ }
16215
16497
  dict['_dict'] = null;
16216
16498
  delete dict['_dict'];
16217
16499
  return dict;
@@ -16832,6 +17114,218 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
16832
17114
  return ret;
16833
17115
  }
16834
17116
  });
17117
+ 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) {
17118
+ /**
17119
+ @module ember
17120
+ @submodule ember-metal
17121
+ */
17122
+
17123
+ // BEGIN IMPORTS
17124
+ 'use strict';
17125
+
17126
+ _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
17127
+ _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
17128
+ _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
17129
+ _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
17130
+ _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
17131
+ _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
17132
+ _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
17133
+ _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
17134
+ _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
17135
+ _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
17136
+ _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
17137
+ _emberMetalComputed.computed.alias = _emberMetalAlias.default;
17138
+ _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
17139
+ _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
17140
+ _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
17141
+ _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
17142
+ _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
17143
+ _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
17144
+ _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
17145
+ _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
17146
+
17147
+ // END IMPORTS
17148
+
17149
+ // BEGIN EXPORTS
17150
+ var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
17151
+ EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
17152
+ EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
17153
+ EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
17154
+ EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
17155
+
17156
+ _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
17157
+ _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
17158
+
17159
+ _emberMetalCore.default._Cache = _emberMetalCache.default;
17160
+
17161
+ _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
17162
+ _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
17163
+ _emberMetalCore.default.platform = {
17164
+ defineProperty: true,
17165
+ hasPropertyAccessors: true
17166
+ };
17167
+
17168
+ _emberMetalCore.default.Error = _emberMetalError.default;
17169
+ _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
17170
+ _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
17171
+ _emberMetalCore.default.meta = _emberMetalMeta.meta;
17172
+ _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
17173
+
17174
+ _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
17175
+ _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
17176
+ _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
17177
+ _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
17178
+ _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
17179
+ _emberMetalCore.default.apply = _emberMetalUtils.apply;
17180
+ _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
17181
+ _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
17182
+
17183
+ _emberMetalCore.default.Logger = _emberMetalLogger.default;
17184
+
17185
+ _emberMetalCore.default.get = _emberMetalProperty_get.get;
17186
+ _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
17187
+ _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
17188
+ _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
17189
+
17190
+ _emberMetalCore.default.on = _emberMetalEvents.on;
17191
+ _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
17192
+ _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
17193
+ _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
17194
+ _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
17195
+ _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
17196
+ _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
17197
+ _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
17198
+ _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
17199
+ _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
17200
+
17201
+ _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
17202
+
17203
+ _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
17204
+ _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
17205
+ _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
17206
+ _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
17207
+ _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
17208
+ _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
17209
+
17210
+ _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
17211
+
17212
+ _emberMetalCore.default.set = _emberMetalProperty_set.set;
17213
+ _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
17214
+
17215
+ _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
17216
+ _emberMetalCore.default.Map = _emberMetalMap.Map;
17217
+ _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
17218
+
17219
+ _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
17220
+ _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
17221
+
17222
+ _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
17223
+ _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
17224
+
17225
+ _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
17226
+ _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
17227
+ _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
17228
+ _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
17229
+
17230
+ _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
17231
+ _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
17232
+
17233
+ _emberMetalCore.default.watch = _emberMetalWatching.watch;
17234
+ _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
17235
+ _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
17236
+ _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
17237
+ _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
17238
+
17239
+ _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
17240
+
17241
+ _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
17242
+ _emberMetalCore.default.computed = _emberMetalComputed.computed;
17243
+ _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
17244
+
17245
+ _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
17246
+ _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
17247
+ _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
17248
+ _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
17249
+ _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
17250
+
17251
+ _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
17252
+ _emberMetalCore.default.required = _emberMetalMixin.required;
17253
+ _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
17254
+ _emberMetalCore.default.observer = _emberMetalMixin.observer;
17255
+ _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
17256
+ _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
17257
+ _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
17258
+
17259
+ _emberMetalCore.default.bind = _emberMetalBinding.bind;
17260
+ _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
17261
+ _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
17262
+
17263
+ _emberMetalCore.default.run = _emberMetalRun_loop.default;
17264
+
17265
+ /**
17266
+ @class Backburner
17267
+ @for Ember
17268
+ @private
17269
+ */
17270
+ _emberMetalCore.default.Backburner = _backburner.default;
17271
+ // this is the new go forward, once Ember Data updates to using `_Backburner` we
17272
+ // can remove the non-underscored version.
17273
+ _emberMetalCore.default._Backburner = _backburner.default;
17274
+
17275
+ _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
17276
+ _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
17277
+
17278
+ _emberMetalCore.default.isNone = _emberMetalIs_none.default;
17279
+ _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
17280
+ _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
17281
+ _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
17282
+
17283
+ _emberMetalCore.default.merge = _emberMetalMerge.default;
17284
+
17285
+ _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
17286
+ _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
17287
+
17288
+ /**
17289
+ A function may be assigned to `Ember.onerror` to be called when Ember
17290
+ internals encounter an error. This is useful for specialized error handling
17291
+ and reporting code.
17292
+
17293
+ ```javascript
17294
+ Ember.onerror = function(error) {
17295
+ Em.$.ajax('/report-error', 'POST', {
17296
+ stack: error.stack,
17297
+ otherInformation: 'whatever app state you want to provide'
17298
+ });
17299
+ };
17300
+ ```
17301
+
17302
+ Internally, `Ember.onerror` is used as Backburner's error handler.
17303
+
17304
+ @event onerror
17305
+ @for Ember
17306
+ @param {Exception} error the error object
17307
+ @public
17308
+ */
17309
+ _emberMetalCore.default.onerror = null;
17310
+ // END EXPORTS
17311
+
17312
+ // do this for side-effects of updating Ember.assert, warn, etc when
17313
+ // ember-debug is present
17314
+ // This needs to be called before any deprecateFunc
17315
+ if (_require.has('ember-debug')) {
17316
+ _require.default('ember-debug');
17317
+ } else {
17318
+ _emberMetalCore.default.Debug = {};
17319
+
17320
+ _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
17321
+ _emberMetalCore.default.Debug.registerWarnHandler = function () {};
17322
+ }
17323
+
17324
+ _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);
17325
+ _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);
17326
+
17327
+ exports.default = _emberMetalCore.default;
17328
+ });
16835
17329
  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) {
16836
17330
  'use strict';
16837
17331
 
@@ -17271,13 +17765,18 @@ enifed('ember-metal/is_present', ['exports', 'ember-metal/is_blank'], function (
17271
17765
  Ember.isPresent(null); // false
17272
17766
  Ember.isPresent(undefined); // false
17273
17767
  Ember.isPresent(''); // false
17274
- Ember.isPresent([]); // false
17275
- Ember.isPresent('\n\t'); // false
17276
17768
  Ember.isPresent(' '); // false
17769
+ Ember.isPresent('\n\t'); // false
17770
+ Ember.isPresent([]); // false
17771
+ Ember.isPresent({ length: 0 }) // false
17772
+ Ember.isPresent(false); // true
17773
+ Ember.isPresent(true); // true
17774
+ Ember.isPresent('string'); // true
17775
+ Ember.isPresent(0); // true
17776
+ Ember.isPresent(function() {}) // true
17277
17777
  Ember.isPresent({}); // true
17278
17778
  Ember.isPresent(false); // true
17279
17779
  Ember.isPresent('\n\t Hello'); // true
17280
- Ember.isPresent('Hello world'); // true
17281
17780
  Ember.isPresent([1,2,3]); // true
17282
17781
  ```
17283
17782
 
@@ -19052,7 +19551,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/error',
19052
19551
  //filters will be created as a separate array during the object's initialization
19053
19552
  App.Filterable = Ember.Mixin.create({
19054
19553
  init: function() {
19055
- this._super.apply(this, arguments);
19554
+ this._super(...arguments);
19056
19555
  this.set("filters", Ember.A());
19057
19556
  }
19058
19557
  });
@@ -19787,6 +20286,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19787
20286
  exports.Descriptor = Descriptor;
19788
20287
  exports.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION;
19789
20288
  exports.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION;
20289
+ exports.INHERITING_GETTER_FUNCTION = INHERITING_GETTER_FUNCTION;
19790
20290
  exports.defineProperty = defineProperty;
19791
20291
 
19792
20292
  // ..........................................................
@@ -19805,14 +20305,33 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19805
20305
  this.isDescriptor = true;
19806
20306
  }
19807
20307
 
20308
+ var REDEFINE_SUPPORTED = (function () {
20309
+ // https://github.com/spalger/kibana/commit/b7e35e6737df585585332857a4c397dc206e7ff9
20310
+ var a = Object.create(Object.prototype, {
20311
+ prop: {
20312
+ configurable: true,
20313
+ value: 1
20314
+ }
20315
+ });
20316
+
20317
+ Object.defineProperty(a, 'prop', {
20318
+ configurable: true,
20319
+ value: 2
20320
+ });
20321
+
20322
+ return a.prop === 2;
20323
+ })();
19808
20324
  // ..........................................................
19809
20325
  // DEFINING PROPERTIES API
19810
20326
  //
19811
20327
 
19812
20328
  function MANDATORY_SETTER_FUNCTION(name) {
19813
- return function SETTER_FUNCTION(value) {
20329
+ function SETTER_FUNCTION(value) {
19814
20330
  _emberMetalDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
19815
- };
20331
+ }
20332
+
20333
+ SETTER_FUNCTION.isMandatorySetter = true;
20334
+ return SETTER_FUNCTION;
19816
20335
  }
19817
20336
 
19818
20337
  function DEFAULT_GETTER_FUNCTION(name) {
@@ -19822,6 +20341,16 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19822
20341
  };
19823
20342
  }
19824
20343
 
20344
+ function INHERITING_GETTER_FUNCTION(name) {
20345
+ function IGETTER_FUNCTION() {
20346
+ var proto = Object.getPrototypeOf(this);
20347
+ return proto && proto[name];
20348
+ }
20349
+
20350
+ IGETTER_FUNCTION.isInheritingGetter = true;
20351
+ return IGETTER_FUNCTION;
20352
+ }
20353
+
19825
20354
  /**
19826
20355
  NOTE: This is a low-level method used by other parts of the API. You almost
19827
20356
  never want to call this method directly. Instead you should use
@@ -19907,12 +20436,19 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19907
20436
 
19908
20437
  if (watching) {
19909
20438
  meta.writeValues(keyName, data);
19910
- Object.defineProperty(obj, keyName, {
20439
+
20440
+ var defaultDescriptor = {
19911
20441
  configurable: true,
19912
20442
  enumerable: true,
19913
20443
  set: MANDATORY_SETTER_FUNCTION(keyName),
19914
20444
  get: DEFAULT_GETTER_FUNCTION(keyName)
19915
- });
20445
+ };
20446
+
20447
+ if (REDEFINE_SUPPORTED) {
20448
+ Object.defineProperty(obj, keyName, defaultDescriptor);
20449
+ } else {
20450
+ handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
20451
+ }
19916
20452
  } else {
19917
20453
  obj[keyName] = data;
19918
20454
  }
@@ -19938,6 +20474,12 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
19938
20474
 
19939
20475
  return this;
19940
20476
  }
20477
+
20478
+ function handleBrokenPhantomDefineProperty(obj, keyName, desc) {
20479
+ // https://github.com/ariya/phantomjs/issues/11856
20480
+ Object.defineProperty(obj, keyName, { configurable: true, writable: true, value: 'iCry' });
20481
+ Object.defineProperty(obj, keyName, desc);
20482
+ }
19941
20483
  });
19942
20484
  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) {
19943
20485
  'use strict';
@@ -20222,7 +20764,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
20222
20764
  exports.endPropertyChanges = endPropertyChanges;
20223
20765
  exports.changeProperties = changeProperties;
20224
20766
  });
20225
- 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) {
20767
+ 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) {
20226
20768
  /**
20227
20769
  @module ember-metal
20228
20770
  */
@@ -20280,7 +20822,6 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
20280
20822
  return obj;
20281
20823
  }
20282
20824
 
20283
- var meta = _emberMetalMeta.peekMeta(obj);
20284
20825
  var value = obj[keyName];
20285
20826
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
20286
20827
  var ret;
@@ -20292,11 +20833,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
20292
20833
  if (desc) {
20293
20834
  return desc.get(obj, keyName);
20294
20835
  } else {
20295
- if (meta && meta.peekWatching(keyName) > 0) {
20296
- ret = meta.peekValues(keyName);
20297
- } else {
20298
- ret = value;
20299
- }
20836
+ ret = value;
20300
20837
 
20301
20838
  if (ret === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
20302
20839
  return obj.unknownProperty(keyName);
@@ -20407,7 +20944,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
20407
20944
 
20408
20945
  exports.default = get;
20409
20946
  });
20410
- 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) {
20947
+ 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) {
20411
20948
  'use strict';
20412
20949
 
20413
20950
  exports.set = set;
@@ -20464,7 +21001,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
20464
21001
  obj.setUnknownProperty(keyName, value);
20465
21002
  } else if (meta && meta.peekWatching(keyName) > 0) {
20466
21003
  if (meta.proto !== obj) {
20467
- currentValue = meta.peekValues(keyName);
21004
+ currentValue = obj[keyName];
20468
21005
  }
20469
21006
  // only trigger a change if the value has changed
20470
21007
  if (value !== currentValue) {
@@ -20473,7 +21010,13 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
20473
21010
  if (currentValue === undefined && !(keyName in obj) || !Object.prototype.propertyIsEnumerable.call(obj, keyName)) {
20474
21011
  _emberMetalProperties.defineProperty(obj, keyName, null, value); // setup mandatory setter
20475
21012
  } else {
20476
- meta.writeValues(keyName, value);
21013
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
21014
+ var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter;
21015
+ if (isMandatorySetter) {
21016
+ meta.writeValues(keyName, value);
21017
+ } else {
21018
+ obj[keyName] = value;
21019
+ }
20477
21020
  }
20478
21021
 
20479
21022
  _emberMetalProperty_events.propertyDidChange(obj, keyName);
@@ -22335,6 +22878,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
22335
22878
  exports.inspect = inspect;
22336
22879
  exports.apply = apply;
22337
22880
  exports.applyStr = applyStr;
22881
+ exports.lookupDescriptor = lookupDescriptor;
22338
22882
  var _uuid = 0;
22339
22883
 
22340
22884
  /**
@@ -22868,18 +23412,32 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
22868
23412
  }
22869
23413
  }
22870
23414
 
23415
+ function lookupDescriptor(obj, keyName) {
23416
+ var current = obj;
23417
+ while (current) {
23418
+ var descriptor = Object.getOwnPropertyDescriptor(current, keyName);
23419
+
23420
+ if (descriptor) {
23421
+ return descriptor;
23422
+ }
23423
+
23424
+ current = Object.getPrototypeOf(current);
23425
+ }
23426
+
23427
+ return null;
23428
+ }
23429
+
22871
23430
  exports.GUID_KEY = GUID_KEY;
22872
23431
  exports.makeArray = makeArray;
22873
23432
  exports.canInvoke = canInvoke;
22874
23433
  });
22875
- enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties) {
23434
+ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties', 'ember-metal/utils'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties, _emberMetalUtils) {
22876
23435
  'use strict';
22877
23436
 
22878
23437
  exports.watchKey = watchKey;
22879
23438
  exports.unwatchKey = unwatchKey;
22880
23439
 
22881
- var handleMandatorySetter = undefined,
22882
- lookupDescriptor = undefined;
23440
+ var handleMandatorySetter = undefined;
22883
23441
 
22884
23442
  function watchKey(obj, keyName, meta) {
22885
23443
  // can't watch length on Array - it is special...
@@ -22903,29 +23461,18 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22903
23461
  obj.willWatchProperty(keyName);
22904
23462
  }
22905
23463
 
23464
+ // NOTE: this is dropped for prod + minified builds
22906
23465
  handleMandatorySetter(m, obj, keyName);
22907
23466
  } else {
22908
23467
  m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1);
22909
23468
  }
22910
23469
  }
22911
23470
 
22912
- lookupDescriptor = function lookupDescriptor(obj, keyName) {
22913
- var current = obj;
22914
- while (current) {
22915
- var descriptor = Object.getOwnPropertyDescriptor(current, keyName);
22916
-
22917
- if (descriptor) {
22918
- return descriptor;
22919
- }
22920
-
22921
- current = Object.getPrototypeOf(current);
22922
- }
22923
-
22924
- return null;
22925
- };
22926
-
23471
+ // Future traveler, although this code looks scary. It merely exists in
23472
+ // development to aid in development asertions. Production builds of
23473
+ // ember strip this entire block out
22927
23474
  handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
22928
- var descriptor = lookupDescriptor(obj, keyName);
23475
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
22929
23476
  var configurable = descriptor ? descriptor.configurable : true;
22930
23477
  var isWritable = descriptor ? descriptor.writable : true;
22931
23478
  var hasValue = descriptor ? 'value' in descriptor : true;
@@ -22938,13 +23485,21 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22938
23485
 
22939
23486
  // this x in Y deopts, so keeping it in this function is better;
22940
23487
  if (configurable && isWritable && hasValue && keyName in obj) {
22941
- m.writeValues(keyName, obj[keyName]);
22942
- Object.defineProperty(obj, keyName, {
23488
+ var desc = {
22943
23489
  configurable: true,
22944
23490
  enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
22945
23491
  set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName),
22946
- get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName)
22947
- });
23492
+ get: undefined
23493
+ };
23494
+
23495
+ if (Object.prototype.hasOwnProperty.call(obj, keyName)) {
23496
+ m.writeValues(keyName, obj[keyName]);
23497
+ desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName);
23498
+ } else {
23499
+ desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName);
23500
+ }
23501
+
23502
+ Object.defineProperty(obj, keyName, desc);
22948
23503
  }
22949
23504
  };
22950
23505
 
@@ -22956,6 +23511,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22956
23511
 
22957
23512
  var possibleDesc = obj[keyName];
22958
23513
  var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
23514
+
22959
23515
  if (desc && desc.didUnwatch) {
22960
23516
  desc.didUnwatch(obj, keyName);
22961
23517
  }
@@ -22964,22 +23520,30 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
22964
23520
  obj.didUnwatchProperty(keyName);
22965
23521
  }
22966
23522
 
23523
+ // It is true, the following code looks quite WAT. But have no fear, It
23524
+ // exists purely to improve development ergonomics and is removed from
23525
+ // ember.min.js and ember.prod.js builds.
23526
+ //
23527
+ // Some further context: Once a property is watched by ember, bypassing `set`
23528
+ // for mutation, will bypass observation. This code exists to assert when
23529
+ // that occurs, and attempt to provide more helpful feedback. The alternative
23530
+ // is tricky to debug partially observable properties.
22967
23531
  if (!desc && keyName in obj) {
22968
- Object.defineProperty(obj, keyName, {
22969
- configurable: true,
22970
- enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
22971
- set: function (val) {
22972
- // redefine to set as enumerable
23532
+ var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
23533
+
23534
+ if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
23535
+ if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) {
23536
+ delete obj[keyName];
23537
+ } else {
22973
23538
  Object.defineProperty(obj, keyName, {
22974
23539
  configurable: true,
23540
+ enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
22975
23541
  writable: true,
22976
- enumerable: true,
22977
- value: val
23542
+ value: m.peekValues(keyName)
22978
23543
  });
22979
23544
  m.deleteFromValues(keyName);
22980
- },
22981
- get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName)
22982
- });
23545
+ }
23546
+ }
22983
23547
  }
22984
23548
  } else if (count > 1) {
22985
23549
  m.writeWatching(keyName, count - 1);
@@ -23144,6 +23708,11 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
23144
23708
  }
23145
23709
  }
23146
23710
  });
23711
+ enifed('ember-metal-views/index', ['exports', 'ember-metal-views/renderer'], function (exports, _emberMetalViewsRenderer) {
23712
+ 'use strict';
23713
+
23714
+ exports.Renderer = _emberMetalViewsRenderer.default;
23715
+ });
23147
23716
  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) {
23148
23717
  'use strict';
23149
23718
 
@@ -23424,223 +23993,6 @@ enifed('ember-metal-views/renderer', ['exports', 'ember-metal/run_loop', 'ember-
23424
23993
 
23425
23994
  exports.default = Renderer;
23426
23995
  });
23427
- enifed('ember-metal-views', ['exports', 'ember-metal-views/renderer'], function (exports, _emberMetalViewsRenderer) {
23428
- 'use strict';
23429
-
23430
- exports.Renderer = _emberMetalViewsRenderer.default;
23431
- });
23432
- 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) {
23433
- /**
23434
- @module ember
23435
- @submodule ember-metal
23436
- */
23437
-
23438
- // BEGIN IMPORTS
23439
- 'use strict';
23440
-
23441
- _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
23442
- _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
23443
- _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
23444
- _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
23445
- _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
23446
- _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
23447
- _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
23448
- _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
23449
- _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
23450
- _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
23451
- _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
23452
- _emberMetalComputed.computed.alias = _emberMetalAlias.default;
23453
- _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
23454
- _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
23455
- _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
23456
- _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
23457
- _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
23458
- _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
23459
- _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
23460
- _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
23461
-
23462
- // END IMPORTS
23463
-
23464
- // BEGIN EXPORTS
23465
- var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
23466
- EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
23467
- EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
23468
- EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
23469
- EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
23470
-
23471
- _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
23472
- _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
23473
-
23474
- _emberMetalCore.default._Cache = _emberMetalCache.default;
23475
-
23476
- _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
23477
- _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
23478
- _emberMetalCore.default.platform = {
23479
- defineProperty: true,
23480
- hasPropertyAccessors: true
23481
- };
23482
-
23483
- _emberMetalCore.default.Error = _emberMetalError.default;
23484
- _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
23485
- _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
23486
- _emberMetalCore.default.meta = _emberMetalMeta.meta;
23487
- _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
23488
-
23489
- _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
23490
- _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
23491
- _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
23492
- _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
23493
- _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
23494
- _emberMetalCore.default.apply = _emberMetalUtils.apply;
23495
- _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
23496
- _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
23497
-
23498
- _emberMetalCore.default.Logger = _emberMetalLogger.default;
23499
-
23500
- _emberMetalCore.default.get = _emberMetalProperty_get.get;
23501
- _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
23502
- _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
23503
- _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
23504
-
23505
- _emberMetalCore.default.on = _emberMetalEvents.on;
23506
- _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
23507
- _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
23508
- _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
23509
- _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
23510
- _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
23511
- _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
23512
- _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
23513
- _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
23514
- _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
23515
-
23516
- _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
23517
-
23518
- _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
23519
- _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
23520
- _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
23521
- _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
23522
- _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
23523
- _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
23524
-
23525
- _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
23526
-
23527
- _emberMetalCore.default.set = _emberMetalProperty_set.set;
23528
- _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
23529
-
23530
- _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
23531
- _emberMetalCore.default.Map = _emberMetalMap.Map;
23532
- _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
23533
-
23534
- _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
23535
- _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
23536
-
23537
- _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
23538
- _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
23539
-
23540
- _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
23541
- _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
23542
- _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
23543
- _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
23544
-
23545
- _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
23546
- _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
23547
-
23548
- _emberMetalCore.default.watch = _emberMetalWatching.watch;
23549
- _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
23550
- _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
23551
- _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
23552
- _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
23553
-
23554
- _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
23555
-
23556
- _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
23557
- _emberMetalCore.default.computed = _emberMetalComputed.computed;
23558
- _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
23559
-
23560
- _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
23561
- _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
23562
- _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
23563
- _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
23564
- _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
23565
-
23566
- _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
23567
- _emberMetalCore.default.required = _emberMetalMixin.required;
23568
- _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
23569
- _emberMetalCore.default.observer = _emberMetalMixin.observer;
23570
- _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
23571
- _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
23572
- _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
23573
-
23574
- _emberMetalCore.default.bind = _emberMetalBinding.bind;
23575
- _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
23576
- _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
23577
-
23578
- _emberMetalCore.default.run = _emberMetalRun_loop.default;
23579
-
23580
- /**
23581
- @class Backburner
23582
- @for Ember
23583
- @private
23584
- */
23585
- _emberMetalCore.default.Backburner = _backburner.default;
23586
- // this is the new go forward, once Ember Data updates to using `_Backburner` we
23587
- // can remove the non-underscored version.
23588
- _emberMetalCore.default._Backburner = _backburner.default;
23589
-
23590
- _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
23591
- _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
23592
-
23593
- _emberMetalCore.default.isNone = _emberMetalIs_none.default;
23594
- _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
23595
- _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
23596
- _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
23597
-
23598
- _emberMetalCore.default.merge = _emberMetalMerge.default;
23599
-
23600
- _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
23601
- _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
23602
-
23603
- /**
23604
- A function may be assigned to `Ember.onerror` to be called when Ember
23605
- internals encounter an error. This is useful for specialized error handling
23606
- and reporting code.
23607
-
23608
- ```javascript
23609
- Ember.onerror = function(error) {
23610
- Em.$.ajax('/report-error', 'POST', {
23611
- stack: error.stack,
23612
- otherInformation: 'whatever app state you want to provide'
23613
- });
23614
- };
23615
- ```
23616
-
23617
- Internally, `Ember.onerror` is used as Backburner's error handler.
23618
-
23619
- @event onerror
23620
- @for Ember
23621
- @param {Exception} error the error object
23622
- @public
23623
- */
23624
- _emberMetalCore.default.onerror = null;
23625
- // END EXPORTS
23626
-
23627
- // do this for side-effects of updating Ember.assert, warn, etc when
23628
- // ember-debug is present
23629
- // This needs to be called before any deprecateFunc
23630
- if (_emberMetalCore.default.__loader.registry['ember-debug']) {
23631
- requireModule('ember-debug');
23632
- } else {
23633
- _emberMetalCore.default.Debug = {};
23634
-
23635
- _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
23636
- _emberMetalCore.default.Debug.registerWarnHandler = function () {};
23637
- }
23638
-
23639
- _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);
23640
- _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);
23641
-
23642
- exports.default = _emberMetalCore.default;
23643
- });
23644
23996
  enifed('ember-routing/ext/controller', ['exports', 'ember-metal/property_get', 'ember-runtime/mixins/controller'], function (exports, _emberMetalProperty_get, _emberRuntimeMixinsController) {
23645
23997
  'use strict';
23646
23998
 
@@ -23813,6 +24165,31 @@ enifed('ember-routing/ext/run_loop', ['exports', 'ember-metal/run_loop'], functi
23813
24165
  // 'actions' queue first.
23814
24166
  _emberMetalRun_loop.default._addQueue('routerTransitions', 'actions');
23815
24167
  });
24168
+ 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) {
24169
+ /**
24170
+ @module ember
24171
+ @submodule ember-routing
24172
+ */
24173
+
24174
+ 'use strict';
24175
+
24176
+ _emberMetalCore.default.Location = _emberRoutingLocationApi.default;
24177
+ _emberMetalCore.default.AutoLocation = _emberRoutingLocationAuto_location.default;
24178
+ _emberMetalCore.default.HashLocation = _emberRoutingLocationHash_location.default;
24179
+ _emberMetalCore.default.HistoryLocation = _emberRoutingLocationHistory_location.default;
24180
+ _emberMetalCore.default.NoneLocation = _emberRoutingLocationNone_location.default;
24181
+
24182
+ _emberMetalCore.default.controllerFor = _emberRoutingSystemController_for.default;
24183
+ _emberMetalCore.default.generateControllerFactory = _emberRoutingSystemGenerate_controller.generateControllerFactory;
24184
+ _emberMetalCore.default.generateController = _emberRoutingSystemGenerate_controller.default;
24185
+ _emberMetalCore.default.RouterDSL = _emberRoutingSystemDsl.default;
24186
+ _emberMetalCore.default.Router = _emberRoutingSystemRouter.default;
24187
+ _emberMetalCore.default.Route = _emberRoutingSystemRoute.default;
24188
+
24189
+ exports.default = _emberMetalCore.default;
24190
+ });
24191
+
24192
+ // ES6TODO: Cleanup modules with side-effects below
23816
24193
  enifed('ember-routing/location/api', ['exports', 'ember-metal/debug', 'ember-metal/environment', 'ember-routing/location/util'], function (exports, _emberMetalDebug, _emberMetalEnvironment, _emberRoutingLocationUtil) {
23817
24194
  'use strict';
23818
24195
 
@@ -25000,7 +25377,10 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug'], function (e
25000
25377
  this.parent = name;
25001
25378
  this.enableLoadingSubstates = options && options.enableLoadingSubstates;
25002
25379
  this.matches = [];
25380
+ this.explicitIndex = undefined;
25381
+ this.options = options;
25003
25382
  }
25383
+
25004
25384
  exports.default = DSL;
25005
25385
 
25006
25386
  DSL.prototype = {
@@ -25032,9 +25412,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug'], function (e
25032
25412
 
25033
25413
  if (callback) {
25034
25414
  var fullName = getFullName(this, name, options.resetNamespace);
25035
- var dsl = new DSL(fullName, {
25036
- enableLoadingSubstates: this.enableLoadingSubstates
25037
- });
25415
+ var dsl = new DSL(fullName, this.options);
25038
25416
 
25039
25417
  createRoute(dsl, 'loading');
25040
25418
  createRoute(dsl, 'error', { path: dummyErrorRoute });
@@ -26437,7 +26815,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26437
26815
  this.route('post', { path: '/posts/:post_id' });
26438
26816
  });
26439
26817
  ```
26440
- The model for the `post` route is `store.find('post', params.post_id)`.
26818
+ The model for the `post` route is `store.findRecord('post', params.post_id)`.
26441
26819
  By default, if your route has a dynamic segment ending in `_id`:
26442
26820
  * The model class is determined from the segment (`post_id`'s
26443
26821
  class is `App.Post`)
@@ -26455,13 +26833,13 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26455
26833
  // no dynamic segment, model hook always called
26456
26834
  this.transitionTo('posts');
26457
26835
  // model passed in, so model hook not called
26458
- thePost = store.find('post', 1);
26836
+ thePost = store.findRecord('post', 1);
26459
26837
  this.transitionTo('post', thePost);
26460
26838
  // integer passed in, model hook is called
26461
26839
  this.transitionTo('post', 1);
26462
26840
  // model id passed in, model hook is called
26463
26841
  // useful for forcing the hook to execute
26464
- thePost = store.find('post', 1);
26842
+ thePost = store.findRecord('post', 1);
26465
26843
  this.transitionTo('post', thePost.id);
26466
26844
  ```
26467
26845
  This hook follows the asynchronous/promise semantics
@@ -26472,7 +26850,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26472
26850
  ```javascript
26473
26851
  App.PostRoute = Ember.Route.extend({
26474
26852
  model: function(params) {
26475
- return this.store.find('post', params.post_id);
26853
+ return this.store.findRecord('post', params.post_id);
26476
26854
  }
26477
26855
  });
26478
26856
  ```
@@ -26639,7 +27017,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26639
27017
  ```javascript
26640
27018
  App.PhotosRoute = Ember.Route.extend({
26641
27019
  model: function() {
26642
- return this.store.find('photo');
27020
+ return this.store.findAll('photo');
26643
27021
  },
26644
27022
  setupController: function(controller, model) {
26645
27023
  // Call _super for default behavior
@@ -26966,7 +27344,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
26966
27344
  ```
26967
27345
  @method disconnectOutlet
26968
27346
  @param {Object|String} options the options hash or outlet name
26969
- @private
27347
+ @public
26970
27348
  */
26971
27349
  disconnectOutlet: function (options) {
26972
27350
  var outletName;
@@ -27068,6 +27446,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
27068
27446
  var LOG_VIEW_LOOKUPS = _emberMetalProperty_get.get(route.router, 'namespace.LOG_VIEW_LOOKUPS');
27069
27447
  var into = options && options.into && options.into.replace(/\//g, '.');
27070
27448
  var outlet = options && options.outlet || 'main';
27449
+ var owner = _containerOwner.getOwner(route);
27071
27450
 
27072
27451
  if (name) {
27073
27452
  name = name.replace(/\//g, '.');
@@ -27079,15 +27458,15 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
27079
27458
 
27080
27459
  if (!controller) {
27081
27460
  if (namePassed) {
27082
- controller = _containerOwner.getOwner(route).lookup('controller:' + name) || route.controllerName || route.routeName;
27461
+ controller = owner.lookup('controller:' + name) || route.controllerName || route.routeName;
27083
27462
  } else {
27084
- controller = route.controllerName || _containerOwner.getOwner(route).lookup('controller:' + name);
27463
+ controller = route.controllerName || owner.lookup('controller:' + name);
27085
27464
  }
27086
27465
  }
27087
27466
 
27088
27467
  if (typeof controller === 'string') {
27089
27468
  var controllerName = controller;
27090
- controller = _containerOwner.getOwner(route).lookup('controller:' + controllerName);
27469
+ controller = owner.lookup('controller:' + controllerName);
27091
27470
  if (!controller) {
27092
27471
  throw new _emberMetalError.default('You passed `controller: \'' + controllerName + '\'` into the `render` method, but no such controller could be found.');
27093
27472
  }
@@ -27101,7 +27480,6 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
27101
27480
  controller.set('model', options.model);
27102
27481
  }
27103
27482
 
27104
- var owner = _containerOwner.getOwner(route);
27105
27483
  viewName = options && options.view || namePassed && name || route.viewName || name;
27106
27484
  ViewClass = owner._lookupFactory('view:' + viewName);
27107
27485
  template = owner.lookup('template:' + templateName);
@@ -27112,6 +27490,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
27112
27490
  }
27113
27491
 
27114
27492
  var renderOptions = {
27493
+ owner: owner,
27115
27494
  into: into,
27116
27495
  outlet: outlet,
27117
27496
  name: name,
@@ -27248,6 +27627,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
27248
27627
  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) {
27249
27628
  'use strict';
27250
27629
 
27630
+ exports.triggerEvent = triggerEvent;
27631
+
27251
27632
  function K() {
27252
27633
  return this;
27253
27634
  }
@@ -27290,7 +27671,7 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27290
27671
  */
27291
27672
  rootURL: '/',
27292
27673
 
27293
- _initRouterJs: function (moduleBasedResolver) {
27674
+ _initRouterJs: function () {
27294
27675
  var router = this.router = new _router4.default();
27295
27676
  router.triggerEvent = triggerEvent;
27296
27677
 
@@ -27298,19 +27679,13 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27298
27679
  router._triggerWillLeave = K;
27299
27680
 
27300
27681
  var dslCallbacks = this.constructor.dslCallbacks || [K];
27301
- var dsl = new _emberRoutingSystemDsl.default(null, {
27302
- enableLoadingSubstates: !!moduleBasedResolver
27303
- });
27682
+ var dsl = this._buildDSL();
27304
27683
 
27305
- function generateDSL() {
27306
- this.route('application', { path: '/', resetNamespace: true, overrideNameAssertion: true }, function () {
27307
- for (var i = 0; i < dslCallbacks.length; i++) {
27308
- dslCallbacks[i].call(this);
27309
- }
27310
- });
27311
- }
27312
-
27313
- generateDSL.call(dsl);
27684
+ dsl.route('application', { path: '/', resetNamespace: true, overrideNameAssertion: true }, function () {
27685
+ for (var i = 0; i < dslCallbacks.length; i++) {
27686
+ dslCallbacks[i].call(this);
27687
+ }
27688
+ });
27314
27689
 
27315
27690
  if (_emberMetalProperty_get.get(this, 'namespace.LOG_TRANSITIONS_INTERNAL')) {
27316
27691
  router.log = _emberMetalLogger.default.debug;
@@ -27319,7 +27694,17 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27319
27694
  router.map(dsl.generate());
27320
27695
  },
27321
27696
 
27697
+ _buildDSL: function () {
27698
+ var moduleBasedResolver = this._hasModuleBasedResolver();
27699
+
27700
+ return new _emberRoutingSystemDsl.default(null, {
27701
+ enableLoadingSubstates: !!moduleBasedResolver
27702
+ });
27703
+ },
27704
+
27322
27705
  init: function () {
27706
+ this._super.apply(this, arguments);
27707
+
27323
27708
  this._activeViews = {};
27324
27709
  this._qpCache = new _emberMetalEmpty_object.default();
27325
27710
  this._resetQueuedQueryParameterChanges();
@@ -27345,6 +27730,22 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27345
27730
  return _emberMetalProperty_get.get(this, 'location').getURL();
27346
27731
  }),
27347
27732
 
27733
+ _hasModuleBasedResolver: function () {
27734
+ var owner = _containerOwner.getOwner(this);
27735
+
27736
+ if (!owner) {
27737
+ return false;
27738
+ }
27739
+
27740
+ var resolver = owner.application && owner.application.__registry__ && owner.application.__registry__.resolver;
27741
+
27742
+ if (!resolver) {
27743
+ return false;
27744
+ }
27745
+
27746
+ return !!resolver.moduleBasedResolver;
27747
+ },
27748
+
27348
27749
  /**
27349
27750
  Initializes the current router instance and sets up the change handling
27350
27751
  event listeners used by the instances `location` implementation.
@@ -27353,10 +27754,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27353
27754
  @method startRouting
27354
27755
  @private
27355
27756
  */
27356
- startRouting: function (moduleBasedResolver) {
27757
+ startRouting: function () {
27357
27758
  var initialURL = _emberMetalProperty_get.get(this, 'initialURL');
27358
27759
 
27359
- if (this.setupRouter(moduleBasedResolver)) {
27760
+ if (this.setupRouter()) {
27360
27761
  if (typeof initialURL === 'undefined') {
27361
27762
  initialURL = _emberMetalProperty_get.get(this, 'location').getURL();
27362
27763
  }
@@ -27367,10 +27768,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27367
27768
  }
27368
27769
  },
27369
27770
 
27370
- setupRouter: function (moduleBasedResolver) {
27771
+ setupRouter: function () {
27371
27772
  var _this = this;
27372
27773
 
27373
- this._initRouterJs(moduleBasedResolver);
27774
+ this._initRouterJs();
27374
27775
  this._setupLocation();
27375
27776
 
27376
27777
  var router = this.router;
@@ -28652,6 +29053,22 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/d
28652
29053
  });
28653
29054
  }
28654
29055
  });
29056
+ 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) {
29057
+ /**
29058
+ @module ember
29059
+ @submodule ember-routing-htmlbars
29060
+ */
29061
+
29062
+ 'use strict';
29063
+
29064
+ _emberHtmlbarsHelpers.registerHelper('query-params', _emberRoutingHtmlbarsHelpersQueryParams.queryParamsHelper);
29065
+
29066
+ _emberHtmlbarsKeywords.registerKeyword('action', _emberRoutingHtmlbarsKeywordsAction.default);
29067
+ _emberHtmlbarsKeywords.registerKeyword('@element_action', _emberRoutingHtmlbarsKeywordsElementAction.default);
29068
+ _emberHtmlbarsKeywords.registerKeyword('render', _emberRoutingHtmlbarsKeywordsRender.default);
29069
+
29070
+ exports.default = _emberMetalCore.default;
29071
+ });
28655
29072
  enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/hooks', 'ember-routing-htmlbars/keywords/closure-action'], function (exports, _htmlbarsRuntimeHooks, _emberRoutingHtmlbarsKeywordsClosureAction) {
28656
29073
  /**
28657
29074
  @module ember
@@ -28836,7 +29253,7 @@ enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/h
28836
29253
  supply an `on` option to the helper to specify a different DOM event name:
28837
29254
 
28838
29255
  ```handlebars
28839
- <div {{action "anActionName" on="double-click"}}>
29256
+ <div {{action "anActionName" on="doubleClick"}}>
28840
29257
  click me
28841
29258
  </div>
28842
29259
  ```
@@ -29434,22 +29851,6 @@ enifed('ember-routing-htmlbars/keywords/render', ['exports', 'ember-metal/debug'
29434
29851
  return true;
29435
29852
  }
29436
29853
  });
29437
- 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) {
29438
- /**
29439
- @module ember
29440
- @submodule ember-routing-htmlbars
29441
- */
29442
-
29443
- 'use strict';
29444
-
29445
- _emberHtmlbarsHelpers.registerHelper('query-params', _emberRoutingHtmlbarsHelpersQueryParams.queryParamsHelper);
29446
-
29447
- _emberHtmlbarsKeywords.registerKeyword('action', _emberRoutingHtmlbarsKeywordsAction.default);
29448
- _emberHtmlbarsKeywords.registerKeyword('@element_action', _emberRoutingHtmlbarsKeywordsElementAction.default);
29449
- _emberHtmlbarsKeywords.registerKeyword('render', _emberRoutingHtmlbarsKeywordsRender.default);
29450
-
29451
- exports.default = _emberMetalCore.default;
29452
- });
29453
29854
  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) {
29454
29855
  /**
29455
29856
  @module ember
@@ -29593,8 +29994,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29593
29994
  ### Keeping a link active for other routes
29594
29995
 
29595
29996
  If you need a link to be 'active' even when it doesn't match
29596
- the current route, you can use the the `current-when`
29597
- argument.
29997
+ the current route, you can use the `current-when` argument.
29598
29998
 
29599
29999
  ```handlebars
29600
30000
  {{#link-to 'photoGallery' current-when='photos'}}
@@ -29625,7 +30025,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29625
30025
  the model context of the linked route:
29626
30026
 
29627
30027
  ```javascript
29628
- App.Router.map(function() {
30028
+ Router.map(function() {
29629
30029
  this.route("photoGallery", {path: "hamster-photos/:photo_id"});
29630
30030
  });
29631
30031
  ```
@@ -29650,7 +30050,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29650
30050
  route with the dynamic segments:
29651
30051
 
29652
30052
  ```javascript
29653
- App.Router.map(function() {
30053
+ Router.map(function() {
29654
30054
  this.route("photoGallery", { path: "hamster-photos/:photo_id" }, function() {
29655
30055
  this.route("comment", {path: "comments/:comment_id"});
29656
30056
  });
@@ -29677,7 +30077,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29677
30077
  of the dynamic segment:
29678
30078
 
29679
30079
  ```javascript
29680
- App.Router.map(function() {
30080
+ Router.map(function() {
29681
30081
  this.route("photoGallery", { path: "hamster-photos/:photo_id" });
29682
30082
  });
29683
30083
  ```
@@ -29767,7 +30167,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29767
30167
 
29768
30168
  'use strict';
29769
30169
 
29770
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.3.2';
30170
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.4.0-beta.2';
29771
30171
 
29772
30172
  /**
29773
30173
  `Ember.LinkComponent` renders an element whose `click` event triggers a
@@ -29893,7 +30293,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29893
30293
  and `disabled` classes. It is discouraged to override these directly.
29894
30294
  @property classNameBindings
29895
30295
  @type Array
29896
- @default ['active', 'loading', 'disabled']
30296
+ @default ['active', 'loading', 'disabled', 'ember-transitioning-in', 'ember-transitioning-out']
29897
30297
  @public
29898
30298
  */
29899
30299
  classNameBindings: ['active', 'loading', 'disabled', 'transitioningIn', 'transitioningOut'],
@@ -29929,13 +30329,13 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29929
30329
  ```javascript
29930
30330
  App.MyLinkComponent = Ember.LinkComponent.extend({
29931
30331
  init: function() {
29932
- this._super.apply(this, arguments);
30332
+ this._super(...arguments);
29933
30333
  Ember.Logger.log('Event is ' + this.get('eventName'));
29934
30334
  }
29935
30335
  });
29936
30336
  ```
29937
30337
  NOTE: If you do override `init` for a framework class like `Ember.View`,
29938
- be sure to call `this._super.apply(this, arguments)` in your
30338
+ be sure to call `this._super(...arguments)` in your
29939
30339
  `init` declaration! If you don't, Ember may not have an opportunity to
29940
30340
  do important setup work, and you'll see strange behavior in your
29941
30341
  application.
@@ -30249,6 +30649,19 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
30249
30649
  exports.default = LinkComponent;
30250
30650
  });
30251
30651
  // creates inject.service
30652
+ 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) {
30653
+ /**
30654
+ @module ember
30655
+ @submodule ember-routing-views
30656
+ */
30657
+
30658
+ 'use strict';
30659
+
30660
+ _emberMetalCore.default.LinkComponent = _emberRoutingViewsComponentsLinkTo.default;
30661
+ _emberMetalCore.default.OutletView = _emberRoutingViewsViewsOutlet.OutletView;
30662
+
30663
+ exports.default = _emberMetalCore.default;
30664
+ });
30252
30665
  enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view', 'ember-htmlbars/templates/top-level-view'], function (exports, _emberViewsViewsView, _emberHtmlbarsTemplatesTopLevelView) {
30253
30666
  /**
30254
30667
  @module ember
@@ -30257,7 +30670,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
30257
30670
 
30258
30671
  'use strict';
30259
30672
 
30260
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.3.2';
30673
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.4.0-beta.2';
30261
30674
 
30262
30675
  var CoreOutletView = _emberViewsViewsView.default.extend({
30263
30676
  defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
@@ -30294,44 +30707,6 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
30294
30707
  var OutletView = CoreOutletView.extend({ tagName: '' });
30295
30708
  exports.OutletView = OutletView;
30296
30709
  });
30297
- enifed('ember-routing-views', ['exports', 'ember-metal/core', 'ember-routing-views/components/link-to', 'ember-routing-views/views/outlet'], function (exports, _emberMetalCore, _emberRoutingViewsComponentsLinkTo, _emberRoutingViewsViewsOutlet) {
30298
- /**
30299
- @module ember
30300
- @submodule ember-routing-views
30301
- */
30302
-
30303
- 'use strict';
30304
-
30305
- _emberMetalCore.default.LinkComponent = _emberRoutingViewsComponentsLinkTo.default;
30306
- _emberMetalCore.default.OutletView = _emberRoutingViewsViewsOutlet.OutletView;
30307
-
30308
- exports.default = _emberMetalCore.default;
30309
- });
30310
- 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) {
30311
- /**
30312
- @module ember
30313
- @submodule ember-routing
30314
- */
30315
-
30316
- 'use strict';
30317
-
30318
- _emberMetalCore.default.Location = _emberRoutingLocationApi.default;
30319
- _emberMetalCore.default.AutoLocation = _emberRoutingLocationAuto_location.default;
30320
- _emberMetalCore.default.HashLocation = _emberRoutingLocationHash_location.default;
30321
- _emberMetalCore.default.HistoryLocation = _emberRoutingLocationHistory_location.default;
30322
- _emberMetalCore.default.NoneLocation = _emberRoutingLocationNone_location.default;
30323
-
30324
- _emberMetalCore.default.controllerFor = _emberRoutingSystemController_for.default;
30325
- _emberMetalCore.default.generateControllerFactory = _emberRoutingSystemGenerate_controller.generateControllerFactory;
30326
- _emberMetalCore.default.generateController = _emberRoutingSystemGenerate_controller.default;
30327
- _emberMetalCore.default.RouterDSL = _emberRoutingSystemDsl.default;
30328
- _emberMetalCore.default.Router = _emberRoutingSystemRouter.default;
30329
- _emberMetalCore.default.Route = _emberRoutingSystemRoute.default;
30330
-
30331
- exports.default = _emberMetalCore.default;
30332
- });
30333
-
30334
- // ES6TODO: Cleanup modules with side-effects below
30335
30710
  enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtime/mixins/comparable'], function (exports, _emberRuntimeUtils, _emberRuntimeMixinsComparable) {
30336
30711
  'use strict';
30337
30712
 
@@ -30354,28 +30729,59 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
30354
30729
  //
30355
30730
  // the spaceship operator
30356
30731
  //
30732
+ // `. ___
30733
+ // __,' __`. _..----....____
30734
+ // __...--.'``;. ,. ;``--..__ .' ,-._ _.-'
30735
+ // _..-''-------' `' `' `' O ``-''._ (,;') _,'
30736
+ // ,'________________ \`-._`-','
30737
+ // `._ ```````````------...___ '-.._'-:
30738
+ // ```--.._ ,. ````--...__\-.
30739
+ // `.--. `-` "INFINTIY IS LESS ____ | |`
30740
+ // `. `. THAN BEYOND" ,'`````. ; ;`
30741
+ // `._`. __________ `. \'__/`
30742
+ // `-:._____/______/___/____`. \ `
30743
+ // | `._ `. \
30744
+ // `._________`-. `. `.___
30745
+ // SSt `------'`
30357
30746
  function spaceship(a, b) {
30358
30747
  var diff = a - b;
30359
30748
  return (diff > 0) - (diff < 0);
30360
30749
  }
30361
30750
 
30362
30751
  /**
30363
- This will compare two javascript values of possibly different types.
30364
- It will tell you which one is greater than the other by returning:
30752
+ Compares two javascript values and returns:
30365
30753
 
30366
30754
  - -1 if the first is smaller than the second,
30367
30755
  - 0 if both are equal,
30368
30756
  - 1 if the first is greater than the second.
30369
30757
 
30370
- The order is calculated based on `Ember.ORDER_DEFINITION`, if types are different.
30371
- In case they have the same type an appropriate comparison for this type is made.
30372
-
30373
30758
  ```javascript
30374
30759
  Ember.compare('hello', 'hello'); // 0
30375
30760
  Ember.compare('abc', 'dfg'); // -1
30376
30761
  Ember.compare(2, 1); // 1
30377
30762
  ```
30378
30763
 
30764
+ If the types of the two objects are different precedence occurs in the
30765
+ following order, with types earlier in the list considered `<` types
30766
+ later in the list:
30767
+
30768
+ - undefined
30769
+ - null
30770
+ - boolean
30771
+ - number
30772
+ - string
30773
+ - array
30774
+ - object
30775
+ - instance
30776
+ - function
30777
+ - class
30778
+ - date
30779
+
30780
+ ```javascript
30781
+ Ember.compare('hello', 50); // 1
30782
+ Ember.compare(50, 'hello'); // -1
30783
+ ```
30784
+
30379
30785
  @method compare
30380
30786
  @for Ember
30381
30787
  @param {Object} v First value to compare
@@ -31295,19 +31701,21 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/debug', 'ember-runtime/sys
31295
31701
  }
31296
31702
 
31297
31703
  /**
31298
- Creates a clone of the passed object. This function can take just about
31299
- any type of object and create a clone of it, including primitive values
31300
- (which are not actually cloned because they are immutable).
31704
+ Creates a shallow copy of the passed object. A deep copy of the object is
31705
+ returned if the optional `deep` argument is `true`.
31301
31706
 
31302
- If the passed object implements the `copy()` method, then this function
31303
- will simply call that method and return the result. Please see
31304
- `Ember.Copyable` for further details.
31707
+ If the passed object implements the `Ember.Copyable` interface, then this
31708
+ function will delegate to the object's `copy()` method and return the
31709
+ result. See `Ember.Copyable` for further details.
31710
+
31711
+ For primitive values (which are immutable in JavaScript), the passed object
31712
+ is simply returned.
31305
31713
 
31306
31714
  @method copy
31307
31715
  @for Ember
31308
31716
  @param {Object} obj The object to clone
31309
- @param {Boolean} deep If true, a deep copy of the object is made
31310
- @return {Object} The cloned object
31717
+ @param {Boolean} [deep=false] If true, a deep copy of the object is made.
31718
+ @return {Object} The copied object
31311
31719
  @public
31312
31720
  */
31313
31721
 
@@ -31489,7 +31897,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-metal/core', 'ember-meta
31489
31897
  }
31490
31898
  });
31491
31899
  // Ember.EXTEND_PROTOTYPES
31492
- 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) {
31900
+ 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) {
31493
31901
  'use strict';
31494
31902
 
31495
31903
  exports.onerrorDefault = onerrorDefault;
@@ -31550,8 +31958,8 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/de
31550
31958
  if (error && error.name !== 'TransitionAborted') {
31551
31959
  if (_emberMetalCore.default.testing) {
31552
31960
  // ES6TODO: remove when possible
31553
- if (!Test && _emberMetalCore.default.__loader.registry[testModuleName]) {
31554
- Test = requireModule(testModuleName)['default'];
31961
+ if (!Test && _require.has(testModuleName)) {
31962
+ Test = _require.default(testModuleName)['default'];
31555
31963
  }
31556
31964
 
31557
31965
  if (Test && Test.adapter) {
@@ -31689,6 +32097,116 @@ enifed('ember-runtime/ext/string', ['exports', 'ember-metal/core', 'ember-runtim
31689
32097
  }
31690
32098
  });
31691
32099
  // Ember.EXTEND_PROTOTYPES
32100
+ 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) {
32101
+ /**
32102
+ @module ember
32103
+ @submodule ember-runtime
32104
+ */
32105
+
32106
+ // BEGIN IMPORTS
32107
+ 'use strict';
32108
+
32109
+ // END IMPORTS
32110
+
32111
+ // BEGIN EXPORTS
32112
+ _emberMetal.default.compare = _emberRuntimeCompare.default;
32113
+ _emberMetal.default.copy = _emberRuntimeCopy.default;
32114
+ _emberMetal.default.isEqual = _emberRuntimeIsEqual.default;
32115
+
32116
+ _emberMetal.default.inject = _emberRuntimeInject.default;
32117
+
32118
+ _emberMetal.default.Array = _emberRuntimeMixinsArray.default;
32119
+
32120
+ _emberMetal.default.Comparable = _emberRuntimeMixinsComparable.default;
32121
+ _emberMetal.default.Copyable = _emberRuntimeMixinsCopyable.default;
32122
+
32123
+ _emberMetal.default.Freezable = _emberRuntimeMixinsFreezable.Freezable;
32124
+ _emberMetal.default.FROZEN_ERROR = _emberRuntimeMixinsFreezable.FROZEN_ERROR;
32125
+
32126
+ _emberMetal.default.MutableEnumerable = _emberRuntimeMixinsMutable_enumerable.default;
32127
+ _emberMetal.default.MutableArray = _emberRuntimeMixinsMutable_array.default;
32128
+
32129
+ _emberMetal.default.TargetActionSupport = _emberRuntimeMixinsTarget_action_support.default;
32130
+ _emberMetal.default.Evented = _emberRuntimeMixinsEvented.default;
32131
+
32132
+ _emberMetal.default.PromiseProxyMixin = _emberRuntimeMixinsPromise_proxy.default;
32133
+
32134
+ _emberMetal.default.Observable = _emberRuntimeMixinsObservable.default;
32135
+
32136
+ _emberMetal.default.typeOf = _emberRuntimeUtils.typeOf;
32137
+ _emberMetal.default.isArray = _emberRuntimeUtils.isArray;
32138
+
32139
+ // ES6TODO: this seems a less than ideal way/place to add properties to Ember.computed
32140
+ var EmComputed = _emberMetal.default.computed;
32141
+
32142
+ EmComputed.sum = _emberRuntimeComputedReduce_computed_macros.sum;
32143
+ EmComputed.min = _emberRuntimeComputedReduce_computed_macros.min;
32144
+ EmComputed.max = _emberRuntimeComputedReduce_computed_macros.max;
32145
+ EmComputed.map = _emberRuntimeComputedReduce_computed_macros.map;
32146
+ EmComputed.sort = _emberRuntimeComputedReduce_computed_macros.sort;
32147
+ EmComputed.setDiff = _emberRuntimeComputedReduce_computed_macros.setDiff;
32148
+ EmComputed.mapBy = _emberRuntimeComputedReduce_computed_macros.mapBy;
32149
+ EmComputed.filter = _emberRuntimeComputedReduce_computed_macros.filter;
32150
+ EmComputed.filterBy = _emberRuntimeComputedReduce_computed_macros.filterBy;
32151
+ EmComputed.uniq = _emberRuntimeComputedReduce_computed_macros.uniq;
32152
+ EmComputed.union = _emberRuntimeComputedReduce_computed_macros.union;
32153
+ EmComputed.intersect = _emberRuntimeComputedReduce_computed_macros.intersect;
32154
+ EmComputed.collect = _emberRuntimeComputedReduce_computed_macros.collect;
32155
+
32156
+ _emberMetal.default.String = _emberRuntimeSystemString.default;
32157
+ _emberMetal.default.Object = _emberRuntimeSystemObject.default;
32158
+ _emberMetal.default.Container = _emberRuntimeSystemContainer.Container;
32159
+ _emberMetal.default.Registry = _emberRuntimeSystemContainer.Registry;
32160
+
32161
+ _emberMetal.default.getOwner = _emberRuntimeSystemContainer.getOwner;
32162
+ _emberMetal.default.setOwner = _emberRuntimeSystemContainer.setOwner;
32163
+
32164
+ _emberMetal.default._RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
32165
+ _emberMetal.default._ContainerProxyMixin = _emberRuntimeMixinsContainer_proxy.default;
32166
+
32167
+ _emberMetal.default.Namespace = _emberRuntimeSystemNamespace.default;
32168
+ _emberMetal.default.Enumerable = _emberRuntimeMixinsEnumerable.default;
32169
+ _emberMetal.default.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
32170
+ _emberMetal.default.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
32171
+ _emberMetal.default.ActionHandler = _emberRuntimeMixinsAction_handler.default;
32172
+ _emberMetal.default.CoreObject = _emberRuntimeSystemCore_object.default;
32173
+ _emberMetal.default.NativeArray = _emberRuntimeSystemNative_array.default;
32174
+ // ES6TODO: Currently we must rely on the global from ember-metal/core to avoid circular deps
32175
+ // Ember.A = A;
32176
+ _emberMetal.default.onLoad = _emberRuntimeSystemLazy_load.onLoad;
32177
+ _emberMetal.default.runLoadHooks = _emberRuntimeSystemLazy_load.runLoadHooks;
32178
+
32179
+ _emberMetal.default.Controller = _emberRuntimeControllersController.default;
32180
+ _emberMetal.default.ControllerMixin = _emberRuntimeMixinsController.default;
32181
+
32182
+ _emberMetal.default.Service = _emberRuntimeSystemService.default;
32183
+
32184
+ _emberMetal.default._ProxyMixin = _emberRuntimeMixinsProxy.default;
32185
+
32186
+ _emberMetal.default.RSVP = _emberRuntimeExtRsvp.default;
32187
+ // END EXPORTS
32188
+
32189
+ /**
32190
+ Defines the hash of localized strings for the current language. Used by
32191
+ the `Ember.String.loc()` helper. To localize, add string values to this
32192
+ hash.
32193
+
32194
+ @property STRINGS
32195
+ @for Ember
32196
+ @type Object
32197
+ @private
32198
+ */
32199
+ Object.defineProperty(_emberMetal.default, 'STRINGS', {
32200
+ configurable: false,
32201
+ get: _emberRuntimeString_registry.getStrings,
32202
+ set: _emberRuntimeString_registry.setStrings
32203
+ });
32204
+
32205
+ exports.default = _emberMetal.default;
32206
+ });
32207
+ // just for side effect of extending Ember.RSVP
32208
+ // just for side effect of extending String.prototype
32209
+ // just for side effect of extending Function.prototype
31692
32210
  enifed('ember-runtime/inject', ['exports', 'ember-metal/debug', 'ember-metal/injected_property'], function (exports, _emberMetalDebug, _emberMetalInjected_property) {
31693
32211
  'use strict';
31694
32212
 
@@ -31771,16 +32289,34 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/debug', 'ember-metal/inj
31771
32289
  });
31772
32290
  enifed('ember-runtime/is-equal', ['exports'], function (exports) {
31773
32291
  /**
31774
- Compares two objects, returning true if they are logically equal. This is
31775
- a deeper comparison than a simple triple equal. For sets it will compare the
31776
- internal objects. For any other object that implements `isEqual()` it will
31777
- respect that method.
32292
+ Compares two objects, returning true if they are equal.
31778
32293
 
31779
32294
  ```javascript
31780
32295
  Ember.isEqual('hello', 'hello'); // true
31781
32296
  Ember.isEqual(1, 2); // false
32297
+ ```
32298
+
32299
+ `isEqual` is a more specific comparison than a triple equal comparison.
32300
+ It will call the `isEqual` instance method on the objects being
32301
+ compared, allowing finer control over when objects should be considered
32302
+ equal to each other.
32303
+
32304
+ ```javascript
32305
+ let Person = Ember.Object.extend({
32306
+ isEqual(other) { return this.ssn == other.ssn; }
32307
+ });
32308
+
32309
+ let personA = Person.create({name: 'Muhammad Ali', ssn: '123-45-6789'});
32310
+ let personB = Person.create({name: 'Cassius Clay', ssn: '123-45-6789'});
32311
+
32312
+ Ember.isEqual(personA, personB); // true
32313
+ ```
32314
+
32315
+ Due to the expense of array comparisons, collections will never be equal to
32316
+ each other even if each of their items are equal to each other.
32317
+
32318
+ ```javascript
31782
32319
  Ember.isEqual([4, 2], [4, 2]); // false
31783
- Ember.isEqual({ isEqual() { return true;} }, null) // true
31784
32320
  ```
31785
32321
 
31786
32322
  @method isEqual
@@ -31962,7 +32498,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
31962
32498
  }
31963
32499
  });
31964
32500
  ```
31965
- It is also possible to call `this._super.apply(this, arguments)` from within an
32501
+ It is also possible to call `this._super(...arguments)` from within an
31966
32502
  action handler if it overrides a handler defined on a parent
31967
32503
  class or mixin:
31968
32504
  Take for example the following routes:
@@ -31978,7 +32514,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
31978
32514
  actions: {
31979
32515
  debugRouteInformation: function() {
31980
32516
  // also call the debugRouteInformation of mixed in App.DebugRoute
31981
- this._super.apply(this, arguments);
32517
+ this._super(...arguments);
31982
32518
  // show additional annoyance
31983
32519
  window.alert(...);
31984
32520
  }
@@ -32398,7 +32934,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
32398
32934
  * `arrayDidChange(observedObj, start, removeCount, addCount)` - This method will be
32399
32935
  called just after the array is modified.
32400
32936
  Both callbacks will be passed the observed object, starting index of the
32401
- change as well a a count of the items to be removed and added. You can use
32937
+ change as well as a count of the items to be removed and added. You can use
32402
32938
  these callbacks to optionally inspect the array during the change, clear
32403
32939
  caches, or do any other bookkeeping necessary.
32404
32940
  In addition to passing a target, you can also include an options hash
@@ -35083,7 +35619,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal/property_g
35083
35619
  proxy.get('isFulfilled') //=> false
35084
35620
  ```
35085
35621
 
35086
- When the the $.getJSON completes, and the promise is fulfilled
35622
+ When the $.getJSON completes, and the promise is fulfilled
35087
35623
  with json, the life cycle attributes will update accordingly.
35088
35624
 
35089
35625
  ```javascript
@@ -36229,7 +36765,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
36229
36765
  // alerts 'Name is Steve'.
36230
36766
  ```
36231
36767
  NOTE: If you do override `init` for a framework class like `Ember.View`,
36232
- be sure to call `this._super.apply(this, arguments)` in your
36768
+ be sure to call `this._super(...arguments)` in your
36233
36769
  `init` declaration! If you don't, Ember may not have an opportunity to
36234
36770
  do important setup work, and you'll see strange behavior in your
36235
36771
  application.
@@ -37394,7 +37930,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
37394
37930
  classNames: ['pagination'],
37395
37931
 
37396
37932
  init: function() {
37397
- this._super.apply(this, arguments);
37933
+ this._super(...arguments);
37398
37934
  if (!this.get('content')) {
37399
37935
  this.set('content', Ember.A());
37400
37936
  }
@@ -37911,14 +38447,14 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
37911
38447
  /**
37912
38448
  Returns true if the passed object is an array or Array-like.
37913
38449
 
37914
- Ember Array Protocol:
38450
+ Objects are considered Array-like if any of the following are true:
37915
38451
 
37916
- - the object has an objectAt property
37917
38452
  - the object is a native Array
38453
+ - the object has an objectAt property
37918
38454
  - the object is an Object, and has a length property
37919
38455
 
37920
38456
  Unlike `Ember.typeOf` this method returns true even if the passed object is
37921
- not formally array but appears to be array-like (i.e. implements `Ember.Array`)
38457
+ not formally an array but appears to be array-like (i.e. implements `Ember.Array`)
37922
38458
 
37923
38459
  ```javascript
37924
38460
  Ember.isArray(); // false
@@ -37955,7 +38491,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
37955
38491
  }
37956
38492
 
37957
38493
  /**
37958
- Returns a consistent type for the passed item.
38494
+ Returns a consistent type for the passed object.
37959
38495
 
37960
38496
  Use this instead of the built-in `typeof` to get the type of an item.
37961
38497
  It will return the same result across all browsers and includes a bit
@@ -38034,117 +38570,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
38034
38570
  return ret;
38035
38571
  }
38036
38572
  });
38037
- 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) {
38038
- /**
38039
- @module ember
38040
- @submodule ember-runtime
38041
- */
38042
-
38043
- // BEGIN IMPORTS
38044
- 'use strict';
38045
-
38046
- // END IMPORTS
38047
-
38048
- // BEGIN EXPORTS
38049
- _emberMetal.default.compare = _emberRuntimeCompare.default;
38050
- _emberMetal.default.copy = _emberRuntimeCopy.default;
38051
- _emberMetal.default.isEqual = _emberRuntimeIsEqual.default;
38052
-
38053
- _emberMetal.default.inject = _emberRuntimeInject.default;
38054
-
38055
- _emberMetal.default.Array = _emberRuntimeMixinsArray.default;
38056
-
38057
- _emberMetal.default.Comparable = _emberRuntimeMixinsComparable.default;
38058
- _emberMetal.default.Copyable = _emberRuntimeMixinsCopyable.default;
38059
-
38060
- _emberMetal.default.Freezable = _emberRuntimeMixinsFreezable.Freezable;
38061
- _emberMetal.default.FROZEN_ERROR = _emberRuntimeMixinsFreezable.FROZEN_ERROR;
38062
-
38063
- _emberMetal.default.MutableEnumerable = _emberRuntimeMixinsMutable_enumerable.default;
38064
- _emberMetal.default.MutableArray = _emberRuntimeMixinsMutable_array.default;
38065
-
38066
- _emberMetal.default.TargetActionSupport = _emberRuntimeMixinsTarget_action_support.default;
38067
- _emberMetal.default.Evented = _emberRuntimeMixinsEvented.default;
38068
-
38069
- _emberMetal.default.PromiseProxyMixin = _emberRuntimeMixinsPromise_proxy.default;
38070
-
38071
- _emberMetal.default.Observable = _emberRuntimeMixinsObservable.default;
38072
-
38073
- _emberMetal.default.typeOf = _emberRuntimeUtils.typeOf;
38074
- _emberMetal.default.isArray = _emberRuntimeUtils.isArray;
38075
-
38076
- // ES6TODO: this seems a less than ideal way/place to add properties to Ember.computed
38077
- var EmComputed = _emberMetal.default.computed;
38078
-
38079
- EmComputed.sum = _emberRuntimeComputedReduce_computed_macros.sum;
38080
- EmComputed.min = _emberRuntimeComputedReduce_computed_macros.min;
38081
- EmComputed.max = _emberRuntimeComputedReduce_computed_macros.max;
38082
- EmComputed.map = _emberRuntimeComputedReduce_computed_macros.map;
38083
- EmComputed.sort = _emberRuntimeComputedReduce_computed_macros.sort;
38084
- EmComputed.setDiff = _emberRuntimeComputedReduce_computed_macros.setDiff;
38085
- EmComputed.mapBy = _emberRuntimeComputedReduce_computed_macros.mapBy;
38086
- EmComputed.filter = _emberRuntimeComputedReduce_computed_macros.filter;
38087
- EmComputed.filterBy = _emberRuntimeComputedReduce_computed_macros.filterBy;
38088
- EmComputed.uniq = _emberRuntimeComputedReduce_computed_macros.uniq;
38089
- EmComputed.union = _emberRuntimeComputedReduce_computed_macros.union;
38090
- EmComputed.intersect = _emberRuntimeComputedReduce_computed_macros.intersect;
38091
- EmComputed.collect = _emberRuntimeComputedReduce_computed_macros.collect;
38092
-
38093
- _emberMetal.default.String = _emberRuntimeSystemString.default;
38094
- _emberMetal.default.Object = _emberRuntimeSystemObject.default;
38095
- _emberMetal.default.Container = _emberRuntimeSystemContainer.Container;
38096
- _emberMetal.default.Registry = _emberRuntimeSystemContainer.Registry;
38097
-
38098
- _emberMetal.default.getOwner = _emberRuntimeSystemContainer.getOwner;
38099
- _emberMetal.default.setOwner = _emberRuntimeSystemContainer.setOwner;
38100
-
38101
- _emberMetal.default._RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
38102
- _emberMetal.default._ContainerProxyMixin = _emberRuntimeMixinsContainer_proxy.default;
38103
-
38104
- _emberMetal.default.Namespace = _emberRuntimeSystemNamespace.default;
38105
- _emberMetal.default.Enumerable = _emberRuntimeMixinsEnumerable.default;
38106
- _emberMetal.default.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
38107
- _emberMetal.default.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
38108
- _emberMetal.default.ActionHandler = _emberRuntimeMixinsAction_handler.default;
38109
- _emberMetal.default.CoreObject = _emberRuntimeSystemCore_object.default;
38110
- _emberMetal.default.NativeArray = _emberRuntimeSystemNative_array.default;
38111
- // ES6TODO: Currently we must rely on the global from ember-metal/core to avoid circular deps
38112
- // Ember.A = A;
38113
- _emberMetal.default.onLoad = _emberRuntimeSystemLazy_load.onLoad;
38114
- _emberMetal.default.runLoadHooks = _emberRuntimeSystemLazy_load.runLoadHooks;
38115
-
38116
- _emberMetal.default.Controller = _emberRuntimeControllersController.default;
38117
- _emberMetal.default.ControllerMixin = _emberRuntimeMixinsController.default;
38118
-
38119
- _emberMetal.default.Service = _emberRuntimeSystemService.default;
38120
-
38121
- _emberMetal.default._ProxyMixin = _emberRuntimeMixinsProxy.default;
38122
-
38123
- _emberMetal.default.RSVP = _emberRuntimeExtRsvp.default;
38124
- // END EXPORTS
38125
-
38126
- /**
38127
- Defines the hash of localized strings for the current language. Used by
38128
- the `Ember.String.loc()` helper. To localize, add string values to this
38129
- hash.
38130
-
38131
- @property STRINGS
38132
- @for Ember
38133
- @type Object
38134
- @private
38135
- */
38136
- Object.defineProperty(_emberMetal.default, 'STRINGS', {
38137
- configurable: false,
38138
- get: _emberRuntimeString_registry.getStrings,
38139
- set: _emberRuntimeString_registry.setStrings
38140
- });
38141
-
38142
- exports.default = _emberMetal.default;
38143
- });
38144
- // just for side effect of extending Ember.RSVP
38145
- // just for side effect of extending String.prototype
38146
- // just for side effect of extending Function.prototype
38147
- enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
38573
+ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
38148
38574
  /**
38149
38575
  @module ember
38150
38576
  @submodule ember-template-compiler
@@ -38154,8 +38580,8 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/cor
38154
38580
  var compile, compileSpec;
38155
38581
 
38156
38582
  exports.default = function (string) {
38157
- if ((!compile || !compileSpec) && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
38158
- var Compiler = requireModule('htmlbars-compiler/compiler');
38583
+ if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) {
38584
+ var Compiler = _require.default('htmlbars-compiler/compiler');
38159
38585
 
38160
38586
  compile = Compiler.compile;
38161
38587
  compileSpec = Compiler.compileSpec;
@@ -38180,6 +38606,34 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
38180
38606
  EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default;
38181
38607
  EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default;
38182
38608
  });
38609
+ 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) {
38610
+ 'use strict';
38611
+
38612
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
38613
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
38614
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
38615
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
38616
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
38617
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
38618
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
38619
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
38620
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
38621
+
38622
+ if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
38623
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
38624
+ } else {
38625
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
38626
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
38627
+ }
38628
+
38629
+ exports._Ember = _emberMetal.default;
38630
+ exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
38631
+ exports.compile = _emberTemplateCompilerSystemCompile.default;
38632
+ exports.template = _emberTemplateCompilerSystemTemplate.default;
38633
+ exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
38634
+ });
38635
+
38636
+ // used for adding Ember.Handlebars.compile for backwards compat
38183
38637
  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) {
38184
38638
  'use strict';
38185
38639
 
@@ -39123,7 +39577,7 @@ enifed('ember-template-compiler/system/calculate-location-display', ['exports'],
39123
39577
  return moduleInfo;
39124
39578
  }
39125
39579
  });
39126
- 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) {
39580
+ 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) {
39127
39581
  /**
39128
39582
  @module ember
39129
39583
  @submodule ember-template-compiler
@@ -39145,8 +39599,8 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core',
39145
39599
  */
39146
39600
 
39147
39601
  exports.default = function (templateString, options) {
39148
- if (!compile && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
39149
- compile = requireModule('htmlbars-compiler/compiler').compile;
39602
+ if (!compile && _require.has('htmlbars-compiler/compiler')) {
39603
+ compile = _require.default('htmlbars-compiler/compiler').compile;
39150
39604
  }
39151
39605
 
39152
39606
  if (!compile) {
@@ -39198,7 +39652,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
39198
39652
  options.buildMeta = function buildMeta(program) {
39199
39653
  return {
39200
39654
  fragmentReason: fragmentReason(program),
39201
- revision: 'Ember@2.3.2',
39655
+ revision: 'Ember@2.4.0-beta.2',
39202
39656
  loc: program.loc,
39203
39657
  moduleName: options.moduleName
39204
39658
  };
@@ -39264,7 +39718,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
39264
39718
  }
39265
39719
  }
39266
39720
  });
39267
- enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
39721
+ enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
39268
39722
  /**
39269
39723
  @module ember
39270
39724
  @submodule ember-template-compiler
@@ -39285,8 +39739,8 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/cor
39285
39739
  */
39286
39740
 
39287
39741
  exports.default = function (templateString, options) {
39288
- if (!compileSpec && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
39289
- compileSpec = requireModule('htmlbars-compiler/compiler').compileSpec;
39742
+ if (!compileSpec && _require.has('htmlbars-compiler/compiler')) {
39743
+ compileSpec = _require.default('htmlbars-compiler/compiler').compileSpec;
39290
39744
  }
39291
39745
 
39292
39746
  if (!compileSpec) {
@@ -39324,34 +39778,6 @@ enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/
39324
39778
  return templateSpec;
39325
39779
  };
39326
39780
  });
39327
- 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) {
39328
- 'use strict';
39329
-
39330
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
39331
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
39332
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
39333
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
39334
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
39335
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
39336
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
39337
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
39338
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
39339
-
39340
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
39341
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
39342
- } else {
39343
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
39344
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
39345
- }
39346
-
39347
- exports._Ember = _emberMetal.default;
39348
- exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
39349
- exports.compile = _emberTemplateCompilerSystemCompile.default;
39350
- exports.template = _emberTemplateCompilerSystemTemplate.default;
39351
- exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
39352
- });
39353
-
39354
- // used for adding Ember.Handlebars.compile for backwards compat
39355
39781
  enifed('ember-testing/adapters/adapter', ['exports', 'ember-runtime/system/object'], function (exports, _emberRuntimeSystemObject) {
39356
39782
  'use strict';
39357
39783
 
@@ -39899,6 +40325,23 @@ enifed('ember-testing/helpers', ['exports', 'ember-metal/property_get', 'ember-m
39899
40325
  */
39900
40326
  asyncHelper('triggerEvent', triggerEvent);
39901
40327
  });
40328
+ enifed('ember-testing/index', ['exports', 'ember-metal/core', 'ember-testing/initializers', 'ember-testing/support', 'ember-testing/setup_for_testing', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/adapters/qunit', 'ember-testing/helpers'], function (exports, _emberMetalCore, _emberTestingInitializers, _emberTestingSupport, _emberTestingSetup_for_testing, _emberTestingTest, _emberTestingAdaptersAdapter, _emberTestingAdaptersQunit, _emberTestingHelpers) {
40329
+ 'use strict';
40330
+
40331
+ // adds helpers to helpers object in Test
40332
+
40333
+ /**
40334
+ @module ember
40335
+ @submodule ember-testing
40336
+ */
40337
+
40338
+ _emberMetalCore.default.Test = _emberTestingTest.default;
40339
+ _emberMetalCore.default.Test.Adapter = _emberTestingAdaptersAdapter.default;
40340
+ _emberMetalCore.default.Test.QUnitAdapter = _emberTestingAdaptersQunit.default;
40341
+ _emberMetalCore.default.setupForTesting = _emberTestingSetup_for_testing.default;
40342
+ });
40343
+ // to setup initializer
40344
+ // to handle various edge cases
39902
40345
  enifed('ember-testing/initializers', ['exports', 'ember-runtime/system/lazy_load'], function (exports, _emberRuntimeSystemLazy_load) {
39903
40346
  'use strict';
39904
40347
 
@@ -40518,23 +40961,6 @@ enifed('ember-testing/test', ['exports', 'ember-metal/run_loop', 'ember-runtime/
40518
40961
 
40519
40962
  exports.default = Test;
40520
40963
  });
40521
- enifed('ember-testing', ['exports', 'ember-metal/core', 'ember-testing/initializers', 'ember-testing/support', 'ember-testing/setup_for_testing', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/adapters/qunit', 'ember-testing/helpers'], function (exports, _emberMetalCore, _emberTestingInitializers, _emberTestingSupport, _emberTestingSetup_for_testing, _emberTestingTest, _emberTestingAdaptersAdapter, _emberTestingAdaptersQunit, _emberTestingHelpers) {
40522
- 'use strict';
40523
-
40524
- // adds helpers to helpers object in Test
40525
-
40526
- /**
40527
- @module ember
40528
- @submodule ember-testing
40529
- */
40530
-
40531
- _emberMetalCore.default.Test = _emberTestingTest.default;
40532
- _emberMetalCore.default.Test.Adapter = _emberTestingAdaptersAdapter.default;
40533
- _emberMetalCore.default.Test.QUnitAdapter = _emberTestingAdaptersQunit.default;
40534
- _emberMetalCore.default.setupForTesting = _emberTestingSetup_for_testing.default;
40535
- });
40536
- // to setup initializer
40537
- // to handle various edge cases
40538
40964
  enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember-metal/symbol', 'ember-metal/property_events'], function (exports, _emberMetalMixin, _emberMetalSymbol, _emberMetalProperty_events) {
40539
40965
  'use strict';
40540
40966
 
@@ -40677,22 +41103,22 @@ enifed('ember-views/component_lookup', ['exports', 'ember-metal/core', 'ember-me
40677
41103
  }
40678
41104
  },
40679
41105
 
40680
- componentFor: function (name, owner) {
41106
+ componentFor: function (name, owner, options) {
40681
41107
  if (this.invalidName(name)) {
40682
41108
  return;
40683
41109
  }
40684
41110
 
40685
41111
  var fullName = 'component:' + name;
40686
- return owner._lookupFactory(fullName);
41112
+ return owner._lookupFactory(fullName, options);
40687
41113
  },
40688
41114
 
40689
- layoutFor: function (name, owner) {
41115
+ layoutFor: function (name, owner, options) {
40690
41116
  if (this.invalidName(name)) {
40691
41117
  return;
40692
41118
  }
40693
41119
 
40694
41120
  var templateFullName = 'template:components/' + name;
40695
- return owner.lookup(templateFullName);
41121
+ return owner.lookup(templateFullName, options);
40696
41122
  }
40697
41123
  });
40698
41124
  });
@@ -41130,6 +41556,75 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/debug', 'emb
41130
41556
 
41131
41557
  exports.default = Component;
41132
41558
  });
41559
+ 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) {
41560
+ /**
41561
+ @module ember
41562
+ @submodule ember-views
41563
+ */
41564
+
41565
+ // BEGIN IMPORTS
41566
+ 'use strict';
41567
+
41568
+ // END IMPORTS
41569
+
41570
+ /**
41571
+ Alias for jQuery
41572
+
41573
+ @method $
41574
+ @for Ember
41575
+ @public
41576
+ */
41577
+
41578
+ // BEGIN EXPORTS
41579
+ _emberRuntime.default.$ = _emberViewsSystemJquery.default;
41580
+
41581
+ _emberRuntime.default.ViewTargetActionSupport = _emberViewsMixinsView_target_action_support.default;
41582
+
41583
+ var ViewUtils = _emberRuntime.default.ViewUtils = {};
41584
+ ViewUtils.isSimpleClick = _emberViewsSystemUtils.isSimpleClick;
41585
+ ViewUtils.getViewClientRects = _emberViewsSystemUtils.getViewClientRects;
41586
+ ViewUtils.getViewBoundingClientRect = _emberViewsSystemUtils.getViewBoundingClientRect;
41587
+
41588
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
41589
+ _emberRuntime.default.CoreView = _emberViewsViewsCore_view.DeprecatedCoreView;
41590
+ _emberRuntime.default.View = _emberViewsViewsView.DeprecatedView;
41591
+ _emberRuntime.default.View.states = _emberViewsViewsStates.states;
41592
+ _emberRuntime.default.View.cloneStates = _emberViewsViewsStates.cloneStates;
41593
+ _emberRuntime.default.View._Renderer = _emberMetalViewsRenderer.default;
41594
+ _emberRuntime.default.ContainerView = _emberViewsViewsContainer_view.DeprecatedContainerView;
41595
+ _emberRuntime.default.CollectionView = _emberViewsViewsCollection_view.default;
41596
+ }
41597
+
41598
+ _emberRuntime.default._Renderer = _emberMetalViewsRenderer.default;
41599
+
41600
+ _emberRuntime.default.Checkbox = _emberViewsViewsCheckbox.default;
41601
+ _emberRuntime.default.TextField = _emberViewsViewsText_field.default;
41602
+ _emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
41603
+
41604
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
41605
+ _emberRuntime.default.Select = _emberViewsViewsSelect.Select;
41606
+ }
41607
+
41608
+ _emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
41609
+ _emberRuntime.default.SelectOptgroup = _emberViewsViewsSelect.SelectOptgroup;
41610
+
41611
+ _emberRuntime.default.TextSupport = _emberViewsMixinsText_support.default;
41612
+ _emberRuntime.default.ComponentLookup = _emberViewsComponent_lookup.default;
41613
+ _emberRuntime.default.Component = _emberViewsComponentsComponent.default;
41614
+ _emberRuntime.default.EventDispatcher = _emberViewsSystemEvent_dispatcher.default;
41615
+
41616
+ // Deprecated:
41617
+ if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
41618
+ _emberRuntime.default._Metamorph = _emberViewsCompatMetamorph_view._Metamorph;
41619
+ _emberRuntime.default._MetamorphView = _emberViewsCompatMetamorph_view.default;
41620
+ _emberRuntime.default._LegacyEachView = _emberViewsViewsLegacy_each_view.default;
41621
+ }
41622
+
41623
+ // END EXPORTS
41624
+
41625
+ exports.default = _emberRuntime.default;
41626
+ });
41627
+ // for the side effect of extending Ember.run.queues
41133
41628
  enifed('ember-views/mixins/aria_role_support', ['exports', 'ember-metal/mixin'], function (exports, _emberMetalMixin) {
41134
41629
  /**
41135
41630
  @module ember
@@ -41337,7 +41832,10 @@ enifed('ember-views/mixins/legacy_child_views_support', ['exports', 'ember-metal
41337
41832
 
41338
41833
  exports.default = _emberMetalMixin.Mixin.create({
41339
41834
  linkChild: function (instance) {
41340
- _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
41835
+ if (!instance[_containerOwner.OWNER]) {
41836
+ _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
41837
+ }
41838
+
41341
41839
  if (_emberMetalProperty_get.get(instance, 'parentView') !== this) {
41342
41840
  // linkChild should be idempotent
41343
41841
  _emberMetalProperty_set.set(instance, 'parentView', this);
@@ -41945,7 +42443,10 @@ enifed('ember-views/mixins/view_child_views_support', ['exports', 'ember-metal/d
41945
42443
  },
41946
42444
 
41947
42445
  linkChild: function (instance) {
41948
- _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
42446
+ if (!instance[_containerOwner.OWNER]) {
42447
+ _containerOwner.setOwner(instance, _containerOwner.getOwner(this));
42448
+ }
42449
+
41949
42450
  instance.parentView = this;
41950
42451
  instance.ownerView = this.ownerView;
41951
42452
  },
@@ -43828,7 +44329,7 @@ enifed('ember-views/system/ext', ['exports', 'ember-metal/run_loop'], function (
43828
44329
 
43829
44330
  // Add a new named queue for rendering views that happens
43830
44331
  // after bindings have synced, and a queue for scheduling actions
43831
- // that that should occur after view rendering.
44332
+ // that should occur after view rendering.
43832
44333
  _emberMetalRun_loop.default._addQueue('render', 'actions');
43833
44334
  _emberMetalRun_loop.default._addQueue('afterRender', 'render');
43834
44335
  });
@@ -44491,7 +44992,7 @@ enifed('ember-views/views/collection_view', ['exports', 'ember-metal/core', 'emb
44491
44992
  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) {
44492
44993
  'use strict';
44493
44994
 
44494
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.3.2';
44995
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.4.0-beta.2';
44495
44996
 
44496
44997
  /**
44497
44998
  @module ember
@@ -46236,7 +46737,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
46236
46737
  <div id="ember1" class="ember-view disabled"></div>
46237
46738
  ```
46238
46739
 
46239
- Updates to the the value of a class name binding will result in automatic
46740
+ Updates to the value of a class name binding will result in automatic
46240
46741
  update of the HTML `class` attribute in the view's rendered HTML
46241
46742
  representation. If the value becomes `false` or `undefined` the class name
46242
46743
  will be removed.
@@ -46333,7 +46834,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
46333
46834
  });
46334
46835
  ```
46335
46836
 
46336
- Updates to the the property of an attribute binding will result in automatic
46837
+ Updates to the property of an attribute binding will result in automatic
46337
46838
  update of the HTML attribute in the view's rendered HTML representation.
46338
46839
 
46339
46840
  `attributeBindings` is a concatenated property. See [Ember.Object](/api/classes/Ember.Object.html)
@@ -46517,7 +47018,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
46517
47018
  ```javascript
46518
47019
  AView = Ember.View.extend({
46519
47020
  click: function(event) {
46520
- // will be called when when an instance's
47021
+ // will be called when an instance's
46521
47022
  // rendered element is clicked
46522
47023
  }
46523
47024
  });
@@ -46538,7 +47039,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
46538
47039
  AView = Ember.View.extend({
46539
47040
  eventManager: Ember.Object.create({
46540
47041
  doubleClick: function(event, view) {
46541
- // will be called when when an instance's
47042
+ // will be called when an instance's
46542
47043
  // rendered element or any rendering
46543
47044
  // of this view's descendant
46544
47045
  // elements is clicked
@@ -46779,96 +47280,6 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-metal/de
46779
47280
  exports.DeprecatedView = DeprecatedView;
46780
47281
  });
46781
47282
  // for the side effect of extending Ember.run.queues
46782
- 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) {
46783
- /**
46784
- @module ember
46785
- @submodule ember-views
46786
- */
46787
-
46788
- // BEGIN IMPORTS
46789
- 'use strict';
46790
-
46791
- // END IMPORTS
46792
-
46793
- /**
46794
- Alias for jQuery
46795
-
46796
- @method $
46797
- @for Ember
46798
- @public
46799
- */
46800
-
46801
- // BEGIN EXPORTS
46802
- _emberRuntime.default.$ = _emberViewsSystemJquery.default;
46803
-
46804
- _emberRuntime.default.ViewTargetActionSupport = _emberViewsMixinsView_target_action_support.default;
46805
-
46806
- var ViewUtils = _emberRuntime.default.ViewUtils = {};
46807
- ViewUtils.isSimpleClick = _emberViewsSystemUtils.isSimpleClick;
46808
- ViewUtils.getViewClientRects = _emberViewsSystemUtils.getViewClientRects;
46809
- ViewUtils.getViewBoundingClientRect = _emberViewsSystemUtils.getViewBoundingClientRect;
46810
-
46811
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
46812
- _emberRuntime.default.CoreView = _emberViewsViewsCore_view.DeprecatedCoreView;
46813
- _emberRuntime.default.View = _emberViewsViewsView.DeprecatedView;
46814
- _emberRuntime.default.View.states = _emberViewsViewsStates.states;
46815
- _emberRuntime.default.View.cloneStates = _emberViewsViewsStates.cloneStates;
46816
- _emberRuntime.default.View._Renderer = _emberMetalViewsRenderer.default;
46817
- _emberRuntime.default.ContainerView = _emberViewsViewsContainer_view.DeprecatedContainerView;
46818
- _emberRuntime.default.CollectionView = _emberViewsViewsCollection_view.default;
46819
- }
46820
-
46821
- _emberRuntime.default._Renderer = _emberMetalViewsRenderer.default;
46822
-
46823
- _emberRuntime.default.Checkbox = _emberViewsViewsCheckbox.default;
46824
- _emberRuntime.default.TextField = _emberViewsViewsText_field.default;
46825
- _emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
46826
-
46827
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
46828
- _emberRuntime.default.Select = _emberViewsViewsSelect.Select;
46829
- }
46830
-
46831
- _emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
46832
- _emberRuntime.default.SelectOptgroup = _emberViewsViewsSelect.SelectOptgroup;
46833
-
46834
- _emberRuntime.default.TextSupport = _emberViewsMixinsText_support.default;
46835
- _emberRuntime.default.ComponentLookup = _emberViewsComponent_lookup.default;
46836
- _emberRuntime.default.Component = _emberViewsComponentsComponent.default;
46837
- _emberRuntime.default.EventDispatcher = _emberViewsSystemEvent_dispatcher.default;
46838
-
46839
- // Deprecated:
46840
- if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
46841
- _emberRuntime.default._Metamorph = _emberViewsCompatMetamorph_view._Metamorph;
46842
- _emberRuntime.default._MetamorphView = _emberViewsCompatMetamorph_view.default;
46843
- _emberRuntime.default._LegacyEachView = _emberViewsViewsLegacy_each_view.default;
46844
- }
46845
-
46846
- // END EXPORTS
46847
-
46848
- exports.default = _emberRuntime.default;
46849
- });
46850
- // for the side effect of extending Ember.run.queues
46851
- 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) {
46852
- // require the main entry points for each of these packages
46853
- // this is so that the global exports occur properly
46854
- 'use strict';
46855
-
46856
- if (_emberMetalCore.default.__loader.registry['ember-template-compiler']) {
46857
- requireModule('ember-template-compiler');
46858
- }
46859
-
46860
- // do this to ensure that Ember.Test is defined properly on the global
46861
- // if it is present.
46862
- if (_emberMetalCore.default.__loader.registry['ember-testing']) {
46863
- requireModule('ember-testing');
46864
- }
46865
-
46866
- _emberRuntimeSystemLazy_load.runLoadHooks('Ember');
46867
-
46868
- /**
46869
- @module ember
46870
- */
46871
- });
46872
47283
  enifed('htmlbars-runtime/expression-visitor', ['exports'], function (exports) {
46873
47284
  /**
46874
47285
  # Expression Nodes: