ember-source 2.16.0.beta.1 → 2.16.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.16.0-beta.1
9
+ * @version 2.16.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -9157,7 +9157,6 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9157
9157
  this.name = name;
9158
9158
  this.options = options;
9159
9159
  this.globalOptions = globalOptions;
9160
- this.globalOptions.onError = getOnError(globalOptions);
9161
9160
  }
9162
9161
 
9163
9162
  Queue.prototype.push = function push(target, method, args, stack) {
@@ -9192,8 +9191,6 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9192
9191
  var method = void 0;
9193
9192
  var args = void 0;
9194
9193
  var errorRecordedForStack = void 0;
9195
- var onError = this.globalOptions.onError;
9196
- var invoke = onError ? this.invokeWithOnError : this.invoke;
9197
9194
  this.targetQueues = Object.create(null);
9198
9195
  var queueItems = void 0;
9199
9196
  if (this._queueBeingFlushed.length > 0) {
@@ -9205,33 +9202,38 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9205
9202
  if (before) {
9206
9203
  before();
9207
9204
  }
9208
- for (var i = this.index; i < queueItems.length; i += 4) {
9209
- this.index += 4;
9210
- target = queueItems[i];
9211
- method = queueItems[i + 1];
9212
- args = queueItems[i + 2];
9213
- errorRecordedForStack = queueItems[i + 3]; // Debugging assistance
9214
- // method could have been nullified / canceled during flush
9215
- if (method !== null) {
9216
- //
9217
- // ** Attention intrepid developer **
9218
- //
9219
- // To find out the stack of this task when it was scheduled onto
9220
- // the run loop, add the following to your app.js:
9221
- //
9222
- // Ember.run.backburner.DEBUG = true; // NOTE: This slows your app, don't leave it on in production.
9223
- //
9224
- // Once that is in place, when you are at a breakpoint and navigate
9225
- // here in the stack explorer, you can look at `errorRecordedForStack.stack`,
9226
- // which will be the captured stack when this job was scheduled.
9227
- //
9228
- // One possible long-term solution is the following Chrome issue:
9229
- // https://bugs.chromium.org/p/chromium/issues/detail?id=332624
9230
- //
9231
- invoke(target, method, args, onError, errorRecordedForStack);
9232
- }
9233
- if (this.index !== this._queueBeingFlushed.length && this.globalOptions.mustYield && this.globalOptions.mustYield()) {
9234
- return 1 /* Pause */;
9205
+ var invoke = void 0;
9206
+ if (queueItems.length > 0) {
9207
+ var onError = getOnError(this.globalOptions);
9208
+ invoke = onError ? this.invokeWithOnError : this.invoke;
9209
+ for (var i = this.index; i < queueItems.length; i += 4) {
9210
+ this.index += 4;
9211
+ target = queueItems[i];
9212
+ method = queueItems[i + 1];
9213
+ args = queueItems[i + 2];
9214
+ errorRecordedForStack = queueItems[i + 3]; // Debugging assistance
9215
+ // method could have been nullified / canceled during flush
9216
+ if (method !== null) {
9217
+ //
9218
+ // ** Attention intrepid developer **
9219
+ //
9220
+ // To find out the stack of this task when it was scheduled onto
9221
+ // the run loop, add the following to your app.js:
9222
+ //
9223
+ // Ember.run.backburner.DEBUG = true; // NOTE: This slows your app, don't leave it on in production.
9224
+ //
9225
+ // Once that is in place, when you are at a breakpoint and navigate
9226
+ // here in the stack explorer, you can look at `errorRecordedForStack.stack`,
9227
+ // which will be the captured stack when this job was scheduled.
9228
+ //
9229
+ // One possible long-term solution is the following Chrome issue:
9230
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=332624
9231
+ //
9232
+ invoke(target, method, args, onError, errorRecordedForStack);
9233
+ }
9234
+ if (this.index !== this._queueBeingFlushed.length && this.globalOptions.mustYield && this.globalOptions.mustYield()) {
9235
+ return 1 /* Pause */;
9236
+ }
9235
9237
  }
9236
9238
  }
9237
9239
  if (after) {
@@ -9432,7 +9434,6 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9432
9434
 
9433
9435
  // accepts a function that when invoked will return an iterator
9434
9436
  // iterator will drain until completion
9435
- // accepts a function that when invoked will return an iterator
9436
9437
  var iteratorDrain = function (fn) {
9437
9438
  var iterator = fn();
9438
9439
  var result = iterator.next();
@@ -9442,7 +9443,6 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9442
9443
  }
9443
9444
  };
9444
9445
 
9445
- var now = Date.now;
9446
9446
  var noop = function () {};
9447
9447
 
9448
9448
  var Backburner = function () {
@@ -9483,6 +9483,9 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9483
9483
  return platform.setTimeout(fn, 0);
9484
9484
  };
9485
9485
  platform.clearNext = _platform.clearNext || platform.clearTimeout;
9486
+ platform.now = _platform.now || function () {
9487
+ return Date.now();
9488
+ };
9486
9489
  this._platform = platform;
9487
9490
  this._boundRunExpiredTimers = function () {
9488
9491
  _this._runExpiredTimers();
@@ -9768,7 +9771,7 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9768
9771
  }
9769
9772
  }
9770
9773
  var onError = getOnError(this.options);
9771
- var executeAt = now() + wait;
9774
+ var executeAt = this._platform.now() + wait;
9772
9775
  var fn = void 0;
9773
9776
  if (onError) {
9774
9777
  fn = function () {
@@ -9977,7 +9980,7 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
9977
9980
  var l = timers.length;
9978
9981
  var i = 0;
9979
9982
  var defaultQueue = this.options.defaultQueue;
9980
- var n = now();
9983
+ var n = this._platform.now();
9981
9984
  for (; i < l; i += 2) {
9982
9985
  var executeAt = timers[i];
9983
9986
  if (executeAt <= n) {
@@ -10009,7 +10012,7 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
10009
10012
  return;
10010
10013
  }
10011
10014
  var minExpiresAt = this._timers[0];
10012
- var n = now();
10015
+ var n = this._platform.now();
10013
10016
  var wait = Math.max(0, minExpiresAt - n);
10014
10017
  this._timerTimeoutId = this._platform.setTimeout(this._boundRunExpiredTimers, wait);
10015
10018
  };
@@ -10031,7 +10034,7 @@ enifed('backburner', ['exports', 'ember-babel'], function (exports, _emberBabel)
10031
10034
 
10032
10035
  exports.default = Backburner;
10033
10036
  });
10034
- enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'ember/features', 'ember-environment'], function (exports, _emberBabel, _emberUtils, _emberDebug, _features) {
10037
+ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'ember/features'], function (exports, _emberBabel, _emberUtils, _emberDebug, _features) {
10035
10038
  'use strict';
10036
10039
 
10037
10040
  exports.Container = exports.privatize = exports.Registry = undefined;
@@ -10413,7 +10416,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
10413
10416
  if (typeof this.class._initFactory === 'function') {
10414
10417
  this.class._initFactory(this);
10415
10418
  } else {
10416
- // in the non-Ember.Object case we need to still setOwner
10419
+ // in the non-EmberObject case we need to still setOwner
10417
10420
  // this is required for supporting glimmer environment and
10418
10421
  // template instantiation which rely heavily on
10419
10422
  // `options[OWNER]` being passed into `create`
@@ -12351,7 +12354,7 @@ enifed('ember-application/system/engine-parent', ['exports', 'ember-utils'], fun
12351
12354
  @param {EngineInstance} engine An engine instance.
12352
12355
  @return {EngineInstance} The parent engine instance.
12353
12356
  @for Ember
12354
- @public
12357
+ @private
12355
12358
  */
12356
12359
  function getEngineParent(engine) {
12357
12360
  return engine[ENGINE_PARENT];
@@ -12499,65 +12502,83 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12499
12502
  * `name` allows you to specify under which name the initializer is registered.
12500
12503
  This must be a unique name, as trying to register two initializers with the
12501
12504
  same name will result in an error.
12502
- ```javascript
12503
- Ember.Application.initializer({
12504
- name: 'namedInitializer',
12505
- initialize: function(application) {
12506
- Ember.debug('Running namedInitializer!');
12507
- }
12508
- });
12505
+ ```app/initializer/named-initializer.js
12506
+ import { debug } from '@ember/debug';
12507
+ export function initialize() {
12508
+ debug('Running namedInitializer!');
12509
+ }
12510
+ export default {
12511
+ name: 'named-initializer',
12512
+ initialize
12513
+ };
12509
12514
  ```
12510
12515
  * `before` and `after` are used to ensure that this initializer is ran prior
12511
12516
  or after the one identified by the value. This value can be a single string
12512
12517
  or an array of strings, referencing the `name` of other initializers.
12513
12518
  An example of ordering initializers, we create an initializer named `first`:
12514
- ```javascript
12515
- Ember.Application.initializer({
12519
+ ```app/initializer/first.js
12520
+ import { debug } from '@ember/debug';
12521
+ export function initialize() {
12522
+ debug('First initializer!');
12523
+ }
12524
+ export default {
12516
12525
  name: 'first',
12517
- initialize: function(application) {
12518
- Ember.debug('First initializer!');
12519
- }
12520
- });
12521
- // DEBUG: First initializer!
12526
+ initialize
12527
+ };
12528
+ ```
12529
+ ```bash
12530
+ // DEBUG: First initializer!
12522
12531
  ```
12523
12532
  We add another initializer named `second`, specifying that it should run
12524
12533
  after the initializer named `first`:
12525
- ```javascript
12526
- Ember.Application.initializer({
12534
+ ```app/initializer/second.js
12535
+ import { debug } from '@ember/debug';
12536
+ export function initialize() {
12537
+ debug('Second initializer!');
12538
+ }
12539
+ export default {
12527
12540
  name: 'second',
12528
12541
  after: 'first',
12529
- initialize: function(application) {
12530
- Ember.debug('Second initializer!');
12531
- }
12532
- });
12533
- // DEBUG: First initializer!
12542
+ initialize
12543
+ };
12544
+ ```
12545
+ ```
12546
+ // DEBUG: First initializer!
12534
12547
  // DEBUG: Second initializer!
12535
12548
  ```
12536
12549
  Afterwards we add a further initializer named `pre`, this time specifying
12537
12550
  that it should run before the initializer named `first`:
12538
- ```javascript
12539
- Ember.Application.initializer({
12551
+ ```app/initializer/pre.js
12552
+ import { debug } from '@ember/debug';
12553
+ export function initialize() {
12554
+ debug('Pre initializer!');
12555
+ }
12556
+ export default {
12540
12557
  name: 'pre',
12541
12558
  before: 'first',
12542
- initialize: function(application) {
12543
- Ember.debug('Pre initializer!');
12544
- }
12545
- });
12546
- // DEBUG: Pre initializer!
12559
+ initialize
12560
+ };
12561
+ ```
12562
+ ```bash
12563
+ // DEBUG: Pre initializer!
12547
12564
  // DEBUG: First initializer!
12548
12565
  // DEBUG: Second initializer!
12549
12566
  ```
12550
12567
  Finally we add an initializer named `post`, specifying it should run after
12551
12568
  both the `first` and the `second` initializers:
12552
- ```javascript
12553
- Ember.Application.initializer({
12569
+ ```app/initializer/post.js
12570
+ import { debug } from '@ember/debug';
12571
+ export function initialize() {
12572
+ debug('Post initializer!');
12573
+ }
12574
+ export default {
12554
12575
  name: 'post',
12555
12576
  after: ['first', 'second'],
12556
- initialize: function(application) {
12557
- Ember.debug('Post initializer!');
12558
- }
12559
- });
12560
- // DEBUG: Pre initializer!
12577
+ initialize
12578
+ };
12579
+ ```
12580
+ ```bash
12581
+ // DEBUG: Pre initializer!
12561
12582
  // DEBUG: First initializer!
12562
12583
  // DEBUG: Second initializer!
12563
12584
  // DEBUG: Post initializer!
@@ -12565,13 +12586,16 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12565
12586
  * `initialize` is a callback function that receives one argument,
12566
12587
  `application`, on which you can operate.
12567
12588
  Example of using `application` to register an adapter:
12568
- ```javascript
12569
- Ember.Application.initializer({
12570
- name: 'api-adapter',
12571
- initialize: function(application) {
12572
- application.register('api-adapter:main', ApiAdapter);
12573
- }
12574
- });
12589
+ ```app/initializer/api-adapter.js
12590
+ import ApiAdapter from '../utils/api-adapter';
12591
+ export function initialize(application) {
12592
+ application.register('api-adapter:main', ApiAdapter);
12593
+ }
12594
+ export default {
12595
+ name: 'post',
12596
+ after: ['first', 'second'],
12597
+ initialize
12598
+ };
12575
12599
  ```
12576
12600
  @method initializer
12577
12601
  @param initializer {Object}
@@ -12591,13 +12615,15 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12591
12615
  * `name` allows you to specify under which name the instanceInitializer is
12592
12616
  registered. This must be a unique name, as trying to register two
12593
12617
  instanceInitializer with the same name will result in an error.
12594
- ```javascript
12595
- Ember.Application.instanceInitializer({
12596
- name: 'namedinstanceInitializer',
12597
- initialize: function(application) {
12598
- Ember.debug('Running namedInitializer!');
12599
- }
12600
- });
12618
+ ```app/initializer/named-instance-initializer.js
12619
+ import { debug } from '@ember/debug';
12620
+ export function initialize() {
12621
+ debug('Running named-instance-initializer!');
12622
+ }
12623
+ export default {
12624
+ name: 'named-instance-initializer',
12625
+ initialize
12626
+ };
12601
12627
  ```
12602
12628
  * `before` and `after` are used to ensure that this initializer is ran prior
12603
12629
  or after the one identified by the value. This value can be a single string
@@ -12605,10 +12631,9 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12605
12631
  * See Ember.Application.initializer for discussion on the usage of before
12606
12632
  and after.
12607
12633
  Example instanceInitializer to preload data into the store.
12608
- ```javascript
12609
- Ember.Application.initializer({
12610
- name: 'preload-data',
12611
- initialize: function(application) {
12634
+ ```app/initializer/preload-data.js
12635
+ import $ from 'jquery';
12636
+ export function initialize(application) {
12612
12637
  var userConfig, userConfigEncoded, store;
12613
12638
  // We have a HTML escaped JSON representation of the user's basic
12614
12639
  // configuration generated server side and stored in the DOM of the main
@@ -12617,17 +12642,19 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12617
12642
  // needed for immediate rendering of the page. Keep in mind, this data,
12618
12643
  // like all local models and data can be manipulated by the user, so it
12619
12644
  // should not be relied upon for security or authorization.
12620
- //
12621
- // Grab the encoded data from the meta tag
12622
- userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
12623
- // Unescape the text, then parse the resulting JSON into a real object
12645
+ // Grab the encoded data from the meta tag
12646
+ userConfigEncoded = $('head meta[name=app-user-config]').attr('content');
12647
+ // Unescape the text, then parse the resulting JSON into a real object
12624
12648
  userConfig = JSON.parse(unescape(userConfigEncoded));
12625
- // Lookup the store
12649
+ // Lookup the store
12626
12650
  store = application.lookup('service:store');
12627
- // Push the encoded JSON into the store
12651
+ // Push the encoded JSON into the store
12628
12652
  store.pushPayload(userConfig);
12629
- }
12630
- });
12653
+ }
12654
+ export default {
12655
+ name: 'named-instance-initializer',
12656
+ initialize
12657
+ };
12631
12658
  ```
12632
12659
  @method instanceInitializer
12633
12660
  @param instanceInitializer
@@ -12655,7 +12682,7 @@ enifed('ember-application/system/engine', ['exports', 'ember-babel', 'ember-util
12655
12682
 
12656
12683
  /**
12657
12684
  Set this to provide an alternate class to `Ember.DefaultResolver`
12658
- @deprecated Use 'Resolver' instead
12685
+ @deprecated Use 'Resolver' instead
12659
12686
  @property resolver
12660
12687
  @public
12661
12688
  */
@@ -12808,12 +12835,16 @@ enifed('ember-application/system/resolver', ['exports', 'ember-utils', 'ember-me
12808
12835
  in a subclass. For example, you could enhance how a template
12809
12836
  is resolved like so:
12810
12837
 
12811
- ```javascript
12812
- App = Ember.Application.create({
12813
- Resolver: Ember.DefaultResolver.extend({
12814
- resolveTemplate: function(parsedName) {
12838
+ ```app/app.js
12839
+ import Application from '@ember/application';
12840
+ import GlobalsResolver from '@ember/application/globals-resolver';
12841
+
12842
+ App = Application.create({
12843
+ Resolver: GlobalsResolver.extend({
12844
+ resolveTemplate(parsedName) {
12815
12845
  let resolvedTemplate = this._super(parsedName);
12816
12846
  if (resolvedTemplate) { return resolvedTemplate; }
12847
+
12817
12848
  return Ember.TEMPLATES['not_found'];
12818
12849
  }
12819
12850
  })
@@ -13111,10 +13142,10 @@ enifed('ember-application/system/resolver', ['exports', 'ember-utils', 'ember-me
13111
13142
 
13112
13143
 
13113
13144
  /**
13114
- @method _logLookup
13115
- @param {Boolean} found
13116
- @param {Object} parsedName
13117
- @private
13145
+ @method _logLookup
13146
+ @param {Boolean} found
13147
+ @param {Object} parsedName
13148
+ @private
13118
13149
  */
13119
13150
  _logLookup: function (found, parsedName) {
13120
13151
  var symbol = found ? '[✓]' : '[ ]';
@@ -13131,11 +13162,11 @@ enifed('ember-application/system/resolver', ['exports', 'ember-utils', 'ember-me
13131
13162
 
13132
13163
 
13133
13164
  /**
13134
- Used to iterate all items of a given type.
13135
- @method knownForType
13136
- @param {String} type the type to search for
13137
- @private
13138
- */
13165
+ Used to iterate all items of a given type.
13166
+ @method knownForType
13167
+ @param {String} type the type to search for
13168
+ @private
13169
+ */
13139
13170
  knownForType: function (type) {
13140
13171
  var namespace = (0, _emberMetal.get)(this, 'namespace');
13141
13172
  var suffix = _emberRuntime.String.classify(type);
@@ -13158,16 +13189,15 @@ enifed('ember-application/system/resolver', ['exports', 'ember-utils', 'ember-me
13158
13189
 
13159
13190
 
13160
13191
  /**
13161
- Converts provided name from the backing namespace into a container lookup name.
13162
- Examples:
13163
- App.FooBarHelper -> helper:foo-bar
13164
- App.THelper -> helper:t
13165
- @method translateToContainerFullname
13166
- @param {String} type
13167
- @param {String} name
13168
- @private
13169
- */
13170
-
13192
+ Converts provided name from the backing namespace into a container lookup name.
13193
+ Examples:
13194
+ * App.FooBarHelper -> helper:foo-bar
13195
+ * App.THelper -> helper:t
13196
+ @method translateToContainerFullname
13197
+ @param {String} type
13198
+ @param {String} name
13199
+ @private
13200
+ */
13171
13201
  translateToContainerFullname: function (type, name) {
13172
13202
  var suffix = _emberRuntime.String.classify(type);
13173
13203
  var namePrefix = name.slice(0, suffix.length * -1);
@@ -15964,9 +15994,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
15964
15994
  `hello` for the `person-profile` component:
15965
15995
 
15966
15996
  ```app/components/person-profile.js
15967
- import Ember from 'ember';
15997
+ import Component from '@ember/component';
15968
15998
 
15969
- export default Ember.Component.extend({
15999
+ export default Component.extend({
15970
16000
  actions: {
15971
16001
  hello(name) {
15972
16002
  console.log("Hello", name);
@@ -15998,9 +16028,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
15998
16028
  The following component class:
15999
16029
 
16000
16030
  ```app/components/emphasized-paragraph.js
16001
- import Ember from 'ember';
16031
+ import Component from '@ember/component';
16002
16032
 
16003
- export default Ember.Component.extend({
16033
+ export default Component.extend({
16004
16034
  tagName: 'em'
16005
16035
  });
16006
16036
  ```
@@ -16018,9 +16048,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16018
16048
  `classNames` property that is set to an array of strings:
16019
16049
 
16020
16050
  ```app/components/my-widget.js
16021
- import Ember from 'ember';
16051
+ import Component from '@ember/component';
16022
16052
 
16023
- export default Ember.Component.extend({
16053
+ export default Component.extend({
16024
16054
  classNames: ['my-class', 'my-other-class']
16025
16055
  });
16026
16056
  ```
@@ -16037,9 +16067,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16037
16067
  attribute. These properties can be computed properties:
16038
16068
 
16039
16069
  ```app/components/my-widget.js
16040
- import Ember from 'ember';
16070
+ import Component from '@ember/component';
16041
16071
 
16042
- export default Ember.Component.extend({
16072
+ export default Component.extend({
16043
16073
  classNameBindings: ['propertyA', 'propertyB'],
16044
16074
  propertyA: 'from-a',
16045
16075
  propertyB: Ember.computed(function() {
@@ -16059,9 +16089,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16059
16089
  The class name will not be added if the value is `false` or `undefined`.
16060
16090
 
16061
16091
  ```app/components/my-widget.js
16062
- import Ember from 'ember';
16092
+ import Component from '@ember/component';
16063
16093
 
16064
- export default Ember.Component.extend({
16094
+ export default Component.extend({
16065
16095
  classNameBindings: ['hovered'],
16066
16096
  hovered: true
16067
16097
  });
@@ -16078,9 +16108,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16078
16108
  preferred value after a ":" character when defining the binding:
16079
16109
 
16080
16110
  ```app/components/my-widget.js
16081
- import Ember from 'ember';
16111
+ import Component from '@ember/component';
16082
16112
 
16083
- export default Ember.Component.extend({
16113
+ export default Component.extend({
16084
16114
  classNameBindings: ['awesome:so-very-cool'],
16085
16115
  awesome: true
16086
16116
  });
@@ -16096,9 +16126,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16096
16126
  camelCase-style format will be converted to a dasherized format:
16097
16127
 
16098
16128
  ```app/components/my-widget.js
16099
- import Ember from 'ember';
16129
+ import Component from '@ember/component';
16100
16130
 
16101
- export default Ember.Component.extend({
16131
+ export default Component.extend({
16102
16132
  classNameBindings: ['isUrgent'],
16103
16133
  isUrgent: true
16104
16134
  });
@@ -16114,9 +16144,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16114
16144
  traversing a path relative to the component itself:
16115
16145
 
16116
16146
  ```app/components/my-widget.js
16117
- import Ember from 'ember';
16147
+ import Component from '@ember/component';
16118
16148
 
16119
- export default Ember.Component.extend({
16149
+ export default Component.extend({
16120
16150
  classNameBindings: ['messages.empty'],
16121
16151
  messages: Ember.Object.create({
16122
16152
  empty: true
@@ -16135,9 +16165,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16135
16165
  like this:
16136
16166
 
16137
16167
  ```app/components/my-widget.js
16138
- import Ember from 'ember';
16168
+ import Component from '@ember/component';
16139
16169
 
16140
- export default Ember.Component.extend({
16170
+ export default Component.extend({
16141
16171
  classNameBindings: ['isEnabled:enabled:disabled'],
16142
16172
  isEnabled: true
16143
16173
  });
@@ -16159,10 +16189,10 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16159
16189
  This syntax offers the convenience to add a class if a property is `false`:
16160
16190
 
16161
16191
  ```app/components/my-widget.js
16162
- import Ember from 'ember';
16192
+ import Component from '@ember/component';
16163
16193
 
16164
16194
  // Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
16165
- export default Ember.Component.extend({
16195
+ export default Component.extend({
16166
16196
  classNameBindings: ['isEnabled::disabled'],
16167
16197
  isEnabled: true
16168
16198
  });
@@ -16198,9 +16228,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16198
16228
  HTML associated attribute:
16199
16229
 
16200
16230
  ```app/components/my-anchor.js
16201
- import Ember from 'ember';
16231
+ import Component from '@ember/component';
16202
16232
 
16203
- export default Ember.Component.extend({
16233
+ export default Component.extend({
16204
16234
  tagName: 'a',
16205
16235
  attributeBindings: ['href'],
16206
16236
  href: 'http://google.com'
@@ -16217,9 +16247,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16217
16247
  the source property and the destination property:
16218
16248
 
16219
16249
  ```app/components/my-anchor.js
16220
- import Ember from 'ember';
16250
+ import Component from '@ember/component';
16221
16251
 
16222
- export default Ember.Component.extend({
16252
+ export default Component.extend({
16223
16253
  tagName: 'a',
16224
16254
  attributeBindings: ['url:href'],
16225
16255
  url: 'http://google.com'
@@ -16236,9 +16266,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16236
16266
  mapped, since `:` is not a valid character for properties in Javascript:
16237
16267
 
16238
16268
  ```app/components/my-use.js
16239
- import Ember from 'ember';
16269
+ import Component from '@ember/component';
16240
16270
 
16241
- export default Ember.Component.extend({
16271
+ export default Component.extend({
16242
16272
  tagName: 'use',
16243
16273
  attributeBindings: ['xlinkHref:xlink:href'],
16244
16274
  xlinkHref: '#triangle'
@@ -16255,9 +16285,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16255
16285
  the attribute will be present or absent depending on the value:
16256
16286
 
16257
16287
  ```app/components/my-text-input.js
16258
- import Ember from 'ember';
16288
+ import Component from '@ember/component';
16259
16289
 
16260
- export default Ember.Component.extend({
16290
+ export default Component.extend({
16261
16291
  tagName: 'input',
16262
16292
  attributeBindings: ['disabled'],
16263
16293
  disabled: false
@@ -16273,9 +16303,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16273
16303
  `attributeBindings` can refer to computed properties:
16274
16304
 
16275
16305
  ```app/components/my-text-input.js
16276
- import Ember from 'ember';
16306
+ import Component from '@ember/component';
16277
16307
 
16278
- export default Ember.Component.extend({
16308
+ export default Component.extend({
16279
16309
  tagName: 'input',
16280
16310
  attributeBindings: ['disabled'],
16281
16311
  disabled: Ember.computed(function() {
@@ -16292,9 +16322,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16292
16322
  return value of the `attributeBindings` monitored property:
16293
16323
 
16294
16324
  ```app/components/my-text-input.js
16295
- import Ember from 'ember';
16325
+ import Component from '@ember/component';
16296
16326
 
16297
- export default Ember.Component.extend({
16327
+ export default Component.extend({
16298
16328
  tagName: 'form',
16299
16329
  attributeBindings: ['novalidate'],
16300
16330
  novalidate: null
@@ -16322,10 +16352,10 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16322
16352
  ```
16323
16353
 
16324
16354
  ```app/components/person-profile.js
16325
- import Ember from 'ember';
16355
+ import Component from '@ember/component';
16326
16356
  import layout from '../templates/components/person-profile';
16327
16357
 
16328
- export default Ember.Component.extend({
16358
+ export default Component.extend({
16329
16359
  layout
16330
16360
  });
16331
16361
  ```
@@ -16355,9 +16385,9 @@ enifed('ember-glimmer/component', ['exports', 'ember-utils', 'ember-views', 'emb
16355
16385
  argument to this method.
16356
16386
 
16357
16387
  ```app/components/my-widget.js
16358
- import Ember from 'ember';
16388
+ import Component from '@ember/component';
16359
16389
 
16360
- export default Ember.Component.extend({
16390
+ export default Component.extend({
16361
16391
  click(event) {
16362
16392
  // will be called when an instance's
16363
16393
  // rendered element is clicked
@@ -17262,13 +17292,13 @@ enifed('ember-glimmer/components/link-to', ['exports', 'ember-console', 'ember-d
17262
17292
 
17263
17293
  ### Allowing Default Action
17264
17294
 
17265
- By default the `{{link-to}}` component prevents the default browser action
17266
- by calling `preventDefault()` as this sort of action bubbling is normally
17267
- handled internally and we do not want to take the browser to a new URL (for
17268
- example).
17295
+ By default the `{{link-to}}` component prevents the default browser action
17296
+ by calling `preventDefault()` as this sort of action bubbling is normally
17297
+ handled internally and we do not want to take the browser to a new URL (for
17298
+ example).
17269
17299
 
17270
- If you need to override this behavior specify `preventDefault=false` in
17271
- your template:
17300
+ If you need to override this behavior specify `preventDefault=false` in
17301
+ your template:
17272
17302
 
17273
17303
  ```handlebars
17274
17304
  {{#link-to 'photoGallery' aPhotoId preventDefault=false}}
@@ -17402,7 +17432,8 @@ enifed('ember-glimmer/components/text_field', ['exports', 'ember-metal', 'ember-
17402
17432
  layout: _empty.default,
17403
17433
  classNames: ['ember-text-field'],
17404
17434
  tagName: 'input',
17405
- attributeBindings: ['accept', 'autocomplete', 'autosave', 'dir', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height', 'inputmode', 'lang', 'list', 'max', 'min', 'multiple', 'name', 'pattern', 'size', 'step', 'type', 'value', 'width'],
17435
+ attributeBindings: ['accept', 'autocomplete', 'autosave', 'dir', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height', 'inputmode', 'lang', 'list', 'type', // needs to be before min and max. See #15675
17436
+ 'max', 'min', 'multiple', 'name', 'pattern', 'size', 'step', 'value', 'width'],
17406
17437
 
17407
17438
  /**
17408
17439
  The `value` attribute of the input element. As the user inputs text, this
@@ -17863,8 +17894,10 @@ enifed('ember-glimmer/helper', ['exports', 'ember-utils', 'ember-runtime', '@gli
17863
17894
 
17864
17895
  Helpers defined using a class must provide a `compute` function. For example:
17865
17896
 
17866
- ```js
17867
- export default Ember.Helper.extend({
17897
+ ```app/helpers/format-currency.js
17898
+ import Helper from '@ember/component/helper';
17899
+
17900
+ export default Helper.extend({
17868
17901
  compute(params, hash) {
17869
17902
  let cents = params[0];
17870
17903
  let currency = hash.currency;
@@ -17921,9 +17954,10 @@ enifed('ember-glimmer/helper', ['exports', 'ember-utils', 'ember-runtime', '@gli
17921
17954
  The `helper` method create pure-function helpers without instances. For
17922
17955
  example:
17923
17956
 
17924
- ```js
17925
- // app/helpers/format-currency.js
17926
- export default Ember.Helper.helper(function(params, hash) {
17957
+ ```app/helpers/format-currency.js
17958
+ import { helper } from '@ember/component/helper';
17959
+
17960
+ export default helper(function(params, hash) {
17927
17961
  let cents = params[0];
17928
17962
  let currency = hash.currency;
17929
17963
  return `${currency}${cents * 0.01}`;
@@ -18132,10 +18166,10 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18132
18166
 
18133
18167
  Here is an example action handler on a component:
18134
18168
 
18135
- ```js
18136
- import Ember from 'ember';
18169
+ ```app/components/my-component.js
18170
+ import Component from '@ember/component';
18137
18171
 
18138
- export default Ember.Component.extend({
18172
+ export default Component.extend({
18139
18173
  actions: {
18140
18174
  save() {
18141
18175
  this.get('model').save();
@@ -18164,8 +18198,10 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18164
18198
  additional arguments are passed to the action function. This has interesting
18165
18199
  properties combined with currying of arguments. For example:
18166
18200
 
18167
- ```js
18168
- export default Ember.Component.extend({
18201
+ ```app/components/my-component.js
18202
+ import Component from '@ember/component';
18203
+
18204
+ export default Component.extend({
18169
18205
  actions: {
18170
18206
  // Usage {{input on-input=(action (action 'setName' model) value="target.value")}}
18171
18207
  setName(model, name) {
@@ -18184,9 +18220,9 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18184
18220
  with `on-input` above. For example:
18185
18221
 
18186
18222
  ```app/components/my-input.js
18187
- import Ember from 'ember';
18223
+ import Component from '@ember/component';
18188
18224
 
18189
- export default Ember.Component.extend({
18225
+ export default Component.extend({
18190
18226
  actions: {
18191
18227
  setName(model, name) {
18192
18228
  model.set('name', name);
@@ -18200,9 +18236,9 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18200
18236
  ```
18201
18237
 
18202
18238
  ```app/components/my-component.js
18203
- import Ember from 'ember';
18239
+ import Component from '@ember/component';
18204
18240
 
18205
- export default Ember.Component.extend({
18241
+ export default Component.extend({
18206
18242
  click() {
18207
18243
  // Note that model is not passed, it was curried in the template
18208
18244
  this.sendAction('submit', 'bob');
@@ -18258,7 +18294,7 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18258
18294
  ```
18259
18295
 
18260
18296
  ```app/helpers/disable-bubbling.js
18261
- import Ember from 'ember';
18297
+ import { helper } from '@ember/component/helper';
18262
18298
 
18263
18299
  export function disableBubbling([action]) {
18264
18300
  return function(event) {
@@ -18266,7 +18302,7 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18266
18302
  return action(event);
18267
18303
  };
18268
18304
  }
18269
- export default Ember.Helper.helper(disableBubbling);
18305
+ export default helper(disableBubbling);
18270
18306
  ```
18271
18307
 
18272
18308
  If you need the default handler to trigger you should either register your
@@ -18323,10 +18359,11 @@ enifed('ember-glimmer/helpers/action', ['exports', 'ember-utils', 'ember-metal',
18323
18359
  ```
18324
18360
 
18325
18361
  ```app/controllers/application.js
18326
- import Ember from 'ember';
18362
+ import Controller from '@ember/controller';
18363
+ import { inject as service } from '@ember/service';
18327
18364
 
18328
- export default Ember.Controller.extend({
18329
- someService: Ember.inject.service()
18365
+ export default Controller.extend({
18366
+ someService: service()
18330
18367
  });
18331
18368
  ```
18332
18369
 
@@ -18773,7 +18810,7 @@ enifed('ember-glimmer/helpers/get', ['exports', 'ember-babel', 'ember-metal', 'e
18773
18810
  var path = this.lastPath = this.pathReference.value();
18774
18811
 
18775
18812
  if (path !== lastPath) {
18776
- if (path) {
18813
+ if (path !== undefined && path !== null) {
18777
18814
  var pathType = typeof path;
18778
18815
 
18779
18816
  if (pathType === 'string') {
@@ -20629,10 +20666,31 @@ enifed('ember-glimmer/syntax/mount', ['exports', 'ember-babel', 'ember-debug', '
20629
20666
  {{mount "ember-chat"}}
20630
20667
  ```
20631
20668
 
20632
- Currently, the engine name is the only argument that can be passed to
20633
- `{{mount}}`.
20669
+ Additionally, you can also pass in a `model` argument that will be
20670
+ set as the engines model. This can be an existing object:
20671
+
20672
+ ```
20673
+ <div>
20674
+ {{mount 'admin' model=userSettings}}
20675
+ </div>
20676
+ ```
20677
+
20678
+ Or an inline `hash`, and you can even pass components:
20679
+
20680
+ ```
20681
+ <div>
20682
+ <h1>Application template!</h1>
20683
+ {{mount 'admin' model=(hash
20684
+ title='Secret Admin'
20685
+ signInButton=(component 'sign-in-button')
20686
+ )}}
20687
+ </div>
20688
+ ```
20634
20689
 
20635
20690
  @method mount
20691
+ @param {String} name Name of the engine to mount.
20692
+ @param {Object} [model] Object that will be set as
20693
+ the model of the engine.
20636
20694
  @for Ember.Templates.helpers
20637
20695
  @category ember-application-engines
20638
20696
  @public
@@ -20805,9 +20863,10 @@ enifed('ember-glimmer/syntax/outlet', ['exports', 'ember-babel', '@glimmer/refer
20805
20863
  Your routes can then render into a specific one of these `outlet`s by specifying the `outlet`
20806
20864
  attribute in your `renderTemplate` function:
20807
20865
 
20808
- ```javascript
20809
- // app/routes/menu.js
20810
- export default Ember.Route.extend({
20866
+ ```app/routes/menu.js
20867
+ import Route from '@ember/routing/route';
20868
+
20869
+ export default Route.extend({
20811
20870
  renderTemplate() {
20812
20871
  this.render({ outlet: 'menu' });
20813
20872
  }
@@ -20891,8 +20950,10 @@ enifed('ember-glimmer/syntax/render', ['exports', '@glimmer/reference', 'ember-d
20891
20950
 
20892
20951
  Example:
20893
20952
 
20894
- ```javascript
20895
- App.NavigationController = Ember.Controller.extend({
20953
+ ```app/controllers/navigation.js
20954
+ import Controller from '@ember/controller';
20955
+
20956
+ export default Controller.extend({
20896
20957
  who: "world"
20897
20958
  });
20898
20959
  ```
@@ -22995,7 +23056,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
22995
23056
  */
22996
23057
  function hasListeners(obj, eventName) {
22997
23058
  var meta$$1 = exports.peekMeta(obj);
22998
- if (!meta$$1) {
23059
+ if (meta$$1 === undefined) {
22999
23060
  return false;
23000
23061
  }
23001
23062
  var matched = meta$$1.matchingListeners(eventName);
@@ -23058,6 +23119,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23058
23119
 
23059
23120
  var func = args.pop();
23060
23121
  var events = args;
23122
+
23123
+ true && !(typeof func === 'function') && emberDebug.assert('Ember.on expects function as last argument', typeof func === 'function');
23124
+ true && !(events.length > 0 && events.every(function (p) {
23125
+ return typeof p === 'string' && p.length;
23126
+ })) && emberDebug.assert('Ember.on called without valid event names', events.length > 0 && events.every(function (p) {
23127
+ return typeof p === 'string' && p.length;
23128
+ }));
23129
+
23061
23130
  func.__ember_listens__ = events;
23062
23131
  return func;
23063
23132
  }
@@ -23660,7 +23729,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23660
23729
  function DEFAULT_GETTER_FUNCTION(name) {
23661
23730
  return function GETTER_FUNCTION() {
23662
23731
  var meta$$1 = exports.peekMeta(this);
23663
- if (meta$$1 !== null && meta$$1 !== undefined) {
23732
+ if (meta$$1 !== undefined) {
23664
23733
  return meta$$1.peekValues(name);
23665
23734
  }
23666
23735
  };
@@ -23670,7 +23739,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23670
23739
  function IGETTER_FUNCTION() {
23671
23740
  var meta$$1 = exports.peekMeta(this);
23672
23741
  var val = void 0;
23673
- if (meta$$1 !== null && meta$$1 !== undefined) {
23742
+ if (meta$$1 !== undefined) {
23674
23743
  val = meta$$1.readInheritedValue('values', name);
23675
23744
  }
23676
23745
 
@@ -23732,7 +23801,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23732
23801
  become the explicit value of this property.
23733
23802
  */
23734
23803
  function defineProperty(obj, keyName, desc, data, meta$$1) {
23735
- if (meta$$1 === null || meta$$1 === undefined) {
23804
+ if (meta$$1 === undefined) {
23736
23805
  meta$$1 = meta(obj);
23737
23806
  }
23738
23807
 
@@ -23920,7 +23989,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23920
23989
  var meta$$1 = _meta || exports.peekMeta(obj);
23921
23990
 
23922
23991
  // do nothing of this object has already been destroyed
23923
- if (!meta$$1 || meta$$1.isSourceDestroyed()) {
23992
+ if (meta$$1 === undefined || meta$$1.isSourceDestroyed()) {
23924
23993
  return;
23925
23994
  }
23926
23995
 
@@ -24131,9 +24200,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
24131
24200
  return;
24132
24201
  }
24133
24202
 
24134
- var meta$$1 = _meta || exports.peekMeta(obj);
24203
+ var meta$$1 = _meta === undefined ? exports.peekMeta(obj) : _meta;
24135
24204
 
24136
- if (!meta$$1 || !meta$$1.readableChainWatchers()) {
24205
+ if (meta$$1 === undefined || meta$$1.readableChainWatchers() === undefined) {
24137
24206
  return;
24138
24207
  }
24139
24208
 
@@ -25594,7 +25663,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25594
25663
  */
25595
25664
  function ComputedProperty(config, opts) {
25596
25665
  this.isDescriptor = true;
25597
- if (typeof config === 'function') {
25666
+ var hasGetterOnly = typeof config === 'function';
25667
+ if (hasGetterOnly) {
25598
25668
  this._getter = config;
25599
25669
  } else {
25600
25670
  true && !(typeof config === 'object' && !Array.isArray(config)) && emberDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
@@ -25612,8 +25682,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25612
25682
  this._suspended = undefined;
25613
25683
  this._meta = undefined;
25614
25684
  this._volatile = false;
25685
+
25615
25686
  this._dependentKeys = opts && opts.dependentKeys;
25616
- this._readOnly = false;
25687
+ this._readOnly = opts && hasGetterOnly && opts.readOnly === true;
25617
25688
  }
25618
25689
 
25619
25690
  ComputedProperty.prototype = new Descriptor();
@@ -25731,10 +25802,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25731
25802
  You can pass a hash of these values to a computed property like this:
25732
25803
 
25733
25804
  ```
25734
- person: Ember.computed(function() {
25805
+ import { computed } from '@ember/object';
25806
+ import Person from 'my-app/utils/person';
25807
+
25808
+ person: computed(function() {
25735
25809
  let personId = this.get('personId');
25736
- return App.Person.create({ id: personId });
25737
- }).meta({ type: App.Person })
25810
+ return Person.create({ id: personId });
25811
+ }).meta({ type: Person })
25738
25812
  ```
25739
25813
 
25740
25814
  The hash that you pass to the `meta()` function will be saved on the
@@ -25766,12 +25840,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25766
25840
 
25767
25841
  // don't create objects just to invalidate
25768
25842
  var meta$$1 = exports.peekMeta(obj);
25769
- if (!meta$$1 || meta$$1.source !== obj) {
25843
+ if (meta$$1 === undefined || meta$$1.source !== obj) {
25770
25844
  return;
25771
25845
  }
25772
25846
 
25773
25847
  var cache = meta$$1.readableCache();
25774
- if (cache && cache[keyName] !== undefined) {
25848
+ if (cache !== undefined && cache[keyName] !== undefined) {
25775
25849
  cache[keyName] = undefined;
25776
25850
  removeDependentKeys(this, obj, keyName, meta$$1);
25777
25851
  }
@@ -25793,14 +25867,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25793
25867
  }
25794
25868
 
25795
25869
  var ret = this._getter.call(obj, keyName);
25796
- if (ret === undefined) {
25797
- cache[keyName] = UNDEFINED;
25798
- } else {
25799
- cache[keyName] = ret;
25800
- }
25870
+ cache[keyName] = ret === undefined ? UNDEFINED : ret;
25801
25871
 
25802
25872
  var chainWatchers = meta$$1.readableChainWatchers();
25803
- if (chainWatchers) {
25873
+ if (chainWatchers !== undefined) {
25804
25874
  chainWatchers.revalidate(keyName);
25805
25875
  }
25806
25876
  addDependentKeys(this, obj, keyName, meta$$1);
@@ -25850,15 +25920,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
25850
25920
  };
25851
25921
 
25852
25922
  ComputedPropertyPrototype._set = function computedPropertySet(obj, keyName, value) {
25853
- // cache requires own meta
25854
25923
  var meta$$1 = meta(obj);
25855
- // either there is a writable cache or we need one to update
25856
25924
  var cache = meta$$1.writableCache();
25857
25925
  var hadCachedValue = false;
25858
25926
  var cachedValue = void 0;
25859
- if (cache[keyName] !== undefined) {
25860
- if (cache[keyName] !== UNDEFINED) {
25861
- cachedValue = cache[keyName];
25927
+ var val = cache[keyName];
25928
+ if (val !== undefined) {
25929
+ if (val !== UNDEFINED) {
25930
+ cachedValue = val;
25862
25931
  }
25863
25932
  hadCachedValue = true;
25864
25933
  }
@@ -26472,6 +26541,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26472
26541
  };
26473
26542
 
26474
26543
  var onerror = void 0;
26544
+ var onErrorTarget = {
26545
+ get onerror() {
26546
+ return dispatchOverride || onerror;
26547
+ }
26548
+ };
26549
+
26475
26550
  // Ember.onerror getter
26476
26551
  function getOnerror() {
26477
26552
  return onerror;
@@ -26563,7 +26638,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26563
26638
  }
26564
26639
 
26565
26640
  var meta$$1 = exports.peekMeta(obj);
26566
- if (meta$$1) {
26641
+ if (meta$$1 !== undefined) {
26567
26642
  var map = meta$$1.readableWeak();
26568
26643
  if (map !== undefined) {
26569
26644
  var val = map[this._id];
@@ -26608,7 +26683,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26608
26683
  }
26609
26684
 
26610
26685
  var meta$$1 = exports.peekMeta(obj);
26611
- if (meta$$1) {
26686
+ if (meta$$1 !== undefined) {
26612
26687
  var map = meta$$1.readableWeak();
26613
26688
  if (map !== undefined) {
26614
26689
  return map[this._id] !== undefined;
@@ -26800,15 +26875,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26800
26875
  run.currentRunLoop = next;
26801
26876
  }
26802
26877
 
26803
- var onErrorTarget = {
26804
- get onerror() {
26805
- return dispatchError;
26806
- },
26807
- set onerror(handler) {
26808
- return setOnerror(handler);
26809
- }
26810
- };
26811
-
26812
26878
  var backburner$1 = new Backburner(['sync', 'actions', 'destroy'], {
26813
26879
  GUID_KEY: emberUtils.GUID_KEY,
26814
26880
  sync: {
@@ -26916,16 +26982,26 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26916
26982
  We can use that setup option to do some additional setup for our component.
26917
26983
  The component itself could look something like the following:
26918
26984
 
26919
- ```javascript
26920
- App.RichTextEditorComponent = Ember.Component.extend({
26985
+ ```app/components/rich-text-editor.js
26986
+ import Component from '@ember/component';
26987
+ import { bind } from '@ember/runloop';
26988
+
26989
+ export default Component.extend({
26921
26990
  initializeTinyMCE: Ember.on('didInsertElement', function() {
26922
26991
  tinymce.init({
26923
26992
  selector: '#' + this.$().prop('id'),
26924
26993
  setup: Ember.run.bind(this, this.setupEditor)
26925
26994
  });
26926
26995
  }),
26996
+
26997
+ didInsertElement() {
26998
+ tinymce.init({
26999
+ selector: '#' + this.$().prop('id'),
27000
+ setup: Ember.run.bind(this, this.setupEditor)
27001
+ });
27002
+ }
26927
27003
 
26928
- setupEditor: function(editor) {
27004
+ setupEditor(editor) {
26929
27005
  this.set('editor', editor);
26930
27006
 
26931
27007
  editor.on('change', function() {
@@ -26936,7 +27012,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26936
27012
  ```
26937
27013
 
26938
27014
  In this example, we use Ember.run.bind to bind the setupEditor method to the
26939
- context of the App.RichTextEditorComponent and to have the invocation of that
27015
+ context of the RichTextEditor component and to have the invocation of that
26940
27016
  method be safely handled and executed by the Ember run loop.
26941
27017
 
26942
27018
  @method bind
@@ -27170,9 +27246,23 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
27170
27246
  });
27171
27247
  ```
27172
27248
 
27173
- Also note that passing an anonymous function to `run.scheduleOnce` will
27174
- not prevent additional calls with an identical anonymous function from
27175
- scheduling the items multiple times, e.g.:
27249
+ Also note that for `run.scheduleOnce` to prevent additional calls, you need to
27250
+ pass the same function instance. The following case works as expected:
27251
+
27252
+ ```javascript
27253
+ function log() {
27254
+ console.log('Logging only once');
27255
+ }
27256
+
27257
+ function scheduleIt() {
27258
+ run.scheduleOnce('actions', myContext, log);
27259
+ }
27260
+
27261
+ scheduleIt();
27262
+ scheduleIt();
27263
+ ```
27264
+
27265
+ But this other case will schedule the function multiple times:
27176
27266
 
27177
27267
  ```javascript
27178
27268
  function scheduleIt() {
@@ -27185,7 +27275,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
27185
27275
  scheduleIt();
27186
27276
 
27187
27277
  // "Closure" will print twice, even though we're using `run.scheduleOnce`,
27188
- // because the function we pass to it is anonymous and won't match the
27278
+ // because the function we pass to it won't match the
27189
27279
  // previously scheduled operation.
27190
27280
  ```
27191
27281
 
@@ -27233,8 +27323,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
27233
27323
 
27234
27324
  Example:
27235
27325
 
27236
- ```javascript
27237
- export default Ember.Component.extend({
27326
+ ```app/components/my-component.js
27327
+ import Component from '@ember/component';
27328
+
27329
+ export Component.extend({
27238
27330
  didInsertElement() {
27239
27331
  this._super(...arguments);
27240
27332
  run.scheduleOnce('afterRender', this, 'processChildElements');
@@ -28780,16 +28872,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
28780
28872
 
28781
28873
  if (baseValue === null || baseValue === undefined) {
28782
28874
  ret = emberUtils.makeArray(value);
28783
- } else {
28784
- if (isArray(baseValue)) {
28785
- if (value === null || value === undefined) {
28786
- ret = baseValue;
28787
- } else {
28788
- ret = a_concat.call(baseValue, value);
28789
- }
28875
+ } else if (isArray(baseValue)) {
28876
+ if (value === null || value === undefined) {
28877
+ ret = baseValue;
28790
28878
  } else {
28791
- ret = a_concat.call(emberUtils.makeArray(baseValue), value);
28879
+ ret = a_concat.call(baseValue, value);
28792
28880
  }
28881
+ } else {
28882
+ ret = a_concat.call(emberUtils.makeArray(baseValue), value);
28793
28883
  }
28794
28884
 
28795
28885
  {
@@ -28860,7 +28950,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
28860
28950
  } else {
28861
28951
  if (concats && concats.indexOf(key) >= 0 || key === 'concatenatedProperties' || key === 'mergedProperties') {
28862
28952
  value = applyConcatenatedProperties(base, key, value, values);
28863
- } else if (mergings && mergings.indexOf(key) >= 0) {
28953
+ } else if (mergings && mergings.indexOf(key) > -1) {
28864
28954
  value = applyMergedProperties(base, key, value, values);
28865
28955
  } else if (isMethod(value)) {
28866
28956
  value = giveMethodSuper(base, key, value, values, descs);
@@ -28972,9 +29062,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
28972
29062
  return { desc: desc, value: value };
28973
29063
  }
28974
29064
 
28975
- function updateObserversAndListeners(obj, key, observerOrListener, pathsKey, updateMethod) {
28976
- var paths = observerOrListener[pathsKey];
28977
-
29065
+ function updateObserversAndListeners(obj, key, paths, updateMethod) {
28978
29066
  if (paths) {
28979
29067
  for (var i = 0; i < paths.length; i++) {
28980
29068
  updateMethod(obj, paths[i], null, key);
@@ -28985,16 +29073,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
28985
29073
  function replaceObserversAndListeners(obj, key, observerOrListener) {
28986
29074
  var prev = obj[key];
28987
29075
 
28988
- if ('function' === typeof prev) {
28989
- updateObserversAndListeners(obj, key, prev, '__ember_observesBefore__', _removeBeforeObserver);
28990
- updateObserversAndListeners(obj, key, prev, '__ember_observes__', removeObserver);
28991
- updateObserversAndListeners(obj, key, prev, '__ember_listens__', removeListener);
29076
+ if (typeof prev === 'function') {
29077
+ updateObserversAndListeners(obj, key, prev.__ember_observesBefore__, _removeBeforeObserver);
29078
+ updateObserversAndListeners(obj, key, prev.__ember_observes__, removeObserver);
29079
+ updateObserversAndListeners(obj, key, prev.__ember_listens__, removeListener);
28992
29080
  }
28993
29081
 
28994
- if ('function' === typeof observerOrListener) {
28995
- updateObserversAndListeners(obj, key, observerOrListener, '__ember_observesBefore__', _addBeforeObserver);
28996
- updateObserversAndListeners(obj, key, observerOrListener, '__ember_observes__', addObserver);
28997
- updateObserversAndListeners(obj, key, observerOrListener, '__ember_listens__', addListener);
29082
+ if (typeof observerOrListener === 'function') {
29083
+ updateObserversAndListeners(obj, key, observerOrListener.__ember_observesBefore__, _addBeforeObserver);
29084
+ updateObserversAndListeners(obj, key, observerOrListener.__ember_observes__, addObserver);
29085
+ updateObserversAndListeners(obj, key, observerOrListener.__ember_listens__, addListener);
28998
29086
  }
28999
29087
  }
29000
29088
 
@@ -29201,7 +29289,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
29201
29289
  Mixin.mixins = function mixins(obj) {
29202
29290
  var meta$$1 = exports.peekMeta(obj);
29203
29291
  var ret = [];
29204
- if (!meta$$1) {
29292
+ if (meta$$1 === undefined) {
29205
29293
  return ret;
29206
29294
  }
29207
29295
 
@@ -29318,7 +29406,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
29318
29406
  return _detect(obj, this, {});
29319
29407
  }
29320
29408
  var meta$$1 = exports.peekMeta(obj);
29321
- if (!meta$$1) {
29409
+ if (meta$$1 === undefined) {
29322
29410
  return false;
29323
29411
  }
29324
29412
  return !!meta$$1.peekMixins(emberUtils.guidFor(this));
@@ -29393,15 +29481,21 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
29393
29481
  /**
29394
29482
  Makes a method available via an additional name.
29395
29483
 
29396
- ```javascript
29397
- App.Person = Ember.Object.extend({
29398
- name: function() {
29484
+ ```app/utils/person.js
29485
+ import EmberObject, {
29486
+ aliasMethod
29487
+ } from '@ember/object';
29488
+
29489
+ export default EmberObject.extend({
29490
+ name() {
29399
29491
  return 'Tomhuda Katzdale';
29400
29492
  },
29401
- moniker: Ember.aliasMethod('name')
29493
+ moniker: aliasMethod('name')
29402
29494
  });
29495
+ ```
29403
29496
 
29404
- let goodGuy = App.Person.create();
29497
+ ```javascript
29498
+ let goodGuy = Person.create();
29405
29499
 
29406
29500
  goodGuy.name(); // 'Tomhuda Katzdale'
29407
29501
  goodGuy.moniker(); // 'Tomhuda Katzdale'
@@ -29640,7 +29734,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
29640
29734
  function isProxy(value) {
29641
29735
  if (typeof value === 'object' && value !== null) {
29642
29736
  var meta$$1 = exports.peekMeta(value);
29643
- return meta$$1 && meta$$1.isProxy();
29737
+ return meta$$1 === undefined ? false : meta$$1.isProxy();
29644
29738
  }
29645
29739
 
29646
29740
  return false;
@@ -30451,14 +30545,14 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal', 'em
30451
30545
 
30452
30546
  Example:
30453
30547
 
30454
- ```javascript
30455
- App.Router.map(function() {
30548
+ ```app/router.js
30549
+ Router.map(function() {
30456
30550
  this.route('posts', function() {
30457
30551
  this.route('new');
30458
30552
  });
30459
30553
  });
30460
30554
 
30461
- App.Router.reopen({
30555
+ Router.reopen({
30462
30556
  location: 'history'
30463
30557
  });
30464
30558
  ```
@@ -30947,9 +31041,91 @@ enifed('ember-routing/services/router', ['exports', 'ember-runtime', 'ember-rout
30947
31041
  */
30948
31042
 
30949
31043
  var RouterService = _emberRuntime.Service.extend({
31044
+
31045
+ /**
31046
+ Name of the current route.
31047
+ This property represent the logical name of the route,
31048
+ which is comma separated.
31049
+ For the following router:
31050
+ ```app/router.js
31051
+ Router.map(function() {
31052
+ this.route('about);
31053
+ this.route('blog', function () {
31054
+ this.route('post', { path: ':post_id' });
31055
+ });
31056
+ });
31057
+ ```
31058
+ It will return:
31059
+ * `index` when you visit `/`
31060
+ * `about` when you visit `/about`
31061
+ * `blog.index` when you visit `/blog`
31062
+ * `blog.post` when you visit `/blog/some-post-id`
31063
+ @property currentRouteName
31064
+ @type String
31065
+ @public
31066
+ */
30950
31067
  currentRouteName: (0, _emberRuntime.readOnly)('_router.currentRouteName'),
31068
+
31069
+ /**
31070
+ Current URL for the application.
31071
+ This property represent the URL path for this route.
31072
+ For the following router:
31073
+ ```app/router.js
31074
+ Router.map(function() {
31075
+ this.route('about);
31076
+ this.route('blog', function () {
31077
+ this.route('post', { path: ':post_id' });
31078
+ });
31079
+ });
31080
+ ```
31081
+ It will return:
31082
+ * `/` when you visit `/`
31083
+ * `/about` when you visit `/about`
31084
+ * `/blog/index` when you visit `/blog`
31085
+ * `/blog/post` when you visit `/blog/some-post-id`
31086
+ @property currentURL
31087
+ @type String
31088
+ @public
31089
+ */
30951
31090
  currentURL: (0, _emberRuntime.readOnly)('_router.currentURL'),
31091
+
31092
+ /**
31093
+ The `location` property determines the type of URL's that your
31094
+ application will use.
31095
+ The following location types are currently available:
31096
+ * `auto`
31097
+ * `hash`
31098
+ * `history`
31099
+ * `none`
31100
+ @property location
31101
+ @default 'hash'
31102
+ @see {Ember.Location}
31103
+ @public
31104
+ */
30952
31105
  location: (0, _emberRuntime.readOnly)('_router.location'),
31106
+
31107
+ /**
31108
+ The `rootURL` property represents the URL of the root of
31109
+ the application, '/' by default.
31110
+ This prefix is assumed on all routes defined on this app.
31111
+ IF you change the `rootURL` in your environment configuration
31112
+ like so:
31113
+ ```config/environment.js
31114
+ 'use strict';
31115
+ module.exports = function(environment) {
31116
+ let ENV = {
31117
+ modulePrefix: 'router-service',
31118
+ environment,
31119
+ rootURL: '/my-root',
31120
+
31121
+ }
31122
+ ]
31123
+ ```
31124
+ This property will return `/my-root`.
31125
+ @property rootURL
31126
+ @default '/'
31127
+ @public
31128
+ */
30953
31129
  rootURL: (0, _emberRuntime.readOnly)('_router.rootURL'),
30954
31130
  _router: null,
30955
31131
 
@@ -31777,10 +31953,10 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31777
31953
  A hook you can use to reset controller values either when the model
31778
31954
  changes or the route is exiting.
31779
31955
  ```app/routes/articles.js
31780
- import Ember from 'ember';
31781
- export default Ember.Route.extend({
31956
+ import Route from '@ember/routing/route';
31957
+ export default Route.extend({
31782
31958
  resetController(controller, isExiting, transition) {
31783
- if (isExiting) {
31959
+ if (isExiting && transition.targetName !== 'error') {
31784
31960
  controller.set('page', 1);
31785
31961
  }
31786
31962
  }
@@ -31817,8 +31993,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31817
31993
  The name of the template to use by default when rendering this routes
31818
31994
  template.
31819
31995
  ```app/routes/posts/list.js
31820
- import Ember from 'ember';
31821
- export default Ember.Route.extend({
31996
+ import Route from '@ember/routing/route';
31997
+ export default Route.extend({
31822
31998
  templateName: 'posts/list'
31823
31999
  });
31824
32000
  ```
@@ -31864,8 +32040,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31864
32040
  A good example is preventing navigation when a form is
31865
32041
  half-filled out:
31866
32042
  ```app/routes/contact-form.js
31867
- import Ember from 'ember';
31868
- export default Ember.Route.extend({
32043
+ import Route from '@ember/routing/route';
32044
+ export default Route.extend({
31869
32045
  actions: {
31870
32046
  willTransition(transition) {
31871
32047
  if (this.controller.get('userHasEnteredData')) {
@@ -31902,8 +32078,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31902
32078
  however, it can be useful for tracking page views or resetting
31903
32079
  state on the controller.
31904
32080
  ```app/routes/login.js
31905
- import Ember from 'ember';
31906
- export default Ember.Route.extend({
32081
+ import Route from '@ember/routing/route';
32082
+ export default Route.extend({
31907
32083
  actions: {
31908
32084
  didTransition() {
31909
32085
  this.controller.get('errors.base').clear();
@@ -31923,7 +32099,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31923
32099
  `Transition` object is the first parameter and the route that
31924
32100
  triggered the loading event is the second parameter.
31925
32101
  ```app/routes/application.js
31926
- export default Ember.Route.extend({
32102
+ import Route from '@ember/routing/route';
32103
+ export default Route.extend({
31927
32104
  actions: {
31928
32105
  loading(transition, route) {
31929
32106
  let controller = this.controllerFor('foo');
@@ -31952,8 +32129,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31952
32129
  for rejected promises from the various hooks on the route,
31953
32130
  as well as any unhandled errors from child routes:
31954
32131
  ```app/routes/admin.js
31955
- import Ember from 'ember';
31956
- export default Ember.Route.extend({
32132
+ import Route from '@ember/routing/route';
32133
+ export default Route.extend({
31957
32134
  beforeModel() {
31958
32135
  return Ember.RSVP.reject('bad things!');
31959
32136
  },
@@ -31977,8 +32154,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31977
32154
  specify your own global default error handler by overriding the
31978
32155
  `error` handler on `ApplicationRoute`:
31979
32156
  ```app/routes/application.js
31980
- import Ember from 'ember';
31981
- export default Ember.Route.extend({
32157
+ import Route from '@ember/routing/route';
32158
+ export default Route.extend({
31982
32159
  actions: {
31983
32160
  error(error, transition) {
31984
32161
  this.controllerFor('banner').displayError(error.message);
@@ -31997,8 +32174,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
31997
32174
  This event is triggered when the router enters the route. It is
31998
32175
  not executed when the model for the route changes.
31999
32176
  ```app/routes/application.js
32000
- import Ember from 'ember';
32001
- export default Ember.Route.extend({
32177
+ import Route from '@ember/routing/route';
32178
+ export default Route.extend({
32002
32179
  collectAnalytics: Ember.on('activate', function(){
32003
32180
  collectAnalytics();
32004
32181
  })
@@ -32013,8 +32190,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32013
32190
  This event is triggered when the router completely exits this
32014
32191
  route. It is not executed when the model for the route changes.
32015
32192
  ```app/routes/index.js
32016
- import Ember from 'ember';
32017
- export default Ember.Route.extend({
32193
+ import Route from '@ember/routing/route';
32194
+ export default Route.extend({
32018
32195
  trackPageLeaveAnalytics: Ember.on('deactivate', function(){
32019
32196
  trackPageLeaveAnalytics();
32020
32197
  })
@@ -32029,8 +32206,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32029
32206
  The controller associated with this route.
32030
32207
  Example
32031
32208
  ```app/routes/form.js
32032
- import Ember from 'ember';
32033
- export default Ember.Route.extend({
32209
+ import Route from '@ember/routing/route';
32210
+ export default Route.extend({
32034
32211
  actions: {
32035
32212
  willTransition(transition) {
32036
32213
  if (this.controller.get('userHasEnteredData') &&
@@ -32317,8 +32494,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32317
32494
  logic that can only take place after the model has already
32318
32495
  resolved.
32319
32496
  ```app/routes/posts.js
32320
- import Ember from 'ember';
32321
- export default Ember.Route.extend({
32497
+ import Route from '@ember/routing/route';
32498
+ export default Route.extend({
32322
32499
  afterModel(posts, transition) {
32323
32500
  if (posts.get('length') === 1) {
32324
32501
  this.transitionTo('post.show', posts.get('firstObject'));
@@ -32458,8 +32635,8 @@ enifed('ember-routing/system/route', ['exports', 'ember-utils', 'ember-metal', '
32458
32635
  });
32459
32636
  ```
32460
32637
  ```app/routes/post.js
32461
- import Ember from 'ember';
32462
- export default Ember.Route.extend({
32638
+ import Route from '@ember/routing/route';
32639
+ export default Route.extend({
32463
32640
  model(params) {
32464
32641
  // the server returns `{ id: 12 }`
32465
32642
  return Ember.$.getJSON('/posts/' + params.post_id);
@@ -32875,7 +33052,7 @@ enifed('ember-routing/system/router', ['exports', 'ember-utils', 'ember-console'
32875
33052
  * `hash` - use `#` to separate the server part of the URL from the Ember part: `/blog/#/posts/new`
32876
33053
  * `none` - do not store the Ember URL in the actual browser URL (mainly used for testing)
32877
33054
  * `auto` - use the best option based on browser capabilities: `history` if possible, then `hash` if possible, otherwise `none`
32878
- Note: If using ember-cli, this value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`
33055
+ This value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`
32879
33056
  @property location
32880
33057
  @default 'hash'
32881
33058
  @see {Ember.Location}
@@ -33697,6 +33874,8 @@ enifed('ember-routing/system/router', ['exports', 'ember-utils', 'ember-console'
33697
33874
  if (originRoute !== route) {
33698
33875
  var errorRouteName = findRouteStateName(route, 'error');
33699
33876
  if (errorRouteName) {
33877
+ var _errorId = (0, _emberUtils.guidFor)(error);
33878
+ router._markErrorAsHandled(_errorId);
33700
33879
  router.intermediateTransitionTo(errorRouteName, error);
33701
33880
  return false;
33702
33881
  }
@@ -33705,6 +33884,8 @@ enifed('ember-routing/system/router', ['exports', 'ember-utils', 'ember-console'
33705
33884
  // Check for an 'error' substate route
33706
33885
  var errorSubstateName = findRouteSubstateName(route, 'error');
33707
33886
  if (errorSubstateName) {
33887
+ var errorId = (0, _emberUtils.guidFor)(error);
33888
+ router._markErrorAsHandled(errorId);
33708
33889
  router.intermediateTransitionTo(errorSubstateName, error);
33709
33890
  return false;
33710
33891
  }
@@ -35237,9 +35418,9 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35237
35418
  return initialValue;
35238
35419
  }
35239
35420
  return arr.reduce(callback, initialValue, this);
35240
- }, { dependentKeys: [dependentKey + '.[]'] });
35421
+ }, { dependentKeys: [dependentKey + '.[]'], readOnly: true });
35241
35422
 
35242
- return cp.readOnly();
35423
+ return cp;
35243
35424
  }
35244
35425
 
35245
35426
  function arrayMacro(dependentKey, callback) {
@@ -35259,9 +35440,9 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35259
35440
  } else {
35260
35441
  return (0, _native_array.A)();
35261
35442
  }
35262
- }, { dependentKeys: [dependentKey] });
35443
+ }, { dependentKeys: [dependentKey], readOnly: true });
35263
35444
 
35264
- return cp.readOnly();
35445
+ return cp;
35265
35446
  }
35266
35447
 
35267
35448
  function multiArrayMacro(_dependentKeys, callback) {
@@ -35271,9 +35452,9 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35271
35452
 
35272
35453
  var cp = new _emberMetal.ComputedProperty(function () {
35273
35454
  return (0, _native_array.A)(callback.call(this, _dependentKeys));
35274
- }, { dependentKeys: dependentKeys });
35455
+ }, { dependentKeys: dependentKeys, readOnly: true });
35275
35456
 
35276
- return cp.readOnly();
35457
+ return cp;
35277
35458
  }
35278
35459
 
35279
35460
  /**
@@ -35659,7 +35840,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35659
35840
  @public
35660
35841
  */
35661
35842
  function uniqBy(dependentKey, propertyKey) {
35662
- return (0, _emberMetal.computed)(dependentKey + '.[]', function () {
35843
+ var cp = new _emberMetal.ComputedProperty(function () {
35663
35844
  var uniq = (0, _native_array.A)();
35664
35845
  var seen = Object.create(null);
35665
35846
  var list = (0, _emberMetal.get)(this, dependentKey);
@@ -35673,7 +35854,9 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35673
35854
  });
35674
35855
  }
35675
35856
  return uniq;
35676
- }).readOnly();
35857
+ }, { dependentKeys: [dependentKey + '.[]'], readOnly: true });
35858
+
35859
+ return cp;
35677
35860
  }
35678
35861
 
35679
35862
  /**
@@ -35810,7 +35993,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35810
35993
  (true && !(arguments.length === 2) && (0, _emberDebug.assert)('Ember.computed.setDiff requires exactly two dependent arrays.', arguments.length === 2));
35811
35994
 
35812
35995
 
35813
- return (0, _emberMetal.computed)(setAProperty + '.[]', setBProperty + '.[]', function () {
35996
+ var cp = new _emberMetal.ComputedProperty(function () {
35814
35997
  var setA = this.get(setAProperty);
35815
35998
  var setB = this.get(setBProperty);
35816
35999
 
@@ -35824,7 +36007,12 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
35824
36007
  return setA.filter(function (x) {
35825
36008
  return setB.indexOf(x) === -1;
35826
36009
  });
35827
- }).readOnly();
36010
+ }, {
36011
+ dependentKeys: [setAProperty + '.[]', setBProperty + '.[]'],
36012
+ readOnly: true
36013
+ });
36014
+
36015
+ return cp;
35828
36016
  }
35829
36017
 
35830
36018
  /**
@@ -36007,11 +36195,11 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
36007
36195
  activeObserversMap.set(this, activeObservers);
36008
36196
 
36009
36197
  return sortByNormalizedSortProperties(items, normalizedSortProperties);
36010
- }, { dependentKeys: [sortPropertiesKey + '.[]'] });
36198
+ }, { dependentKeys: [sortPropertiesKey + '.[]'], readOnly: true });
36011
36199
 
36012
36200
  cp._activeObserverMap = undefined;
36013
36201
 
36014
- return cp.readOnly();
36202
+ return cp;
36015
36203
  }
36016
36204
 
36017
36205
  function normalizeSortProperties(sortProperties) {
@@ -36038,7 +36226,6 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
36038
36226
  return direction === 'desc' ? -1 * result : result;
36039
36227
  }
36040
36228
  }
36041
-
36042
36229
  return 0;
36043
36230
  }));
36044
36231
  }
@@ -36072,9 +36259,13 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-debug', 'ember
36072
36259
 
36073
36260
  Example:
36074
36261
 
36075
- ```javascript
36076
- App.PostController = Ember.Controller.extend({
36077
- posts: Ember.inject.controller()
36262
+ ```app/controllers/post.js
36263
+ import Controller, {
36264
+ inject as controller
36265
+ } from '@ember/controller';
36266
+
36267
+ export default Controller.extend({
36268
+ posts: controller()
36078
36269
  });
36079
36270
  ```
36080
36271
 
@@ -36082,10 +36273,13 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-debug', 'ember
36082
36273
  looks up the `posts` controller in the container, making it easy to
36083
36274
  reference other controllers. This is functionally equivalent to:
36084
36275
 
36085
- ```javascript
36086
- App.PostController = Ember.Controller.extend({
36276
+ ```app/controllers/post.js
36277
+ import Controller from '@ember/controller';
36278
+ import { alias } from '@ember/object/computed';
36279
+
36280
+ export default Controller.extend({
36087
36281
  needs: 'posts',
36088
- posts: Ember.computed.alias('controllers.posts')
36282
+ posts: alias('controllers.posts')
36089
36283
  });
36090
36284
  ```
36091
36285
 
@@ -36213,15 +36407,18 @@ enifed('ember-runtime/ext/function', ['ember-environment', 'ember-metal', 'ember
36213
36407
  when `EmberENV.EXTEND_PROTOTYPES` or `EmberENV.EXTEND_PROTOTYPES.Function` is
36214
36408
  `true`, which is the default.
36215
36409
  Computed properties allow you to treat a function like a property:
36216
- ```javascript
36217
- MyApp.President = Ember.Object.extend({
36410
+ ```app/utils/president.js
36411
+ import EmberObject from '@ember/object';
36412
+ export default EmberObject.extend({
36218
36413
  firstName: '',
36219
36414
  lastName: '',
36220
36415
  fullName: function() {
36221
36416
  return this.get('firstName') + ' ' + this.get('lastName');
36222
36417
  }.property() // Call this flag to mark the function as a property
36223
36418
  });
36224
- let president = MyApp.President.create({
36419
+ ```
36420
+ ```javascript
36421
+ let president = President.create({
36225
36422
  firstName: 'Barack',
36226
36423
  lastName: 'Obama'
36227
36424
  });
@@ -36233,8 +36430,9 @@ enifed('ember-runtime/ext/function', ['ember-environment', 'ember-metal', 'ember
36233
36430
  example, in the above example, the `fullName` property depends on
36234
36431
  `firstName` and `lastName` to determine its value. You can tell Ember
36235
36432
  about these dependencies like this:
36236
- ```javascript
36237
- MyApp.President = Ember.Object.extend({
36433
+ ```app/utils/president.js
36434
+ import EmberObject from '@ember/object';
36435
+ export default EmberObject.extend({
36238
36436
  firstName: '',
36239
36437
  lastName: '',
36240
36438
  fullName: function() {
@@ -36266,7 +36464,8 @@ enifed('ember-runtime/ext/function', ['ember-environment', 'ember-metal', 'ember
36266
36464
  call to the end of your method declarations in classes that you write.
36267
36465
  For example:
36268
36466
  ```javascript
36269
- Ember.Object.extend({
36467
+ import EmberObject from '@ember/object';
36468
+ EmberObject.extend({
36270
36469
  valueObserver: function() {
36271
36470
  // Executes whenever the "value" property changes
36272
36471
  }.observes('value')
@@ -36310,7 +36509,8 @@ enifed('ember-runtime/ext/function', ['ember-environment', 'ember-metal', 'ember
36310
36509
  call to the end of your method declarations in classes that you write.
36311
36510
  For example:
36312
36511
  ```javascript
36313
- Ember.Object.extend({
36512
+ import EmberObject from '@ember/object';
36513
+ EmberObject.extend({
36314
36514
  valueObserver: function() {
36315
36515
  // Executes immediately after the "value" property changes
36316
36516
  }.observesImmediately('value')
@@ -36333,7 +36533,8 @@ enifed('ember-runtime/ext/function', ['ember-environment', 'ember-metal', 'ember
36333
36533
  You can listen for events simply by adding the `on` call to the end of
36334
36534
  your method declarations in classes or mixins that you write. For example:
36335
36535
  ```javascript
36336
- Ember.Mixin.create({
36536
+ import Mixin from '@ember/mixin';
36537
+ Mixin.create({
36337
36538
  doSomethingWithElement: function() {
36338
36539
  // Executes whenever the "didInsertElement" event fires
36339
36540
  }.on('didInsertElement')
@@ -37365,11 +37566,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', '
37365
37566
  }
37366
37567
 
37367
37568
  function objectAt(content, idx) {
37368
- if (content.objectAt) {
37369
- return content.objectAt(idx);
37370
- }
37371
-
37372
- return content[idx];
37569
+ return typeof content.objectAt === 'function' ? content.objectAt(idx) : content[idx];
37373
37570
  }
37374
37571
 
37375
37572
  function arrayContentWillChange(array, startIdx, removeAmt, addAmt) {
@@ -37448,7 +37645,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', '
37448
37645
  (0, _emberMetal.sendEvent)(array, '@array:change', [array, startIdx, removeAmt, addAmt]);
37449
37646
 
37450
37647
  var meta = (0, _emberMetal.peekMeta)(array);
37451
- var cache = meta && meta.readableCache();
37648
+ var cache = meta !== undefined ? meta.readableCache() : undefined;
37452
37649
  if (cache !== undefined) {
37453
37650
  var length = (0, _emberMetal.get)(array, 'length');
37454
37651
  var addedAmount = addAmt === -1 ? 0 : addAmt;
@@ -37478,7 +37675,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', '
37478
37675
  var EMBER_ARRAY = (0, _emberUtils.symbol)('EMBER_ARRAY');
37479
37676
 
37480
37677
  function isEmberArray(obj) {
37481
- return obj && !!obj[EMBER_ARRAY];
37678
+ return obj && obj[EMBER_ARRAY];
37482
37679
  }
37483
37680
 
37484
37681
  // ..........................................................
@@ -37558,17 +37755,13 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', '
37558
37755
 
37559
37756
  if ((0, _emberMetal.isNone)(beginIndex)) {
37560
37757
  beginIndex = 0;
37758
+ } else if (beginIndex < 0) {
37759
+ beginIndex = length + beginIndex;
37561
37760
  }
37562
37761
 
37563
37762
  if ((0, _emberMetal.isNone)(endIndex) || endIndex > length) {
37564
37763
  endIndex = length;
37565
- }
37566
-
37567
- if (beginIndex < 0) {
37568
- beginIndex = length + beginIndex;
37569
- }
37570
-
37571
- if (endIndex < 0) {
37764
+ } else if (endIndex < 0) {
37572
37765
  endIndex = length + endIndex;
37573
37766
  }
37574
37767
 
@@ -38550,22 +38743,22 @@ enifed('ember-runtime/mixins/evented', ['exports', 'ember-metal'], function (exp
38550
38743
  exports.default = _emberMetal.Mixin.create({
38551
38744
 
38552
38745
  /**
38553
- Subscribes to a named event with given function.
38554
- ```javascript
38555
- person.on('didLoad', function() {
38556
- // fired once the person has loaded
38557
- });
38558
- ```
38559
- An optional target can be passed in as the 2nd argument that will
38560
- be set as the "this" for the callback. This is a good way to give your
38561
- function access to the object triggering the event. When the target
38562
- parameter is used the callback becomes the third argument.
38563
- @method on
38564
- @param {String} name The name of the event
38565
- @param {Object} [target] The "this" binding for the callback
38566
- @param {Function} method The callback to execute
38567
- @return this
38568
- @public
38746
+ Subscribes to a named event with given function.
38747
+ ```javascript
38748
+ person.on('didLoad', function() {
38749
+ // fired once the person has loaded
38750
+ });
38751
+ ```
38752
+ An optional target can be passed in as the 2nd argument that will
38753
+ be set as the "this" for the callback. This is a good way to give your
38754
+ function access to the object triggering the event. When the target
38755
+ parameter is used the callback becomes the third argument.
38756
+ @method on
38757
+ @param {String} name The name of the event
38758
+ @param {Object} [target] The "this" binding for the callback
38759
+ @param {Function} method The callback to execute
38760
+ @return this
38761
+ @public
38569
38762
  */
38570
38763
  on: function (name, target, method) {
38571
38764
  (0, _emberMetal.addListener)(this, name, target, method);
@@ -39417,8 +39610,9 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal', 'ember-debu
39417
39610
  observer should be prepared to handle that.
39418
39611
  ### Observer Methods
39419
39612
  Observer methods have the following signature:
39420
- ```javascript
39421
- export default Ember.Component.extend({
39613
+ ```app/components/my-component.js
39614
+ import Component from '@ember/component';
39615
+ export default Component.extend({
39422
39616
  init() {
39423
39617
  this._super(...arguments);
39424
39618
  this.addObserver('foo', this, 'fooDidChange');
@@ -39615,7 +39809,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-d
39615
39809
  let ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
39616
39810
 
39617
39811
  let proxy = ObjectPromiseProxy.create({
39618
- promise: Ember.RSVP.cast($.getJSON('/some/remote/data.json'))
39812
+ promise: Ember.RSVP.resolve($.getJSON('/some/remote/data.json'))
39619
39813
  });
39620
39814
 
39621
39815
  proxy.then(function(json){
@@ -39638,7 +39832,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-d
39638
39832
  When the $.getJSON completes, and the promise is fulfilled
39639
39833
  with json, the life cycle attributes will update accordingly.
39640
39834
  Note that $.getJSON doesn't return an ECMA specified promise,
39641
- it is useful to wrap this with an `RSVP.cast` so that it behaves
39835
+ it is useful to wrap this with an `RSVP.resolve` so that it behaves
39642
39836
  as a spec compliant promise.
39643
39837
 
39644
39838
  ```javascript
@@ -41315,8 +41509,10 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal', 'ember-en
41315
41509
 
41316
41510
  Example
41317
41511
 
41318
- ```js
41319
- export default Ember.Component.extend({
41512
+ ```app/components/my-component.js
41513
+ import Component from '@ember/component';
41514
+
41515
+ export default Component.extend({
41320
41516
  tagName: 'ul',
41321
41517
  classNames: ['pagination'],
41322
41518
 
@@ -41449,9 +41645,12 @@ enifed('ember-runtime/system/service', ['exports', 'ember-runtime/system/object'
41449
41645
 
41450
41646
  Example:
41451
41647
 
41452
- ```javascript
41453
- App.ApplicationRoute = Ember.Route.extend({
41454
- authManager: Ember.inject.service('auth'),
41648
+ ```app/routes/application.js
41649
+ import Route from '@ember/routing/route';
41650
+ import { inject as service } from '@ember/service';
41651
+
41652
+ export default Route.extend({
41653
+ authManager: service('auth'),
41455
41654
 
41456
41655
  model() {
41457
41656
  return this.get('authManager').findCurrentUser();
@@ -45179,17 +45378,20 @@ enifed('ember-utils', ['exports'], function (exports) {
45179
45378
  `audioType` passed as an attribute:
45180
45379
 
45181
45380
  ```app/components/play-audio.js
45182
- import Ember from 'ember';
45183
-
45381
+ import Component from '@ember/component';
45382
+ import { computed } from '@ember/object';
45383
+ import { getOwner } from '@ember/application';
45384
+
45184
45385
  // Usage:
45185
45386
  //
45186
45387
  // {{play-audio audioType=model.audioType audioFile=model.file}}
45187
45388
  //
45188
- export default Ember.Component.extend({
45189
- audioService: Ember.computed('audioType', function() {
45190
- let owner = Ember.getOwner(this);
45389
+ export default Component.extend({
45390
+ audioService: computed('audioType', function() {
45391
+ let owner = getOwner(this);
45191
45392
  return owner.lookup(`service:${this.get('audioType')}`);
45192
45393
  }),
45394
+
45193
45395
  click() {
45194
45396
  let player = this.get('audioService');
45195
45397
  player.play(this.get('audioFile'));
@@ -45486,7 +45688,7 @@ enifed('ember-utils', ['exports'], function (exports) {
45486
45688
  */
45487
45689
  function tryInvoke(obj, methodName, args) {
45488
45690
  if (canInvoke(obj, methodName)) {
45489
- return args ? applyStr(obj, methodName, args) : applyStr(obj, methodName);
45691
+ return applyStr(obj, methodName, args);
45490
45692
  }
45491
45693
  }
45492
45694
 
@@ -45839,9 +46041,9 @@ enifed('ember-views/mixins/action_support', ['exports', 'ember-utils', 'ember-me
45839
46041
  For example a component for playing or pausing music may translate click events
45840
46042
  into action notifications of "play" or "stop" depending on some internal state
45841
46043
  of the component:
45842
- ```javascript
45843
- // app/components/play-button.js
45844
- export default Ember.Component.extend({
46044
+ ```app/components/play-button.js
46045
+ import Component from '@ember/component';
46046
+ export default Component.extend({
45845
46047
  click() {
45846
46048
  if (this.get('isPlaying')) {
45847
46049
  this.sendAction('play');
@@ -45859,9 +46061,9 @@ enifed('ember-views/mixins/action_support', ['exports', 'ember-utils', 'ember-me
45859
46061
  When the component receives a browser `click` event it translate this
45860
46062
  interaction into application-specific semantics ("play" or "stop") and
45861
46063
  calls the specified action.
45862
- ```javascript
45863
- // app/controller/application.js
45864
- export default Ember.Controller.extend({
46064
+ ```app/controller/application.js
46065
+ import Controller from '@ember/controller';
46066
+ export default Controller.extend({
45865
46067
  actions: {
45866
46068
  musicStarted() {
45867
46069
  // called when the play button is clicked
@@ -45876,9 +46078,9 @@ enifed('ember-views/mixins/action_support', ['exports', 'ember-utils', 'ember-me
45876
46078
  ```
45877
46079
  If no action is passed to `sendAction` a default name of "action"
45878
46080
  is assumed.
45879
- ```javascript
45880
- // app/components/next-button.js
45881
- export default Ember.Component.extend({
46081
+ ```app/components/next-button.js
46082
+ import Component from '@ember/component';
46083
+ export default Component.extend({
45882
46084
  click() {
45883
46085
  this.sendAction();
45884
46086
  }
@@ -45888,9 +46090,9 @@ enifed('ember-views/mixins/action_support', ['exports', 'ember-utils', 'ember-me
45888
46090
  {{! app/templates/application.hbs }}
45889
46091
  {{next-button action=(action "playNextSongInAlbum")}}
45890
46092
  ```
45891
- ```javascript
45892
- // app/controllers/application.js
45893
- App.ApplicationController = Ember.Controller.extend({
46093
+ ```app/controllers/application.js
46094
+ import Controller from '@ember/controller';
46095
+ export default Controller.extend({
45894
46096
  actions: {
45895
46097
  playNextSongInAlbum() {
45896
46098
  ...
@@ -46430,8 +46632,9 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-utils', 'ember-meta
46430
46632
  is a string value, the value of that string will be applied as the value
46431
46633
  for an attribute of the property's name.
46432
46634
  The following example creates a tag like `<div priority="high" />`.
46433
- ```javascript
46434
- Ember.Component.extend({
46635
+ ```app/components/my-component.js
46636
+ import Component from '@ember/component';
46637
+ export default Component.extend({
46435
46638
  attributeBindings: ['priority'],
46436
46639
  priority: 'high'
46437
46640
  });
@@ -46440,8 +46643,9 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-utils', 'ember-meta
46440
46643
  an HTML Boolean attribute. It will be present if the property is `true`
46441
46644
  and omitted if the property is `false`.
46442
46645
  The following example creates markup like `<div visible />`.
46443
- ```javascript
46444
- Ember.Component.extend({
46646
+ ```app/components/my-component.js
46647
+ import Component from '@ember/component';
46648
+ export default Component.extend({
46445
46649
  attributeBindings: ['visible'],
46446
46650
  visible: true
46447
46651
  });
@@ -46449,8 +46653,9 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-utils', 'ember-meta
46449
46653
  If you would prefer to use a custom value instead of the property name,
46450
46654
  you can create the same markup as the last example with a binding like
46451
46655
  this:
46452
- ```javascript
46453
- Ember.Component.extend({
46656
+ ```app/components/my-component.js
46657
+ import Component from '@ember/component';
46658
+ export default Component.extend({
46454
46659
  attributeBindings: ['isVisible:visible'],
46455
46660
  isVisible: true
46456
46661
  });
@@ -47838,15 +48043,15 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
47838
48043
  computed.collect = _emberRuntime.collect;
47839
48044
 
47840
48045
  /**
47841
- Defines the hash of localized strings for the current language. Used by
47842
- the `Ember.String.loc()` helper. To localize, add string values to this
47843
- hash.
48046
+ Defines the hash of localized strings for the current language. Used by
48047
+ the `Ember.String.loc()` helper. To localize, add string values to this
48048
+ hash.
47844
48049
 
47845
- @property STRINGS
47846
- @for Ember
47847
- @type Object
47848
- @private
47849
- */
48050
+ @property STRINGS
48051
+ @for Ember
48052
+ @type Object
48053
+ @private
48054
+ */
47850
48055
  Object.defineProperty(_emberMetal.default, 'STRINGS', {
47851
48056
  configurable: false,
47852
48057
  get: _emberRuntime.getStrings,
@@ -47854,19 +48059,19 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
47854
48059
  });
47855
48060
 
47856
48061
  /**
47857
- Whether searching on the global for new Namespace instances is enabled.
48062
+ Whether searching on the global for new Namespace instances is enabled.
47858
48063
 
47859
- This is only exported here as to not break any addons. Given the new
47860
- visit API, you will have issues if you treat this as a indicator of
47861
- booted.
48064
+ This is only exported here as to not break any addons. Given the new
48065
+ visit API, you will have issues if you treat this as a indicator of
48066
+ booted.
47862
48067
 
47863
- Internally this is only exposing a flag in Namespace.
48068
+ Internally this is only exposing a flag in Namespace.
47864
48069
 
47865
- @property BOOTED
47866
- @for Ember
47867
- @type Boolean
47868
- @private
47869
- */
48070
+ @property BOOTED
48071
+ @for Ember
48072
+ @type Boolean
48073
+ @private
48074
+ */
47870
48075
  Object.defineProperty(_emberMetal.default, 'BOOTED', {
47871
48076
  configurable: false,
47872
48077
  enumerable: false,
@@ -47903,15 +48108,15 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
47903
48108
  _emberRuntime.String.isHTMLSafe = _emberGlimmer.isHTMLSafe;
47904
48109
 
47905
48110
  /**
47906
- Global hash of shared templates. This will automatically be populated
47907
- by the build tools so that you can store your Handlebars templates in
47908
- separate files that get loaded into JavaScript at buildtime.
48111
+ Global hash of shared templates. This will automatically be populated
48112
+ by the build tools so that you can store your Handlebars templates in
48113
+ separate files that get loaded into JavaScript at buildtime.
47909
48114
 
47910
- @property TEMPLATES
47911
- @for Ember
47912
- @type Object
47913
- @private
47914
- */
48115
+ @property TEMPLATES
48116
+ @for Ember
48117
+ @type Object
48118
+ @private
48119
+ */
47915
48120
  Object.defineProperty(_emberMetal.default, 'TEMPLATES', {
47916
48121
  get: _emberGlimmer.getTemplates,
47917
48122
  set: _emberGlimmer.setTemplates,
@@ -47923,11 +48128,12 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
47923
48128
 
47924
48129
 
47925
48130
  /**
47926
- The semantic version
47927
- @property VERSION
47928
- @type String
47929
- @public
47930
- */
48131
+ The semantic version
48132
+
48133
+ @property VERSION
48134
+ @type String
48135
+ @public
48136
+ */
47931
48137
  _emberMetal.default.VERSION = _version.default;
47932
48138
 
47933
48139
  _emberMetal.libraries.registerCoreLibrary('Ember', _version.default);
@@ -47935,13 +48141,14 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
47935
48141
  // require the main entry points for each of these packages
47936
48142
  // this is so that the global exports occur properly
47937
48143
 
48144
+
47938
48145
  /**
47939
- Alias for jQuery
48146
+ Alias for jQuery
47940
48147
 
47941
- @method $
47942
- @for Ember
47943
- @public
47944
- */
48148
+ @method $
48149
+ @for Ember
48150
+ @public
48151
+ */
47945
48152
  _emberMetal.default.$ = _emberViews.jQuery;
47946
48153
 
47947
48154
  _emberMetal.default.ViewTargetActionSupport = _emberViews.ViewTargetActionSupport;
@@ -48001,7 +48208,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
48001
48208
  (0, _emberRuntime.runLoadHooks)('Ember');
48002
48209
 
48003
48210
  /**
48004
- @module ember
48211
+ @module ember
48005
48212
  */
48006
48213
  exports.default = _emberMetal.default;
48007
48214
 
@@ -48016,7 +48223,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
48016
48223
  enifed("ember/version", ["exports"], function (exports) {
48017
48224
  "use strict";
48018
48225
 
48019
- exports.default = "2.16.0-beta.1";
48226
+ exports.default = "2.16.0-beta.2";
48020
48227
  });
48021
48228
  enifed("handlebars", ["exports"], function (exports) {
48022
48229
  "use strict";