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

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.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";