ember-source 1.11.0.beta.5 → 1.11.0

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.

Potentially problematic release.


This version of ember-source might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d0f35ea5d2bfacffc0c824a1d6d8ccb72626887
4
- data.tar.gz: 6280bfdd1a028c8f9c742827322f5a85e14c2b98
3
+ metadata.gz: cf40b130aeb16cc59d91da79eb827a6704d3050a
4
+ data.tar.gz: 93e0f02400142fa1a7c2944cda6d8b608105554a
5
5
  SHA512:
6
- metadata.gz: 449d698a5b379ec795cf7a36f9fe4446fa9745376a8d556e1f3f98dd515822a854c839d9560a0e00927c5bbeb2b7d9f4399578fe07566c4de07f0f1f84b58a10
7
- data.tar.gz: 8579c1d7d1e9e498a2d02a8bc21e205e70559a7fd38a7d125fd51b759ae4f667d28d741d6a3f86463d6663b6942708213eac6e4616a3abfb7b193ab973f5b647
6
+ metadata.gz: 83e62dc1f91685a7dd8b81416e7cb613c79bc872ee73440fbe81506bfe19a19870cc368feb3ba8772214501cea2550b144f7aca471c48bbcd30b1c18df47642a
7
+ data.tar.gz: b78f47dd605d9f3ffc37d98ddd47673bb360496161cf7c0d1a5c5147f85e293934a4c8be2db4b869602bff98cbd07724ef7edc5d5a6ce5ecbf4d6da54185c649
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.11.0-beta.5
1
+ 1.11.0
@@ -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.11.0-beta.5.1501308c
8
+ * @version 1.11.0
9
9
  */
10
10
 
