ember-source 2.7.0.beta.1 → 2.7.0.beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.7.0-beta.1
9
+ * @version 2.7.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, Ember;
@@ -485,6 +485,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment',
485
485
  _emberMetalFeatures.FEATURES['features-stripped-test'] = true;
486
486
  var featuresWereStripped = true;
487
487
 
488
+ if (false) {
489
+ exports.featuresWereStripped = featuresWereStripped = false;
490
+ }
491
+
488
492
  delete _emberMetalFeatures.FEATURES['features-stripped-test'];
489
493
  _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
490
494
 
@@ -1175,13 +1179,12 @@ enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
1175
1179
  return app.testHelpers.triggerEvent(selector, context, type, { keyCode: keyCode, which: keyCode });
1176
1180
  }
1177
1181
  });
1178
- enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp', 'ember-testing/test'], function (exports, _emberRuntimeExtRsvp, _emberTestingTest) {
1182
+ enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp'], function (exports, _emberRuntimeExtRsvp) {
1179
1183
  'use strict';
1180
1184
 
1181
1185
  exports.default = pauseTest;
1182
1186
 
1183
1187
  function pauseTest() {
1184
- _emberTestingTest.default.adapter.asyncStart();
1185
1188
  return new _emberRuntimeExtRsvp.default.Promise(function () {}, 'TestAdapter paused promise');
1186
1189
  }
1187
1190
  });
@@ -1525,7 +1528,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-testing/test/helpers', 'ember
1525
1528
  @return {Object} A promise that will never resolve
1526
1529
  @public
1527
1530
  */
1528
- _emberTestingTestHelpers.registerHelper('pauseTest', _emberTestingHelpersPause_test.default);
1531
+ _emberTestingTestHelpers.registerAsyncHelper('pauseTest', _emberTestingHelpersPause_test.default);
1529
1532
 
1530
1533
  /**
1531
1534
  Triggers the given DOM event on the element identified by the provided selector.
@@ -2045,12 +2048,14 @@ enifed('ember-testing/test/run', ['exports', 'ember-metal/run_loop'], function (
2045
2048
  }
2046
2049
  }
2047
2050
  });
2048
- enifed("ember-testing/test/waiters", ["exports"], function (exports) {
2049
- "use strict";
2051
+ enifed('ember-testing/test/waiters', ['exports', 'ember-metal/features', 'ember-metal/debug'], function (exports, _emberMetalFeatures, _emberMetalDebug) {
2052
+ 'use strict';
2050
2053
 
2051
2054
  exports.registerWaiter = registerWaiter;
2052
2055
  exports.unregisterWaiter = unregisterWaiter;
2053
2056
  exports.checkWaiters = checkWaiters;
2057
+ exports.generateDeprecatedWaitersArray = generateDeprecatedWaitersArray;
2058
+
2054
2059
  var contexts = [];
2055
2060
  var callbacks = [];
2056
2061
 
@@ -2123,6 +2128,20 @@ enifed("ember-testing/test/waiters", ["exports"], function (exports) {
2123
2128
  callbacks.splice(i, 1);
2124
2129
  }
2125
2130
 
2131
+ /**
2132
+ Iterates through each registered test waiter, and invokes
2133
+ its callback. If any waiter returns false, this method will return
2134
+ true indicating that the waiters have not settled yet.
2135
+
2136
+ This is generally used internally from the acceptance/integration test
2137
+ infrastructure.
2138
+
2139
+ @public
2140
+ @for Ember.Test
2141
+ @static
2142
+ @method checkWaiters
2143
+ */
2144
+
2126
2145
  function checkWaiters() {
2127
2146
  if (!callbacks.length) {
2128
2147
  return false;
@@ -2145,8 +2164,22 @@ enifed("ember-testing/test/waiters", ["exports"], function (exports) {
2145
2164
  }
2146
2165
  return -1;
2147
2166
  }
2167
+
2168
+ function generateDeprecatedWaitersArray() {
2169
+ _emberMetalDebug.deprecate('Usage of `Ember.Test.waiters` is deprecated. Please refactor to `Ember.Test.checkWaiters`.', !false, { until: '2.8.0', id: 'ember-testing.test-waiters' });
2170
+
2171
+ var array = new Array(callbacks.length);
2172
+ for (var i = 0; i < callbacks.length; i++) {
2173
+ var context = contexts[i];
2174
+ var callback = callbacks[i];
2175
+
2176
+ array[i] = [context, callback];
2177
+ }
2178
+
2179
+ return array;
2180
+ }
2148
2181
  });
