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.
- checksums.yaml +5 -5
- data/dist/ember-runtime.js +319 -230
- data/dist/ember-template-compiler.js +323 -249
- data/dist/ember-testing.js +1 -1
- data/dist/ember-tests.js +80 -18
- data/dist/ember-tests.prod.js +80 -18
- data/dist/ember.debug.js +329 -238
- data/dist/ember.min.js +146 -147
- data/dist/ember.prod.js +156 -154
- data/package.json +14 -13
- metadata +3 -3
data/dist/ember-testing.js
CHANGED
@@ -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.
|
9
|
+
* @version 2.17.0-beta.5
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
data/dist/ember-tests.js
CHANGED
@@ -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.
|
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
|
30141
|
-
_templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
30142
|
-
_templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
30143
|
-
_templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
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
|
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)(
|
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)(
|
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)(
|
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
|
30445
|
+
var _this11 = this;
|
30384
30446
|
|
30385
30447
|
this.registerPartial('_thing', '{{t}}');
|
30386
30448
|
|
30387
|
-
this.render((0, _abstractTestCase.strip)(
|
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)(
|
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)(
|
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
|
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)(
|
30481
|
+
this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject13));
|
30420
30482
|
|
30421
|
-
this.render((0, _abstractTestCase.strip)(
|
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)(
|
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)(
|
30496
|
+
return (0, _emberMetal.set)(_this12.context, 'name', 'Sophie');
|
30435
30497
|
});
|
30436
30498
|
|
30437
30499
|
this.assertText('inner.name: Sophie');
|
data/dist/ember-tests.prod.js
CHANGED
@@ -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.
|
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
|
28415
|
-
_templateObject6 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
28416
|
-
_templateObject7 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
28417
|
-
_templateObject8 = (0, _emberBabel.taggedTemplateLiteralLoose)(['\n {{#
|
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
|
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)(
|
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)(
|
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)(
|
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
|
28718
|
+
var _this11 = this;
|
28657
28719
|
|
28658
28720
|
this.registerPartial('_thing', '{{t}}');
|
28659
28721
|
|
28660
|
-
this.render((0, _abstractTestCase.strip)(
|
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)(
|
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)(
|
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
|
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)(
|
28754
|
+
this.registerPartial('_some-partial', (0, _abstractTestCase.strip)(_templateObject13));
|
28693
28755
|
|
28694
|
-
this.render((0, _abstractTestCase.strip)(
|
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)(
|
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)(
|
28769
|
+
return (0, _emberMetal.set)(_this12.context, 'name', 'Sophie');
|
28708
28770
|
});
|
28709
28771
|
|
28710
28772
|
this.assertText('inner.name: Sophie');
|
data/dist/ember.debug.js
CHANGED
@@ -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.
|
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(
|
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 = (
|
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
|
-
|
5127
|
-
|
5128
|
-
|
5129
|
-
|
5130
|
-
|
5131
|
-
|
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
|
-
|
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
|
-
|
23296
|
-
|
23297
|
-
|
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
|
-
|
23305
|
-
|
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
|
-
|
23308
|
-
|
23309
|
-
|
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
|
-
|
23315
|
-
|
23316
|
-
|
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
|
-
|
23472
|
+
TransactionRunner.prototype.didRender = function didRender(object, key, reference) {
|
23473
|
+
if (!this.inTransaction) {
|
23474
|
+
return;
|
23475
|
+
}
|
23319
23476
|
{
|
23320
|
-
|
23321
|
-
|
23322
|
-
|
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
|
-
|
23325
|
-
|
23326
|
-
|
23327
|
-
|
23499
|
+
if (lastRef !== undefined) {
|
23500
|
+
while (lastRef && lastRef._propertyKey) {
|
23501
|
+
parts.unshift(lastRef._propertyKey);
|
23502
|
+
lastRef = lastRef._parentReference;
|
23503
|
+
}
|
23328
23504
|
|
23329
|
-
|
23330
|
-
|
23331
|
-
|
23332
|
-
lastRef = lastRef._parentReference;
|
23505
|
+
label = parts.join('.');
|
23506
|
+
} else {
|
23507
|
+
label = 'the same value';
|
23333
23508
|
}
|
23334
23509
|
|
23335
|
-
|
23336
|
-
|
23337
|
-
|
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
|
-
|
23519
|
+
this.shouldReflush = true;
|
23520
|
+
}
|
23521
|
+
};
|
23341
23522
|
|
23342
|
-
|
23343
|
-
|
23344
|
-
|
23345
|
-
|
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
|
-
|
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 =
|
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:
|
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.
|
48488
|
+
exports.default = "2.17.0-beta.5";
|
48398
48489
|
});
|
48399
48490
|
enifed("handlebars", ["exports"], function (exports) {
|
48400
48491
|
"use strict";
|