ember-source 2.17.0.beta.4 → 2.17.0.beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.17.0-beta.4
9
+ * @version 2.17.0-beta.5
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -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.17.0-beta.4
9
+ * @version 2.17.0-beta.5
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -30137,10 +30137,16 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30137
30137
  _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with model as |item|}}\n {{item.name}}: {{partial \'show-id\'}}\n {{/with}}'], ['\n {{#with model as |item|}}\n {{item.name}}: {{partial \'show-id\'}}\n {{/with}}']),
30138
30138
  _templateObject3 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each items as |item|}}\n {{item.id}}: {{partial \'show-item\'}} |\n {{/each}}'], ['\n {{#each items as |item|}}\n {{item.id}}: {{partial \'show-item\'}} |\n {{/each}}']),
30139
30139
  _templateObject4 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each items as |item|}}\n {{item}}: {{partial \'show-item\'}} |\n {{/each}}'], ['\n {{#each items as |item|}}\n {{item}}: {{partial \'show-item\'}} |\n {{/each}}']),
30140
- _templateObject5 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
30141
- _templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
30142
- _templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
30143
- _templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
30140
+ _templateObject5 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n [outer: {{name}}] {{partial \'inner-partial\'}}\n '], ['\n [outer: {{name}}] {{partial \'inner-partial\'}}\n ']),
30141
+ _templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each names as |name i|}}\n {{i}}: {{partial \'outer-partial\'}}\n {{/each}}'], ['\n {{#each names as |name i|}}\n {{i}}: {{partial \'outer-partial\'}}\n {{/each}}']),
30142
+ _templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Ben\' as |person2|}}\n Hi {{person1}} (aged {{age}}) and {{person2}}. {{partial \'person3-partial\'}}\n {{/with}}\n '], ['\n {{#with \'Ben\' as |person2|}}\n Hi {{person1}} (aged {{age}}) and {{person2}}. {{partial \'person3-partial\'}}\n {{/with}}\n ']),
30143
+ _templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Alex\' as |person3|}}\n Hi {{person1}} (aged {{age}}), {{person2}} and {{person3}}. {{partial \'person4-partial\'}}\n {{/with}}\n '], ['\n {{#with \'Alex\' as |person3|}}\n Hi {{person1}} (aged {{age}}), {{person2}} and {{person3}}. {{partial \'person4-partial\'}}\n {{/with}}\n ']),
30144
+ _templateObject9 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Sarah\' as |person4|}}\n Hi {{person1}} (aged {{age}}), {{person2}}, {{person3}} and {{person4}}.\n {{/with}}\n '], ['\n {{#with \'Sarah\' as |person4|}}\n Hi {{person1}} (aged {{age}}), {{person2}}, {{person3}} and {{person4}}.\n {{/with}}\n ']),
30145
+ _templateObject10 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Sophie\' as |person1|}}\n Hi {{person1}} (aged {{age}}). {{partial \'person2-partial\'}}\n {{/with}}'], ['\n {{#with \'Sophie\' as |person1|}}\n Hi {{person1}} (aged {{age}}). {{partial \'person2-partial\'}}\n {{/with}}']),
30146
+ _templateObject11 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
30147
+ _templateObject12 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
30148
+ _templateObject13 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
30149
+ _templateObject14 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
30144
30150
 
