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.
- 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";
|