2149
- enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter) {
2182
+ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter', 'ember-metal/features'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter, _emberMetalFeatures) {
2150
2183
  /**
2151
2184
  @module ember
2152
2185
  @submodule ember-testing
@@ -2185,6 +2218,10 @@ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-te
2185
2218
  unregisterWaiter: _emberTestingTestWaiters.unregisterWaiter
2186
2219
  };
2187
2220
 
2221
+ if (false) {
2222
+ Test.checkWaiters = _emberTestingTestWaiters.checkWaiters;
2223
+ }
2224
+
2188
2225
  /**
2189
2226
  Used to allow ember-testing to communicate with a specific testing
2190
2227
  framework.
@@ -2210,6 +2247,10 @@ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-te
2210
2247
  set: _emberTestingTestAdapter.setAdapter
2211
2248
  });
2212
2249
 
2250
+ Object.defineProperty(Test, 'waiters', {
2251
+ get: _emberTestingTestWaiters.generateDeprecatedWaitersArray
2252
+ });
2253
+
2213
2254
  exports.default = Test;
2214
2255
  });
2215
2256
  requireModule("ember-testing");
@@ -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.7.0-beta.1
9
+ * @version 2.7.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, Ember;
@@ -3751,7 +3751,7 @@ enifed('ember/index', ['exports', 'ember-metal', 'ember-runtime', 'ember-views',
3751
3751
  enifed("ember/version", ["exports"], function (exports) {
3752
3752
  "use strict";
3753
3753
 
3754
- exports.default = "2.7.0-beta.1";
3754
+ exports.default = "2.7.0-beta.2";
3755
3755
  });
3756
3756
  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) {
3757
3757
  'use strict';
@@ -3760,6 +3760,15 @@ enifed('ember-application/index', ['exports', 'ember-metal/core', 'ember-metal/f
3760
3760
  _emberMetalCore.default.Resolver = _emberApplicationSystemResolver.Resolver;
3761
3761
  _emberMetalCore.default.DefaultResolver = _emberApplicationSystemResolver.default;
3762
3762
 
3763
+ if (false) {
3764
+ _emberMetalCore.default.Engine = _emberApplicationSystemEngine.default;
3765
+
3766
+ // Expose `EngineInstance` and `ApplicationInstance` for easy overriding.
3767
+ // Reanalyze whether to continue exposing these after feature flag is removed.
3768
+ _emberMetalCore.default.EngineInstance = _emberApplicationSystemEngineInstance.default;
3769
+ _emberMetalCore.default.ApplicationInstance = _emberApplicationSystemApplicationInstance.default;
3770
+ }
3771
+
3763
3772
  _emberRuntimeSystemLazy_load.runLoadHooks('Ember.Application', _emberApplicationSystemApplication.default);
3764
3773
  });
3765
3774
  // reexports
@@ -3768,9 +3777,6 @@ enifed('ember-application/index', ['exports', 'ember-metal/core', 'ember-metal/f
3768
3777
  @module ember
3769
3778
  @submodule ember-application
3770
3779
  */
3771
-
3772
- // Expose `EngineInstance` and `ApplicationInstance` for easy overriding.
3773
- // Reanalyze whether to continue exposing these after feature flag is removed.
3774
3780
  enifed('ember-application/system/application-instance', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/run_loop', 'ember-metal/computed', 'ember-runtime/mixins/registry_proxy', 'ember-metal/assign', 'ember-environment', 'ember-runtime/ext/rsvp', 'ember-views/system/jquery', 'ember-application/system/engine-instance'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalRun_loop, _emberMetalComputed, _emberRuntimeMixinsRegistry_proxy, _emberMetalAssign, _emberEnvironment, _emberRuntimeExtRsvp, _emberViewsSystemJquery, _emberApplicationSystemEngineInstance) {
3775
3781
  /**
3776
3782
  @module ember
@@ -4372,9 +4378,8 @@ enifed('ember-application/system/application', ['exports', 'ember-environment',
4372
4378
  not receive events.* If you specify a custom root element, make sure you only
4373
4379
  append views inside it!
4374
4380
 
4375
- To learn more about the advantages of event delegation and the Ember view
4376
- layer, and a list of the event listeners that are setup by default, visit the
4377
- [Ember View Layer guide](http://emberjs.com/guides/understanding-ember/the-view-layer/#toc_event-delegation).
4381
+ To learn more about the events Ember components use, see
4382
+ [components/handling-events](https://guides.emberjs.com/v2.6.0/components/handling-events/#toc_event-names).
4378
4383
 
4379
4384
  ### Initializers
4380
4385
 
@@ -5144,13 +5149,12 @@ enifed('ember-application/system/application', ['exports', 'ember-environment',
5144
5149
  `controller` property
5145
5150
  * the application view receives the application template as its
5146
5151
  `defaultTemplate` property
5147
- @private
5148
- @method buildRegistry
5152
+ @method buildRegistry
5149
5153
  @static
5150
5154
  @param {Ember.Application} namespace the application for which to
5151
5155
  build the registry
5152
5156
  @return {Ember.Registry} the built registry
5153
- @public
5157
+ @private
5154
5158
  */
5155
5159
  buildRegistry: function (application) {
5156
5160
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
@@ -5231,6 +5235,10 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
5231
5235
 
5232
5236
  'use strict';
5233
5237
 
5238
+ var _templateObject = _taggedTemplateLiteralLoose(['-bucket-cache:main'], ['-bucket-cache:main']);
5239
+
5240
+ function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }
5241
+
5234
5242
  /**
5235
5243
  The `EngineInstance` encapsulates all of the stateful aspects of a
5236
5244
  running `Engine`.
@@ -5318,6 +5326,10 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
5318
5326
 
5319
5327
  _emberMetalDebug.assert('An engine instance\'s parent must be set via `setEngineParent(engine, parent)` prior to calling `engine.boot()`.', _emberApplicationSystemEngineParent.getEngineParent(this));
5320
5328
 
5329
+ if (false) {
5330
+ this.cloneParentDependencies();
5331
+ }
5332
+
5321
5333
  this.base.runInstanceInitializers(this);
5322
5334
 
5323
5335
  this._booted = true;
@@ -5347,25 +5359,57 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
5347
5359
  }
5348
5360
  });
5349
5361
 
5350
- exports.default = EngineInstance;
5351
- });
5362
+ if (false) {
5363
+ EngineInstance.reopen({
5364
+ /**
5365
+ Build a new `Ember.EngineInstance` that's a child of this instance.
5366
+ Engines must be registered by name with their parent engine
5367
+ (or application).
5368
+ @private
5369
+ @method buildChildEngineInstance
5370
+ @param name {String} the registered name of the engine.
5371
+ @param options {Object} options provided to the engine instance.
5372
+ @return {Ember.EngineInstance,Error}
5373
+ */
5374
+ buildChildEngineInstance: function (name) {
5375
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
5352
5376
 
5353
- /**
5354
- Build a new `Ember.EngineInstance` that's a child of this instance.
5355
- Engines must be registered by name with their parent engine
5356
- (or application).
5357
- @private
5358
- @method buildChildEngineInstance
5359
- @param name {String} the registered name of the engine.
5360
- @param options {Object} options provided to the engine instance.
5361
- @return {Ember.EngineInstance,Error}
5362
- */
5377
+ var Engine = this.lookup('engine:' + name);
5363
5378
 
5364
- /**
5365
- Clone dependencies shared between an engine instance and its parent.
5366
- @private
5367
- @method cloneParentDependencies
5368
- */
5379
+ if (!Engine) {
5380
+ throw new _emberMetalError.default('You attempted to mount the engine \'' + name + '\', but it is not registered with its parent.');
5381
+ }
5382
+
5383
+ var engineInstance = Engine.buildInstance(options);
5384
+
5385
+ _emberApplicationSystemEngineParent.setEngineParent(engineInstance, this);
5386
+
5387
+ return engineInstance;
5388
+ },
5389
+
5390
+ /**
5391
+ Clone dependencies shared between an engine instance and its parent.
5392
+ @private
5393
+ @method cloneParentDependencies
5394
+ */
5395
+ cloneParentDependencies: function () {
5396
+ var _this2 = this;
5397
+
5398
+ var parent = _emberApplicationSystemEngineParent.getEngineParent(this);
5399
+
5400
+ ['route:basic', 'event_dispatcher:main', _containerRegistry.privatize(_templateObject), 'service:-routing'].forEach(function (key) {
5401
+ _this2.register(key, parent.resolveRegistration(key));
5402
+ });
5403
+
5404
+ ['router:main', '-view-registry:main'].forEach(function (key) {
5405
+ _this2.register(key, parent.lookup(key), { instantiate: false });
5406
+ });
5407
+ }
5408
+ });
5409
+ }
5410
+
5411
+ exports.default = EngineInstance;
5412
+ });
5369
5413
  enifed('ember-application/system/engine-parent', ['exports', 'ember-metal/symbol'], function (exports, _emberMetalSymbol) {
5370
5414
  /**
5371
5415
  @module ember
@@ -5453,7 +5497,7 @@ enifed('ember-application/system/engine', ['exports', 'ember-runtime/system/name
5453
5497
  this._super.apply(this, arguments);
5454
5498
 
5455
5499
  if (this[GLIMMER] === undefined) {
5456
- this[GLIMMER] = _emberMetalFeatures.default('ember-glimmer');
5500
+ this[GLIMMER] = false;
5457
5501
  }
5458
5502
 
5459
5503
  this.buildRegistry();
@@ -5742,13 +5786,12 @@ enifed('ember-application/system/engine', ['exports', 'ember-runtime/system/name
5742
5786
  `controller` property
5743
5787
  * the application view receives the application template as its
5744
5788
  `defaultTemplate` property
5745
- @private
5746
- @method buildRegistry
5789
+ @method buildRegistry
5747
5790
  @static
5748
5791
  @param {Ember.Application} namespace the application for which to
5749
5792
  build the registry
5750
5793
  @return {Ember.Registry} the built registry
5751
- @public
5794
+ @private
5752
5795
  */
5753
5796
  buildRegistry: function (namespace) {
5754
5797
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
@@ -6053,10 +6096,9 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6053
6096
  Convert the string name of the form 'type:name' to
6054
6097
  a Javascript object with the parsed aspects of the name
6055
6098
  broken out.
6056
- @protected
6057
- @param {String} fullName the lookup string
6099
+ @param {String} fullName the lookup string
6058
6100
  @method parseName
6059
- @public
6101
+ @protected
6060
6102
  */
6061
6103
 
6062
6104
  parseName: function (fullName) {
@@ -6106,10 +6148,9 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6106
6148
  Application namespace in assertions to describe the
6107
6149
  precise name of the class that Ember is looking for, rather than
6108
6150
  container keys.
6109
- @protected
6110
- @param {String} fullName the lookup string
6151
+ @param {String} fullName the lookup string
6111
6152
  @method lookupDescription
6112
- @public
6153
+ @protected
6113
6154
  */
6114
6155
  lookupDescription: function (fullName) {
6115
6156
  var parsedName = this.parseName(fullName);
@@ -6135,11 +6176,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6135
6176
  /**
6136
6177
  Given a parseName object (output from `parseName`), apply
6137
6178
  the conventions expected by `Ember.Router`
6138
- @protected
6139
- @param {Object} parsedName a parseName object with the parsed
6179
+ @param {Object} parsedName a parseName object with the parsed
6140
6180
  fullName lookup string
6141
6181
  @method useRouterNaming
6142
- @public
6182
+ @protected
6143
6183
  */
6144
6184
  useRouterNaming: function (parsedName) {
6145
6185
  parsedName.name = parsedName.name.replace(/\./g, '_');
@@ -6149,11 +6189,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6149
6189
  },
6150
6190
  /**
6151
6191
  Look up the template in Ember.TEMPLATES
6152
- @protected
6153
- @param {Object} parsedName a parseName object with the parsed
6192
+ @param {Object} parsedName a parseName object with the parsed
6154
6193
  fullName lookup string
6155
6194
  @method resolveTemplate
6156
- @public
6195
+ @protected
6157
6196
  */
6158
6197
  resolveTemplate: function (parsedName) {
6159
6198
  var templateName = parsedName.fullNameWithoutType.replace(/\./g, '/');
@@ -6163,11 +6202,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6163
6202
 
6164
6203
  /**
6165
6204
  Lookup the view using `resolveOther`
6166
- @protected
6167
- @param {Object} parsedName a parseName object with the parsed
6205
+ @param {Object} parsedName a parseName object with the parsed
6168
6206
  fullName lookup string
6169
6207
  @method resolveView
6170
- @public
6208
+ @protected
6171
6209
  */
6172
6210
  resolveView: function (parsedName) {
6173
6211
  this.useRouterNaming(parsedName);
@@ -6176,11 +6214,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6176
6214
 
6177
6215
  /**
6178
6216
  Lookup the controller using `resolveOther`
6179
- @protected
6180
- @param {Object} parsedName a parseName object with the parsed
6217
+ @param {Object} parsedName a parseName object with the parsed
6181
6218
  fullName lookup string
6182
6219
  @method resolveController
6183
- @public
6220
+ @protected
6184
6221
  */
6185
6222
  resolveController: function (parsedName) {
6186
6223
  this.useRouterNaming(parsedName);
@@ -6188,11 +6225,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6188
6225
  },
6189
6226
  /**
6190
6227
  Lookup the route using `resolveOther`
6191
- @protected
6192
- @param {Object} parsedName a parseName object with the parsed
6228
+ @param {Object} parsedName a parseName object with the parsed
6193
6229
  fullName lookup string
6194
6230
  @method resolveRoute
6195
- @public
6231
+ @protected
6196
6232
  */
6197
6233
  resolveRoute: function (parsedName) {
6198
6234
  this.useRouterNaming(parsedName);
@@ -6201,11 +6237,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6201
6237
 
6202
6238
  /**
6203
6239
  Lookup the model on the Application namespace
6204
- @protected
6205
- @param {Object} parsedName a parseName object with the parsed
6240
+ @param {Object} parsedName a parseName object with the parsed
6206
6241
  fullName lookup string
6207
6242
  @method resolveModel
6208
- @public
6243
+ @protected
6209
6244
  */
6210
6245
  resolveModel: function (parsedName) {
6211
6246
  var className = _emberRuntimeSystemString.classify(parsedName.name);
@@ -6218,11 +6253,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6218
6253
  /**
6219
6254
  Look up the specified object (from parsedName) on the appropriate
6220
6255
  namespace (usually on the Application)
6221
- @protected
6222
- @param {Object} parsedName a parseName object with the parsed
6256
+ @param {Object} parsedName a parseName object with the parsed
6223
6257
  fullName lookup string
6224
6258
  @method resolveHelper
6225
- @public
6259
+ @protected
6226
6260
  */
6227
6261
  resolveHelper: function (parsedName) {
6228
6262
  return this.resolveOther(parsedName);
@@ -6230,11 +6264,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/debug', 'em
6230
6264
  /**
6231
6265
  Look up the specified object (from parsedName) on the appropriate
6232
6266
  namespace (usually on the Application)
6233
- @protected
6234
- @param {Object} parsedName a parseName object with the parsed
6267
+ @param {Object} parsedName a parseName object with the parsed
6235
6268
  fullName lookup string
6236
6269
  @method resolveOther
6237
- @public
6270
+ @protected
6238
6271
  */
6239
6272
  resolveOther: function (parsedName) {
6240
6273
  var className = _emberRuntimeSystemString.classify(parsedName.name) + _emberRuntimeSystemString.classify(parsedName.type);
@@ -6482,10 +6515,12 @@ enifed('ember-console/index', ['exports', 'ember-environment'], function (export
6482
6515
  ```javascript
6483
6516
  Ember.Logger.assert(true); // undefined
6484
6517
  Ember.Logger.assert(true === false); // Throws an Assertion failed error.
6518
+ Ember.Logger.assert(true === false, 'Something invalid'); // Throws an Assertion failed error with message.
6485
6519
  ```
6486
6520
  @method assert
6487
6521
  @for Ember.Logger
6488
6522
  @param {Boolean} bool Value to test
6523
+ @param {String} message Assertion message on failed
6489
6524
  @public
6490
6525
  */
6491
6526
  assert: consoleMethod('assert') || assertPolyfill
@@ -6864,6 +6899,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment',
6864
6899
  _emberMetalFeatures.FEATURES['features-stripped-test'] = true;
6865
6900
  var featuresWereStripped = true;
6866
6901
 
6902
+ if (false) {
6903
+ exports.featuresWereStripped = featuresWereStripped = false;
6904
+ }
6905
+
6867
6906
  delete _emberMetalFeatures.FEATURES['features-stripped-test'];
6868
6907
  _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
6869
6908
 
@@ -8008,7 +8047,7 @@ enifed('ember-htmlbars/component', ['exports', 'ember-metal/debug', 'ember-metal
8008
8047
  }),
8009
8048
 
8010
8049
  /**
8011
- Calls a action passed to a component.
8050
+ Calls an action passed to a component.
8012
8051
  For example a component for playing or pausing music may translate click events
8013
8052
  into action notifications of "play" or "stop" depending on some internal state
8014
8053
  of the component:
@@ -9010,8 +9049,7 @@ enifed('ember-htmlbars/components/link-to', ['exports', 'ember-console', 'ember-
9010
9049
 
9011
9050
  /**
9012
9051
  Event handler that invokes the link, activating the associated route.
9013
- @private
9014
- @method _invoke
9052
+ @method _invoke
9015
9053
  @param {Event} event
9016
9054
  @private
9017
9055
  */
@@ -10405,9 +10443,15 @@ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember
10405
10443
 
10406
10444
  // Determine if this is an initial render or a re-render.
10407
10445
  if (state.manager) {
10408
- var templateMeta = state.manager.block.template.meta;
10446
+ var sm = state.manager;
10447
+ var templateMeta = null;
10448
+ if (sm.block) {
10449
+ templateMeta = sm.block.template.meta;
10450
+ } else if (sm.scope && sm.scope._view) {
10451
+ templateMeta = sm.scope._view.template.meta;
10452
+ }
10409
10453
  env.meta.moduleName = templateMeta && templateMeta.moduleName || env.meta && env.meta.moduleName;
10410
- _emberHtmlbarsUtilsExtractPositionalParams.default(renderNode, state.manager.component.constructor, params, attrs, false);
10454
+ _emberHtmlbarsUtilsExtractPositionalParams.default(renderNode, sm.component.constructor, params, attrs, false);
10411
10455
  state.manager.rerender(env, attrs, visitor);
10412
10456
  return;
10413
10457
  }
@@ -12669,7 +12713,6 @@ enifed('ember-htmlbars/keywords/mut', ['exports', 'ember-metal/debug', 'ember-me
12669
12713
  See a [2.0 blog post](http://emberjs.com/blog/2015/05/10/run-up-to-two-oh.html#toc_the-code-mut-code-helper) for
12670
12714
  additional information on using `{{mut}}`.
12671
12715
 
12672
- @public
12673
12716
  @method mut
12674
12717
  @param {Object} [attr] the "two-way" attribute that can be modified.
12675
12718
  @for Ember.Templates.helpers
@@ -12737,7 +12780,9 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
12737
12780
 
12738
12781
  'use strict';
12739
12782
 
12740
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@' + _emberVersion.default;
12783
+ if (!false) {
12784
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@' + _emberVersion.default;
12785
+ }
12741
12786
 
12742
12787
  /**
12743
12788
  The `{{outlet}}` helper lets you specify where a child route will render in
@@ -12789,7 +12834,6 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
12789
12834
 
12790
12835
  Note: Your content __will not render__ if there isn't an `{{outlet}}` for it.
12791
12836
 
12792
- @public
12793
12837
  @method outlet
12794
12838
  @param {String} [name]
12795
12839
  @for Ember.Templates.helpers
@@ -16204,7 +16248,7 @@ enifed('ember-htmlbars/system/append-templated-view', ['exports', 'ember-metal/d
16204
16248
  return parentView.appendChild(viewClassOrInstance, props);
16205
16249
  }
16206
16250
  });
16207
- enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'htmlbars-runtime', 'ember-htmlbars/hooks/get-value', 'ember-htmlbars/streams/utils'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _htmlbarsRuntime, _emberHtmlbarsHooksGetValue, _emberHtmlbarsStreamsUtils) {
16251
+ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'htmlbars-runtime', 'htmlbars-util/template-utils', 'ember-htmlbars/hooks/get-value', 'ember-htmlbars/streams/utils'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _htmlbarsRuntime, _htmlbarsUtilTemplateUtils, _emberHtmlbarsHooksGetValue, _emberHtmlbarsStreamsUtils) {
16208
16252
  'use strict';
16209
16253
 
16210
16254
  exports.default = buildComponentTemplate;
@@ -16264,7 +16308,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16264
16308
  if (typeof val === 'string') {
16265
16309
  attrs[prop] = val;
16266
16310
  } else {
16267
- attrs[prop] = ['value', val];
16311
+ attrs[prop] = _htmlbarsUtilTemplateUtils.buildStatement('value', val);
16268
16312
  }
16269
16313
  }
16270
16314
 
@@ -16371,17 +16415,17 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16371
16415
  if (colonIndex !== -1) {
16372
16416
  var attrProperty = attr.substring(0, colonIndex);
16373
16417
  attrName = attr.substring(colonIndex + 1);
16374
- expression = ['get', '' + streamBasePath + attrProperty];
16418
+ expression = _htmlbarsUtilTemplateUtils.buildStatement('get', '' + streamBasePath + attrProperty);
16375
16419
  } else if (attrs[attr]) {
16376
16420
  // TODO: For compatibility with 1.x, we probably need to `set`
16377
16421
  // the component's attribute here if it is a CP, but we also
16378
16422
  // probably want to suspend observers and allow the
16379
16423
  // willUpdateAttrs logic to trigger observers at the correct time.
16380
16424
  attrName = attr;
16381
- expression = ['value', attrs[attr]];
16425
+ expression = _htmlbarsUtilTemplateUtils.buildStatement('value', attrs[attr]);
16382
16426
  } else {
16383
16427
  attrName = attr;
16384
- expression = ['get', '' + streamBasePath + attr];
16428
+ expression = _htmlbarsUtilTemplateUtils.buildStatement('get', '' + streamBasePath + attr);
16385
16429
  }
16386
16430
 
16387
16431
  _emberMetalDebug.assert('You cannot use class as an attributeBinding, use classNameBindings instead.', attrName !== 'class');
@@ -16399,11 +16443,11 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16399
16443
  }
16400
16444
 
16401
16445
  if (_emberMetalProperty_get.get(component, 'isVisible') === false) {
16402
- var hiddenStyle = ['subexpr', '-html-safe', ['display: none;'], []];
16446
+ var hiddenStyle = _htmlbarsUtilTemplateUtils.buildStatement('subexpr', '-html-safe', ['display: none;'], []);
16403
16447
  var existingStyle = normalized.style;
16404
16448
 
16405
16449
  if (existingStyle) {
16406
- normalized.style = ['subexpr', 'concat', [existingStyle, ' ', hiddenStyle], []];
16450
+ normalized.style = _htmlbarsUtilTemplateUtils.buildStatement('subexpr', 'concat', [existingStyle, ' ', hiddenStyle], []);
16407
16451
  } else {
16408
16452
  normalized.style = hiddenStyle;
16409
16453
  }
@@ -16420,7 +16464,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16420
16464
 
16421
16465
  if (attrs.class) {
16422
16466
  if (_emberHtmlbarsStreamsUtils.isStream(attrs.class)) {
16423
- normalizedClass.push(['subexpr', '-normalize-class', [['value', attrs.class.path], ['value', attrs.class]], []]);
16467
+ normalizedClass.push(_htmlbarsUtilTemplateUtils.buildStatement('subexpr', '-normalize-class', [_htmlbarsUtilTemplateUtils.buildStatement('value', attrs.class.path), _htmlbarsUtilTemplateUtils.buildStatement('value', attrs.class)], []));
16424
16468
  } else {
16425
16469
  normalizedClass.push(attrs.class);
16426
16470
  }
@@ -16441,7 +16485,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16441
16485
  }
16442
16486
 
16443
16487
  if (normalizeClass.length) {
16444
- return ['subexpr', '-join-classes', normalizedClass, []];
16488
+ return _htmlbarsUtilTemplateUtils.buildStatement('subexpr', '-join-classes', normalizedClass, []);
16445
16489
  }
16446
16490
  }
16447
16491
 
@@ -16466,11 +16510,11 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16466
16510
 
16467
16511
  var prop = '' + streamBasePath + propName;
16468
16512
 
16469
- output.push(['subexpr', '-normalize-class', [
16513
+ output.push(_htmlbarsUtilTemplateUtils.buildStatement('subexpr', '-normalize-class', [
16470
16514
  // params
16471
- ['value', propName], ['get', prop]], [
16515
+ _htmlbarsUtilTemplateUtils.buildStatement('value', propName), _htmlbarsUtilTemplateUtils.buildStatement('get', prop)], [
16472
16516
  // hash
16473
- 'activeClass', activeClass, 'inactiveClass', inactiveClass]]);
16517
+ 'activeClass', activeClass, 'inactiveClass', inactiveClass]));
16474
16518
  }
16475
16519
  }
16476
16520
 
@@ -16828,7 +16872,7 @@ enifed("ember-htmlbars/templates/component", ["exports", "ember-htmlbars-templat
16828
16872
  dom.insertBoundary(fragment, null);
16829
16873
  return morphs;
16830
16874
  },
16831
- statements: [["content", "yield", ["loc", [null, [1, 0], [1, 9]]]]],
16875
+ statements: [["content", "yield", ["loc", [null, [1, 0], [1, 9]]], 0, 0, 0, 0]],
16832
16876
  locals: [],
16833
16877
  templates: []
16834
16878
  };
@@ -16881,7 +16925,7 @@ enifed("ember-htmlbars/templates/link-to", ["exports", "ember-htmlbars-template-
16881
16925
  dom.insertBoundary(fragment, null);
16882
16926
  return morphs;
16883
16927
  },
16884
- statements: [["content", "linkTitle", ["loc", [null, [1, 17], [1, 30]]]]],
16928
+ statements: [["content", "linkTitle", ["loc", [null, [1, 17], [1, 30]]], 0, 0, 0, 0]],
16885
16929
  locals: [],
16886
16930
  templates: []
16887
16931
  };
@@ -16906,7 +16950,7 @@ enifed("ember-htmlbars/templates/link-to", ["exports", "ember-htmlbars-template-
16906
16950
  dom.insertBoundary(fragment, null);
16907
16951
  return morphs;
16908
16952
  },
16909
- statements: [["content", "yield", ["loc", [null, [1, 38], [1, 47]]]]],
16953
+ statements: [["content", "yield", ["loc", [null, [1, 38], [1, 47]]], 0, 0, 0, 0]],
16910
16954
  locals: [],
16911
16955
  templates: []
16912
16956
  };
@@ -16930,7 +16974,7 @@ enifed("ember-htmlbars/templates/link-to", ["exports", "ember-htmlbars-template-
16930
16974
  dom.insertBoundary(fragment, null);
16931
16975
  return morphs;
16932
16976
  },
16933
- statements: [["block", "if", [["get", "linkTitle", ["loc", [null, [1, 6], [1, 15]]]]], [], 0, 1, ["loc", [null, [1, 0], [1, 54]]]]],
16977
+ statements: [["block", "if", [["get", "linkTitle", ["loc", [null, [1, 6], [1, 15]]], 0, 0, 0, 0]], [], 0, 1, ["loc", [null, [1, 0], [1, 54]]]]],
16934
16978
  locals: [],
16935
16979
  templates: [child0, child1]
16936
16980
  };
@@ -16959,7 +17003,7 @@ enifed("ember-htmlbars/templates/top-level-view", ["exports", "ember-htmlbars-te
16959
17003
  dom.insertBoundary(fragment, null);
16960
17004
  return morphs;
16961
17005
  },
16962
- statements: [["content", "outlet", ["loc", [null, [1, 0], [1, 10]]]]],
17006
+ statements: [["content", "outlet", ["loc", [null, [1, 0], [1, 10]]], 0, 0, 0, 0]],
16963
17007
  locals: [],
16964
17008
  templates: []
16965
17009
  };
@@ -19945,7 +19989,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils
19945
19989
  }
19946
19990
  } else {
19947
19991
  if (params) {
19948
- _emberMetalUtils.apply(target, method, params);
19992
+ method.apply(target, params);
19949
19993
  } else {
19950
19994
  method.call(target);
19951
19995
  }
@@ -20685,10 +20729,13 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
20685
20729
  }
20686
20730
 
20687
20731
  var flaggedInstrument;
20688
-
20689
- exports.flaggedInstrument = flaggedInstrument = function (name, payload, callback) {
20690
- return callback();
20691
- };
20732
+ if (false) {
20733
+ exports.flaggedInstrument = flaggedInstrument = instrument;
20734
+ } else {
20735
+ exports.flaggedInstrument = flaggedInstrument = function (name, payload, callback) {
20736
+ return callback();
20737
+ };
20738
+ }
20692
20739
  exports.flaggedInstrument = flaggedInstrument;
20693
20740
 
20694
20741
  function withFinalizer(callback, finalizer, payload, binding) {
@@ -21057,6 +21104,12 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe
21057
21104
  }
21058
21105
  };
21059
21106
 
21107
+ if (false) {
21108
+ Libraries.prototype.isRegistered = function (name) {
21109
+ return !!this._getLibraryByName(name);
21110
+ };
21111
+ }
21112
+
21060
21113
  exports.default = new Libraries();
21061
21114
  });
21062
21115
  enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_object'], function (exports, _emberMetalUtils, _emberMetalEmpty_object) {
@@ -21306,13 +21359,13 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob
21306
21359
  @constructor
21307
21360
  */
21308
21361
  function Map() {
21309
- if (this instanceof this.constructor) {
21362
+ if (this instanceof Map) {
21310
21363
  this._keys = OrderedSet.create();
21311
21364
  this._keys._silenceRemoveDeprecation = true;
21312
21365
  this._values = new _emberMetalEmpty_object.default();
21313
21366
  this.size = 0;
21314
21367
  } else {
21315
- missingNew('OrderedSet');
21368
+ missingNew('Map');
21316
21369
  }
21317
21370
  }
21318
21371
 
@@ -21910,35 +21963,37 @@ enifed('ember-metal/meta', ['exports', 'ember-metal/features', 'ember-metal/meta
21910
21963
  descriptor: META_DESC
21911
21964
  };
21912
21965
 
21913
- Meta.prototype.readInheritedValue = function (key, subkey) {
21914
- var internalKey = '_' + key;
21966
+ if (true) {
21967
+ Meta.prototype.readInheritedValue = function (key, subkey) {
21968
+ var internalKey = '_' + key;
21915
21969
 
21916
- var pointer = this;
21970
+ var pointer = this;
21917
21971
 
21918
- while (pointer !== undefined) {
21919
- var map = pointer[internalKey];
21920
- if (map) {
21921
- var value = map[subkey];
21922
- if (value !== undefined || subkey in map) {
21923
- return map[subkey];
21972
+ while (pointer !== undefined) {
21973
+ var map = pointer[internalKey];
21974
+ if (map) {
21975
+ var value = map[subkey];
21976
+ if (value !== undefined || subkey in map) {
21977
+ return map[subkey];
21978
+ }
21924
21979
  }
21980
+ pointer = pointer.parent;
21925
21981
  }
21926
- pointer = pointer.parent;
21927
- }
21928
21982
 
21929
- return UNDEFINED;
21930
- };
21983
+ return UNDEFINED;
21984
+ };
21931
21985
 
21932
- Meta.prototype.writeValue = function (obj, key, value) {
21933
- var descriptor = _emberMetalUtils.lookupDescriptor(obj, key);
21934
- var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter;
21986
+ Meta.prototype.writeValue = function (obj, key, value) {
21987
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, key);
21988
+ var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter;
21935
21989
 
21936
- if (isMandatorySetter) {
21937
- this.writeValues(key, value);
21938
- } else {
21939
- obj[key] = value;
21940
- }
21941
- };
21990
+ if (isMandatorySetter) {
21991
+ this.writeValues(key, value);
21992
+ } else {
21993
+ obj[key] = value;
21994
+ }
21995
+ };
21996
+ }
21942
21997
 
21943
21998
  // choose the one appropriate for given platform
21944
21999
  var setMeta = function (obj, meta) {
@@ -23494,18 +23549,20 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
23494
23549
 
23495
23550
  if (desc instanceof Descriptor) {
23496
23551
  value = desc;
23497
-
23498
- if (watching) {
23499
- Object.defineProperty(obj, keyName, {
23500
- configurable: true,
23501
- enumerable: true,
23502
- writable: true,
23503
- value: value
23504
- });
23552
+ if (true) {
23553
+ if (watching) {
23554
+ Object.defineProperty(obj, keyName, {
23555
+ configurable: true,
23556
+ enumerable: true,
23557
+ writable: true,
23558
+ value: value
23559
+ });
23560
+ } else {
23561
+ obj[keyName] = value;
23562
+ }
23505
23563
  } else {
23506
23564
  obj[keyName] = value;
23507
23565
  }
23508
-
23509
23566
  if (desc.setup) {
23510
23567
  desc.setup(obj, keyName);
23511
23568
  }
@@ -23513,20 +23570,24 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
23513
23570
  if (desc == null) {
23514
23571
  value = data;
23515
23572
 
23516
- if (watching) {
23517
- meta.writeValues(keyName, data);
23573
+ if (true) {
23574
+ if (watching) {
23575
+ meta.writeValues(keyName, data);
23518
23576
 
23519
- var defaultDescriptor = {
23520
- configurable: true,
23521
- enumerable: true,
23522
- set: MANDATORY_SETTER_FUNCTION(keyName),
23523
- get: DEFAULT_GETTER_FUNCTION(keyName)
23524
- };
23577
+ var defaultDescriptor = {
23578
+ configurable: true,
23579
+ enumerable: true,
23580
+ set: MANDATORY_SETTER_FUNCTION(keyName),
23581
+ get: DEFAULT_GETTER_FUNCTION(keyName)
23582
+ };
23525
23583
 
23526
- if (REDEFINE_SUPPORTED) {
23527
- Object.defineProperty(obj, keyName, defaultDescriptor);
23584
+ if (REDEFINE_SUPPORTED) {
23585
+ Object.defineProperty(obj, keyName, defaultDescriptor);
23586
+ } else {
23587
+ handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
23588
+ }
23528
23589
  } else {
23529
- handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
23590
+ obj[keyName] = data;
23530
23591
  }
23531
23592
  } else {
23532
23593
  obj[keyName] = data;
@@ -24034,7 +24095,11 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
24034
24095
  } else {
24035
24096
  _emberMetalProperty_events.propertyWillChange(obj, keyName);
24036
24097
 
24037
- setWithMandatorySetter(meta, obj, keyName, value);
24098
+ if (true) {
24099
+ setWithMandatorySetter(meta, obj, keyName, value);
24100
+ } else {
24101
+ obj[keyName] = value;
24102
+ }
24038
24103
 
24039
24104
  _emberMetalProperty_events.propertyDidChange(obj, keyName);
24040
24105
  }
@@ -24042,23 +24107,25 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
24042
24107
  return value;
24043
24108
  }
24044
24109
 
24045
- var setWithMandatorySetter = function (meta, obj, keyName, value) {
24046
- if (meta && meta.peekWatching(keyName) > 0) {
24047
- makeEnumerable(obj, keyName);
24048
- meta.writeValue(obj, keyName, value);
24049
- } else {
24050
- obj[keyName] = value;
24051
- }
24052
- };
24110
+ if (true) {
24111
+ var setWithMandatorySetter = function (meta, obj, keyName, value) {
24112
+ if (meta && meta.peekWatching(keyName) > 0) {
24113
+ makeEnumerable(obj, keyName);
24114
+ meta.writeValue(obj, keyName, value);
24115
+ } else {
24116
+ obj[keyName] = value;
24117
+ }
24118
+ };
24053
24119
 
24054
- var makeEnumerable = function (obj, key) {
24055
- var desc = Object.getOwnPropertyDescriptor(obj, key);
24120
+ var makeEnumerable = function (obj, key) {
24121
+ var desc = Object.getOwnPropertyDescriptor(obj, key);
24056
24122
 
24057
- if (desc && desc.set && desc.set.isMandatorySetter) {
24058
- desc.enumerable = true;
24059
- Object.defineProperty(obj, key, desc);
24060
- }
24061
- };
24123
+ if (desc && desc.set && desc.set.isMandatorySetter) {
24124
+ desc.enumerable = true;
24125
+ Object.defineProperty(obj, key, desc);
24126
+ }
24127
+ };
24128
+ }
24062
24129
 
24063
24130
  function setPath(root, path, value, tolerant) {
24064
24131
  var keyName;
@@ -24112,11 +24179,10 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
24112
24179
  enifed("ember-metal/replace", ["exports"], function (exports) {
24113
24180
  "use strict";
24114
24181
 
24115
- exports._replace = _replace;
24116
24182
  exports.default = replace;
24117
24183
  var splice = Array.prototype.splice;
24118
24184
 
24119
- function _replace(array, idx, amt, objects) {
24185
+ function replace(array, idx, amt, objects) {
24120
24186
  var args = [].concat(objects);
24121
24187
  var ret = [];
24122
24188
  // https://code.google.com/p/chromium/issues/detail?id=56588
@@ -24141,42 +24207,6 @@ enifed("ember-metal/replace", ["exports"], function (exports) {
24141
24207
  }
24142
24208
  return ret;
24143
24209
  }
24144
-
24145
- /**
24146
- Replaces objects in an array with the passed objects.
24147
-
24148
- ```javascript
24149
- var array = [1,2,3];
24150
- Ember.EnumerableUtils.replace(array, 1, 2, [4, 5]); // [1, 4, 5]
24151
-
24152
- var array = [1,2,3];
24153
- Ember.EnumerableUtils.replace(array, 1, 1, [4, 5]); // [1, 4, 5, 3]
24154
-
24155
- var array = [1,2,3];
24156
- Ember.EnumerableUtils.replace(array, 10, 1, [4, 5]); // [1, 2, 3, 4, 5]
24157
- ```
24158
-
24159
- @method replace
24160
- @deprecated
24161
- @param {Array} array The array the objects should be inserted into.
24162
- @param {Number} idx Starting index in the array to replace. If *idx* >=
24163
- length, then append to the end of the array.
24164
- @param {Number} amt Number of elements that should be removed from the array,
24165
- starting at *idx*
24166
- @param {Array} objects An array of zero or more objects that should be
24167
- inserted into the array at *idx*
24168
-
24169
- @return {Array} The modified array.
24170
- @public
24171
- */
24172
-
24173
- function replace(array, idx, amt, objects) {
24174
- if (array.replace) {
24175
- return array.replace(idx, amt, objects);
24176
- } else {
24177
- return _replace(array, idx, amt, objects);
24178
- }
24179
- }
24180
24210
  });
24181
24211
  enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/utils', 'ember-metal/property_events', 'backburner'], function (exports, _emberMetalDebug, _emberMetalTesting, _emberMetalError_handler, _emberMetalUtils, _emberMetalProperty_events, _backburner) {
24182
24212
  'use strict';
@@ -25025,7 +25055,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
25025
25055
  exports.tryInvoke = tryInvoke;
25026
25056
  exports.makeArray = makeArray;
25027
25057
  exports.inspect = inspect;
25028
- exports.apply = apply;
25029
25058
  exports.applyStr = applyStr;
25030
25059
  exports.lookupDescriptor = lookupDescriptor;
25031
25060
  exports.toString = toString;
@@ -25267,15 +25296,16 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
25267
25296
  }
25268
25297
 
25269
25298
  var HAS_SUPER_PATTERN = /\.(_super|call\(this|apply\(this)/;
25299
+ var fnToString = Function.prototype.toString;
25270
25300
 
25271
25301
  var checkHasSuper = (function () {
25272
- var sourceAvailable = (function () {
25302
+ var sourceAvailable = fnToString.call(function () {
25273
25303
  return this;
25274
- }).toString().indexOf('return this') > -1;
25304
+ }).indexOf('return this') > -1;
25275
25305
 
25276
25306
  if (sourceAvailable) {
25277
25307
  return function checkHasSuper(func) {
25278
- return HAS_SUPER_PATTERN.test(func.toString());
25308
+ return HAS_SUPER_PATTERN.test(fnToString.call(func));
25279
25309
  };
25280
25310
  }
25281
25311
 
@@ -25322,31 +25352,8 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
25322
25352
  function _wrap(func, superFunc) {
25323
25353
  function superWrapper() {
25324
25354
  var orig = this._super;
25325
- var ret = undefined;
25326
25355
  this._super = superFunc;
25327
- switch (arguments.length) {
25328
- case 0:
25329
- ret = func.call(this);break;
25330
- case 1:
25331
- ret = func.call(this, arguments[0]);break;
25332
- case 2:
25333
- ret = func.call(this, arguments[0], arguments[1]);break;
25334
- case 3:
25335
- ret = func.call(this, arguments[0], arguments[1], arguments[2]);break;
25336
- case 4:
25337
- ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3]);break;
25338
- case 5:
25339
- ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);break;
25340
- default:
25341
- // v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
25342
- // we may want to keep this around till this ages out on mobile
25343
- var args = new Array(arguments.length);
25344
- for (var x = 0; x < arguments.length; x++) {
25345
- args[x] = arguments[x];
25346
- }
25347
- ret = func.apply(this, args);
25348
- break;
25349
- }
25356
+ var ret = func.apply(this, arguments);
25350
25357
  this._super = orig;
25351
25358
  return ret;
25352
25359
  }
@@ -25503,36 +25510,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
25503
25510
  return '{' + ret.join(', ') + '}';
25504
25511
  }
25505
25512
 
25506
- // The following functions are intentionally minified to keep the functions
25507
- // below Chrome's function body size inlining limit of 600 chars.
25508
- /**
25509
- @param {Object} t target
25510
- @param {Function} m method
25511
- @param {Array} a args
25512
- @private
25513
- */
25514
-
25515
- function apply(t, m, a) {
25516
- var l = a && a.length;
25517
- if (!a || !l) {
25518
- return m.call(t);
25519
- }
25520
- switch (l) {
25521
- case 1:
25522
- return m.call(t, a[0]);
25523
- case 2:
25524
- return m.call(t, a[0], a[1]);
25525
- case 3:
25526
- return m.call(t, a[0], a[1], a[2]);
25527
- case 4:
25528
- return m.call(t, a[0], a[1], a[2], a[3]);
25529
- case 5:
25530
- return m.call(t, a[0], a[1], a[2], a[3], a[4]);
25531
- default:
25532
- return m.apply(t, a);
25533
- }
25534
- }
25535
-
25536
25513
  /**
25537
25514
  @param {Object} t target
25538
25515
  @param {String} m method
@@ -25616,55 +25593,61 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
25616
25593
  obj.willWatchProperty(keyName);
25617
25594
  }
25618
25595
 
25619
- // NOTE: this is dropped for prod + minified builds
25620
- handleMandatorySetter(m, obj, keyName);
25596
+ if (true) {
25597
+ // NOTE: this is dropped for prod + minified builds
25598
+ handleMandatorySetter(m, obj, keyName);
25599
+ }
25621
25600
  } else {
25622
25601
  m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1);
25623
25602
  }
25624
25603
  }
25625
25604
 
25626
- var hasOwnProperty = function (obj, key) {
25627
- return Object.prototype.hasOwnProperty.call(obj, key);
25628
- };
25629
-
25630
- var propertyIsEnumerable = function (obj, key) {
25631
- return Object.prototype.propertyIsEnumerable.call(obj, key);
25632
- };
25605
+ if (true) {
25606
+ (function () {
25607
+ var hasOwnProperty = function (obj, key) {
25608
+ return Object.prototype.hasOwnProperty.call(obj, key);
25609
+ };
25633
25610
 
25634
- // Future traveler, although this code looks scary. It merely exists in
25635
- // development to aid in development asertions. Production builds of
25636
- // ember strip this entire block out
25637
- handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
25638
- var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
25639
- var configurable = descriptor ? descriptor.configurable : true;
25640
- var isWritable = descriptor ? descriptor.writable : true;
25641
- var hasValue = descriptor ? 'value' in descriptor : true;
25642
- var possibleDesc = descriptor && descriptor.value;
25643
- var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
25611
+ var propertyIsEnumerable = function (obj, key) {
25612
+ return Object.prototype.propertyIsEnumerable.call(obj, key);
25613
+ };
25644
25614
 
25645
- if (isDescriptor) {
25646
- return;
25647
- }
25615
+ // Future traveler, although this code looks scary. It merely exists in
25616
+ // development to aid in development asertions. Production builds of
25617
+ // ember strip this entire block out
25618
+ handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
25619
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
25620
+ var configurable = descriptor ? descriptor.configurable : true;
25621
+ var isWritable = descriptor ? descriptor.writable : true;
25622
+ var hasValue = descriptor ? 'value' in descriptor : true;
25623
+ var possibleDesc = descriptor && descriptor.value;
25624
+ var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
25625
+
25626
+ if (isDescriptor) {
25627
+ return;
25628
+ }
25648
25629
 
25649
- // this x in Y deopts, so keeping it in this function is better;
25650
- if (configurable && isWritable && hasValue && keyName in obj) {
25651
- var desc = {
25652
- configurable: true,
25653
- set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName),
25654
- enumerable: propertyIsEnumerable(obj, keyName),
25655
- get: undefined
25656
- };
25630
+ // this x in Y deopts, so keeping it in this function is better;
25631
+ if (configurable && isWritable && hasValue && keyName in obj) {
25632
+ var desc = {
25633
+ configurable: true,
25634
+ set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName),
25635
+ enumerable: propertyIsEnumerable(obj, keyName),
25636
+ get: undefined
25637
+ };
25657
25638
 
25658
- if (hasOwnProperty(obj, keyName)) {
25659
- m.writeValues(keyName, obj[keyName]);
25660
- desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName);
25661
- } else {
25662
- desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName);
25663
- }
25639
+ if (hasOwnProperty(obj, keyName)) {
25640
+ m.writeValues(keyName, obj[keyName]);
25641
+ desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName);
25642
+ } else {
25643
+ desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName);
25644
+ }
25664
25645
 
25665
- Object.defineProperty(obj, keyName, desc);
25666
- }
25667
- };
25646
+ Object.defineProperty(obj, keyName, desc);
25647
+ }
25648
+ };
25649
+ })();
25650
+ }
25668
25651
 
25669
25652
  function unwatchKey(obj, keyName, meta) {
25670
25653
  var m = meta || _emberMetalMeta.meta(obj);
@@ -25683,33 +25666,35 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
25683
25666
  obj.didUnwatchProperty(keyName);
25684
25667
  }
25685
25668
 
25686
- // It is true, the following code looks quite WAT. But have no fear, It
25687
- // exists purely to improve development ergonomics and is removed from
25688
- // ember.min.js and ember.prod.js builds.
25689
- //
25690
- // Some further context: Once a property is watched by ember, bypassing `set`
25691
- // for mutation, will bypass observation. This code exists to assert when
25692
- // that occurs, and attempt to provide more helpful feedback. The alternative
25693
- // is tricky to debug partially observable properties.
25694
- if (!desc && keyName in obj) {
25695
- var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
25696
-
25697
- if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
25698
- if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) {
25699
- var possibleValue = m.readInheritedValue('values', keyName);
25700
- if (possibleValue === _emberMetalMeta.UNDEFINED) {
25701
- delete obj[keyName];
25702
- return;
25669
+ if (true) {
25670
+ // It is true, the following code looks quite WAT. But have no fear, It
25671
+ // exists purely to improve development ergonomics and is removed from
25672
+ // ember.min.js and ember.prod.js builds.
25673
+ //
25674
+ // Some further context: Once a property is watched by ember, bypassing `set`
25675
+ // for mutation, will bypass observation. This code exists to assert when
25676
+ // that occurs, and attempt to provide more helpful feedback. The alternative
25677
+ // is tricky to debug partially observable properties.
25678
+ if (!desc && keyName in obj) {
25679
+ var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
25680
+
25681
+ if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
25682
+ if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) {
25683
+ var possibleValue = m.readInheritedValue('values', keyName);
25684
+ if (possibleValue === _emberMetalMeta.UNDEFINED) {
25685
+ delete obj[keyName];
25686
+ return;
25687
+ }
25703
25688
  }
25704
- }
25705
25689
 
25706
- Object.defineProperty(obj, keyName, {
25707
- configurable: true,
25708
- enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
25709
- writable: true,
25710
- value: m.peekValues(keyName)
25711
- });
25712
- m.deleteFromValues(keyName);
25690
+ Object.defineProperty(obj, keyName, {
25691
+ configurable: true,
25692
+ enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
25693
+ writable: true,
25694
+ value: m.peekValues(keyName)
25695
+ });
25696
+ m.deleteFromValues(keyName);
25697
+ }
25713
25698
  }
25714
25699
  }
25715
25700
  } else if (count > 1) {
@@ -27392,6 +27377,10 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug', 'ember-metal
27392
27377
  this.matches = [];
27393
27378
  this.explicitIndex = undefined;
27394
27379
  this.options = options;
27380
+
27381
+ if (false) {
27382
+ this.router = options && options.router;
27383
+ }
27395
27384
  }
27396
27385
 
27397
27386
  exports.default = DSL;
@@ -27421,7 +27410,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/debug', 'ember-metal
27421
27410
  createRoute(this, name + '_error', { path: dummyErrorRoute });
27422
27411
  }
27423
27412
 
27424
- if (_emberMetalFeatures.default('ember-route-serializers') && options.serialize && this.router) {
27413
+ if (false && options.serialize && this.router) {
27425
27414
  this.router._serializeMethods[name] = options.serialize;
27426
27415
  }
27427
27416
 
@@ -27618,6 +27607,10 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
27618
27607
 
27619
27608
  var DEFAULT_SERIALIZE = _emberMetalSymbol.default('DEFAULT_SERIALIZE');
27620
27609
 
27610
+ if (false) {
27611
+ defaultSerialize[DEFAULT_SERIALIZE] = true;
27612
+ }
27613
+
27621
27614
  function hasDefaultSerialize(route) {
27622
27615
  return !!route.serialize[DEFAULT_SERIALIZE];
27623
27616
  }
@@ -27714,6 +27707,12 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
27714
27707
  var controllerDefinedQueryParameterConfiguration = _emberMetalProperty_get.get(controllerProto, 'queryParams');
27715
27708
  var normalizedControllerQueryParameterConfiguration = _emberRoutingUtils.normalizeControllerQueryParams(controllerDefinedQueryParameterConfiguration);
27716
27709
  combinedQueryParameterConfiguration = mergeEachQueryParams(normalizedControllerQueryParameterConfiguration, queryParameterConfiguraton);
27710
+
27711
+ if (false) {
27712
+ if (controllerDefinedQueryParameterConfiguration.length) {
27713
+ _emberMetalDebug.deprecate('Configuring query parameters on a controller is deprecated. Migrate the query parameters configuration from the \'' + controllerName + '\' controller to the \'' + this.routeName + '\' route: ' + combinedQueryParameterConfiguration, false, { id: 'ember-routing.controller-configured-query-params', until: '3.0.0' });
27714
+ }
27715
+ }
27717
27716
  } else if (hasRouterDefinedQueryParams) {
27718
27717
  // the developer has not defined a controller but *has* supplied route query params.
27719
27718
  // Generate a class for them so we can later insert default values
@@ -27740,6 +27739,19 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
27740
27739
 
27741
27740
  var desc = combinedQueryParameterConfiguration[propName];
27742
27741
 
27742
+ if (false) {
27743
+ // apply default values to controllers
27744
+ // detect that default value defined on router config
27745
+ if (desc.hasOwnProperty('defaultValue')) {
27746
+ // detect that property was not defined on controller
27747
+ if (controllerProto[propName] === undefined) {
27748
+ controllerProto[propName] = desc.defaultValue;
27749
+ } else {
27750
+ deprecateQueryParamDefaultValuesSetOnController(controllerName, this.routeName, propName);
27751
+ }
27752
+ }
27753
+ }
27754
+
27743
27755
  var scope = desc.scope || 'model';
27744
27756
  var parts;
27745
27757
 
@@ -29416,9 +29428,13 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
29416
29428
  // into its outlets, which won't render anywhere. All of this
29417
29429
  // statefulness should get the machete in 2.0.
29418
29430
  this.connections[i] = {
29431
+ owner: connection.owner,
29419
29432
  into: connection.into,
29420
29433
  outlet: connection.outlet,
29421
- name: connection.name
29434
+ name: connection.name,
29435
+ controller: undefined,
29436
+ template: undefined,
29437
+ ViewClass: undefined
29422
29438
  };
29423
29439
  _emberMetalRun_loop.default.once(this.router, '_setOutlets');
29424
29440
  }
@@ -29591,12 +29607,16 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
29591
29607
  var keysAlreadyMergedOrSkippable;
29592
29608
  var qps = {};
29593
29609
 
29594
- keysAlreadyMergedOrSkippable = {
29595
- defaultValue: true,
29596
- type: true,
29597
- scope: true,
29598
- as: true
29599
- };
29610
+ if (false) {
29611
+ keysAlreadyMergedOrSkippable = {};
29612
+ } else {
29613
+ keysAlreadyMergedOrSkippable = {
29614
+ defaultValue: true,
29615
+ type: true,
29616
+ scope: true,
29617
+ as: true
29618
+ };
29619
+ }
29600
29620
 
29601
29621
  // first loop over all controller qps, merging them with any matching route qps
29602
29622
  // into a new empty object to avoid mutating.
@@ -29642,11 +29662,6 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/debug', 'ember-met
29642
29662
 
29643
29663
  exports.default = Route;
29644
29664
  });
29645
-
29646
- // apply default values to controllers
29647
- // detect that default value defined on router config
29648
-
29649
- // detect that property was not defined on controller
29650
29665
  enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/debug', 'ember-metal/error', 'ember-metal/features', '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/route', '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, _emberConsole, _emberMetalDebug, _emberMetalError, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalProperties, _emberMetalEmpty_object, _emberMetalComputed, _emberMetalAssign, _emberMetalRun_loop, _emberRuntimeSystemObject, _emberRuntimeMixinsEvented, _emberRoutingSystemRoute, _emberRoutingSystemDsl, _emberRoutingLocationApi, _emberRoutingUtils, _emberMetalUtils, _emberRoutingSystemRouter_state, _containerOwner, _emberMetalDictionary, _router4, _routerTransition) {
29651
29666
  'use strict';
29652
29667
 
@@ -29723,6 +29738,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
29723
29738
  enableLoadingSubstates: !!moduleBasedResolver
29724
29739
  };
29725
29740
 
29741
+ if (false) {
29742
+ options.router = this;
29743
+ }
29744
+
29726
29745
  return new _emberRoutingSystemDsl.default(null, options);
29727
29746
  },
29728
29747
 
@@ -29733,6 +29752,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
29733
29752
  this._qpCache = new _emberMetalEmpty_object.default();
29734
29753
  this._resetQueuedQueryParameterChanges();
29735
29754
  this._handledErrors = _emberMetalDictionary.default(null);
29755
+
29756
+ if (false) {
29757
+ this._serializeMethods = new _emberMetalEmpty_object.default();
29758
+ }
29736
29759
  },
29737
29760
 
29738
29761
  /*
@@ -30193,6 +30216,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30193
30216
 
30194
30217
  router.getHandler = this._getHandlerFunction();
30195
30218
 
30219
+ if (false) {
30220
+ router.getSerializer = this._getSerializerFunction();
30221
+ }
30222
+
30196
30223
  var doUpdateURL = function () {
30197
30224
  location.setURL(lastURL);
30198
30225
  };
@@ -30267,11 +30294,8 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30267
30294
  _emberMetalDebug.assert('The route ' + targetRouteName + ' was not found', targetRouteName && this.router.hasRoute(targetRouteName));
30268
30295
 
30269
30296
  var queryParams = {};
30270
- // merge in any queryParams from the active transition which could include
30271
- // queryparams from the url on initial load.
30272
- if (this.router.activeTransition) {
30273
- _emberMetalAssign.default(queryParams, this.router.activeTransition.queryParams);
30274
- }
30297
+
30298
+ this._processActiveTransitionQueryParams(targetRouteName, models, queryParams, _queryParams);
30275
30299
 
30276
30300
  _emberMetalAssign.default(queryParams, _queryParams);
30277
30301
  this._prepareQueryParams(targetRouteName, models, queryParams);
@@ -30284,6 +30308,29 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30284
30308
  return transition;
30285
30309
  },
30286
30310
 
30311
+ _processActiveTransitionQueryParams: function (targetRouteName, models, queryParams, _queryParams) {
30312
+ // merge in any queryParams from the active transition which could include
30313
+ // queryParams from the url on initial load.
30314
+ if (!this.router.activeTransition) {
30315
+ return;
30316
+ }
30317
+
30318
+ var unchangedQPs = {};
30319
+ var qpUpdates = this._qpUpdates || {};
30320
+ for (var key in this.router.activeTransition.queryParams) {
30321
+ if (!qpUpdates[key]) {
30322
+ unchangedQPs[key] = this.router.activeTransition.queryParams[key];
30323
+ }
30324
+ }
30325
+
30326
+ // We need to fully scope queryParams so that we can create one object
30327
+ // that represents both pased in queryParams and ones that aren't changed
30328
+ // from the active transition.
30329
+ this._fullyScopeQueryParams(targetRouteName, models, _queryParams);
30330
+ this._fullyScopeQueryParams(targetRouteName, models, unchangedQPs);
30331
+ _emberMetalAssign.default(queryParams, unchangedQPs);
30332
+ },
30333
+
30287
30334
  _prepareQueryParams: function (targetRouteName, models, queryParams) {
30288
30335
  this._hydrateUnsuppliedQueryParams(targetRouteName, models, queryParams);
30289
30336
  this._serializeQueryParams(targetRouteName, queryParams);
@@ -30329,6 +30376,30 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30329
30376
  };
30330
30377
  },
30331
30378
 
30379
+ _fullyScopeQueryParams: function (leafRouteName, contexts, queryParams) {
30380
+ var state = calculatePostTransitionState(this, leafRouteName, contexts);
30381
+ var handlerInfos = state.handlerInfos;
30382
+ _emberRoutingUtils.stashParamNames(this, handlerInfos);
30383
+
30384
+ for (var i = 0, len = handlerInfos.length; i < len; ++i) {
30385
+ var route = handlerInfos[i].handler;
30386
+ var qpMeta = _emberMetalProperty_get.get(route, '_qp');
30387
+
30388
+ for (var j = 0, qpLen = qpMeta.qps.length; j < qpLen; ++j) {
30389
+ var qp = qpMeta.qps[j];
30390
+
30391
+ var presentProp = qp.prop in queryParams && qp.prop || qp.scopedPropertyName in queryParams && qp.scopedPropertyName || qp.urlKey in queryParams && qp.urlKey;
30392
+
30393
+ if (presentProp) {
30394
+ if (presentProp !== qp.scopedPropertyName) {
30395
+ queryParams[qp.scopedPropertyName] = queryParams[presentProp];
30396
+ delete queryParams[presentProp];
30397
+ }
30398
+ }
30399
+ }
30400
+ }
30401
+ },
30402
+
30332
30403
  _hydrateUnsuppliedQueryParams: function (leafRouteName, contexts, queryParams) {
30333
30404
  var state = calculatePostTransitionState(this, leafRouteName, contexts);
30334
30405
  var handlerInfos = state.handlerInfos;
@@ -30342,7 +30413,7 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30342
30413
  for (var j = 0, qpLen = qpMeta.qps.length; j < qpLen; ++j) {
30343
30414
  var qp = qpMeta.qps[j];
30344
30415
 
30345
- var presentProp = qp.prop in queryParams && qp.prop || qp.scopedPropertyName in queryParams && qp.scopedPropertyName;
30416
+ var presentProp = qp.prop in queryParams && qp.prop || qp.scopedPropertyName in queryParams && qp.scopedPropertyName || qp.urlKey in queryParams && qp.urlKey;
30346
30417
 
30347
30418
  if (presentProp) {
30348
30419
  if (presentProp !== qp.scopedPropertyName) {
@@ -30607,6 +30678,10 @@ enifed('ember-routing/system/router', ['exports', 'ember-console', 'ember-metal/
30607
30678
 
30608
30679
  function updatePaths(router) {
30609
30680
  var infos = router.router.currentHandlerInfos;
30681
+ if (infos.length === 0) {
30682
+ return;
30683
+ }
30684
+
30610
30685
  var path = EmberRouter._routePath(infos);
30611
30686
  var currentRouteName = infos[infos.length - 1].name;
30612
30687
 
@@ -31111,7 +31186,7 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
31111
31186
  // ,'________________ \`-._`-','
31112
31187
  // `._ ```````````------...___ '-.._'-:
31113
31188
  // ```--.._ ,. ````--...__\-.
31114
- // `.--. `-` "INFINTIY IS LESS ____ | |`
31189
+ // `.--. `-` "INFINITY IS LESS ____ | |`
31115
31190
  // `. `. THAN BEYOND" ,'`````. ; ;`
31116
31191
  // `._`. __________ `. \'__/`
31117
31192
  // `-:._____/______/___/____`. \ `
@@ -32858,13 +32933,6 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/debug', 'ember-runtime/sys
32858
32933
  return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
32859
32934
  }
32860
32935
  });
32861
- enifed("ember-runtime/core", ["exports"], function (exports) {
32862
- "use strict";
32863
- });
32864
- /**
32865
- @module ember
32866
- @submodule ember-runtime
32867
- */
32868
32936
  enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/mixin'], function (exports, _emberEnvironment, _emberMetalDebug, _emberMetalComputed, _emberMetalMixin) {
32869
32937
  /**
32870
32938
  @module ember
@@ -32918,7 +32986,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met
32918
32986
  will not immediately trigger an update of the computed property, but
32919
32987
  will instead clear the cache so that it is updated when the next `get`
32920
32988
  is called on the property.
32921
- See [Ember.ComputedProperty](/api/classes/Ember.ComputedProperty.html), [Ember.computed](/api/#method_computed).
32989
+ See [Ember.ComputedProperty](/api/classes/Ember.ComputedProperty.html), [Ember.computed](/api/classes/Ember.computed.html).
32922
32990
  @method property
32923
32991
  @for Function
32924
32992
  @public
@@ -33264,7 +33332,9 @@ enifed('ember-runtime/index', ['exports', 'ember-metal', 'ember-runtime/is-equal
33264
33332
  EmComputed.filterBy = _emberRuntimeComputedReduce_computed_macros.filterBy;
33265
33333
  EmComputed.uniq = _emberRuntimeComputedReduce_computed_macros.uniq;
33266
33334
 
33267
- EmComputed.uniqBy = _emberRuntimeComputedReduce_computed_macros.uniqBy;
33335
+ if (true) {
33336
+ EmComputed.uniqBy = _emberRuntimeComputedReduce_computed_macros.uniqBy;
33337
+ }
33268
33338
 
33269
33339
  EmComputed.union = _emberRuntimeComputedReduce_computed_macros.union;
33270
33340
  EmComputed.intersect = _emberRuntimeComputedReduce_computed_macros.intersect;
@@ -33890,6 +33960,9 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
33890
33960
  }).readOnly(), _Mixin$create.lastObject = _emberMetalComputed.computed(function () {
33891
33961
  return objectAt(this, _emberMetalProperty_get.get(this, 'length') - 1);
33892
33962
  }).readOnly(), _Mixin$create.contains = function (obj) {
33963
+ if (false) {
33964
+ _emberMetalDebug.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
33965
+ }
33893
33966
 
33894
33967
  return this.indexOf(obj) >= 0;
33895
33968
  }, _Mixin$create.slice = function (beginIndex, endIndex) {
@@ -34060,6 +34133,56 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
34060
34133
  return this.__each;
34061
34134
  }).volatile(), _Mixin$create));
34062
34135
 
34136
+ if (false) {
34137
+ ArrayMixin.reopen({
34138
+ /**
34139
+ Returns `true` if the passed object can be found in the array.
34140
+ This method is a Polyfill for ES 2016 Array.includes.
34141
+ If no `startAt` argument is given, the starting location to
34142
+ search is 0. If it's negative, searches from the index of
34143
+ `this.length + startAt` by asc.
34144
+ ```javascript
34145
+ [1, 2, 3].includes(2); // true
34146
+ [1, 2, 3].includes(4); // false
34147
+ [1, 2, 3].includes(3, 2); // true
34148
+ [1, 2, 3].includes(3, 3); // false
34149
+ [1, 2, 3].includes(3, -1); // true
34150
+ [1, 2, 3].includes(1, -1); // false
34151
+ [1, 2, 3].includes(1, -4); // true
34152
+ [1, 2, NaN].includes(NaN); // true
34153
+ ```
34154
+ @method includes
34155
+ @param {Object} obj The object to search for.
34156
+ @param {Number} startAt optional starting location to search, default 0
34157
+ @return {Boolean} `true` if object is found in the array.
34158
+ @public
34159
+ */
34160
+ includes: function (obj, startAt) {
34161
+ var len = _emberMetalProperty_get.get(this, 'length');
34162
+ var idx, currentObj;
34163
+
34164
+ if (startAt === undefined) {
34165
+ startAt = 0;
34166
+ }
34167
+
34168
+ if (startAt < 0) {
34169
+ startAt += len;
34170
+ }
34171
+
34172
+ for (idx = startAt; idx < len; idx++) {
34173
+ currentObj = objectAt(this, idx);
34174
+
34175
+ // SameValueZero comparison (NaN !== NaN)
34176
+ if (obj === currentObj || obj !== obj && currentObj !== currentObj) {
34177
+ return true;
34178
+ }
34179
+ }
34180
+
34181
+ return false;
34182
+ }
34183
+ });
34184
+ }
34185
+
34063
34186
  exports.default = ArrayMixin;
34064
34187
  });
34065
34188
  // ES6TODO: Ember.A
@@ -34276,31 +34399,6 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
34276
34399
  @property @each
34277
34400
  @public
34278
34401
  */
34279
-
34280
- /**
34281
- Returns `true` if the passed object can be found in the array.
34282
- This method is a Polyfill for ES 2016 Array.includes.
34283
- If no `startAt` argument is given, the starting location to
34284
- search is 0. If it's negative, searches from the index of
34285
- `this.length + startAt` by asc.
34286
- ```javascript
34287
- [1, 2, 3].includes(2); // true
34288
- [1, 2, 3].includes(4); // false
34289
- [1, 2, 3].includes(3, 2); // true
34290
- [1, 2, 3].includes(3, 3); // false
34291
- [1, 2, 3].includes(3, -1); // true
34292
- [1, 2, 3].includes(1, -1); // false
34293
- [1, 2, 3].includes(1, -4); // true
34294
- [1, 2, NaN].includes(NaN); // true
34295
- ```
34296
- @method includes
34297
- @param {Object} obj The object to search for.
34298
- @param {Number} startAt optional starting location to search, default 0
34299
- @return {Boolean} `true` if object is found in the array.
34300
- @public
34301
- */
34302
-
34303
- // SameValueZero comparison (NaN !== NaN)
34304
34402
  enifed('ember-runtime/mixins/comparable', ['exports', 'ember-metal/mixin'], function (exports, _emberMetalMixin) {
34305
34403
  'use strict';
34306
34404
 
@@ -34810,6 +34908,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
34810
34908
  @public
34811
34909
  */
34812
34910
  contains: function (obj) {
34911
+ if (false) {
34912
+ _emberMetalDebug.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
34913
+ }
34813
34914
 
34814
34915
  var found = this.find(function (item) {
34815
34916
  return item === obj;
@@ -35592,54 +35693,98 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
35592
35693
  }
35593
35694
  });
35594
35695
 
35595
- Enumerable.reopen({
35596
- /**
35597
- Returns a new enumerable that contains only items containing a unique property value.
35598
- The default implementation returns an array regardless of the receiver type.
35599
- ```javascript
35600
- var arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];
35601
- arr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]
35602
- ```
35603
- @method uniqBy
35604
- @return {Ember.Enumerable}
35605
- @public
35606
- */
35696
+ if (true) {
35697
+ Enumerable.reopen({
35698
+ /**
35699
+ Returns a new enumerable that contains only items containing a unique property value.
35700
+ The default implementation returns an array regardless of the receiver type.
35701
+ ```javascript
35702
+ var arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];
35703
+ arr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]
35704
+ ```
35705
+ @method uniqBy
35706
+ @return {Ember.Enumerable}
35707
+ @public
35708
+ */
35607
35709
 
35608
- uniqBy: function (key) {
35609
- var ret = emberA();
35610
- var seen = new _emberMetalEmpty_object.default();
35710
+ uniqBy: function (key) {
35711
+ var ret = emberA();
35712
+ var seen = new _emberMetalEmpty_object.default();
35611
35713
 
35612
- this.forEach(function (item) {
35613
- var guid = _emberMetalUtils.guidFor(_emberMetalProperty_get.get(item, key));
35614
- if (!(guid in seen)) {
35615
- seen[guid] = true;
35616
- ret.push(item);
35714
+ this.forEach(function (item) {
35715
+ var guid = _emberMetalUtils.guidFor(_emberMetalProperty_get.get(item, key));
35716
+ if (!(guid in seen)) {
35717
+ seen[guid] = true;
35718
+ ret.push(item);
35719
+ }
35720
+ });
35721
+
35722
+ return ret;
35723
+ }
35724
+ });
35725
+ }
35726
+
35727
+ if (false) {
35728
+ Enumerable.reopen({
35729
+ /**
35730
+ Returns `true` if the passed object can be found in the enumerable.
35731
+ ```javascript
35732
+ [1, 2, 3].includes(2); // true
35733
+ [1, 2, 3].includes(4); // false
35734
+ [1, 2, undefined].includes(undefined); // true
35735
+ [1, 2, null].includes(null); // true
35736
+ [1, 2, NaN].includes(NaN); // true
35737
+ ```
35738
+ @method includes
35739
+ @param {Object} obj The object to search for.
35740
+ @return {Boolean} `true` if object is found in the enumerable.
35741
+ @public
35742
+ */
35743
+ includes: function (obj) {
35744
+ _emberMetalDebug.assert('Enumerable#includes cannot accept a second argument "startAt" as enumerable items are unordered.', arguments.length === 1);
35745
+
35746
+ var len = _emberMetalProperty_get.get(this, 'length');
35747
+ var idx, next;
35748
+ var last = null;
35749
+ var found = false;
35750
+
35751
+ var context = popCtx();
35752
+
35753
+ for (idx = 0; idx < len && !found; idx++) {
35754
+ next = this.nextObject(idx, last, context);
35755
+
35756
+ found = obj === next || obj !== obj && next !== next;
35757
+
35758
+ last = next;
35617
35759
  }
35618
- });
35619
35760
 
35620
- return ret;
35621
- }
35622
- });
35623
- exports.default = Enumerable;
35624
- });
35761
+ next = last = null;
35762
+ context = pushCtx(context);
35625
35763
 
35626
- /**
35627
- Returns `true` if the passed object can be found in the enumerable.
35628
- ```javascript
35629
- [1, 2, 3].includes(2); // true
35630
- [1, 2, 3].includes(4); // false
35631
- [1, 2, undefined].includes(undefined); // true
35632
- [1, 2, null].includes(null); // true
35633
- [1, 2, NaN].includes(NaN); // true
35634
- ```
35635
- @method includes
35636
- @param {Object} obj The object to search for.
35637
- @return {Boolean} `true` if object is found in the enumerable.
35638
- @public
35639
- */
35640
- // nothing to do
35764
+ return found;
35765
+ },
35766
+
35767
+ without: function (value) {
35768
+ if (!this.includes(value)) {
35769
+ return this; // nothing to do
35770
+ }
35641
35771
 
35642
- // SameValueZero comparison (NaN !== NaN)
35772
+ var ret = emberA();
35773
+
35774
+ this.forEach(function (k) {
35775
+ // SameValueZero comparison (NaN !== NaN)
35776
+ if (!(k === value || k !== k && value !== value)) {
35777
+ ret[ret.length] = k;
35778
+ }
35779
+ });
35780
+
35781
+ return ret;
35782
+ }
35783
+ });
35784
+ }
35785
+
35786
+ exports.default = Enumerable;
35787
+ });
35643
35788
  enifed('ember-runtime/mixins/evented', ['exports', 'ember-metal/mixin', 'ember-metal/events'], function (exports, _emberMetalMixin, _emberMetalEvents) {
35644
35789
  'use strict';
35645
35790
 
@@ -36234,7 +36379,11 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
36234
36379
  addObject: function (obj) {
36235
36380
  var included;
36236
36381
 
36237
- included = this.contains(obj);
36382
+ if (false) {
36383
+ included = this.includes(obj);
36384
+ } else {
36385
+ included = this.contains(obj);
36386
+ }
36238
36387
 
36239
36388
  if (!included) {
36240
36389
  this.pushObject(obj);
@@ -37902,7 +38051,11 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
37902
38051
  if (typeof this.setUnknownProperty === 'function' && !(keyName in this)) {
37903
38052
  this.setUnknownProperty(keyName, value);
37904
38053
  } else {
37905
- _emberMetalProperties.defineProperty(this, keyName, null, value); // setup mandatory setter
38054
+ if (true) {
38055
+ _emberMetalProperties.defineProperty(this, keyName, null, value); // setup mandatory setter
38056
+ } else {
38057
+ this[keyName] = value;
38058
+ }
37906
38059
  }
37907
38060
  }
37908
38061
  }
@@ -39097,7 +39250,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
39097
39250
  if (len === 0) {
39098
39251
  this.splice(idx, amt);
39099
39252
  } else {
39100
- _emberMetalReplace._replace(this, idx, amt, objects);
39253
+ _emberMetalReplace.default(this, idx, amt, objects);
39101
39254
  }
39102
39255
 
39103
39256
  this.arrayContentDidChange(idx, amt, len);
@@ -39806,8 +39959,11 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'embe
39806
39959
  var compile, compileSpec, compileOptions;
39807
39960
 
39808
39961
  // Note we don't really want to expose this from main file
39809
-
39810
- compileOptions = _require.default('ember-htmlbars-template-compiler/system/compile-options').default;
39962
+ if (false) {
39963
+ compileOptions = _require.default('ember-glimmer-template-compiler/system/compile-options').default;
39964
+ } else {
39965
+ compileOptions = _require.default('ember-htmlbars-template-compiler/system/compile-options').default;
39966
+ }
39811
39967
 
39812
39968
  exports.default = function (string) {
39813
39969
  if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) {
@@ -39853,8 +40009,11 @@ enifed('ember-template-compiler/compiler', ['exports', 'ember-metal/features', '
39853
40009
 
39854
40010
  function pickCompiler() {
39855
40011
  var compiler = undefined;
39856
-
39857
- compiler = _require.default('ember-htmlbars-template-compiler');
40012
+ if (false) {
40013
+ compiler = _require.default('ember-glimmer-template-compiler');
40014
+ } else {
40015
+ compiler = _require.default('ember-htmlbars-template-compiler');
40016
+ }
39858
40017
 
39859
40018
  return compiler;
39860
40019
  }
@@ -40531,46 +40690,74 @@ enifed('ember-templates/component', ['exports', 'ember-metal/features', 'require
40531
40690
  'use strict';
40532
40691
 
40533
40692
  exports.default = (function () {
40534
- return _require.default('ember-htmlbars/component').default;
40693
+ if (false) {
40694
+ return _require.default('ember-glimmer/component').default;
40695
+ } else {
40696
+ return _require.default('ember-htmlbars/component').default;
40697
+ }
40535
40698
  })();
40536
40699
  });
40537
40700
  enifed('ember-templates/components/checkbox', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
40538
40701
  'use strict';
40539
40702
 
40540
40703
  exports.default = (function () {
40541
- return _require.default('ember-htmlbars/components/checkbox').default;
40704
+ if (false) {
40705
+ return _require.default('ember-glimmer/components/checkbox').default;
40706
+ } else {
40707
+ return _require.default('ember-htmlbars/components/checkbox').default;
40708
+ }
40542
40709
  })();
40543
40710
  });
40544
40711
  enifed('ember-templates/components/link-to', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
40545
40712
  'use strict';
40546
40713
 
40547
40714
  exports.default = (function () {
40548
- return _require.default('ember-htmlbars/components/link-to').default;
40715
+ if (false) {
40716
+ return _require.default('ember-glimmer/components/link-to').default;
40717
+ } else {
40718
+ return _require.default('ember-htmlbars/components/link-to').default;
40719
+ }
40549
40720
  })();
40550
40721
  });
40551
40722
  enifed('ember-templates/components/text_area', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
40552
40723
  'use strict';
40553
40724
 
40554
40725
  exports.default = (function () {
40555
- return _require.default('ember-htmlbars/components/text_area').default;
40726
+ if (false) {
40727
+ return _require.default('ember-glimmer/components/text_area').default;
40728
+ } else {
40729
+ return _require.default('ember-htmlbars/components/text_area').default;
40730
+ }
40556
40731
  })();
40557
40732
  });
40558
40733
  enifed('ember-templates/components/text_field', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
40559
40734
  'use strict';
40560
40735
 
40561
40736
  exports.default = (function () {
40562
- return _require.default('ember-htmlbars/components/text_field').default;
40737
+ if (false) {
40738
+ return _require.default('ember-glimmer/components/text_field').default;
40739
+ } else {
40740
+ return _require.default('ember-htmlbars/components/text_field').default;
40741
+ }
40563
40742
  })();
40564
40743
  });
40565
40744
  enifed('ember-templates/helper', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
40566
40745
  'use strict';
40567
40746
 
40568
40747
  exports.default = (function () {
40569
- return _require.default('ember-htmlbars/helper').default;
40748
+ if (false) {
40749
+ return _require.default('ember-glimmer/helper').default;
40750
+ } else {
40751
+ return _require.default('ember-htmlbars/helper').default;
40752
+ }
40570
40753
  })();
40571
40754
 
40572
40755
  var helper = (function () {
40573
- return _require.default('ember-htmlbars/helper').helper;
40756
+ if (false) {
40757
+ return _require.default('ember-glimmer/helper').helper;
40758
+ } else {
40759
+ return _require.default('ember-htmlbars/helper').helper;
40760
+ }
40574
40761
  })();
40575
40762
  exports.helper = helper;
40576
40763
  });
@@ -40610,17 +40797,29 @@ enifed('ember-templates/renderer', ['exports', 'ember-metal/features', 'require'
40610
40797
  'use strict';
40611
40798
 
40612
40799
  var InteractiveRenderer = (function () {
40613
- return _require.default('ember-htmlbars/renderer').InteractiveRenderer;
40800
+ if (false) {
40801
+ return _require.default('ember-glimmer/renderer').InteractiveRenderer;
40802
+ } else {
40803
+ return _require.default('ember-htmlbars/renderer').InteractiveRenderer;
40804
+ }
40614
40805
  })();
40615
40806
 
40616
40807
  exports.InteractiveRenderer = InteractiveRenderer;
40617
40808
  var InertRenderer = (function () {
40618
- return _require.default('ember-htmlbars/renderer').InertRenderer;
40809
+ if (false) {
40810
+ return _require.default('ember-glimmer/renderer').InertRenderer;
40811
+ } else {
40812
+ return _require.default('ember-htmlbars/renderer').InertRenderer;
40813
+ }
40619
40814
  })();
40620
40815
 
40621
40816
  exports.InertRenderer = InertRenderer;
40622
40817
  var Renderer = (function () {
40623
- return _require.default('ember-htmlbars/renderer').Renderer;
40818
+ if (false) {
40819
+ return _require.default('ember-glimmer/renderer').Renderer;
40820
+ } else {
40821
+ return _require.default('ember-htmlbars/renderer').Renderer;
40822
+ }
40624
40823
  })();
40625
40824
  exports.Renderer = Renderer;
40626
40825
  });
@@ -41173,13 +41372,12 @@ enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
41173
41372
  return app.testHelpers.triggerEvent(selector, context, type, { keyCode: keyCode, which: keyCode });
41174
41373
  }
41175
41374
  });
41176
- enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp', 'ember-testing/test'], function (exports, _emberRuntimeExtRsvp, _emberTestingTest) {
41375
+ enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp'], function (exports, _emberRuntimeExtRsvp) {
41177
41376
  'use strict';
41178
41377
 
41179
41378
  exports.default = pauseTest;
41180
41379
 
41181
41380
  function pauseTest() {
41182
- _emberTestingTest.default.adapter.asyncStart();
41183
41381
  return new _emberRuntimeExtRsvp.default.Promise(function () {}, 'TestAdapter paused promise');
41184
41382
  }
41185
41383
  });
@@ -41523,7 +41721,7 @@ enifed('ember-testing/helpers', ['exports', 'ember-testing/test/helpers', 'ember
41523
41721
  @return {Object} A promise that will never resolve
41524
41722
  @public
41525
41723
  */
41526
- _emberTestingTestHelpers.registerHelper('pauseTest', _emberTestingHelpersPause_test.default);
41724
+ _emberTestingTestHelpers.registerAsyncHelper('pauseTest', _emberTestingHelpersPause_test.default);
41527
41725
 
41528
41726
  /**
41529
41727
  Triggers the given DOM event on the element identified by the provided selector.
@@ -42043,12 +42241,14 @@ enifed('ember-testing/test/run', ['exports', 'ember-metal/run_loop'], function (
42043
42241
  }
42044
42242
  }
42045
42243
  });
42046
- enifed("ember-testing/test/waiters", ["exports"], function (exports) {
42047
- "use strict";
42244
+ enifed('ember-testing/test/waiters', ['exports', 'ember-metal/features', 'ember-metal/debug'], function (exports, _emberMetalFeatures, _emberMetalDebug) {
42245
+ 'use strict';
42048
42246
 
42049
42247
  exports.registerWaiter = registerWaiter;
42050
42248
  exports.unregisterWaiter = unregisterWaiter;
42051
42249
  exports.checkWaiters = checkWaiters;
42250
+ exports.generateDeprecatedWaitersArray = generateDeprecatedWaitersArray;
42251
+
42052
42252
  var contexts = [];
42053
42253
  var callbacks = [];
42054
42254
 
@@ -42121,6 +42321,20 @@ enifed("ember-testing/test/waiters", ["exports"], function (exports) {
42121
42321
  callbacks.splice(i, 1);
42122
42322
  }
42123
42323
 
42324
+ /**
42325
+ Iterates through each registered test waiter, and invokes
42326
+ its callback. If any waiter returns false, this method will return
42327
+ true indicating that the waiters have not settled yet.
42328
+
42329
+ This is generally used internally from the acceptance/integration test
42330
+ infrastructure.
42331
+
42332
+ @public
42333
+ @for Ember.Test
42334
+ @static
42335
+ @method checkWaiters
42336
+ */
42337
+
42124
42338
  function checkWaiters() {
42125
42339
  if (!callbacks.length) {
42126
42340
  return false;
@@ -42143,8 +42357,22 @@ enifed("ember-testing/test/waiters", ["exports"], function (exports) {
42143
42357
  }
42144
42358
  return -1;
42145
42359
  }
42360
+
42361
+ function generateDeprecatedWaitersArray() {
42362
+ _emberMetalDebug.deprecate('Usage of `Ember.Test.waiters` is deprecated. Please refactor to `Ember.Test.checkWaiters`.', !false, { until: '2.8.0', id: 'ember-testing.test-waiters' });
42363
+
42364
+ var array = new Array(callbacks.length);
42365
+ for (var i = 0; i < callbacks.length; i++) {
42366
+ var context = contexts[i];
42367
+ var callback = callbacks[i];
42368
+
42369
+ array[i] = [context, callback];
42370
+ }
42371
+
42372
+ return array;
42373
+ }
42146
42374
  });
42147
- enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter) {
42375
+ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter', 'ember-metal/features'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter, _emberMetalFeatures) {
42148
42376
  /**
42149
42377
  @module ember
42150
42378
  @submodule ember-testing
@@ -42183,6 +42411,10 @@ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-te
42183
42411
  unregisterWaiter: _emberTestingTestWaiters.unregisterWaiter
42184
42412
  };
42185
42413
 
42414
+ if (false) {
42415
+ Test.checkWaiters = _emberTestingTestWaiters.checkWaiters;
42416
+ }
42417
+
42186
42418
  /**
42187
42419
  Used to allow ember-testing to communicate with a specific testing
42188
42420
  framework.
@@ -42208,6 +42440,10 @@ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-te
42208
42440
  set: _emberTestingTestAdapter.setAdapter
42209
42441
  });
42210
42442
 
42443
+ Object.defineProperty(Test, 'waiters', {
42444
+ get: _emberTestingTestWaiters.generateDeprecatedWaitersArray
42445
+ });
42446
+
42211
42447
  exports.default = Test;
42212
42448
  });
42213
42449
  enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember-metal/symbol', 'ember-metal/property_events'], function (exports, _emberMetalMixin, _emberMetalSymbol, _emberMetalProperty_events) {
@@ -43397,8 +43633,7 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
43397
43633
  },
43398
43634
 
43399
43635
  /**
43400
- @private
43401
- Creates a new DOM element, renders the view into it, then returns the
43636
+ Creates a new DOM element, renders the view into it, then returns the
43402
43637
  element.
43403
43638
  By default, the element created and rendered into will be a `BODY` element,
43404
43639
  since this is the default context that views are rendered into when being
@@ -45571,10 +45806,12 @@ enifed('htmlbars-runtime/expression-visitor', ['exports'], function (exports) {
45571
45806
 
45572
45807
  // Primitive literals are unambiguously non-array representations of
45573
45808
  // themselves.
45574
- if (typeof node !== 'object' || node === null) {
45575
- ret.value = node;
45576
- } else {
45809
+ if (Array.isArray(node)) {
45810
+ // if (node.length !== 7) { throw new Error('FIXME: Invalid statement length!'); }
45811
+
45577
45812
  ret.value = evaluateNode(node, env, scope);
45813
+ } else {
45814
+ ret.value = node;
45578
45815
  }
45579
45816
 
45580
45817
  return ret;
@@ -47124,13 +47361,14 @@ enifed("htmlbars-runtime/render", ["exports", "htmlbars-util/morph-utils", "html
47124
47361
  if (typeof attributes[key] === 'string') {
47125
47362
  continue;
47126
47363
  }
47127
- statements.push(["attribute", key, attributes[key]]);
47364
+
47365
+ statements.push(_htmlbarsUtilTemplateUtils.buildStatement("attribute", key, attributes[key]));
47128
47366
  }
47129
47367
 
47130
47368
  var isEmpty = _isEmpty || _htmlbarsUtilVoidTagNames.default[tagName];
47131
47369
 
47132
47370
  if (!isEmpty) {
47133
- statements.push(['content', 'yield']);
47371
+ statements.push(_htmlbarsUtilTemplateUtils.buildStatement('content', 'yield'));
47134
47372
  }
47135
47373
 
47136
47374
  var template = {
@@ -47192,7 +47430,7 @@ enifed("htmlbars-runtime/render", ["exports", "htmlbars-util/morph-utils", "html
47192
47430
  if (typeof attributes[key] === 'string') {
47193
47431
  continue;
47194
47432
  }
47195
- statements.push(["attribute", key, attributes[key]]);
47433
+ statements.push(_htmlbarsUtilTemplateUtils.buildStatement("attribute", key, attributes[key]));
47196
47434
  }
47197
47435
 
47198
47436
  var template = {
@@ -47816,11 +48054,13 @@ enifed('htmlbars-util/safe-string', ['exports', 'htmlbars-util/handlebars/safe-s
47816
48054
  enifed("htmlbars-util/template-utils", ["exports", "htmlbars-util/morph-utils", "htmlbars-runtime/render"], function (exports, _htmlbarsUtilMorphUtils, _htmlbarsRuntimeRender) {
47817
48055
  "use strict";
47818
48056
 
48057
+ var _slice = Array.prototype.slice;
47819
48058
  exports.RenderState = RenderState;
47820
48059
  exports.blockFor = blockFor;
47821
48060
  exports.renderAndCleanup = renderAndCleanup;
47822
48061
  exports.clearMorph = clearMorph;
47823
48062
  exports.clearMorphList = clearMorphList;
48063
+ exports.buildStatement = buildStatement;
47824
48064
 
47825
48065
  function RenderState(renderNode, morphList) {
47826
48066
  // The morph list that is no longer needed and can be
@@ -48014,6 +48254,17 @@ enifed("htmlbars-util/template-utils", ["exports", "htmlbars-util/morph-utils",
48014
48254
  morphList.clear();
48015
48255
  morph.morphList = null;
48016
48256
  }
48257
+
48258
+ function buildStatement() {
48259
+ var statement = [].concat(_slice.call(arguments));
48260
+
48261
+ // ensure array length is 7 by padding with 0
48262
+ for (var i = arguments.length; i < 7; i++) {
48263
+ statement[i] = 0;
48264
+ }
48265
+
48266
+ return statement;
48267
+ }
48017
48268
  });
48018
48269
  enifed("htmlbars-util/void-tag-names", ["exports", "htmlbars-util/array-utils"], function (exports, _htmlbarsUtilArrayUtils) {
48019
48270
  "use strict";