ember-source 1.11.0.beta.5 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.

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) {