ember-source 1.8.0.beta.3 → 1.8.0.beta.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +215 -89
- data/dist/ember-tests.js +353 -15
- data/dist/ember-tests.prod.js +353 -15
- data/dist/ember.js +318 -182
- data/dist/ember.min.js +12 -12
- data/dist/ember.prod.js +316 -182
- metadata +2 -2
data/dist/ember-tests.prod.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.8.0-beta.
|
8
|
+
* @version 1.8.0-beta.4
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -5843,6 +5843,32 @@ define("ember-handlebars/tests/handlebars_test",
|
|
5843
5843
|
ok(view.$('#twas-called').length, "the named template was called");
|
5844
5844
|
});
|
5845
5845
|
|
5846
|
+
test("{{view}} should not override class bindings defined on a child view", function() {
|
5847
|
+
var LabelView = EmberView.extend({
|
5848
|
+
container: container,
|
5849
|
+
templateName: 'nested',
|
5850
|
+
classNameBindings: ['something'],
|
5851
|
+
something: 'visible'
|
5852
|
+
});
|
5853
|
+
|
5854
|
+
container.register('controller:label', ObjectController, { instantiate: true });
|
5855
|
+
container.register('view:label', LabelView);
|
5856
|
+
container.register('template:label', EmberHandlebars.compile('<div id="child-view"></div>'));
|
5857
|
+
container.register('template:nester', EmberHandlebars.compile('{{render "label"}}'));
|
5858
|
+
|
5859
|
+
view = EmberView.create({
|
5860
|
+
container: container,
|
5861
|
+
templateName: 'nester',
|
5862
|
+
controller: ObjectController.create({
|
5863
|
+
container: container
|
5864
|
+
})
|
5865
|
+
});
|
5866
|
+
|
5867
|
+
appendView();
|
5868
|
+
|
5869
|
+
ok(view.$('.visible').length > 0, 'class bindings are not overriden');
|
5870
|
+
});
|
5871
|
+
|
5846
5872
|
test("template view should call the function of the associated template with itself as the context", function() {
|
5847
5873
|
container.register('template:testTemplate', EmberHandlebars.compile("<h1 id='twas-called'>template was called for {{view.personName}}. Yea {{view.personName}}</h1>"));
|
5848
5874
|
|
@@ -13540,7 +13566,7 @@ define("ember-metal-views/tests/test_helpers",
|
|
13540
13566
|
if (view.element) {
|
13541
13567
|
el = view.element;
|
13542
13568
|
} else {
|
13543
|
-
el = view.element = this._dom.createElement(view.tagName || 'div');
|
13569
|
+
el = view.element = this._dom.createElement(view.tagName || 'div', contextualElement);
|
13544
13570
|
}
|
13545
13571
|
var classNames = view.classNames;
|
13546
13572
|
if (typeof classNames === 'string') {
|
@@ -13565,6 +13591,7 @@ define("ember-metal-views/tests/test_helpers",
|
|
13565
13591
|
} else if (view.textContent) {
|
13566
13592
|
setElementText(el, view.textContent);
|
13567
13593
|
} else if (view.innerHTML) {
|
13594
|
+
this._dom.detectNamespace(el);
|
13568
13595
|
var nodes = this._dom.parseHTML(view.innerHTML, el);
|
13569
13596
|
while (nodes[0]) {
|
13570
13597
|
el.appendChild(nodes[0]);
|
@@ -15162,6 +15189,72 @@ define("ember-metal/tests/binding/sync_test.jshint",
|
|
15162
15189
|
ok(true, 'ember-metal/tests/binding/sync_test.js should pass jshint.');
|
15163
15190
|
});
|
15164
15191
|
});
|
15192
|
+
define("ember-metal/tests/cache_test",
|
15193
|
+
["ember-metal/cache"],
|
15194
|
+
function(__dependency1__) {
|
15195
|
+
"use strict";
|
15196
|
+
var Cache = __dependency1__["default"];
|
15197
|
+
|
15198
|
+
QUnit.module("Cache");
|
15199
|
+
|
15200
|
+
test("basic", function() {
|
15201
|
+
var cache = new Cache(100, function(key) {
|
15202
|
+
return key.toUpperCase();
|
15203
|
+
});
|
15204
|
+
|
15205
|
+
equal(cache.get("foo"), "FOO");
|
15206
|
+
equal(cache.get("bar"), "BAR");
|
15207
|
+
equal(cache.get("foo"), "FOO");
|
15208
|
+
});
|
15209
|
+
|
15210
|
+
test("caches computation correctly", function() {
|
15211
|
+
var count = 0;
|
15212
|
+
var cache = new Cache(100, function(key) {
|
15213
|
+
count++;
|
15214
|
+
return key.toUpperCase();
|
15215
|
+
});
|
15216
|
+
|
15217
|
+
equal(count, 0);
|
15218
|
+
cache.get("foo");
|
15219
|
+
equal(count, 1);
|
15220
|
+
cache.get("bar");
|
15221
|
+
equal(count, 2);
|
15222
|
+
cache.get("bar");
|
15223
|
+
equal(count, 2);
|
15224
|
+
cache.get("foo");
|
15225
|
+
equal(count, 2);
|
15226
|
+
});
|
15227
|
+
|
15228
|
+
test("handles undefined value correctly", function() {
|
15229
|
+
var cache = new Cache(100, function(key) {});
|
15230
|
+
|
15231
|
+
equal(cache.get("foo"), undefined);
|
15232
|
+
});
|
15233
|
+
|
15234
|
+
test("continues working after reaching cache limit", function() {
|
15235
|
+
var cache = new Cache(3, function(key) {
|
15236
|
+
return key.toUpperCase();
|
15237
|
+
});
|
15238
|
+
|
15239
|
+
cache.get("a");
|
15240
|
+
cache.get("b");
|
15241
|
+
cache.get("c");
|
15242
|
+
|
15243
|
+
equal(cache.get("d"), "D");
|
15244
|
+
equal(cache.get("a"), "A");
|
15245
|
+
equal(cache.get("b"), "B");
|
15246
|
+
equal(cache.get("c"), "C");
|
15247
|
+
});
|
15248
|
+
});
|
15249
|
+
define("ember-metal/tests/cache_test.jshint",
|
15250
|
+
[],
|
15251
|
+
function() {
|
15252
|
+
"use strict";
|
15253
|
+
module('JSHint - ember-metal/tests');
|
15254
|
+
test('ember-metal/tests/cache_test.js should pass jshint', function() {
|
15255
|
+
ok(true, 'ember-metal/tests/cache_test.js should pass jshint.');
|
15256
|
+
});
|
15257
|
+
});
|
15165
15258
|
define("ember-metal/tests/chains_test",
|
15166
15259
|
["ember-metal/observer","ember-metal/chains","ember-metal/platform"],
|
15167
15260
|
function(__dependency1__, __dependency2__, __dependency3__) {
|
@@ -17571,17 +17664,50 @@ define("ember-metal/tests/map_test",
|
|
17571
17664
|
equal(map.size, 1);
|
17572
17665
|
});
|
17573
17666
|
|
17667
|
+
test("arity of forEach is 1 – es6 23.1.3.5", function() {
|
17668
|
+
equal(map.forEach.length, 1, 'expected arity for map.forEach is 1');
|
17669
|
+
});
|
17670
|
+
|
17671
|
+
test("forEach throws without a callback as the first argument", function() {
|
17672
|
+
|
17673
|
+
equal(map.forEach.length, 1, 'expected arity for map.forEach is 1');
|
17674
|
+
});
|
17675
|
+
|
17574
17676
|
test("remove", function() {
|
17575
17677
|
map.set(object, "winning");
|
17576
17678
|
map.set(number, "winning");
|
17577
17679
|
map.set(string, "winning");
|
17578
17680
|
|
17579
|
-
|
17580
|
-
|
17581
|
-
|
17681
|
+
expectDeprecation(function() {
|
17682
|
+
map.remove(object);
|
17683
|
+
map.remove(number);
|
17684
|
+
map.remove(string);
|
17685
|
+
|
17686
|
+
// doesn't explode
|
17687
|
+
map.remove({});
|
17688
|
+
}, 'Calling `Map.prototype.remove` has been deprecated, please use `Map.prototype.delete` instead.');
|
17689
|
+
|
17690
|
+
mapHasEntries([]);
|
17691
|
+
});
|
17692
|
+
|
17693
|
+
test("has empty collection", function() {
|
17694
|
+
equal(map.has('foo'), false);
|
17695
|
+
equal(map.has(), false);
|
17696
|
+
});
|
17697
|
+
|
17698
|
+
test("delete", function() {
|
17699
|
+
expectNoDeprecation();
|
17700
|
+
|
17701
|
+
map.set(object, "winning");
|
17702
|
+
map.set(number, "winning");
|
17703
|
+
map.set(string, "winning");
|
17704
|
+
|
17705
|
+
map["delete"](object);
|
17706
|
+
map["delete"](number);
|
17707
|
+
map["delete"](string);
|
17582
17708
|
|
17583
17709
|
// doesn't explode
|
17584
|
-
map
|
17710
|
+
map["delete"]({});
|
17585
17711
|
|
17586
17712
|
mapHasEntries([]);
|
17587
17713
|
});
|
@@ -17610,16 +17736,16 @@ define("ember-metal/tests/map_test",
|
|
17610
17736
|
], map2);
|
17611
17737
|
});
|
17612
17738
|
|
17613
|
-
test("copy and then
|
17739
|
+
test("copy and then delete", function() {
|
17614
17740
|
map.set(object, "winning");
|
17615
17741
|
map.set(number, "winning");
|
17616
17742
|
map.set(string, "winning");
|
17617
17743
|
|
17618
17744
|
var map2 = map.copy();
|
17619
17745
|
|
17620
|
-
map2
|
17621
|
-
map2
|
17622
|
-
map2
|
17746
|
+
map2["delete"](object);
|
17747
|
+
map2["delete"](number);
|
17748
|
+
map2["delete"](string);
|
17623
17749
|
|
17624
17750
|
mapHasEntries([
|
17625
17751
|
[ object, "winning" ],
|
@@ -17630,6 +17756,41 @@ define("ember-metal/tests/map_test",
|
|
17630
17756
|
mapHasEntries([ ], map2);
|
17631
17757
|
});
|
17632
17758
|
|
17759
|
+
test("length", function() {
|
17760
|
+
expectDeprecation('Usage of `length` is deprecated, use `size` instead.');
|
17761
|
+
|
17762
|
+
//Add a key twice
|
17763
|
+
equal(map.length, 0);
|
17764
|
+
map.set(string, "a string");
|
17765
|
+
equal(map.length, 1);
|
17766
|
+
map.set(string, "the same string");
|
17767
|
+
equal(map.length, 1);
|
17768
|
+
|
17769
|
+
//Add another
|
17770
|
+
map.set(number, "a number");
|
17771
|
+
equal(map.length, 2);
|
17772
|
+
|
17773
|
+
//Remove one that doesn't exist
|
17774
|
+
map["delete"]('does not exist');
|
17775
|
+
equal(map.length, 2);
|
17776
|
+
|
17777
|
+
//Check copy
|
17778
|
+
var copy = map.copy();
|
17779
|
+
equal(copy.length, 2);
|
17780
|
+
|
17781
|
+
//Remove a key twice
|
17782
|
+
map["delete"](number);
|
17783
|
+
equal(map.length, 1);
|
17784
|
+
map["delete"](number);
|
17785
|
+
equal(map.length, 1);
|
17786
|
+
|
17787
|
+
//Remove the last key
|
17788
|
+
map["delete"](string);
|
17789
|
+
equal(map.length, 0);
|
17790
|
+
map["delete"](string);
|
17791
|
+
equal(map.length, 0);
|
17792
|
+
});
|
17793
|
+
|
17633
17794
|
test("size", function() {
|
17634
17795
|
//Add a key twice
|
17635
17796
|
equal(map.size, 0);
|
@@ -17643,7 +17804,7 @@ define("ember-metal/tests/map_test",
|
|
17643
17804
|
equal(map.size, 2);
|
17644
17805
|
|
17645
17806
|
//Remove one that doesn't exist
|
17646
|
-
map
|
17807
|
+
map["delete"]('does not exist');
|
17647
17808
|
equal(map.size, 2);
|
17648
17809
|
|
17649
17810
|
//Check copy
|
@@ -17651,15 +17812,15 @@ define("ember-metal/tests/map_test",
|
|
17651
17812
|
equal(copy.size, 2);
|
17652
17813
|
|
17653
17814
|
//Remove a key twice
|
17654
|
-
map
|
17815
|
+
map["delete"](number);
|
17655
17816
|
equal(map.size, 1);
|
17656
|
-
map
|
17817
|
+
map["delete"](number);
|
17657
17818
|
equal(map.size, 1);
|
17658
17819
|
|
17659
17820
|
//Remove the last key
|
17660
|
-
map
|
17821
|
+
map["delete"](string);
|
17661
17822
|
equal(map.size, 0);
|
17662
|
-
map
|
17823
|
+
map["delete"](string);
|
17663
17824
|
equal(map.size, 0);
|
17664
17825
|
});
|
17665
17826
|
|
@@ -17679,6 +17840,15 @@ define("ember-metal/tests/map_test",
|
|
17679
17840
|
QUnit["throws"](function() {
|
17680
17841
|
map.forEach({});
|
17681
17842
|
}, '[object Object] is not a function');
|
17843
|
+
|
17844
|
+
map.forEach(function(value, key) {
|
17845
|
+
map["delete"](key);
|
17846
|
+
});
|
17847
|
+
// ensure the error happens even if no data is present
|
17848
|
+
equal(map.size, 0);
|
17849
|
+
QUnit["throws"](function() {
|
17850
|
+
map.forEach({});
|
17851
|
+
}, '[object Object] is not a function');
|
17682
17852
|
});
|
17683
17853
|
|
17684
17854
|
test("forEach basic", function() {
|
@@ -17794,6 +17964,73 @@ define("ember-metal/tests/map_test",
|
|
17794
17964
|
|
17795
17965
|
equal(iteration, 4, 'expected 3 iterations');
|
17796
17966
|
});
|
17967
|
+
|
17968
|
+
test("clear", function() {
|
17969
|
+
var iterations = 0;
|
17970
|
+
|
17971
|
+
map.set("a", 1);
|
17972
|
+
map.set("b", 2);
|
17973
|
+
map.set("c", 3);
|
17974
|
+
map.set("d", 4);
|
17975
|
+
|
17976
|
+
equal(map.size, 4);
|
17977
|
+
|
17978
|
+
map.forEach(function() {
|
17979
|
+
iterations++;
|
17980
|
+
});
|
17981
|
+
equal(iterations, 4);
|
17982
|
+
|
17983
|
+
map.clear();
|
17984
|
+
equal(map.size, 0);
|
17985
|
+
iterations = 0;
|
17986
|
+
map.forEach(function() {
|
17987
|
+
iterations++;
|
17988
|
+
});
|
17989
|
+
equal(iterations, 0);
|
17990
|
+
});
|
17991
|
+
|
17992
|
+
test("-0", function() {
|
17993
|
+
equal(map.has(-0), false);
|
17994
|
+
equal(map.has(0), false);
|
17995
|
+
|
17996
|
+
map.set(-0, 'zero');
|
17997
|
+
|
17998
|
+
equal(map.has(-0), true);
|
17999
|
+
equal(map.has(0), true);
|
18000
|
+
|
18001
|
+
equal(map.get(0), 'zero');
|
18002
|
+
equal(map.get(-0), 'zero');
|
18003
|
+
|
18004
|
+
map.forEach(function(value, key) {
|
18005
|
+
equal(1/key, Infinity, 'spec says key should be positive zero');
|
18006
|
+
});
|
18007
|
+
});
|
18008
|
+
|
18009
|
+
test("NaN", function() {
|
18010
|
+
equal(map.has(NaN), false);
|
18011
|
+
|
18012
|
+
map.set(NaN, 'not-a-number');
|
18013
|
+
|
18014
|
+
equal(map.has(NaN), true);
|
18015
|
+
|
18016
|
+
equal(map.get(NaN), 'not-a-number');
|
18017
|
+
|
18018
|
+
});
|
18019
|
+
|
18020
|
+
test("NaN Boxed", function() {
|
18021
|
+
//jshint -W053
|
18022
|
+
var boxed = new Number(NaN);
|
18023
|
+
equal(map.has(boxed), false);
|
18024
|
+
|
18025
|
+
map.set(boxed, 'not-a-number');
|
18026
|
+
|
18027
|
+
equal(map.has(boxed), true);
|
18028
|
+
equal(map.has(NaN), false);
|
18029
|
+
|
18030
|
+
equal(map.get(NaN), undefined);
|
18031
|
+
equal(map.get(boxed), 'not-a-number');
|
18032
|
+
});
|
18033
|
+
|
17797
18034
|
}
|
17798
18035
|
|
17799
18036
|
for (var i = 0; i < varieties.length; i++) {
|
@@ -17815,6 +18052,18 @@ define("ember-metal/tests/map_test",
|
|
17815
18052
|
strictEqual(value, map.get('ohai'));
|
17816
18053
|
});
|
17817
18054
|
|
18055
|
+
test("Map.prototype.constructor", function() {
|
18056
|
+
var map = new Map();
|
18057
|
+
equal(map.constructor, Map);
|
18058
|
+
});
|
18059
|
+
|
18060
|
+
test("MapWithDefault.prototype.constructor", function() {
|
18061
|
+
var map = new MapWithDefault({
|
18062
|
+
defaultValue: function(key) { return key; }
|
18063
|
+
});
|
18064
|
+
equal(map.constructor, MapWithDefault);
|
18065
|
+
});
|
18066
|
+
|
17818
18067
|
test("Copying a MapWithDefault copies the default value", function() {
|
17819
18068
|
var map = MapWithDefault.create({
|
17820
18069
|
defaultValue: function(key) {
|
@@ -45675,6 +45924,8 @@ define("ember-views/tests/system/render_buffer_test",
|
|
45675
45924
|
var jQuery = __dependency3__["default"];
|
45676
45925
|
var RenderBuffer = __dependency4__["default"];
|
45677
45926
|
|
45927
|
+
var svgNamespace = "http://www.w3.org/2000/svg";
|
45928
|
+
var xhtmlNamespace = "http://www.w3.org/1999/xhtml";
|
45678
45929
|
var trim = jQuery.trim;
|
45679
45930
|
|
45680
45931
|
// .......................................................
|
@@ -45722,6 +45973,16 @@ define("ember-views/tests/system/render_buffer_test",
|
|
45722
45973
|
strictEqual(el.value, '0', "generated element has value of '0'");
|
45723
45974
|
});
|
45724
45975
|
|
45976
|
+
test("sets attributes with camelCase", function() {
|
45977
|
+
var buffer = new RenderBuffer('div', document.body);
|
45978
|
+
var content = "javascript:someCode()"; //jshint ignore:line
|
45979
|
+
|
45980
|
+
buffer.attr('onClick', content);
|
45981
|
+
buffer.generateElement();
|
45982
|
+
var el = buffer.element();
|
45983
|
+
strictEqual(el.getAttribute('onClick'), content, "attribute with camelCase was set");
|
45984
|
+
});
|
45985
|
+
|
45725
45986
|
test("prevents XSS injection via `id`", function() {
|
45726
45987
|
var buffer = new RenderBuffer('div', document.body);
|
45727
45988
|
|
@@ -45898,6 +46159,64 @@ define("ember-views/tests/system/render_buffer_test",
|
|
45898
46159
|
ok(jQuery(element).html().match(/script/i), "should have script tag");
|
45899
46160
|
ok(!jQuery(element).html().match(/­/), "should not have ­");
|
45900
46161
|
});
|
46162
|
+
|
46163
|
+
if ('namespaceURI' in document.createElement('div')) {
|
46164
|
+
|
46165
|
+
QUnit.module("RenderBuffer namespaces");
|
46166
|
+
|
46167
|
+
test("properly makes a content string SVG namespace inside an SVG tag", function() {
|
46168
|
+
var buffer = new RenderBuffer('svg', document.body);
|
46169
|
+
buffer.generateElement();
|
46170
|
+
buffer.push('<path></path>foo');
|
46171
|
+
|
46172
|
+
var element = buffer.element();
|
46173
|
+
ok(element.tagName, 'SVG', 'element is svg');
|
46174
|
+
equal(element.namespaceURI, svgNamespace, 'element is svg namespace');
|
46175
|
+
|
46176
|
+
ok(element.childNodes[0].tagName, 'PATH', 'element is path');
|
46177
|
+
equal(element.childNodes[0].namespaceURI, svgNamespace, 'element is svg namespace');
|
46178
|
+
});
|
46179
|
+
|
46180
|
+
test("properly makes a path element svg namespace inside SVG context", function() {
|
46181
|
+
var buffer = new RenderBuffer('path', document.createElementNS(svgNamespace, 'svg'));
|
46182
|
+
buffer.generateElement();
|
46183
|
+
buffer.push('<g></g>');
|
46184
|
+
|
46185
|
+
var element = buffer.element();
|
46186
|
+
ok(element.tagName, 'PATH', 'element is PATH');
|
46187
|
+
equal(element.namespaceURI, svgNamespace, 'element is svg namespace');
|
46188
|
+
|
46189
|
+
ok(element.childNodes[0].tagName, 'G', 'element is g');
|
46190
|
+
equal(element.childNodes[0].namespaceURI, svgNamespace, 'element is svg namespace');
|
46191
|
+
});
|
46192
|
+
|
46193
|
+
test("properly makes a foreignObject svg namespace inside SVG context", function() {
|
46194
|
+
var buffer = new RenderBuffer('foreignObject', document.createElementNS(svgNamespace, 'svg'));
|
46195
|
+
buffer.generateElement();
|
46196
|
+
buffer.push('<div></div>');
|
46197
|
+
|
46198
|
+
var element = buffer.element();
|
46199
|
+
ok(element.tagName, 'FOREIGNOBJECT', 'element is foreignObject');
|
46200
|
+
equal(element.namespaceURI, svgNamespace, 'element is svg namespace');
|
46201
|
+
|
46202
|
+
ok(element.childNodes[0].tagName, 'DIV', 'element is div');
|
46203
|
+
equal(element.childNodes[0].namespaceURI, xhtmlNamespace, 'element is xhtml namespace');
|
46204
|
+
});
|
46205
|
+
|
46206
|
+
test("properly makes a div xhtml namespace inside foreignObject context", function() {
|
46207
|
+
var buffer = new RenderBuffer('div', document.createElementNS(svgNamespace, 'foreignObject'));
|
46208
|
+
buffer.generateElement();
|
46209
|
+
buffer.push('<div></div>');
|
46210
|
+
|
46211
|
+
var element = buffer.element();
|
46212
|
+
ok(element.tagName, 'DIV', 'element is div');
|
46213
|
+
equal(element.namespaceURI, xhtmlNamespace, 'element is xhtml namespace');
|
46214
|
+
|
46215
|
+
ok(element.childNodes[0].tagName, 'DIV', 'element is div');
|
46216
|
+
equal(element.childNodes[0].namespaceURI, xhtmlNamespace, 'element is xhtml namespace');
|
46217
|
+
});
|
46218
|
+
|
46219
|
+
}
|
45901
46220
|
});
|
45902
46221
|
define("ember-views/tests/system/render_buffer_test.jshint",
|
45903
46222
|
[],
|
@@ -48266,6 +48585,25 @@ define("ember-views/tests/views/view/attribute_bindings_test",
|
|
48266
48585
|
ok(!view.$().attr('notNumber'), "removes notNumber attribute when NaN");
|
48267
48586
|
});
|
48268
48587
|
|
48588
|
+
test("should update attribute bindings on svg", function() {
|
48589
|
+
view = EmberView.create({
|
48590
|
+
attributeBindings: ['viewBox'],
|
48591
|
+
viewBox: null
|
48592
|
+
});
|
48593
|
+
|
48594
|
+
run(function() {
|
48595
|
+
view.createElement();
|
48596
|
+
});
|
48597
|
+
|
48598
|
+
equal(view.$().attr('viewBox'), null, "viewBox can be null");
|
48599
|
+
|
48600
|
+
run(function() {
|
48601
|
+
view.set('viewBox', '0 0 100 100');
|
48602
|
+
});
|
48603
|
+
|
48604
|
+
equal(view.$().attr('viewBox'), '0 0 100 100', "viewBox can be updated");
|
48605
|
+
});
|
48606
|
+
|
48269
48607
|
// This comes into play when using the {{#each}} helper. If the
|
48270
48608
|
// passed array item is a String, it will be converted into a
|
48271
48609
|
// String object instead of a normal string.
|