ember-source 2.17.2 → 2.18.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,51 +6,14 @@
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.17.2
9
+ * @version 2.18.0-beta.1
10
10
  */
11
11
 
12
+ /*global process */
12
13
  var enifed, requireModule, Ember;
13
14
  var mainContext = this; // Used in ember-environment/lib/global.js
14
15
 
15
16
  (function() {
16
- var isNode = typeof window === 'undefined' &&
17
- typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
18
-
19
- if (!isNode) {
20
- Ember = this.Ember = this.Ember || {};
21
- }
22
-
23
- if (typeof Ember === 'undefined') { Ember = {}; }
24
-
25
- if (typeof Ember.__loader === 'undefined') {
26
- var registry = {};
27
- var seen = {};
28
-
29
- enifed = function(name, deps, callback) {
30
- var value = { };
31
-
32
- if (!callback) {
33
- value.deps = [];
34
- value.callback = deps;
35
- } else {
36
- value.deps = deps;
37
- value.callback = callback;
38
- }
39
-
40
- registry[name] = value;
41
- };
42
-
43
- requireModule = function(name) {
44
- return internalRequire(name, null);
45
- };
46
-
47
- // setup `require` module
48
- requireModule['default'] = requireModule;
49
-
50
- requireModule.has = function registryHas(moduleName) {
51
- return !!registry[moduleName] || !!registry[moduleName + '/index'];
52
- };
53
-
54
17
  function missingModule(name, referrerName) {
55
18
  if (referrerName) {
56
19
  throw new Error('Could not find module ' + name + ' required by: ' + referrerName);
@@ -99,6 +62,44 @@ var mainContext = this; // Used in ember-environment/lib/global.js
99
62
  return exports;
100
63
  }
101
64
 
65
+ var isNode = typeof window === 'undefined' &&
66
+ typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
67
+
68
+ if (!isNode) {
69
+ Ember = this.Ember = this.Ember || {};
70
+ }
71
+
72
+ if (typeof Ember === 'undefined') { Ember = {}; }
73
+
74
+ if (typeof Ember.__loader === 'undefined') {
75
+ var registry = {};
76
+ var seen = {};
77
+
78
+ enifed = function(name, deps, callback) {
79
+ var value = { };
80
+
81
+ if (!callback) {
82
+ value.deps = [];
83
+ value.callback = deps;
84
+ } else {
85
+ value.deps = deps;
86
+ value.callback = callback;
87
+ }
88
+
89
+ registry[name] = value;
90
+ };
91
+
92
+ requireModule = function(name) {
93
+ return internalRequire(name, null);
94
+ };
95
+
96
+ // setup `require` module
97
+ requireModule['default'] = requireModule;
98
+
99
+ requireModule.has = function registryHas(moduleName) {
100
+ return !!registry[moduleName] || !!registry[moduleName + '/index'];
101
+ };
102
+
102
103
  requireModule._eak_seen = registry;
103
104
 
104
105
  Ember.__loader = {
@@ -584,12 +585,12 @@ enifed('container/tests/container_test', ['ember-utils', 'ember-metal', 'contain
584
585
  assert.deepEqual(factoryManager.class, Component, 'No double extend');
585
586
  });
586
587
 
587
- QUnit.test('#factoryFor must supply a fullname', function (assert) {
588
+ QUnit.test('#factoryFor must supply a fullname', function () {
588
589
  var registry = new _container.Registry();
589
590
  var container = registry.container();
590
- assert.throws(function () {
591
+ expectAssertion(function () {
591
592
  container.factoryFor('chad-bar');
592
- }, /Invalid Fullname, expected: 'type:name' got: chad-bar/);
593
+ }, /fullName must be a proper full name/);
593
594
  });
594
595
 
595
596
  QUnit.test('#factoryFor returns a factory manager', function (assert) {
@@ -841,7 +842,7 @@ enifed('container/tests/registry_test', ['container', 'internal-test-helpers'],
841
842
 
842
843
  registry.register('controller:post', PostController);
843
844
 
844
- throws(function () {
845
+ expectAssertion(function () {
845
846
  registry.typeInjection('controller', 'injected', 'controller:post');
846
847
  }, /Cannot inject a 'controller:post' on other controller\(s\)\./);
847
848
  });
@@ -902,26 +903,6 @@ enifed('container/tests/registry_test', ['container', 'internal-test-helpers'],
902
903
  equal(isPresent, true, 'Normalizes the name when checking if the factory or instance is present');
903
904
  });
904
905
 
905
- QUnit.test('validateFullName throws an error if name is incorrect', function () {
906
- expect(2);
907
-
908
- var registry = new _container.Registry();
909
- var PostController = (0, _internalTestHelpers.factory)();
910
-
911
- registry.normalize = function () {
912
- return 'controller:post';
913
- };
914
-
915
- registry.register('controller:post', PostController);
916
- throws(function () {
917
- registry.validateFullName('post');
918
- }, /TypeError: Invalid Fullname, expected: 'type:name' got: post/);
919
-
920
- throws(function () {
921
- registry.validateFullName('route:http://foo.bar.com/baz');
922
- }, /TypeError: Invalid Fullname, expected: 'type:name' got: route:http:\/\/foo.bar.com\/baz/);
923
- });
924
-
925
906
  QUnit.test('The registry normalizes names when injecting', function () {
926
907
  var registry = new _container.Registry();
927
908
  var PostController = (0, _internalTestHelpers.factory)();
@@ -965,7 +946,7 @@ enifed('container/tests/registry_test', ['container', 'internal-test-helpers'],
965
946
  registry.register('controller:apple', FirstApple);
966
947
  strictEqual(registry.resolve('controller:apple'), FirstApple);
967
948
 
968
- throws(function () {
949
+ expectAssertion(function () {
969
950
  registry.register('controller:apple', SecondApple);
970
951
  }, /Cannot re-register: 'controller:apple', as it has already been resolved\./);
971
952
 
@@ -2339,33 +2320,33 @@ enifed('ember-application/tests/system/dependency_injection/default_resolver_tes
2339
2320
  assert.equal(this.applicationInstance.lookup('controller:nested-post'), this.applicationInstance.lookup('controller:nested_post'), 'looks up NestedPost controller on application');
2340
2321
  };
2341
2322
 
2342
- _class.prototype['@test the default resolver throws an error if the fullName to resolve is invalid'] = function (assert) {
2323
+ _class.prototype['@test the default resolver throws an error if the fullName to resolve is invalid'] = function () {
2343
2324
  var _this3 = this;
2344
2325
 
2345
- assert.throws(function () {
2326
+ expectAssertion(function () {
2346
2327
  _this3.applicationInstance.resolveRegistration(undefined);
2347
- }, TypeError, /Invalid fullName/);
2348
- assert.throws(function () {
2328
+ }, /fullName must be a proper full name/);
2329
+ expectAssertion(function () {
2349
2330
  _this3.applicationInstance.resolveRegistration(null);
2350
- }, TypeError, /Invalid fullName/);
2351
- assert.throws(function () {
2331
+ }, /fullName must be a proper full name/);
2332
+ expectAssertion(function () {
2352
2333
  _this3.applicationInstance.resolveRegistration('');
2353
- }, TypeError, /Invalid fullName/);
2354
- assert.throws(function () {
2334
+ }, /fullName must be a proper full name/);
2335
+ expectAssertion(function () {
2355
2336
  _this3.applicationInstance.resolveRegistration('');
2356
- }, TypeError, /Invalid fullName/);
2357
- assert.throws(function () {
2337
+ }, /fullName must be a proper full name/);
2338
+ expectAssertion(function () {
2358
2339
  _this3.applicationInstance.resolveRegistration(':');
2359
- }, TypeError, /Invalid fullName/);
2360
- assert.throws(function () {
2340
+ }, /fullName must be a proper full name/);
2341
+ expectAssertion(function () {
2361
2342
  _this3.applicationInstance.resolveRegistration('model');
2362
- }, TypeError, /Invalid fullName/);
2363
- assert.throws(function () {
2343
+ }, /fullName must be a proper full name/);
2344
+ expectAssertion(function () {
2364
2345
  _this3.applicationInstance.resolveRegistration('model:');
2365
- }, TypeError, /Invalid fullName/);
2366
- assert.throws(function () {
2346
+ }, /fullName must be a proper full name/);
2347
+ expectAssertion(function () {
2367
2348
  _this3.applicationInstance.resolveRegistration(':type');
2368
- }, TypeError, /Invalid fullName/);
2349
+ }, /fullName must be a proper full name/);
2369
2350
  };
2370
2351
 
2371
2352
  _class.prototype['@test lookup description'] = function (assert) {
@@ -16607,165 +16588,6 @@ enifed('ember-glimmer/tests/integration/components/dynamic-components-test', ['e
16607
16588
  return _class;
16608
16589
  }(_testCase.RenderingTest));
16609
16590
  });
16610
- enifed('ember-glimmer/tests/integration/components/error-handling-test', ['ember-babel', 'ember-metal', 'ember-glimmer/tests/utils/helpers', 'ember-glimmer/tests/utils/test-case'], function (_emberBabel, _emberMetal, _helpers, _testCase) {
16611
- 'use strict';
16612
-
16613
- (0, _testCase.moduleFor)('Errors thrown during render', function (_RenderingTest) {
16614
- (0, _emberBabel.inherits)(_class, _RenderingTest);
16615
-
16616
- function _class() {
16617
- return (0, _emberBabel.possibleConstructorReturn)(this, _RenderingTest.apply(this, arguments));
16618
- }
16619
-
16620
- _class.prototype['@test it can recover resets the transaction when an error is thrown during initial render'] = function (assert) {
16621
- var _this2 = this;
16622
-
16623
- var shouldThrow = true;
16624
- var FooBarComponent = _helpers.Component.extend({
16625
- init: function () {
16626
- this._super.apply(this, arguments);
16627
- if (shouldThrow) {
16628
- throw new Error('silly mistake in init!');
16629
- }
16630
- }
16631
- });
16632
-
16633
- this.registerComponent('foo-bar', { ComponentClass: FooBarComponent, template: 'hello' });
16634
-
16635
- assert.throws(function () {
16636
- _this2.render('{{#if switch}}{{#foo-bar}}{{foo-bar}}{{/foo-bar}}{{/if}}', { switch: true });
16637
- }, /silly mistake in init/);
16638
-
16639
- assert.equal(this.env.inTransaction, false, 'should not be in a transaction even though an error was thrown');
16640
-
16641
- this.assertText('');
16642
-
16643
- this.runTask(function () {
16644
- return (0, _emberMetal.set)(_this2.context, 'switch', false);
16645
- });
16646
-
16647
- shouldThrow = false;
16648
-
16649
- this.runTask(function () {
16650
- return (0, _emberMetal.set)(_this2.context, 'switch', true);
16651
- });
16652
-
16653
- this.assertText('hello');
16654
- };
16655
-
16656
- _class.prototype['@test it can recover resets the transaction when an error is thrown during rerender'] = function (assert) {
16657
- var _this3 = this;
16658
-
16659
- var shouldThrow = false;
16660
- var FooBarComponent = _helpers.Component.extend({
16661
- init: function () {
16662
- this._super.apply(this, arguments);
16663
- if (shouldThrow) {
16664
- throw new Error('silly mistake in init!');
16665
- }
16666
- }
16667
- });
16668
-
16669
- this.registerComponent('foo-bar', { ComponentClass: FooBarComponent, template: 'hello' });
16670
-
16671
- this.render('{{#if switch}}{{#foo-bar}}{{foo-bar}}{{/foo-bar}}{{/if}}', { switch: true });
16672
-
16673
- this.assertText('hello');
16674
-
16675
- this.runTask(function () {
16676
- return (0, _emberMetal.set)(_this3.context, 'switch', false);
16677
- });
16678
-
16679
- shouldThrow = true;
16680
-
16681
- assert.throws(function () {
16682
- _this3.runTask(function () {
16683
- return (0, _emberMetal.set)(_this3.context, 'switch', true);
16684
- });
16685
- }, /silly mistake in init/);
16686
-
16687
- assert.equal(this.env.inTransaction, false, 'should not be in a transaction even though an error was thrown');
16688
-
16689
- this.assertText('');
16690
-
16691
- this.runTask(function () {
16692
- return (0, _emberMetal.set)(_this3.context, 'switch', false);
16693
- });
16694
- shouldThrow = false;
16695
-
16696
- this.runTask(function () {
16697
- return (0, _emberMetal.set)(_this3.context, 'switch', true);
16698
- });
16699
-
16700
- this.assertText('hello');
16701
- };
16702
-
16703
- _class.prototype['@test it can recover resets the transaction when an error is thrown during didInsertElement'] = function (assert) {
16704
- var _this4 = this;
16705
-
16706
- var FooBarComponent = _helpers.Component.extend({
16707
- didInsertElement: function () {
16708
- this._super.apply(this, arguments);
16709
-
16710
- throw new Error('silly mistake!');
16711
- }
16712
- });
16713
-
16714
- this.registerComponent('foo-bar', { ComponentClass: FooBarComponent, template: 'hello' });
16715
-
16716
- assert.throws(function () {
16717
- _this4.render('{{#if switch}}{{#foo-bar}}{{foo-bar}}{{/foo-bar}}{{/if}}', { switch: true });
16718
- }, /silly mistake/);
16719
-
16720
- assert.equal(this.env.inTransaction, false, 'should not be in a transaction even though an error was thrown');
16721
-
16722
- this.assertText('hello');
16723
-
16724
- this.runTask(function () {
16725
- return (0, _emberMetal.set)(_this4.context, 'switch', false);
16726
- });
16727
-
16728
- this.assertText('');
16729
- };
16730
-
16731
- _class.prototype['@test it can recover resets the transaction when an error is thrown during destroy'] = function (assert) {
16732
- var _this5 = this;
16733
-
16734
- var shouldThrow = true;
16735
- var FooBarComponent = _helpers.Component.extend({
16736
- destroy: function () {
16737
- this._super.apply(this, arguments);
16738
- if (shouldThrow) {
16739
- throw new Error('silly mistake!');
16740
- }
16741
- }
16742
- });
16743
-
16744
- this.registerComponent('foo-bar', { ComponentClass: FooBarComponent, template: 'hello' });
16745
-
16746
- this.render('{{#if switch}}{{#foo-bar}}{{foo-bar}}{{/foo-bar}}{{/if}}', { switch: true });
16747
-
16748
- this.assertText('hello');
16749
-
16750
- assert.throws(function () {
16751
- _this5.runTask(function () {
16752
- return (0, _emberMetal.set)(_this5.context, 'switch', false);
16753
- });
16754
- }, /silly mistake/);
16755
-
16756
- this.assertText('');
16757
-
16758
- shouldThrow = false;
16759
- this.runTask(function () {
16760
- return (0, _emberMetal.set)(_this5.context, 'switch', true);
16761
- });
16762
-
16763
- this.assertText('hello');
16764
- };
16765
-
16766
- return _class;
16767
- }(_testCase.RenderingTest));
16768
- });
16769
16591
  enifed('ember-glimmer/tests/integration/components/fragment-components-test', ['ember-babel', 'ember-glimmer/tests/utils/test-case', 'ember-glimmer/tests/utils/abstract-test-case', 'ember-glimmer/tests/utils/helpers', 'ember-metal'], function (_emberBabel, _testCase, _abstractTestCase, _helpers, _emberMetal) {
16770
16592
  'use strict';
16771
16593
 
@@ -27894,6 +27716,16 @@ enifed('ember-glimmer/tests/integration/helpers/loc-test', ['ember-babel', 'embe
27894
27716
  this.assertText('Hallo Freund - Hallo, Mr. Pitkin', 'the bound value is correct after replacement');
27895
27717
  };
27896
27718
 
27719
+ _class.prototype['@test it can be overriden'] = function () {
27720
+ this.registerHelper('loc', function () {
27721
+ return 'Yup';
27722
+ });
27723
+ this.render('{{loc greeting}}', {
27724
+ greeting: 'Hello Friend'
27725
+ });
27726
+ this.assertText('Yup', 'the localized string is correct');
27727
+ };
27728
+
27897
27729
  return _class;
27898
27730
  }(_testCase.RenderingTest));
27899
27731
  });
@@ -31565,7 +31397,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31565
31397
  outlet: 'main',
31566
31398
  name: 'application',
31567
31399
  controller: undefined,
31568
- ViewClass: undefined,
31569
31400
  template: undefined
31570
31401
  },
31571
31402
 
@@ -31591,7 +31422,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31591
31422
  outlet: 'main',
31592
31423
  name: 'application',
31593
31424
  controller: undefined,
31594
- ViewClass: undefined,
31595
31425
  template: undefined
31596
31426
  },
31597
31427
 
@@ -31614,7 +31444,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31614
31444
  outlet: 'main',
31615
31445
  name: 'application',
31616
31446
  controller: {},
31617
- ViewClass: undefined,
31618
31447
  template: this.owner.lookup('template:application')
31619
31448
  },
31620
31449
  outlets: Object.create(null)
@@ -31636,7 +31465,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31636
31465
  outlet: 'main',
31637
31466
  name: 'index',
31638
31467
  controller: {},
31639
- ViewClass: undefined,
31640
31468
  template: this.owner.lookup('template:index')
31641
31469
  },
31642
31470
  outlets: Object.create(null)
@@ -31660,7 +31488,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31660
31488
  outlet: 'main',
31661
31489
  name: 'application',
31662
31490
  controller: {},
31663
- ViewClass: undefined,
31664
31491
  template: this.owner.lookup('template:application')
31665
31492
  },
31666
31493
  outlets: Object.create(null)
@@ -31684,7 +31511,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31684
31511
  outlet: 'main',
31685
31512
  name: 'index',
31686
31513
  controller: {},
31687
- ViewClass: undefined,
31688
31514
  template: this.owner.lookup('template:index')
31689
31515
  },
31690
31516
  outlets: Object.create(null)
@@ -31708,7 +31534,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31708
31534
  outlet: 'main',
31709
31535
  name: 'application',
31710
31536
  controller: {},
31711
- ViewClass: undefined,
31712
31537
  template: this.owner.lookup('template:application')
31713
31538
  },
31714
31539
  outlets: Object.create(null)
@@ -31732,7 +31557,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31732
31557
  outlet: 'main',
31733
31558
  name: 'special',
31734
31559
  controller: {},
31735
- ViewClass: undefined,
31736
31560
  template: this.owner.lookup('template:special')
31737
31561
  },
31738
31562
  outlets: Object.create(null)
@@ -31756,7 +31580,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31756
31580
  outlet: 'main',
31757
31581
  name: 'application',
31758
31582
  controller: {},
31759
- ViewClass: undefined,
31760
31583
  template: this.owner.lookup('template:application')
31761
31584
  },
31762
31585
  outlets: Object.create(null)
@@ -31780,7 +31603,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31780
31603
  outlet: 'main',
31781
31604
  name: 'special',
31782
31605
  controller: {},
31783
- ViewClass: undefined,
31784
31606
  template: this.owner.lookup('template:special')
31785
31607
  },
31786
31608
  outlets: Object.create(null)
@@ -31805,7 +31627,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31805
31627
  outlet: 'main',
31806
31628
  name: 'application',
31807
31629
  controller: controller,
31808
- ViewClass: undefined,
31809
31630
  template: this.owner.lookup('template:application')
31810
31631
  },
31811
31632
  outlets: Object.create(null)
@@ -31829,7 +31650,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31829
31650
  outlet: 'main',
31830
31651
  name: 'foo',
31831
31652
  controller: {},
31832
- ViewClass: undefined,
31833
31653
  template: this.owner.lookup('template:foo')
31834
31654
  },
31835
31655
  outlets: Object.create(null)
@@ -31843,7 +31663,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31843
31663
  outlet: 'main',
31844
31664
  name: 'bar',
31845
31665
  controller: {},
31846
- ViewClass: undefined,
31847
31666
  template: this.owner.lookup('template:bar')
31848
31667
  },
31849
31668
  outlets: Object.create(null)
@@ -31884,7 +31703,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31884
31703
  outlet: 'main',
31885
31704
  name: 'outer',
31886
31705
  controller: {},
31887
- ViewClass: undefined,
31888
31706
  template: this.owner.lookup('template:outer')
31889
31707
  },