11
11
  (function() {
@@ -1154,6 +1154,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1154
1154
 
1155
1155
  @property _registry
1156
1156
  @type Registry
1157
+ @since 1.11.0
1157
1158
  */
1158
1159
  _registry: null,
1159
1160
 
@@ -1499,6 +1500,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1499
1500
 
1500
1501
  @private
1501
1502
  @class Registry
1503
+ @since 1.11.0
1502
1504
  */
1503
1505
  function Registry(options) {
1504
1506
  this.fallback = options && options.fallback ? options.fallback : null;
@@ -1614,7 +1616,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1614
1616
  @property _defaultContainer
1615
1617
  @type Container
1616
1618
  */
1617
- _defaultContainer: null,
1619
+ _defaultContainer: null,
1618
1620
 
1619
1621
  /**
1620
1622
  Creates a container based on this registry.
@@ -4804,8 +4806,8 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
4804
4806
  This is a more semantically meaningful alias of `computed.oneWay`,
4805
4807
  whose name is somewhat ambiguous as to which direction the data flows.
4806
4808
 
4807
- @method computed.reads
4808
- @for Ember
4809
+ @method reads
4810
+ @for Ember.computed
4809
4811
  @param {String} dependentKey
4810
4812
  @return {Ember.ComputedProperty} computed property which creates a
4811
4813
  one way computed property to the original value for property.
@@ -4947,7 +4949,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
4947
4949
 
4948
4950
  @class Ember
4949
4951
  @static
4950
- @version 1.11.0-beta.5.1501308c
4952
+ @version 1.11.0
4951
4953
  */
4952
4954
 
4953
4955
  if ('undefined' === typeof Ember) {
@@ -4975,10 +4977,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
4975
4977
  /**
4976
4978
  @property VERSION
4977
4979
  @type String
4978
- @default '1.11.0-beta.5.1501308c'
4980
+ @default '1.11.0'
4979
4981
  @static
4980
4982
  */
4981
- Ember.VERSION = '1.11.0-beta.5.1501308c';
4983
+ Ember.VERSION = '1.11.0';
4982
4984
 
4983
4985
  /**
4984
4986
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -5142,7 +5144,7 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/platform/create',
5142
5144
  // Remove "use strict"; from transpiled module until
5143
5145
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
5144
5146
  //
5145
- // REMOVE_USE_STRICT: true
5147
+ "REMOVE_USE_STRICT: true";
5146
5148
 
5147
5149
  function keysForDep(depsMeta, depKey) {
5148
5150
  var keys = depsMeta[depKey];
@@ -5597,7 +5599,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
5597
5599
  // Remove "use strict"; from transpiled module until
5598
5600
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
5599
5601
  //
5600
- // REMOVE_USE_STRICT: true
5602
+ "REMOVE_USE_STRICT: true";
5601
5603
 
5602
5604
  /**
5603
5605
  @module ember-metal
@@ -7221,7 +7223,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
7221
7223
  // Remove "use strict"; from transpiled module until
7222
7224
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
7223
7225
  //
7224
- // REMOVE_USE_STRICT: true
7226
+ "REMOVE_USE_STRICT: true";
7225
7227
 
7226
7228
  /**
7227
7229
  @module ember
@@ -8364,8 +8366,7 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
8364
8366
  // Remove "use strict"; from transpiled module until
8365
8367
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
8366
8368
  //
8367
- // REMOVE_USE_STRICT: true
8368
- //
8369
+ "REMOVE_USE_STRICT: true";
8369
8370
 
8370
8371
  var create;
8371
8372
  // ES5 15.2.3.5
@@ -8581,7 +8582,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
8581
8582
  })();
8582
8583
 
8583
8584
  if (!canDefinePropertyOnDOM) {
8584
- defineProperty = function(obj, keyName, desc) {
8585
+ exports.defineProperty = defineProperty = function(obj, keyName, desc) {
8585
8586
  var isNode;
8586
8587
 
8587
8588
  if (typeof Node === "object") {
@@ -8601,7 +8602,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
8601
8602
  }
8602
8603
 
8603
8604
  if (!hasES5CompliantDefineProperty) {
8604
- defineProperty = function definePropertyPolyfill(obj, keyName, desc) {
8605
+ exports.defineProperty = defineProperty = function definePropertyPolyfill(obj, keyName, desc) {
8605
8606
  if (!desc.get) { obj[keyName] = desc.value; }
8606
8607
  };
8607
8608
  }
@@ -8610,7 +8611,6 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
8610
8611
  var canDefineNonEnumerableProperties = hasES5CompliantDefineProperty;
8611
8612
 
8612
8613
  exports.hasES5CompliantDefineProperty = hasES5CompliantDefineProperty;
8613
- exports.defineProperty = defineProperty;
8614
8614
  exports.hasPropertyAccessors = hasPropertyAccessors;
8615
8615
  exports.canDefineNonEnumerableProperties = canDefineNonEnumerableProperties;
8616
8616
 
@@ -10602,7 +10602,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
10602
10602
  // Remove "use strict"; from transpiled module until
10603
10603
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
10604
10604
  //
10605
- // REMOVE_USE_STRICT: true
10605
+ "REMOVE_USE_STRICT: true";
10606
10606
 
10607
10607
  var _uuid = 0;
10608
10608
 
@@ -11238,7 +11238,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
11238
11238
 
11239
11239
  var tryFinally;
11240
11240
  if (needsFinallyFix) {
11241
- tryFinally = function(tryable, finalizer, binding) {
11241
+ exports.tryFinally = tryFinally = function(tryable, finalizer, binding) {
11242
11242
  var result, finalResult, finalError;
11243
11243
 
11244
11244
  binding = binding || this;
@@ -11258,7 +11258,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
11258
11258
  return (finalResult === undefined) ? result : finalResult;
11259
11259
  };
11260
11260
  } else {
11261
- tryFinally = function(tryable, finalizer, binding) {
11261
+ exports.tryFinally = tryFinally = function(tryable, finalizer, binding) {
11262
11262
  var result, finalResult;
11263
11263
 
11264
11264
  binding = binding || this;
@@ -11314,7 +11314,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
11314
11314
  */
11315
11315
  var tryCatchFinally;
11316
11316
  if (needsFinallyFix) {
11317
- tryCatchFinally = function(tryable, catchable, finalizer, binding) {
11317
+ exports.tryCatchFinally = tryCatchFinally = function(tryable, catchable, finalizer, binding) {
11318
11318
  var result, finalResult, finalError;
11319
11319
 
11320
11320
  binding = binding || this;
@@ -11336,7 +11336,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
11336
11336
  return (finalResult === undefined) ? result : finalResult;
11337
11337
  };
11338
11338
  } else {
11339
- tryCatchFinally = function(tryable, catchable, finalizer, binding) {
11339
+ exports.tryCatchFinally = tryCatchFinally = function(tryable, catchable, finalizer, binding) {
11340
11340
  var result, finalResult;
11341
11341
 
11342
11342
  binding = binding || this;
@@ -11534,8 +11534,6 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
11534
11534
  exports.GUID_KEY = GUID_KEY;
11535
11535
  exports.META_DESC = META_DESC;
11536
11536
  exports.EMPTY_META = EMPTY_META;
11537
- exports.tryCatchFinally = tryCatchFinally;
11538
- exports.tryFinally = tryFinally;
11539
11537
 
11540
11538
  });
11541
11539
  enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/utils', 'ember-metal/platform/define_property', 'ember-metal/properties'], function (exports, Ember, utils, define_property, properties) {
@@ -13804,7 +13802,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
13804
13802
  exports.union = union;
13805
13803
 
13806
13804
  });
13807
- enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/enumerable_utils', 'ember-runtime/system/array_proxy', 'ember-runtime/mixins/sortable', 'ember-runtime/mixins/controller', 'ember-metal/computed', 'ember-metal/error'], function (exports, Ember, property_get, enumerable_utils, ArrayProxy, SortableMixin, ControllerMixin, computed, EmberError) {
13805
+ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/enumerable_utils', 'ember-runtime/system/array_proxy', 'ember-runtime/mixins/sortable', 'ember-runtime/mixins/controller', 'ember-metal/computed', 'ember-metal/error', 'ember-runtime/mixins/array'], function (exports, Ember, property_get, enumerable_utils, ArrayProxy, SortableMixin, ControllerMixin, computed, EmberError, EmberArray) {
13808
13806
 
13809
13807
  'use strict';
13810
13808
 
@@ -13914,7 +13912,12 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
13914
13912
  this._subControllers = [];
13915
13913
  },
13916
13914
 
13917
- model: computed.computed(function () {
13915
+ model: computed.computed(function (key, value) {
13916
+ if (arguments.length > 1) {
13917
+
13918
+ return value;
13919
+ }
13920
+
13918
13921
  return Ember['default'].A();
13919
13922
  }),
13920
13923
 
@@ -14022,8 +14025,9 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal/core', '
14022
14025
  });
14023
14026
  ```
14024
14027
 
14025
- @method inject.controller
14026
- @for Ember
14028
+ @method controller
14029
+ @since 1.10.0
14030
+ @for Ember.inject
14027
14031
  @param {String} name (optional) name of the controller to inject, defaults
14028
14032
  to the property's name
14029
14033
  @return {Ember.InjectedProperty} injection descriptor instance
@@ -14061,6 +14065,8 @@ enifed('ember-runtime/controllers/object_controller', ['exports', 'ember-metal/c
14061
14065
  **/
14062
14066
  exports['default'] = ObjectProxy['default'].extend(ControllerMixin['default'], {
14063
14067
  init: function() {
14068
+ this._super();
14069
+
14064
14070
  }
14065
14071
  });
14066
14072
 
@@ -14439,13 +14445,13 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
14439
14445
 
14440
14446
  if (Ember['default'].testing && async) { asyncStart(); }
14441
14447
 
14442
- run['default'].backburner.schedule('actions', function(){
14448
+ run['default'].backburner.schedule('actions', function() {
14443
14449
  if (Ember['default'].testing && async) { asyncEnd(); }
14444
14450
  callback(promise);
14445
14451
  });
14446
14452
  });
14447
14453
 
14448
- RSVP.Promise.prototype.fail = function(callback, label){
14454
+ RSVP.Promise.prototype.fail = function(callback, label) {
14449
14455
  return this['catch'](callback, label);
14450
14456
  };
14451
14457
 
@@ -14614,7 +14620,8 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/core', 'ember-metal/enum
14614
14620
 
14615
14621
  @private
14616
14622
  @method createInjectionHelper
14617
- @namespace Ember
14623
+ @since 1.10.0
14624
+ @for Ember
14618
14625
  @param {String} type The container type the helper will inject
14619
14626
  @param {Function} validator A validation callback that is executed at mixin-time
14620
14627
  */
@@ -14632,7 +14639,8 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/core', 'ember-metal/enum
14632
14639
 
14633
14640
  @private
14634
14641
  @method validatePropertyInjections
14635
- @namespace Ember
14642
+ @since 1.10.0
14643
+ @for Ember
14636
14644
  @param {Object} factory The factory object
14637
14645
  */
14638
14646
  function validatePropertyInjections(factory) {
@@ -18853,7 +18861,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-met
18853
18861
  // Remove "use strict"; from transpiled module until
18854
18862
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
18855
18863
  //
18856
- // REMOVE_USE_STRICT: true
18864
+ "REMOVE_USE_STRICT: true";
18857
18865
 
18858
18866
  /**
18859
18867
  @module ember
@@ -20289,7 +20297,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
20289
20297
  }
20290
20298
  });
20291
20299
 
20292
- NativeArray = NativeArray.without.apply(NativeArray, ignore);
20300
+ exports.NativeArray = NativeArray = NativeArray.without.apply(NativeArray, ignore);
20293
20301
 
20294
20302
  /**
20295
20303
  Creates an `Ember.NativeArray` from an Array like object.
@@ -20346,7 +20354,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
20346
20354
  NativeArray.activate = function() {
20347
20355
  NativeArray.apply(Array.prototype);
20348
20356
 
20349
- A = function(arr) { return arr || []; };
20357
+ exports.A = A = function(arr) { return arr || []; };
20350
20358
  };
20351
20359
 
20352
20360
  if (Ember['default'].EXTEND_PROTOTYPES === true || Ember['default'].EXTEND_PROTOTYPES.Array) {
@@ -20357,7 +20365,6 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
20357
20365
  exports['default'] = NativeArray;
20358
20366
 
20359
20367
  exports.A = A;
20360
- exports.NativeArray = NativeArray;
20361
20368
 
20362
20369
  });
20363
20370
  enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, CoreObject, Observable) {
@@ -20394,6 +20401,7 @@ enifed('ember-runtime/system/service', ['exports', 'ember-runtime/system/object'
20394
20401
  @class Service
20395
20402
  @namespace Ember
20396
20403
  @extends Ember.Object
20404
+ @since 1.10.0
20397
20405
  */
20398
20406
  exports['default'] = Object['default'].extend();
20399
20407
 
@@ -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.11.0-beta.5.1501308c
8
+ * @version 1.11.0
9
9
  */
10
10
 
11
11
  (function() {
@@ -133,7 +133,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
133
133
 
134
134
  @class Ember
135
135
  @static
136
- @version 1.11.0-beta.5.1501308c
136
+ @version 1.11.0
137
137
  */
138
138
 
139
139
  if ('undefined' === typeof Ember) {
@@ -161,10 +161,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
161
161
  /**
162
162
  @property VERSION
163
163
  @type String
164
- @default '1.11.0-beta.5.1501308c'
164
+ @default '1.11.0'
165
165
  @static
166
166
  */
167
- Ember.VERSION = '1.11.0-beta.5.1501308c';
167
+ Ember.VERSION = '1.11.0';
168
168
 
169
169
  /**
170
170
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -595,7 +595,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
595
595
  var disableComponentGeneration = true;
596
596
 
597
597
  return {
598
- revision: 'Ember@1.11.0-beta.5.1501308c',
598
+ revision: 'Ember@1.11.0',
599
599
 
600
600
  disableComponentGeneration: disableComponentGeneration,
601
601
 
@@ -750,33 +750,7 @@ enifed("htmlbars-compiler/compiler",
750
750
  return template(compileSpec(string, options));
751
751
  }
752
752
 
753
- __exports__.compile = compile;/*
754
- * Compile a string into a template spec string. The template spec is a string
755
- * representation of a template. Usually, you would use compileSpec for
756
- * pre-compilation of a template on the server.
757
- *
758
- * Example usage:
759
- *
760
- * var templateSpec = compileSpec("Howdy {{name}}");
761
- * // This next step is basically what plain compile does
762
- * var template = new Function("return " + templateSpec)();
763
- *
764
- * @method compileSpec
765
- * @param {String} string An htmlbars template string
766
- * @return {Function} A template spec string
767
- */
768
- function compileSpec(string, options) {
769
- var ast = preprocess(string, options);
770
- var compiler = new TemplateCompiler(options);
771
- var program = compiler.compile(ast);
772
- return program;
773
- }
774
-
775
- __exports__.compileSpec = compileSpec;function template(program) {
776
- return new Function("return " + program)();
777
- }
778
-
779
- __exports__.template = template;
753
+ __exports__.compile = compile;
780
754
  });
781
755
  enifed("htmlbars-compiler/fragment-javascript-compiler",
782
756
  ["./utils","../htmlbars-util/quoting","exports"],
@@ -1360,7 +1334,7 @@ enifed("htmlbars-compiler/hydration-opcode-compiler",
1360
1334
  this.currentDOMChildIndex = -1;
1361
1335
 
1362
1336
  forEach(element.attributes, this.attribute, this);
1363
- forEach(element.helpers, this.elementHelper, this);
1337
+ forEach(element.modifiers, this.elementModifier, this);
1364
1338
  };
1365
1339
 
1366
1340
  HydrationOpcodeCompiler.prototype.closeElement = function() {
@@ -1467,8 +1441,8 @@ enifed("htmlbars-compiler/hydration-opcode-compiler",
1467
1441
  this.opcode('printAttributeHook', attrMorphNum, this.elementNum);
1468
1442
  };
1469
1443
 
1470
- HydrationOpcodeCompiler.prototype.elementHelper = function(sexpr) {
1471
- prepareSexpr(this, sexpr);
1444
+ HydrationOpcodeCompiler.prototype.elementModifier = function(modifier) {
1445
+ prepareSexpr(this, modifier.sexpr);
1472
1446
 
1473
1447
  // If we have a helper in a node, and this element has not been cached, cache it
1474
1448
  if (this.element !== null) {
@@ -1581,7 +1555,7 @@ enifed("htmlbars-compiler/template-compiler",
1581
1555
 
1582
1556
  function TemplateCompiler(options) {
1583
1557
  this.options = options || {};
1584
- this.revision = this.options.revision || "HTMLBars@v0.11.1";
1558
+ this.revision = this.options.revision || "HTMLBars@v0.11.2";
1585
1559
  this.fragmentOpcodeCompiler = new FragmentOpcodeCompiler();
1586
1560
  this.fragmentCompiler = new FragmentJavaScriptCompiler();
1587
1561
  this.hydrationOpcodeCompiler = new HydrationOpcodeCompiler();
@@ -1855,7 +1829,7 @@ enifed("htmlbars-compiler/template-visitor",
1855
1829
  elementFrame.parentNode = element;
1856
1830
  elementFrame.children = element.children;
1857
1831
  elementFrame.childCount = element.children.length;
1858
- elementFrame.mustacheCount += element.helpers.length;
1832
+ elementFrame.mustacheCount += element.modifiers.length;
1859
1833
  elementFrame.blankChildTextNodes = [];
1860
1834
 
1861
1835
  var actionArgs = [
@@ -2198,22 +2172,28 @@ enifed("htmlbars-syntax/builders",
2198
2172
  };
2199
2173
  }
2200
2174
 
2201
- __exports__.buildComment = buildComment;
2202
- function buildConcat(parts) {
2175
+ __exports__.buildComment = buildComment;function buildConcat(parts) {
2203
2176
  return {
2204
2177
  type: "ConcatStatement",
2205
2178
  parts: parts || []
2206
2179
  };
2207
2180
  }
2208
2181
 
2209
- __exports__.buildConcat = buildConcat;// Nodes
2182
+ __exports__.buildConcat = buildConcat;function buildElementModifier(sexpr) {
2183
+ return {
2184
+ type: "ElementModifierStatement",
2185
+ sexpr: sexpr
2186
+ };
2187
+ }
2210
2188
 
2211
- function buildElement(tag, attributes, helpers, children) {
2189
+ __exports__.buildElementModifier = buildElementModifier;// Nodes
2190
+
2191
+ function buildElement(tag, attributes, modifiers, children) {
2212
2192
  return {
2213
2193
  type: "ElementNode",
2214
2194
  tag: tag,
2215
2195
  attributes: attributes || [],
2216
- helpers: helpers || [],
2196
+ modifiers: modifiers || [],
2217
2197
  children: children || []
2218
2198
  };
2219
2199
  }
@@ -2316,6 +2296,7 @@ enifed("htmlbars-syntax/builders",
2316
2296
  partial: buildPartial,
2317
2297
  comment: buildComment,
2318
2298
  element: buildElement,
2299
+ elementModifier: buildElementModifier,
2319
2300
  component: buildComponent,
2320
2301
  attr: buildAttr,
2321
2302
  text: buildText,
@@ -3877,7 +3858,7 @@ enifed("htmlbars-syntax/token-handlers",
3877
3858
  },
3878
3859
 
3879
3860
  StartTag: function(tag) {
3880
- var element = buildElement(tag.tagName, tag.attributes, tag.helpers || [], []);
3861
+ var element = buildElement(tag.tagName, tag.attributes, tag.modifiers || [], []);
3881
3862
  element.loc = {
3882
3863
  start: { line: tag.firstLine, column: tag.firstColumn},
3883
3864
  end: { line: null, column: null}
@@ -3903,20 +3884,20 @@ enifed("htmlbars-syntax/token-handlers",
3903
3884
  switch(tokenizer.state) {
3904
3885
  // Tag helpers
3905
3886
  case "tagName":
3906
- tokenizer.addTagHelper(mustache.sexpr);
3887
+ tokenizer.addElementModifier(mustache);
3907
3888
  tokenizer.state = "beforeAttributeName";
3908
3889
  return;
3909
3890
  case "beforeAttributeName":
3910
- tokenizer.addTagHelper(mustache.sexpr);
3891
+ tokenizer.addElementModifier(mustache);
3911
3892
  return;
3912
3893
  case "attributeName":
3913
3894
  case "afterAttributeName":
3914
3895
  tokenizer.finalizeAttributeValue();
3915
- tokenizer.addTagHelper(mustache.sexpr);
3896
+ tokenizer.addElementModifier(mustache);
3916
3897
  tokenizer.state = "beforeAttributeName";
3917
3898
  return;
3918
3899
  case "afterAttributeValueQuoted":
3919
- tokenizer.addTagHelper(mustache.sexpr);
3900
+ tokenizer.addElementModifier(mustache);
3920
3901
  tokenizer.state = "beforeAttributeName";
3921
3902
  return;
3922
3903
 
@@ -4043,9 +4024,13 @@ enifed("htmlbars-syntax/tokenizer",
4043
4024
  }
4044
4025
  };
4045
4026
 
4046
- Tokenizer.prototype.addTagHelper = function(helper) {
4047
- var helpers = this.token.helpers = this.token.helpers || [];
4048
- helpers.push(helper);
4027
+ Tokenizer.prototype.addElementModifier = function(mustache) {
4028
+ if (!this.token.modifiers) {
4029
+ this.token.modifiers = [];
4030
+ }
4031
+
4032
+ var modifier = builders.elementModifier(mustache.sexpr);
4033
+ this.token.modifiers.push(modifier);
4049
4034
  };
4050
4035
 
4051
4036
  function prepareAttributeValue(attr) {