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

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