31890
31708
  outlets: {
@@ -31895,7 +31713,6 @@ enifed('ember-glimmer/tests/integration/outlet-test', ['ember-babel', 'ember-gli
31895
31713
  outlet: 'main',
31896
31714
  name: 'inner',
31897
31715
  controller: {},
31898
- ViewClass: undefined,
31899
31716
  template: this.owner.lookup('template:inner')
31900
31717
  },
31901
31718
  outlets: Object.create(null)
@@ -32940,7 +32757,7 @@ enifed('ember-glimmer/tests/integration/syntax/each-test', ['ember-babel', 'embe
32940
32757
  this.assertText('Hello Planet EarthGlobe World');
32941
32758
 
32942
32759
  this.runTask(function () {
32943
- return _this11.replace(2, 4, { text: 'my' });
32760
+ return _this11.replace(2, 4, [{ text: 'my' }]);
32944
32761
  });
32945
32762
 
32946
32763
  this.assertText('Hello my World');
@@ -33639,7 +33456,7 @@ enifed('ember-glimmer/tests/integration/syntax/each-test', ['ember-babel', 'embe
33639
33456
 
33640
33457
  this.runTask(function () {
33641
33458
  (0, _emberMetal.get)(_this37.context, 'first').pushObject('I');
33642
- (0, _emberMetal.get)(_this37.context, 'ninth').replace(0, 1, 'K');
33459
+ (0, _emberMetal.get)(_this37.context, 'ninth').replace(0, 1, ['K']);
33643
33460
  });
33644
33461
 
33645
33462
  this.assertText('O-Limbo-D-K-D-Wrath-K-Wrath-Limbo-I-D-K-D-Wrath-K-Wrath-I-O');
@@ -33671,7 +33488,7 @@ enifed('ember-glimmer/tests/integration/syntax/each-test', ['ember-babel', 'embe
33671
33488
 
33672
33489
  this.runTask(function () {
33673
33490
  var name = (0, _emberMetal.get)(_this38.context, 'name');
33674
- name.objectAt(0).replace(0, 1, 'lady');
33491
+ name.objectAt(0).replace(0, 1, ['lady']);
33675
33492
  name.pushObject(['bird']);
33676
33493
  });
33677
33494
 
@@ -34425,7 +34242,7 @@ enifed('ember-glimmer/tests/integration/syntax/with-test', ['ember-babel', 'embe
34425
34242
 
34426
34243
  this.runTask(function () {
34427
34244
  var array = (0, _emberMetal.get)(_this9.context, 'arrayThing');
34428
- array.replace(0, 1, 'Goodbye');
34245
+ array.replace(0, 1, ['Goodbye']);
34429
34246
  (0, _emberRuntime.removeAt)(array, 1);
34430
34247
  array.insertAt(1, ', ');
34431
34248
  array.pushObject('!');
@@ -43115,9 +42932,7 @@ enifed('ember-metal/tests/run_loop/later_test', ['ember-utils', 'ember-metal'],
43115
42932
  // run loop has to flush, it would have considered
43116
42933
  // the timer already expired.
43117
42934
  function pauseUntil(time) {
43118
- // jscs:disable
43119
- while (+new Date() < time) {} /* do nothing - sleeping */
43120
- // jscs:enable
42935
+ while (+new Date() < time) {/* do nothing - sleeping */}
43121
42936
  }
43122
42937
 
43123
42938
  QUnit.module('run.later', {
@@ -45322,7 +45137,6 @@ enifed('ember-routing/tests/location/util_test', ['ember-utils', 'ember-routing/
45322
45137
  }), true, 'When in IE8+, use onhashchange existence as evidence of the feature');
45323
45138
  });
45324
45139
 
45325
- // jscs:disable
45326
45140
  QUnit.test("Feature-detecting the history API", function () {
45327
45141
  equal((0, _util.supportsHistory)("", { pushState: true }), true, "returns true if not Android Gingerbread and history.pushState exists");
45328
45142
  equal((0, _util.supportsHistory)("", {}), false, "returns false if history.pushState doesn't exist");
@@ -45339,7 +45153,6 @@ enifed('ember-routing/tests/location/util_test', ['ember-utils', 'ember-routing/
45339
45153
  // Windows Phone UA and History API: https://github.com/Modernizr/Modernizr/issues/1471
45340
45154
  equal((0, _util.supportsHistory)("Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; Virtual) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537", { pushState: true }), true, "returns true for Windows Phone 8.1 with misleading user agent string");
45341
45155
  });
45342
- // jscs:enable
45343
45156
  });
45344
45157
  enifed('ember-routing/tests/system/cache_test', ['ember-routing/system/cache'], function (_cache) {
45345
45158
  'use strict';
@@ -46557,24 +46370,6 @@ enifed('ember-routing/tests/system/router_test', ['ember-utils', 'ember-routing/
46557
46370
 
46558
46371
  (0, _router.triggerEvent)(handlerInfos, false, ['loading']);
46559
46372
  });
46560
-
46561
- QUnit.test('Router#router deprecates when called', function (assert) {
46562
- assert.expect(2);
46563
-
46564
- var router = createRouter();
46565
-
46566
- expectDeprecation(function () {
46567
- assert.equal(router.router, router._routerMicrolib);
46568
- }, 'Usage of `router` is deprecated, use `_routerMicrolib` instead.');
46569
- });
46570
-
46571
- QUnit.test('Router#_routerMicrolib can be used without deprecation', function (assert) {
46572
- assert.expect(1);
46573
-
46574
- var router = createRouter();
46575
-
46576
- assert.ok(router._routerMicrolib, 'Router._routerMicrolib can be used without deprecation');
46577
- });
46578
46373
  });
46579
46374
  enifed('ember-routing/tests/utils_test', ['ember-routing/utils'], function (_utils) {
46580
46375
  'use strict';
@@ -47823,12 +47618,12 @@ enifed('ember-runtime/tests/computed/reduce_computed_macros_test', ['ember-metal
47823
47618
 
47824
47619
  var items = obj.get('items');
47825
47620
 
47826
- items.replace(0, 1, {
47621
+ items.replace(0, 1, [{
47827
47622
  fname: 'Jaime',
47828
47623
  lname: 'Lannister',
47829
47624
  age: 34
47830
- });
47831
- items.replace(1, 1, jaimeInDisguise);
47625
+ }]);
47626
+ items.replace(1, 1, [jaimeInDisguise]);
47832
47627
 
47833
47628
  deepEqual(obj.get('sortedItems').mapBy('fname'), ['Cersei', 'Jaime', 'Bran', 'Robb'], 'precond - array is initially sorted');
47834
47629
 
@@ -50245,7 +50040,7 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/observable_test', ['embe
50245
50040
  });
50246
50041
 
50247
50042
  QUnit.test('should notify array observer when array changes', function () {
50248
- (0, _emberMetal.get)(object, 'normalArray').replace(0, 0, 6);
50043
+ (0, _emberMetal.get)(object, 'normalArray').replace(0, 0, [6]);
50249
50044
  equal(object.abnormal, 'notifiedObserver', 'observer should be notified');
50250
50045
  });
50251
50046
 
@@ -53004,6 +52799,26 @@ enifed('ember-runtime/tests/mixins/target_action_support_test', ['ember-environm
53004
52799
  ok(true === obj.triggerAction(), 'a valid target and action were specified');
53005
52800
  });
53006
52801
 
52802
+ QUnit.test('it should raise a deprecation warning when targetObject is specified and used', function () {
52803
+ expect(4);
52804
+ var obj = void 0;
52805
+ expectDeprecation(function () {
52806
+ obj = _object.default.extend(_target_action_support.default).create({
52807
+ action: 'anEvent',
52808
+ actionContext: {},
52809
+ targetObject: _object.default.create({
52810
+ anEvent: function (ctx) {
52811
+ ok(obj.actionContext === ctx, 'anEvent method was called with the expected context');
52812
+ }
52813
+ })
52814
+ });
52815
+ }, /Usage of `targetObject` is deprecated. Please use `target` instead./);
52816
+ ok(true === obj.triggerAction(), 'a valid targetObject and action were specified');
52817
+ expectDeprecation(function () {
52818
+ return obj.get('targetObject');
52819
+ }, /Usage of `targetObject` is deprecated. Please use `target` instead./);
52820
+ });
52821
+
53007
52822
  QUnit.test('it should find an actionContext specified as a property path', function () {
53008
52823
  expect(2);
53009
52824
 
@@ -57383,6 +57198,21 @@ enifed('ember-runtime/tests/system/native_array/copyable_suite_test', ['ember-ut
57383
57198
  ok(copiedArray[0] !== array[0], 'objects inside should be unique');
57384
57199
  });
57385
57200
  });
57201
+ enifed('ember-runtime/tests/system/native_array/replace_test', ['ember-runtime/system/native_array'], function (_native_array) {
57202
+ 'use strict';
57203
+
57204
+ QUnit.module('NativeArray.replace');
57205
+
57206
+ QUnit.test('raises assertion if third argument is not an array', function () {
57207
+ expectAssertion(function () {
57208
+ (0, _native_array.A)([1, 2, 3]).replace(1, 1, '');
57209
+ }, 'The third argument to replace needs to be an array.');
57210
+ });
57211
+
57212
+ QUnit.test('it does not raise an assertion if third parameter is not passed', function () {
57213
+ deepEqual((0, _native_array.A)([1, 2, 3]).replace(1, 2), (0, _native_array.A)([1]), 'no assertion raised');
57214
+ });
57215
+ });
57386
57216
  enifed('ember-runtime/tests/system/native_array/suite_test', ['ember-runtime/system/native_array', 'ember-runtime/tests/suites/mutable_array'], function (_native_array, _mutable_array) {
57387
57217
  'use strict';
57388
57218
 
@@ -59908,7 +59738,7 @@ enifed('ember-template-compiler/plugins/transform-dot-component-invocation', ['e
59908
59738
  }
59909
59739
 
59910
59740
  function isMultipartPath(path) {
59911
- return path.parts.length > 1;
59741
+ return path.parts && path.parts.length > 1;
59912
59742
  }
59913
59743
 
59914
59744
  function isInlineInvocation(path, params, hash) {
@@ -60652,7 +60482,7 @@ enifed('ember-template-compiler/system/compile-options', ['exports', 'ember-util
60652
60482
 
60653
60483
  exports.default = compileOptions;
60654
60484
  exports.registerPlugin = registerPlugin;
60655
- exports.unregisterPlugin = unregisterPlugin;
60485
+ exports.removePlugin = removePlugin;
60656
60486
 
60657
60487
 
60658
60488
  var USER_PLUGINS = [];
@@ -60670,73 +60500,51 @@ enifed('ember-template-compiler/system/compile-options', ['exports', 'ember-util
60670
60500
  options.plugins = { ast: [].concat(USER_PLUGINS, _plugins.default) };
60671
60501
  } else {
60672
60502
  var potententialPugins = [].concat(USER_PLUGINS, _plugins.default);
60673
- var providedPlugins = options.plugins.ast.map(function (plugin) {
60674
- return wrapLegacyPluginIfNeeded(plugin);
60675
- });
60676
60503
  var pluginsToAdd = potententialPugins.filter(function (plugin) {
60677
60504
  return options.plugins.ast.indexOf(plugin) === -1;
60678
60505
  });
60679
- options.plugins.ast = providedPlugins.concat(pluginsToAdd);
60506
+ options.plugins.ast = options.plugins.ast.slice().concat(pluginsToAdd);
60680
60507
  }
60681
60508
 
60682
60509
  return options;
60683
60510
  }
60684
60511
 
60685
- function wrapLegacyPluginIfNeeded(_plugin) {
60686
- var plugin = _plugin;
60512
+ function registerPlugin(type, _plugin) {
60513
+ if (type !== 'ast') {
60514
+ throw new Error('Attempting to register ' + _plugin + ' as "' + type + '" which is not a valid Glimmer plugin type.');
60515
+ }
60516
+
60517
+ var plugin = void 0;
60687
60518
  if (_plugin.prototype && _plugin.prototype.transform) {
60688
60519
  plugin = function (env) {
60689
- var pluginInstantiated = false;
60690
-
60691
60520
  return {
60692
60521
  name: _plugin.constructor && _plugin.constructor.name,
60693
60522
 
60694
60523
  visitors: {
60695
60524
  Program: function (node) {
60696
- if (!pluginInstantiated) {
60697
-
60698
- pluginInstantiated = true;
60699
- var _plugin2 = new _plugin(env);
60525
+ var plugin = new _plugin(env);
60700
60526
 
60701
- _plugin2.syntax = env.syntax;
60527
+ plugin.syntax = env.syntax;
60702
60528
 
60703
- return _plugin2.transform(node);
60704
- }
60529
+ return plugin.transform(node);
60705
60530
  }
60706
60531
  }
60707
60532
  };
60708
60533
  };
60709
-
60710
- plugin.__raw = _plugin;
60711
- }
60712
-
60713
- return plugin;
60714
- }
60715
-
60716
- function registerPlugin(type, _plugin) {
60717
- if (type !== 'ast') {
60718
- throw new Error('Attempting to register ' + _plugin + ' as "' + type + '" which is not a valid Glimmer plugin type.');
60719
- }
60720
-
60721
- for (var i = 0; i < USER_PLUGINS.length; i++) {
60722
- var PLUGIN = USER_PLUGINS[i];
60723
- if (PLUGIN === _plugin || PLUGIN.__raw === _plugin) {
60724
- return;
60725
- }
60534
+ } else {
60535
+ plugin = _plugin;
60726
60536
  }
60727
60537
 
60728
- var plugin = wrapLegacyPluginIfNeeded(_plugin);
60729
-
60730
60538
  USER_PLUGINS = [plugin].concat(USER_PLUGINS);
60731
60539
  }
60732
60540
 
60733
- function unregisterPlugin(type, PluginClass) {
60541
+ function removePlugin(type, PluginClass) {
60734
60542
  if (type !== 'ast') {
60735
60543
  throw new Error('Attempting to unregister ' + PluginClass + ' as "' + type + '" which is not a valid Glimmer plugin type.');
60736
60544
  }
60737
60545
 
60738
60546
  USER_PLUGINS = USER_PLUGINS.filter(function (plugin) {
60739
- return plugin !== PluginClass && plugin.__raw !== PluginClass;
60547
+ return plugin !== PluginClass;
60740
60548
  });
60741
60549
  }
60742
60550
  });
@@ -60885,7 +60693,9 @@ enifed('ember-template-compiler/tests/plugins/transform-dot-component-invocation
60885
60693
  QUnit.test('Does not throw a compiler error for path components', function (assert) {
60886
60694
  assert.expect(1);
60887
60695
 
60888
- ['{{this.modal open}}', '{{this.modal isOpen=true}}', '{{#this.modal}}Woot{{/this.modal}}', '{{c.modal open}}', '{{c.modal isOpen=true}}', '{{#c.modal}}Woot{{/c.modal}}', '{{#my-component as |c|}}{{c.a name="Chad"}}{{/my-component}}', '{{#my-component as |c|}}{{c.a "Chad"}}{{/my-component}}', '{{#my-component as |c|}}{{#c.a}}{{/c.a}}{{/my-component}}'].forEach(function (layout, i) {
60696
+ ['{{this.modal open}}', '{{this.modal isOpen=true}}', '{{#this.modal}}Woot{{/this.modal}}', '{{c.modal open}}', '{{c.modal isOpen=true}}', '{{#c.modal}}Woot{{/c.modal}}', '{{#my-component as |c|}}{{c.a name="Chad"}}{{/my-component}}', '{{#my-component as |c|}}{{c.a "Chad"}}{{/my-component}}', '{{#my-component as |c|}}{{#c.a}}{{/c.a}}{{/my-component}}', '<input disabled={{true}}>', // GH#15740
60697
+ '<td colspan={{3}}></td>' // GH#15217
60698
+ ].forEach(function (layout, i) {
60889
60699
  (0, _index.compile)(layout, { moduleName: 'example-' + i });
60890
60700
  });
60891
60701
 
@@ -62748,6 +62558,7 @@ enifed('ember-testing/tests/helpers_test', ['ember-babel', 'internal-test-helper
62748
62558
  _this31.router.map(function () {
62749
62559
  this.route('posts', { resetNamespace: true }, function () {
62750
62560
  this.route('new');
62561
+ this.route('edit', { resetNamespace: true });
62751
62562
  });
62752
62563
  });
62753
62564
  });
@@ -62793,6 +62604,18 @@ enifed('ember-testing/tests/helpers_test', ['ember-babel', 'internal-test-helper
62793
62604
  });
62794
62605
  };
62795
62606
 
62607
+ _class4.prototype['@test currentRouteName for \'/posts/edit\''] = function (assert) {
62608
+ assert.expect(3);
62609
+
62610
+ var testHelpers = this.application.testHelpers;
62611
+
62612
+ return testHelpers.visit('/posts/edit').then(function () {
62613
+ assert.equal(testHelpers.currentRouteName(), 'edit', 'should equal \'edit\'.');
62614
+ assert.equal(testHelpers.currentPath(), 'posts.edit', 'should equal \'posts.edit\'.');
62615
+ assert.equal(testHelpers.currentURL(), '/posts/edit', 'should equal \'/posts/edit\'.');
62616
+ });
62617
+ };
62618
+
62796
62619
  return _class4;
62797
62620
  }(HelpersTestCase));
62798
62621
 
@@ -65836,24 +65659,14 @@ enifed('ember/tests/helpers/link_to_test', ['ember-babel', 'ember-console', 'int
65836
65659
  (0, _emberBabel.inherits)(_class5, _ApplicationTestCase6);
65837
65660
 
65838
65661
  function _class5() {
65839
-
65840
- var _this8 = (0, _emberBabel.possibleConstructorReturn)(this, _ApplicationTestCase6.call(this));
65841
-
65842
- _this8._oldWarn = _emberConsole.default.warn;
65843
- _this8.warnCalled = false;
65844
- _emberConsole.default.warn = function () {
65845
- return _this8.warnCalled = true;
65846
- };
65847
- return _this8;
65662
+ return (0, _emberBabel.possibleConstructorReturn)(this, _ApplicationTestCase6.apply(this, arguments));
65848
65663
  }
65849
65664
 
65850
- _class5.prototype.teardown = function () {
65851
- _emberConsole.default.warn = this._oldWarn;
65852
- _ApplicationTestCase6.prototype.teardown.call(this);
65853
- };
65854
-
65855
65665
  _class5.prototype['@test link-to with null/undefined dynamic parameters are put in a loading state'] = function (assert) {
65666
+ var _this9 = this;
65667
+
65856
65668
  assert.expect(19);
65669
+ var warningMessage = 'This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid.';
65857
65670
 
65858
65671
  this.router.map(function () {
65859
65672
  this.route('thing', { path: '/thing/:thing_id' });
@@ -65893,9 +65706,9 @@ enifed('ember/tests/helpers/link_to_test', ['ember-babel', 'ember-console', 'int
65893
65706
  assertLinkStatus(contextLink);
65894
65707
  assertLinkStatus(staticLink);
65895
65708
 
65896
- this.warnCalled = false;
65897
- this.click(contextLink);
65898
- assert.ok(this.warnCalled, 'Logger.warn was called from clicking loading link');
65709
+ expectWarning(function () {
65710
+ _this9.click(contextLink);
65711
+ }, warningMessage);
65899
65712
 
65900
65713
  // Set the destinationRoute (context is still null).
65901
65714
  this.runTask(function () {
@@ -65927,9 +65740,9 @@ enifed('ember/tests/helpers/link_to_test', ['ember-babel', 'ember-console', 'int
65927
65740
  });
65928
65741
  assertLinkStatus(contextLink);
65929
65742
 
65930
- this.warnCalled = false;
65931
- this.click(staticLink);
65932
- assert.ok(this.warnCalled, 'Logger.warn was called from clicking loading link');
65743
+ expectWarning(function () {
65744
+ _this9.click(staticLink);
65745
+ }, warningMessage);
65933
65746
 
65934
65747
  this.runTask(function () {
65935
65748
  return controller.set('secondRoute', 'about');
@@ -65951,23 +65764,23 @@ enifed('ember/tests/helpers/link_to_test', ['ember-babel', 'ember-console', 'int
65951
65764
  }
65952
65765
 
65953
65766
  _class6.prototype['@test the {{link-to}} helper throws a useful error if you invoke it wrong'] = function (assert) {
65954
- var _this10 = this;
65767
+ var _this11 = this;
65955
65768
 
65956
65769
  assert.expect(1);
65957
65770
 
65958
65771
  assert.throws(function () {
65959
- _this10.runTask(function () {
65960
- _this10.createApplication();
65772
+ _this11.runTask(function () {
65773
+ _this11.createApplication();
65961
65774
 
65962
- _this10.add('router:main', _emberRouting.Router.extend({
65775
+ _this11.add('router:main', _emberRouting.Router.extend({
65963
65776
  location: 'none'
65964
65777
  }));
65965
65778
 
65966
- _this10.router.map(function () {
65779
+ _this11.router.map(function () {
65967
65780
  this.route('post', { path: 'post/:post_id' });
65968
65781
  });
65969
65782
 
65970
- _this10.addTemplate('application', '{{#link-to \'post\'}}Post{{/link-to}}');
65783
+ _this11.addTemplate('application', '{{#link-to \'post\'}}Post{{/link-to}}');
65971
65784
  });
65972
65785
  }, /(You attempted to define a `\{\{link-to "post"\}\}` but did not pass the parameters required for generating its dynamic segments.|You must provide param `post_id` to `generate`)/);
65973
65786
  };
@@ -74413,9 +74226,31 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
74413
74226
  });
74414
74227
  };
74415
74228
 
74416
- _class.prototype['@test RouterService#transitionTo with unspecified query params'] = function (assert) {
74229
+ _class.prototype['@test RouterService#transitionTo passing only queryParams works'] = function (assert) {
74417
74230
  var _this10 = this;
74418
74231
 
74232
+ assert.expect(2);
74233
+
74234
+ this.add('controller:parent.child', _emberRuntime.Controller.extend({
74235
+ queryParams: ['sort']
74236
+ }));
74237
+
74238
+ var queryParams = this.buildQueryParams({ sort: 'DESC' });
74239
+
74240
+ return this.visit('/').then(function () {
74241
+ return _this10.routerService.transitionTo('parent.child');
74242
+ }).then(function () {
74243
+ assert.equal(_this10.routerService.get('currentURL'), '/child');
74244
+ }).then(function () {
74245
+ return _this10.routerService.transitionTo(queryParams);
74246
+ }).then(function () {
74247
+ assert.equal(_this10.routerService.get('currentURL'), '/child?sort=DESC');
74248
+ });
74249
+ };
74250
+
74251
+ _class.prototype['@test RouterService#transitionTo with unspecified query params'] = function (assert) {
74252
+ var _this11 = this;
74253
+
74419
74254
  assert.expect(1);
74420
74255
 
74421
74256
  this.add('controller:parent.child', _emberRuntime.Controller.extend({
@@ -74428,14 +74263,14 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
74428
74263
  var queryParams = this.buildQueryParams({ sort: 'ASC' });
74429
74264
 
74430
74265
  return this.visit('/').then(function () {
74431
- return _this10.routerService.transitionTo('parent.child', queryParams);
74266
+ return _this11.routerService.transitionTo('parent.child', queryParams);
74432
74267
  }).then(function () {
74433
- assert.equal(_this10.routerService.get('currentURL'), '/child?sort=ASC');
74268
+ assert.equal(_this11.routerService.get('currentURL'), '/child?sort=ASC');
74434
74269
  });
74435
74270
  };
74436
74271
 
74437
74272
  _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key'] = function (assert) {
74438
- var _this11 = this;
74273
+ var _this12 = this;
74439
74274
 
74440
74275
  assert.expect(1);
74441
74276
 
@@ -74449,14 +74284,14 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
74449
74284
  var queryParams = this.buildQueryParams({ url_sort: 'ASC' });
74450
74285
 
74451
74286
  return this.visit('/').then(function () {
74452
- return _this11.routerService.transitionTo('parent.child', queryParams);
74287
+ return _this12.routerService.transitionTo('parent.child', queryParams);
74453
74288
  }).then(function () {
74454
- assert.equal(_this11.routerService.get('currentURL'), '/child?url_sort=ASC');
74289
+ assert.equal(_this12.routerService.get('currentURL'), '/child?url_sort=ASC');
74455
74290
  });
74456
74291
  };
74457
74292
 
74458
74293
  _class.prototype['@test RouterService#transitionTo with aliased query params uses the original provided key when controller property name'] = function (assert) {
74459
- var _this12 = this;
74294
+ var _this13 = this;
74460
74295
 
74461
74296
  assert.expect(1);
74462
74297
 
@@ -74471,7 +74306,7 @@ enifed('ember/tests/routing/router_service_test/transitionTo_test', ['ember-babe
74471
74306
 
74472
74307
  return this.visit('/').then(function () {
74473
74308
  expectAssertion(function () {
74474
- return _this12.routerService.transitionTo('parent.child', queryParams);
74309
+ return _this13.routerService.transitionTo('parent.child', queryParams);
74475
74310
  }, 'You passed the `cont_sort` query parameter during a transition into parent.child, please update to url_sort');
74476
74311
  });
74477
74312
  };
@@ -77404,16 +77239,17 @@ enifed('internal-test-helpers/tests/index-test', [], function () {
77404
77239
  assert.ok(true, 'each package needs at least one test to be able to run through `npm test`');
77405
77240
  });
77406
77241
  });
77242
+ /*global enifed */
77407
77243
  enifed('node-module', ['exports'], function(_exports) {
77408
77244
  var IS_NODE = typeof module === 'object' && typeof module.require === 'function';
77409
77245
  if (IS_NODE) {
77410
77246
  _exports.require = module.require;
77411
77247
  _exports.module = module;
77412
- _exports.IS_NODE = IS_NODE
77248
+ _exports.IS_NODE = IS_NODE;
77413
77249
  } else {
77414
77250
  _exports.require = null;
77415
77251
  _exports.module = null;
77416
- _exports.IS_NODE = IS_NODE
77252
+ _exports.IS_NODE = IS_NODE;
77417
77253
  }
77418
77254
  });
77419
77255
  enifed("simple-html-tokenizer", ["exports"], function (exports) {