30145
30151
  (0, _testCase.moduleFor)('Helpers test: {{partial}}', function (_RenderingTest) {
30146
30152
  (0, _emberBabel.inherits)(_class, _RenderingTest);
@@ -30346,13 +30352,69 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30346
30352
  this.assertText('apple: apple |: |orange: orange |banana: banana |');
30347
30353
  };
30348
30354
 
30349
- _class.prototype['@test dynamic partials in {{#each}}'] = function testDynamicPartialsInEach() {
30355
+ _class.prototype['@test nested partials using data from {{#each}}'] = function testNestedPartialsUsingDataFromEach() {
30350
30356
  var _this8 = this;
30351
30357
 
30358
+ this.registerPartial('_outer-partial', (0, _abstractTestCase.strip)(_templateObject5));
30359
+
30360
+ this.registerPartial('inner-partial', '[inner: {{name}}]');
30361
+
30362
+ this.render((0, _abstractTestCase.strip)(_templateObject6), {
30363
+ names: (0, _emberRuntime.A)(['Alex', 'Ben'])
30364
+ });
30365
+
30366
+ this.assertStableRerender();
30367
+
30368
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]');
30369
+
30370
+ this.runTask(function () {
30371
+ return _this8.context.names.pushObject('Sophie');
30372
+ });
30373
+
30374
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]2: [outer: Sophie] [inner: Sophie]');
30375
+
30376
+ this.runTask(function () {
30377
+ return (0, _emberMetal.set)(_this8.context, 'names', (0, _emberRuntime.A)(['Alex', 'Ben']));
30378
+ });
30379
+
30380
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]');
30381
+ };
30382
+
30383
+ _class.prototype['@test nested partials within nested `{{#with}}` blocks'] = function testNestedPartialsWithinNestedWithBlocks() {
30384
+ var _this9 = this;
30385
+
30386
+ this.registerPartial('_person2-partial', (0, _abstractTestCase.strip)(_templateObject7));
30387
+
30388
+ this.registerPartial('_person3-partial', (0, _abstractTestCase.strip)(_templateObject8));
30389
+
30390
+ this.registerPartial('_person4-partial', (0, _abstractTestCase.strip)(_templateObject9));
30391
+
30392
+ this.render((0, _abstractTestCase.strip)(_templateObject10), { age: 0 });
30393
+
30394
+ this.assertStableRerender();
30395
+
30396
+ this.assertText('Hi Sophie (aged 0). Hi Sophie (aged 0) and Ben. Hi Sophie (aged 0), Ben and Alex. Hi Sophie (aged 0), Ben, Alex and Sarah.');
30397
+
30398
+ this.runTask(function () {
30399
+ return (0, _emberMetal.set)(_this9.context, 'age', 1);
30400
+ });
30401
+
30402
+ this.assertText('Hi Sophie (aged 1). Hi Sophie (aged 1) and Ben. Hi Sophie (aged 1), Ben and Alex. Hi Sophie (aged 1), Ben, Alex and Sarah.');
30403
+
30404
+ this.runTask(function () {
30405
+ return (0, _emberMetal.set)(_this9.context, 'age', 0);
30406
+ });
30407
+
30408
+ this.assertText('Hi Sophie (aged 0). Hi Sophie (aged 0) and Ben. Hi Sophie (aged 0), Ben and Alex. Hi Sophie (aged 0), Ben, Alex and Sarah.');
30409
+ };
30410
+
30411
+ _class.prototype['@test dynamic partials in {{#each}}'] = function testDynamicPartialsInEach() {
30412
+ var _this10 = this;
30413
+
30352
30414
  this.registerPartial('_odd', 'ODD{{i}}');
30353
30415
  this.registerPartial('_even', 'EVEN{{i}}');
30354
30416
 
30355
- this.render((0, _abstractTestCase.strip)(_templateObject5), {
30417
+ this.render((0, _abstractTestCase.strip)(_templateObject11), {
30356
30418
  model: {
30357
30419
  items: ['even', 'odd', 'even', 'odd'],
30358
30420
  type: 'number'
@@ -30364,13 +30426,13 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30364
30426
  this.assertText('number: EVEN0number: ODD1number: EVEN2number: ODD3');
30365
30427
 
30366
30428
  this.runTask(function () {
30367
- return (0, _emberMetal.set)(_this8.context, 'model.type', 'integer');
30429
+ return (0, _emberMetal.set)(_this10.context, 'model.type', 'integer');
30368
30430
  });
30369
30431
 
30370
30432
  this.assertText('integer: EVEN0integer: ODD1integer: EVEN2integer: ODD3');
30371
30433
 
30372
30434
  this.runTask(function () {
30373
- return (0, _emberMetal.set)(_this8.context, 'model', {
30435
+ return (0, _emberMetal.set)(_this10.context, 'model', {
30374
30436
  items: ['even', 'odd', 'even', 'odd'],
30375
30437
  type: 'number'
30376
30438
  });
@@ -30380,11 +30442,11 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30380
30442
  };
30381
30443
 
30382
30444
  _class.prototype['@test dynamic partials in {{#with}}'] = function testDynamicPartialsInWith() {
30383
- var _this9 = this;
30445
+ var _this11 = this;
30384
30446
 
30385
30447
  this.registerPartial('_thing', '{{t}}');
30386
30448
 
30387
- this.render((0, _abstractTestCase.strip)(_templateObject6), {
30449
+ this.render((0, _abstractTestCase.strip)(_templateObject12), {
30388
30450
  item: { thing: false }
30389
30451
  });
30390
30452
 
@@ -30393,20 +30455,20 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30393
30455
  this.assertText('Nothing!');
30394
30456
 
30395
30457
  this.runTask(function () {
30396
- return (0, _emberMetal.set)(_this9.context, 'item.thing', 'thing');
30458
+ return (0, _emberMetal.set)(_this11.context, 'item.thing', 'thing');
30397
30459
  });
30398
30460
 
30399
30461
  this.assertText('thing');
30400
30462
 
30401
30463
  this.runTask(function () {
30402
- return (0, _emberMetal.set)(_this9.context, 'item', { thing: false });
30464
+ return (0, _emberMetal.set)(_this11.context, 'item', { thing: false });
30403
30465
  });
30404
30466
 
30405
30467
  this.assertText('Nothing!');
30406
30468
  };
30407
30469
 
30408
30470
  _class.prototype['@test partials which contain contextual components'] = function testPartialsWhichContainContextualComponents() {
30409
- var _this10 = this;
30471
+ var _this12 = this;
30410
30472
 
30411
30473
  this.registerComponent('outer-component', {
30412
30474
  template: '{{yield (hash inner=(component "inner-component" name=name))}}'
@@ -30416,22 +30478,22 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
30416
30478
  template: '{{yield (hash name=name)}}'
30417
30479
  });
30418
30480
 
30419
- this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject7));
30481
+ this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject13));
30420
30482
 
30421
- this.render((0, _abstractTestCase.strip)(_templateObject8), { name: 'Sophie' });
30483
+ this.render((0, _abstractTestCase.strip)(_templateObject14), { name: 'Sophie' });
30422
30484
 
30423
30485
  this.assertStableRerender();
30424
30486
 
30425
30487
  this.assertText('inner.name: Sophie');
30426
30488
 
30427
30489
  this.runTask(function () {
30428
- return (0, _emberMetal.set)(_this10.context, 'name', 'Ben');
30490
+ return (0, _emberMetal.set)(_this12.context, 'name', 'Ben');
30429
30491
  });
30430
30492
 
30431
30493
  this.assertText('inner.name: Ben');
30432
30494
 
30433
30495
  this.runTask(function () {
30434
- return (0, _emberMetal.set)(_this10.context, 'name', 'Sophie');
30496
+ return (0, _emberMetal.set)(_this12.context, 'name', 'Sophie');
30435
30497
  });
30436
30498
 
30437
30499
  this.assertText('inner.name: Sophie');
@@ -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.17.0-beta.4
9
+ * @version 2.17.0-beta.5
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -28411,10 +28411,16 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28411
28411
  _templateObject2 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with model as |item|}}\n {{item.name}}: {{partial \'show-id\'}}\n {{/with}}'], ['\n {{#with model as |item|}}\n {{item.name}}: {{partial \'show-id\'}}\n {{/with}}']),
28412
28412
  _templateObject3 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each items as |item|}}\n {{item.id}}: {{partial \'show-item\'}} |\n {{/each}}'], ['\n {{#each items as |item|}}\n {{item.id}}: {{partial \'show-item\'}} |\n {{/each}}']),
28413
28413
  _templateObject4 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each items as |item|}}\n {{item}}: {{partial \'show-item\'}} |\n {{/each}}'], ['\n {{#each items as |item|}}\n {{item}}: {{partial \'show-item\'}} |\n {{/each}}']),
28414
- _templateObject5 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
28415
- _templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
28416
- _templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
28417
- _templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
28414
+ _templateObject5 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n [outer: {{name}}] {{partial \'inner-partial\'}}\n '], ['\n [outer: {{name}}] {{partial \'inner-partial\'}}\n ']),
28415
+ _templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each names as |name i|}}\n {{i}}: {{partial \'outer-partial\'}}\n {{/each}}'], ['\n {{#each names as |name i|}}\n {{i}}: {{partial \'outer-partial\'}}\n {{/each}}']),
28416
+ _templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Ben\' as |person2|}}\n Hi {{person1}} (aged {{age}}) and {{person2}}. {{partial \'person3-partial\'}}\n {{/with}}\n '], ['\n {{#with \'Ben\' as |person2|}}\n Hi {{person1}} (aged {{age}}) and {{person2}}. {{partial \'person3-partial\'}}\n {{/with}}\n ']),
28417
+ _templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Alex\' as |person3|}}\n Hi {{person1}} (aged {{age}}), {{person2}} and {{person3}}. {{partial \'person4-partial\'}}\n {{/with}}\n '], ['\n {{#with \'Alex\' as |person3|}}\n Hi {{person1}} (aged {{age}}), {{person2}} and {{person3}}. {{partial \'person4-partial\'}}\n {{/with}}\n ']),
28418
+ _templateObject9 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Sarah\' as |person4|}}\n Hi {{person1}} (aged {{age}}), {{person2}}, {{person3}} and {{person4}}.\n {{/with}}\n '], ['\n {{#with \'Sarah\' as |person4|}}\n Hi {{person1}} (aged {{age}}), {{person2}}, {{person3}} and {{person4}}.\n {{/with}}\n ']),
28419
+ _templateObject10 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with \'Sophie\' as |person1|}}\n Hi {{person1}} (aged {{age}}). {{partial \'person2-partial\'}}\n {{/with}}'], ['\n {{#with \'Sophie\' as |person1|}}\n Hi {{person1}} (aged {{age}}). {{partial \'person2-partial\'}}\n {{/with}}']),
28420
+ _templateObject11 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}'], ['\n {{#each model.items as |template i|}}\n {{model.type}}: {{partial template}}\n {{/each}}']),
28421
+ _templateObject12 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}'], ['\n {{#with item.thing as |t|}}\n {{partial t}}\n {{else}}\n Nothing!\n {{/with}}']),
28422
+ _templateObject13 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n '], ['\n {{#outer.inner as |inner|}}\n inner.name: {{inner.name}}\n {{/outer.inner}}\n ']),
28423
+ _templateObject14 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}'], ['\n {{#outer-component name=name as |outer|}}\n {{partial \'some-partial\'}}\n {{/outer-component}}']);
28418
28424
 
28419
28425
  (0, _testCase.moduleFor)('Helpers test: {{partial}}', function (_RenderingTest) {
28420
28426
  (0, _emberBabel.inherits)(_class, _RenderingTest);
@@ -28619,13 +28625,69 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28619
28625
  this.assertText('apple: apple |: |orange: orange |banana: banana |');
28620
28626
  };
28621
28627
 
28622
- _class.prototype['@test dynamic partials in {{#each}}'] = function () {
28628
+ _class.prototype['@test nested partials using data from {{#each}}'] = function () {
28623
28629
  var _this8 = this;
28624
28630
 
28631
+ this.registerPartial('_outer-partial', (0, _abstractTestCase.strip)(_templateObject5));
28632
+
28633
+ this.registerPartial('inner-partial', '[inner: {{name}}]');
28634
+
28635
+ this.render((0, _abstractTestCase.strip)(_templateObject6), {
28636
+ names: (0, _emberRuntime.A)(['Alex', 'Ben'])
28637
+ });
28638
+
28639
+ this.assertStableRerender();
28640
+
28641
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]');
28642
+
28643
+ this.runTask(function () {
28644
+ return _this8.context.names.pushObject('Sophie');
28645
+ });
28646
+
28647
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]2: [outer: Sophie] [inner: Sophie]');
28648
+
28649
+ this.runTask(function () {
28650
+ return (0, _emberMetal.set)(_this8.context, 'names', (0, _emberRuntime.A)(['Alex', 'Ben']));
28651
+ });
28652
+
28653
+ this.assertText('0: [outer: Alex] [inner: Alex]1: [outer: Ben] [inner: Ben]');
28654
+ };
28655
+
28656
+ _class.prototype['@test nested partials within nested `{{#with}}` blocks'] = function () {
28657
+ var _this9 = this;
28658
+
28659
+ this.registerPartial('_person2-partial', (0, _abstractTestCase.strip)(_templateObject7));
28660
+
28661
+ this.registerPartial('_person3-partial', (0, _abstractTestCase.strip)(_templateObject8));
28662
+
28663
+ this.registerPartial('_person4-partial', (0, _abstractTestCase.strip)(_templateObject9));
28664
+
28665
+ this.render((0, _abstractTestCase.strip)(_templateObject10), { age: 0 });
28666
+
28667
+ this.assertStableRerender();
28668
+
28669
+ this.assertText('Hi Sophie (aged 0). Hi Sophie (aged 0) and Ben. Hi Sophie (aged 0), Ben and Alex. Hi Sophie (aged 0), Ben, Alex and Sarah.');
28670
+
28671
+ this.runTask(function () {
28672
+ return (0, _emberMetal.set)(_this9.context, 'age', 1);
28673
+ });
28674
+
28675
+ this.assertText('Hi Sophie (aged 1). Hi Sophie (aged 1) and Ben. Hi Sophie (aged 1), Ben and Alex. Hi Sophie (aged 1), Ben, Alex and Sarah.');
28676
+
28677
+ this.runTask(function () {
28678
+ return (0, _emberMetal.set)(_this9.context, 'age', 0);
28679
+ });
28680
+
28681
+ this.assertText('Hi Sophie (aged 0). Hi Sophie (aged 0) and Ben. Hi Sophie (aged 0), Ben and Alex. Hi Sophie (aged 0), Ben, Alex and Sarah.');
28682
+ };
28683
+
28684
+ _class.prototype['@test dynamic partials in {{#each}}'] = function () {
28685
+ var _this10 = this;
28686
+
28625
28687
  this.registerPartial('_odd', 'ODD{{i}}');
28626
28688
  this.registerPartial('_even', 'EVEN{{i}}');
28627
28689
 
28628
- this.render((0, _abstractTestCase.strip)(_templateObject5), {
28690
+ this.render((0, _abstractTestCase.strip)(_templateObject11), {
28629
28691
  model: {
28630
28692
  items: ['even', 'odd', 'even', 'odd'],
28631
28693
  type: 'number'
@@ -28637,13 +28699,13 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28637
28699
  this.assertText('number: EVEN0number: ODD1number: EVEN2number: ODD3');
28638
28700
 
28639
28701
  this.runTask(function () {
28640
- return (0, _emberMetal.set)(_this8.context, 'model.type', 'integer');
28702
+ return (0, _emberMetal.set)(_this10.context, 'model.type', 'integer');
28641
28703
  });
28642
28704
 
28643
28705
  this.assertText('integer: EVEN0integer: ODD1integer: EVEN2integer: ODD3');
28644
28706
 
28645
28707
  this.runTask(function () {
28646
- return (0, _emberMetal.set)(_this8.context, 'model', {
28708
+ return (0, _emberMetal.set)(_this10.context, 'model', {
28647
28709
  items: ['even', 'odd', 'even', 'odd'],
28648
28710
  type: 'number'
28649
28711
  });
@@ -28653,11 +28715,11 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28653
28715
  };
28654
28716
 
28655
28717
  _class.prototype['@test dynamic partials in {{#with}}'] = function () {
28656
- var _this9 = this;
28718
+ var _this11 = this;
28657
28719
 
28658
28720
  this.registerPartial('_thing', '{{t}}');
28659
28721
 
28660
- this.render((0, _abstractTestCase.strip)(_templateObject6), {
28722
+ this.render((0, _abstractTestCase.strip)(_templateObject12), {
28661
28723
  item: { thing: false }
28662
28724
  });
28663
28725
 
@@ -28666,20 +28728,20 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28666
28728
  this.assertText('Nothing!');
28667
28729
 
28668
28730
  this.runTask(function () {
28669
- return (0, _emberMetal.set)(_this9.context, 'item.thing', 'thing');
28731
+ return (0, _emberMetal.set)(_this11.context, 'item.thing', 'thing');
28670
28732
  });
28671
28733
 
28672
28734
  this.assertText('thing');
28673
28735
 
28674
28736
  this.runTask(function () {
28675
- return (0, _emberMetal.set)(_this9.context, 'item', { thing: false });
28737
+ return (0, _emberMetal.set)(_this11.context, 'item', { thing: false });
28676
28738
  });
28677
28739
 
28678
28740
  this.assertText('Nothing!');
28679
28741
  };
28680
28742
 
28681
28743
  _class.prototype['@test partials which contain contextual components'] = function () {
28682
- var _this10 = this;
28744
+ var _this12 = this;
28683
28745
 
28684
28746
  this.registerComponent('outer-component', {
28685
28747
  template: '{{yield (hash inner=(component "inner-component" name=name))}}'
@@ -28689,22 +28751,22 @@ enifed('ember-glimmer/tests/integration/helpers/partial-test', ['ember-babel', '
28689
28751
  template: '{{yield (hash name=name)}}'
28690
28752
  });
28691
28753
 
28692
- this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject7));
28754
+ this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject13));
28693
28755
 
28694
- this.render((0, _abstractTestCase.strip)(_templateObject8), { name: 'Sophie' });
28756
+ this.render((0, _abstractTestCase.strip)(_templateObject14), { name: 'Sophie' });
28695
28757
 
28696
28758
  this.assertStableRerender();
28697
28759
 
28698
28760
  this.assertText('inner.name: Sophie');
28699
28761
 
28700
28762
  this.runTask(function () {
28701
- return (0, _emberMetal.set)(_this10.context, 'name', 'Ben');
28763
+ return (0, _emberMetal.set)(_this12.context, 'name', 'Ben');
28702
28764
  });
28703
28765
 
28704
28766
  this.assertText('inner.name: Ben');
28705
28767
 
28706
28768
  this.runTask(function () {
28707
- return (0, _emberMetal.set)(_this10.context, 'name', 'Sophie');
28769
+ return (0, _emberMetal.set)(_this12.context, 'name', 'Sophie');
28708
28770
  });
28709
28771
 
28710
28772
  this.assertText('inner.name: Sophie');
@@ -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.17.0-beta.4
9
+ * @version 2.17.0-beta.5
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -5109,26 +5109,28 @@ enifed('@glimmer/runtime', ['exports', '@glimmer/util', '@glimmer/reference', '@
5109
5109
  var partial = _partial;
5110
5110
  var partialSymbols = partial.symbolTable.symbols;
5111
5111
  var outerScope = vm.scope();
5112
+ var evalScope = outerScope.getEvalScope();
5112
5113
  var partialScope = vm.pushRootScope(partialSymbols.length, false);
5113
5114
  partialScope.bindCallerScope(outerScope.getCallerScope());
5114
- partialScope.bindEvalScope(outerScope.getEvalScope());
5115
+ partialScope.bindEvalScope(evalScope);
5115
5116
  partialScope.bindSelf(outerScope.getSelf());
5116
5117
  var evalInfo = this.evalInfo,
5117
5118
  outerSymbols = this.outerSymbols;
5118
5119
 
5119
- var locals = (0, _util.dict)();
5120
+ var locals = Object.create(outerScope.getPartialMap());
5120
5121
  for (var i = 0; i < evalInfo.length; i++) {
5121
5122
  var slot = evalInfo[i];
5122
5123
  var name = outerSymbols[slot - 1];
5123
5124
  var ref = outerScope.getSymbol(slot);
5124
5125
  locals[name] = ref;
5125
5126
  }
5126
- var evalScope = outerScope.getEvalScope();
5127
- for (var _i2 = 0; _i2 < partialSymbols.length; _i2++) {
5128
- var _name = partialSymbols[_i2];
5129
- var symbol = _i2 + 1;
5130
- var value = evalScope[_name];
5131
- if (value !== undefined) partialScope.bind(symbol, value);
5127
+ if (evalScope) {
5128
+ for (var _i2 = 0; _i2 < partialSymbols.length; _i2++) {
5129
+ var _name = partialSymbols[_i2];
5130
+ var symbol = _i2 + 1;
5131
+ var value = evalScope[_name];
5132
+ if (value !== undefined) partialScope.bind(symbol, value);
5133
+ }
5132
5134
  }
5133
5135
  partialScope.bindPartialMap(locals);
5134
5136
  vm.pushFrame();
@@ -23268,6 +23270,146 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23268
23270
  return ObserverSet;
23269
23271
  }();
23270
23272
 
23273
+ /**
23274
+ @module ember
23275
+ */
23276
+ var id = 0;
23277
+
23278
+ // Returns whether Type(value) is Object according to the terminology in the spec
23279
+ function isObject$1(value) {
23280
+ return typeof value === 'object' && value !== null || typeof value === 'function';
23281
+ }
23282
+
23283
+ /*
23284
+ * @class Ember.WeakMap
23285
+ * @public
23286
+ * @category ember-metal-weakmap
23287
+ *
23288
+ * A partial polyfill for [WeakMap](http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects).
23289
+ *
23290
+ * There is a small but important caveat. This implementation assumes that the
23291
+ * weak map will live longer (in the sense of garbage collection) than all of its
23292
+ * keys, otherwise it is possible to leak the values stored in the weak map. In
23293
+ * practice, most use cases satisfy this limitation which is why it is included
23294
+ * in ember-metal.
23295
+ */
23296
+ var WeakMapPolyfill = function () {
23297
+ function WeakMapPolyfill(iterable) {
23298
+ emberBabel.classCallCheck(this, WeakMapPolyfill);
23299
+
23300
+ this._id = emberUtils.GUID_KEY + id++;
23301
+
23302
+ if (iterable === null || iterable === undefined) {
23303
+ return;
23304
+ } else if (Array.isArray(iterable)) {
23305
+ for (var i = 0; i < iterable.length; i++) {
23306
+ var _iterable$i = iterable[i],
23307
+ key = _iterable$i[0],
23308
+ value = _iterable$i[1];
23309
+
23310
+ this.set(key, value);
23311
+ }
23312
+ } else {
23313
+ throw new TypeError('The weak map constructor polyfill only supports an array argument');
23314
+ }
23315
+ }
23316
+
23317
+ /*
23318
+ * @method get
23319
+ * @param key {Object | Function}
23320
+ * @return {Any} stored value
23321
+ */
23322
+
23323
+ WeakMapPolyfill.prototype.get = function get(obj) {
23324
+ if (!isObject$1(obj)) {
23325
+ return undefined;
23326
+ }
23327
+
23328
+ var meta$$1 = exports.peekMeta(obj);
23329
+ if (meta$$1 !== undefined) {
23330
+ var map = meta$$1.readableWeak();
23331
+ if (map !== undefined) {
23332
+ var val = map[this._id];
23333
+ if (val === UNDEFINED) {
23334
+ return undefined;
23335
+ }
23336
+ return val;
23337
+ }
23338
+ }
23339
+ };
23340
+
23341
+ /*
23342
+ * @method set
23343
+ * @param key {Object | Function}
23344
+ * @param value {Any}
23345
+ * @return {WeakMap} the weak map
23346
+ */
23347
+
23348
+ WeakMapPolyfill.prototype.set = function set(obj, value) {
23349
+ if (!isObject$1(obj)) {
23350
+ throw new TypeError('Invalid value used as weak map key');
23351
+ }
23352
+
23353
+ if (value === undefined) {
23354
+ value = UNDEFINED;
23355
+ }
23356
+
23357
+ meta(obj).writableWeak()[this._id] = value;
23358
+
23359
+ return this;
23360
+ };
23361
+
23362
+ /*
23363
+ * @method has
23364
+ * @param key {Object | Function}
23365
+ * @return {boolean} if the key exists
23366
+ */
23367
+
23368
+ WeakMapPolyfill.prototype.has = function has(obj) {
23369
+ if (!isObject$1(obj)) {
23370
+ return false;
23371
+ }
23372
+
23373
+ var meta$$1 = exports.peekMeta(obj);
23374
+ if (meta$$1 !== undefined) {
23375
+ var map = meta$$1.readableWeak();
23376
+ if (map !== undefined) {
23377
+ return map[this._id] !== undefined;
23378
+ }
23379
+ }
23380
+
23381
+ return false;
23382
+ };
23383
+
23384
+ /*
23385
+ * @method delete
23386
+ * @param key {Object | Function}
23387
+ * @return {boolean} if the key was deleted
23388
+ */
23389
+
23390
+ WeakMapPolyfill.prototype.delete = function _delete(obj) {
23391
+ if (this.has(obj)) {
23392
+ delete exports.peekMeta(obj).writableWeak()[this._id];
23393
+ return true;
23394
+ } else {
23395
+ return false;
23396
+ }
23397
+ };
23398
+
23399
+ /*
23400
+ * @method toString
23401
+ * @return {String}
23402
+ */
23403
+
23404
+ WeakMapPolyfill.prototype.toString = function toString$$1() {
23405
+ return '[object WeakMap]';
23406
+ };
23407
+
23408
+ return WeakMapPolyfill;
23409
+ }();
23410
+
23411
+ var WeakMap$1 = emberUtils.HAS_NATIVE_WEAKMAP ? WeakMap : WeakMapPolyfill;
23412
+
23271
23413
  exports.runInTransaction = void 0;
23272
23414
  exports.didRender = void 0;
23273
23415
  exports.assertNotRendered = void 0;
@@ -23275,80 +23417,200 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
23275
23417
  // detect-backtracking-rerender by default is debug build only
23276
23418
  // detect-glimmer-allow-backtracking-rerender can be enabled in custom builds
23277
23419
  if (ember_features.EMBER_GLIMMER_DETECT_BACKTRACKING_RERENDER || ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
23278
- var counter = 0;
23279
- var inTransaction = false;
23280
- var shouldReflush = void 0;
23281
- var debugStack = void 0;
23282
23420
 
23283
- exports.runInTransaction = function (context$$1, methodName) {
23284
- shouldReflush = false;
23285
- inTransaction = true;
23286
- {
23287
- debugStack = context$$1.env.debugStack;
23288
- }
23289
- context$$1[methodName]();
23290
- inTransaction = false;
23291
- counter++;
23292
- return shouldReflush;
23293
- };
23421
+ // there are 4 states
23294
23422
 
23295
- exports.didRender = function (object, key, reference) {
23296
- if (!inTransaction) {
23297
- return;
23298
- }
23299
- var meta$$1 = meta(object);
23300
- var lastRendered = meta$$1.writableLastRendered();
23301
- lastRendered[key] = counter;
23423
+ // NATIVE WEAKMAP AND DEBUG
23424
+ // tracks lastRef and lastRenderedIn per rendered object and key during a transaction
23425
+ // release everything via normal weakmap semantics by just derefencing the weakmap
23302
23426
 
23303
- {
23304
- var referenceMap = meta$$1.writableLastRenderedReferenceMap();
23305
- referenceMap[key] = reference;
23427
+ // NATIVE WEAKMAP AND RELEASE
23428
+ // tracks transactionId per rendered object and key during a transaction
23429
+ // release everything via normal weakmap semantics by just derefencing the weakmap
23430
+
23431
+ // WEAKMAP POLYFILL AND DEBUG
23432
+ // tracks lastRef and lastRenderedIn per rendered object and key during a transaction
23433
+ // since lastRef retains a lot of app state (will have a ref to the Container)
23434
+ // if the object rendered is retained (like a immutable POJO in module state)
23435
+ // during acceptance tests this adds up and obfuscates finding other leaks.
23306
23436
 
23307
- var templateMap = meta$$1.writableLastRenderedTemplateMap();
23308
- if (templateMap[key] === undefined) {
23309
- templateMap[key] = debugStack.peek();
23437
+ // WEAKMAP POLYFILL AND RELEASE
23438
+ // tracks transactionId per rendered object and key during a transaction
23439
+ // leaks it because small and likely not worth tracking it since it will only
23440
+ // be leaked if the object is retained
23441
+
23442
+ var TransactionRunner = function () {
23443
+ function TransactionRunner() {
23444
+ emberBabel.classCallCheck(this, TransactionRunner);
23445
+
23446
+ this.transactionId = 0;
23447
+ this.inTransaction = false;
23448
+ this.shouldReflush = false;
23449
+ this.weakMap = new WeakMap$1();
23450
+ {
23451
+ // track templates
23452
+ this.debugStack = undefined;
23453
+
23454
+ if (!emberUtils.HAS_NATIVE_WEAKMAP) {
23455
+ // DEBUG AND POLYFILL
23456
+ // needs obj tracking
23457
+ this.objs = [];
23458
+ }
23310
23459
  }
23311
23460
  }
23312
- };
23313
23461
 
23314
- exports.assertNotRendered = function (object, key, _meta) {
23315
- var meta$$1 = _meta || meta(object);
23316
- var lastRendered = meta$$1.readableLastRendered();
23462
+ TransactionRunner.prototype.runInTransaction = function runInTransaction(context$$1, methodName) {
23463
+ this.before(context$$1);
23464
+ try {
23465
+ context$$1[methodName]();
23466
+ } finally {
23467
+ this.after();
23468
+ }
23469
+ return this.shouldReflush;
23470
+ };
23317
23471
 
23318
- if (lastRendered && lastRendered[key] === counter) {
23472
+ TransactionRunner.prototype.didRender = function didRender(object, key, reference) {
23473
+ if (!this.inTransaction) {
23474
+ return;
23475
+ }
23319
23476
  {
23320
- var templateMap = meta$$1.readableLastRenderedTemplateMap();
23321
- var lastRenderedIn = templateMap[key];
23322
- var currentlyIn = debugStack.peek();
23477
+ this.setKey(object, key, {
23478
+ lastRef: reference,
23479
+ lastRenderedIn: this.debugStack.peek()
23480
+ });
23481
+ }
23482
+ };
23483
+
23484
+ TransactionRunner.prototype.assertNotRendered = function assertNotRendered(object, key) {
23485
+ if (!this.inTransaction) {
23486
+ return;
23487
+ }
23488
+ if (this.hasRendered(object, key)) {
23489
+ {
23490
+ var _getKey = this.getKey(object, key),
23491
+ lastRef = _getKey.lastRef,
23492
+ lastRenderedIn = _getKey.lastRenderedIn;
23493
+
23494
+ var currentlyIn = this.debugStack.peek();
23495
+
23496
+ var parts = [];
23497
+ var label = void 0;
23323
23498
 
23324
- var referenceMap = meta$$1.readableLastRenderedReferenceMap();
23325
- var lastRef = referenceMap[key];
23326
- var parts = [];
23327
- var label = void 0;
23499
+ if (lastRef !== undefined) {
23500
+ while (lastRef && lastRef._propertyKey) {
23501
+ parts.unshift(lastRef._propertyKey);
23502
+ lastRef = lastRef._parentReference;
23503
+ }
23328
23504
 
23329
- if (lastRef) {
23330
- while (lastRef && lastRef._propertyKey) {
23331
- parts.unshift(lastRef._propertyKey);
23332
- lastRef = lastRef._parentReference;
23505
+ label = parts.join('.');
23506
+ } else {
23507
+ label = 'the same value';
23333
23508
  }
23334
23509
 
23335
- label = parts.join('.');
23336
- } else {
23337
- label = 'the same value';
23510
+ var message = 'You modified "' + label + '" twice on ' + object + ' in a single render. It was rendered in ' + lastRenderedIn + ' and modified in ' + currentlyIn + '. This was unreliable and slow in Ember 1.x and';
23511
+
23512
+ if (ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
23513
+ true && !false && emberDebug.deprecate(message + ' will be removed in Ember 3.0.', false, { id: 'ember-views.render-double-modify', until: '3.0.0' });
23514
+ } else {
23515
+ true && !false && emberDebug.assert(message + ' is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.', false);
23516
+ }
23338
23517
  }
23339
23518
 
23340
- var message = 'You modified "' + label + '" twice on ' + object + ' in a single render. It was rendered in ' + lastRenderedIn + ' and modified in ' + currentlyIn + '. This was unreliable and slow in Ember 1.x and';
23519
+ this.shouldReflush = true;
23520
+ }
23521
+ };
23341
23522
 
23342
- if (ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
23343
- true && !false && emberDebug.deprecate(message + ' will be removed in Ember 3.0.', false, { id: 'ember-views.render-double-modify', until: '3.0.0' });
23344
- } else {
23345
- true && !false && emberDebug.assert(message + ' is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.', false);
23523
+ TransactionRunner.prototype.hasRendered = function hasRendered(object, key) {
23524
+ if (!this.inTransaction) {
23525
+ return false;
23526
+ }
23527
+ {
23528
+ return this.getKey(object, key) !== undefined;
23529
+ }
23530
+ return this.getKey(object, key) === this.transactionId;
23531
+ };
23532
+
23533
+ TransactionRunner.prototype.before = function before(context$$1) {
23534
+ this.inTransaction = true;
23535
+ this.shouldReflush = false;
23536
+ {
23537
+ this.debugStack = context$$1.env.debugStack;
23538
+ }
23539
+ };
23540
+
23541
+ TransactionRunner.prototype.after = function after() {
23542
+ this.transactionId++;
23543
+ this.inTransaction = false;
23544
+ {
23545
+ this.debugStack = undefined;
23546
+ }
23547
+ this.clearObjectMap();
23548
+ };
23549
+
23550
+ TransactionRunner.prototype.createMap = function createMap(object) {
23551
+ var map = Object.create(null);
23552
+ this.weakMap.set(object, map);
23553
+ if (true && !emberUtils.HAS_NATIVE_WEAKMAP) {
23554
+ // POLYFILL AND DEBUG
23555
+ // requires tracking objects
23556
+ this.objs.push(object);
23557
+ }
23558
+ return map;
23559
+ };
23560
+
23561
+ TransactionRunner.prototype.getOrCreateMap = function getOrCreateMap(object) {
23562
+ var map = this.weakMap.get(object);
23563
+ if (map === undefined) {
23564
+ map = this.createMap(object);
23565
+ }
23566
+ return map;
23567
+ };
23568
+
23569
+ TransactionRunner.prototype.setKey = function setKey(object, key, value) {
23570
+ var map = this.getOrCreateMap(object);
23571
+ map[key] = value;
23572
+ };
23573
+
23574
+ TransactionRunner.prototype.getKey = function getKey(object, key) {
23575
+ var map = this.weakMap.get(object);
23576
+ if (map !== undefined) {
23577
+ return map[key];
23578
+ }
23579
+ };
23580
+
23581
+ TransactionRunner.prototype.clearObjectMap = function clearObjectMap() {
23582
+ if (emberUtils.HAS_NATIVE_WEAKMAP) {
23583
+ // NATIVE AND (DEBUG OR RELEASE)
23584
+ // if we have a real native weakmap
23585
+ // releasing the ref will allow the values to be GCed
23586
+ this.weakMap = new WeakMap$1();
23587
+ } else {
23588
+ // POLYFILL AND DEBUG
23589
+ // with a polyfill the weakmap keys must be cleared since
23590
+ // they have the last reference, acceptance tests will leak
23591
+ // the container if you render a immutable object retained
23592
+ // in module scope.
23593
+ var objs = this.objs,
23594
+ weakMap = this.weakMap;
23595
+
23596
+ this.objs = [];
23597
+ for (var i = 0; i < objs.length; i++) {
23598
+ weakMap.delete(objs[i]);
23346
23599
  }
23347
23600
  }
23601
+ // POLYFILL AND RELEASE
23602
+ // we leak the key map if the object is retained but this is
23603
+ // a POJO of keys to transaction ids
23604
+ };
23348
23605
 
23349
- shouldReflush = true;
23350
- }
23351
- };
23606
+ return TransactionRunner;
23607
+ }();
23608
+
23609
+ var runner = new TransactionRunner();
23610
+
23611
+ exports.runInTransaction = runner.runInTransaction.bind(runner);
23612
+ exports.didRender = runner.didRender.bind(runner);
23613
+ exports.assertNotRendered = runner.assertNotRendered.bind(runner);
23352
23614
  } else {
23353
23615
  // in production do nothing to detect reflushes
23354
23616
  exports.runInTransaction = function (context$$1, methodName) {
@@ -24509,14 +24771,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
24509
24771
  // inherited, and we can optimize it much better than JS runtimes.
24510
24772
  this.parent = parentMeta;
24511
24773
 
24512
- if (ember_features.EMBER_GLIMMER_DETECT_BACKTRACKING_RERENDER || ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
24513
- this._lastRendered = undefined;
24514
- {
24515
- this._lastRenderedReferenceMap = undefined;
24516
- this._lastRenderedTemplateMap = undefined;
24517
- }
24518
- }
24519
-
24520
24774
  this._listeners = undefined;
24521
24775
  this._listenersFinalized = false;
24522
24776
  this._suspendedListeners = undefined;
@@ -24884,29 +25138,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
24884
25138
  return Meta;
24885
25139
  }();
24886
25140
 
24887
- if (ember_features.EMBER_GLIMMER_DETECT_BACKTRACKING_RERENDER || ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
24888
- Meta.prototype.writableLastRendered = function () {
24889
- return this._getOrCreateOwnMap('_lastRendered');
24890
- };
24891
- Meta.prototype.readableLastRendered = function () {
24892
- return this._lastRendered;
24893
- };
24894
- {
24895
- Meta.prototype.writableLastRenderedReferenceMap = function () {
24896
- return this._getOrCreateOwnMap('_lastRenderedReferenceMap');
24897
- };
24898
- Meta.prototype.readableLastRenderedReferenceMap = function () {
24899
- return this._lastRenderedReferenceMap;
24900
- };
24901
- Meta.prototype.writableLastRenderedTemplateMap = function () {
24902
- return this._getOrCreateOwnMap('_lastRenderedTemplateMap');
24903
- };
24904
- Meta.prototype.readableLastRenderedTemplateMap = function () {
24905
- return this._lastRenderedTemplateMap;
24906
- };
24907
- }
24908
- }
24909
-
24910
25141
  for (var name in protoMethods) {
24911
25142
  Meta.prototype[name] = protoMethods[name];
24912
25143
  }
@@ -26635,146 +26866,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
26635
26866
  }
26636
26867
  }
26637
26868
 
26638
- /**
26639
- @module ember
26640
- */
26641
- var id = 0;
26642
-
26643
- // Returns whether Type(value) is Object according to the terminology in the spec
26644
- function isObject$1(value) {
26645
- return typeof value === 'object' && value !== null || typeof value === 'function';
26646
- }
26647
-
26648
- /*
26649
- * @class Ember.WeakMap
26650
- * @public
26651
- * @category ember-metal-weakmap
26652
- *
26653
- * A partial polyfill for [WeakMap](http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects).
26654
- *
26655
- * There is a small but important caveat. This implementation assumes that the
26656
- * weak map will live longer (in the sense of garbage collection) than all of its
26657
- * keys, otherwise it is possible to leak the values stored in the weak map. In
26658
- * practice, most use cases satisfy this limitation which is why it is included
26659
- * in ember-metal.
26660
- */
26661
- var WeakMapPolyfill = function () {
26662
- function WeakMapPolyfill(iterable) {
26663
- emberBabel.classCallCheck(this, WeakMapPolyfill);
26664
-
26665
- this._id = emberUtils.GUID_KEY + id++;
26666
-
26667
- if (iterable === null || iterable === undefined) {
26668
- return;
26669
- } else if (Array.isArray(iterable)) {
26670
- for (var i = 0; i < iterable.length; i++) {
26671
- var _iterable$i = iterable[i],
26672
- key = _iterable$i[0],
26673
- value = _iterable$i[1];
26674
-
26675
- this.set(key, value);
26676
- }
26677
- } else {
26678
- throw new TypeError('The weak map constructor polyfill only supports an array argument');
26679
- }
26680
- }
26681
-
26682
- /*
26683
- * @method get
26684
- * @param key {Object | Function}
26685
- * @return {Any} stored value
26686
- */
26687
-
26688
- WeakMapPolyfill.prototype.get = function get(obj) {
26689
- if (!isObject$1(obj)) {
26690
- return undefined;
26691
- }
26692
-
26693
- var meta$$1 = exports.peekMeta(obj);
26694
- if (meta$$1 !== undefined) {
26695
- var map = meta$$1.readableWeak();
26696
- if (map !== undefined) {
26697
- var val = map[this._id];
26698
- if (val === UNDEFINED) {
26699
- return undefined;
26700
- }
26701
- return val;
26702
- }
26703
- }
26704
- };
26705
-
26706
- /*
26707
- * @method set
26708
- * @param key {Object | Function}
26709
- * @param value {Any}
26710
- * @return {WeakMap} the weak map
26711
- */
26712
-
26713
- WeakMapPolyfill.prototype.set = function set(obj, value) {
26714
- if (!isObject$1(obj)) {
26715
- throw new TypeError('Invalid value used as weak map key');
26716
- }
26717
-
26718
- if (value === undefined) {
26719
- value = UNDEFINED;
26720
- }
26721
-
26722
- meta(obj).writableWeak()[this._id] = value;
26723
-
26724
- return this;
26725
- };
26726
-
26727
- /*
26728
- * @method has
26729
- * @param key {Object | Function}
26730
- * @return {boolean} if the key exists
26731
- */
26732
-
26733
- WeakMapPolyfill.prototype.has = function has(obj) {
26734
- if (!isObject$1(obj)) {
26735
- return false;
26736
- }
26737
-
26738
- var meta$$1 = exports.peekMeta(obj);
26739
- if (meta$$1 !== undefined) {
26740
- var map = meta$$1.readableWeak();
26741
- if (map !== undefined) {
26742
- return map[this._id] !== undefined;
26743
- }
26744
- }
26745
-
26746
- return false;
26747
- };
26748
-
26749
- /*
26750
- * @method delete
26751
- * @param key {Object | Function}
26752
- * @return {boolean} if the key was deleted
26753
- */
26754
-
26755
- WeakMapPolyfill.prototype.delete = function _delete(obj) {
26756
- if (this.has(obj)) {
26757
- delete exports.peekMeta(obj).writableWeak()[this._id];
26758
- return true;
26759
- } else {
26760
- return false;
26761
- }
26762
- };
26763
-
26764
- /*
26765
- * @method toString
26766
- * @return {String}
26767
- */
26768
-
26769
- WeakMapPolyfill.prototype.toString = function toString$$1() {
26770
- return '[object WeakMap]';
26771
- };
26772
-
26773
- return WeakMapPolyfill;
26774
- }();
26775
-
26776
- var weak_map = emberUtils.HAS_NATIVE_WEAKMAP ? WeakMap : WeakMapPolyfill;
26777
-
26778
26869
  /**
26779
26870
  @module @ember/utils
26780
26871
  */
@@ -29947,7 +30038,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
29947
30038
  exports.getWithDefault = getWithDefault;
29948
30039
  exports.set = set;
29949
30040
  exports.trySet = trySet;
29950
- exports.WeakMap = weak_map;
30041
+ exports.WeakMap = WeakMap$1;
29951
30042
  exports.WeakMapPolyfill = WeakMapPolyfill;
29952
30043
  exports.addListener = addListener;
29953
30044
  exports.hasListeners = hasListeners;
@@ -35416,7 +35507,7 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal', 'emb
35416
35507
 
35417
35508
  let teddy = User.create({
35418
35509
  firstName: 'Teddy',
35419
- lastName: 'Zeenny'
35510
+ lastName: 'Zeenny'
35420
35511
  });
35421
35512
 
35422
35513
  teddy.get('nickName'); // 'Teddy'
@@ -48394,7 +48485,7 @@ enifed('ember/index', ['exports', 'require', 'ember-environment', 'node-module',
48394
48485
  enifed("ember/version", ["exports"], function (exports) {
48395
48486
  "use strict";
48396
48487
 
48397
- exports.default = "2.17.0-beta.4";
48488
+ exports.default = "2.17.0-beta.5";
48398
48489
  });
48399
48490
  enifed("handlebars", ["exports"], function (exports) {
48400
48491
  "use strict";