ember-source 1.11.0.beta.1 → 1.11.0.beta.2
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 +4 -4
 - data/VERSION +1 -1
 - data/dist/ember-runtime.js +17 -47
 - data/dist/ember-template-compiler.js +317 -137
 - data/dist/ember-testing.js +2 -42
 - data/dist/ember-tests.js +729 -1135
 - data/dist/ember-tests.prod.js +1044 -1442
 - data/dist/ember.debug.cjs.js +1842 -1838
 - data/dist/ember.debug.js +1842 -1838
 - data/dist/ember.js +1842 -1838
 - data/dist/ember.min.js +13 -13
 - data/dist/ember.prod.js +1818 -1779
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 265b52de5995e8c2036b256f4149d1f26cbe68af
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 198d1a29161fa873c47bdc6eee0e2a4bfafb75ae
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 28279c4ebe049591436ae3ecd9052bc44dd2902dc96603abb73edec2e1d39b5ea8939904f67a7a88775acf1eba1adef07458c0f094ea7d64b1f7d57e3a7124a8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d48ab306b653a91ec72eabd4424a9639d0fc282bbb56ae1b04eb3d1c2bac859d0ef498ea860a1adec4d2ab2b52092de1850eaa1d61708199cf733f5efc1e0b92
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.11.0-beta. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.11.0-beta.2
         
     | 
    
        data/dist/ember-runtime.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.11.0-beta. 
     | 
| 
      
 8 
     | 
    
         
            +
             * @version   1.11.0-beta.2
         
     | 
| 
       9 
9 
     | 
    
         
             
             */
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            (function() {
         
     | 
| 
         @@ -1485,6 +1485,8 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio 
     | 
|
| 
       1485 
1485 
     | 
    
         | 
| 
       1486 
1486 
     | 
    
         
             
              var VALID_FULL_NAME_REGEXP = /^[^:]+.+:[^:]+$/;
         
     | 
| 
       1487 
1487 
     | 
    
         | 
| 
      
 1488 
     | 
    
         
            +
              var instanceInitializersFeatureEnabled;
         
     | 
| 
      
 1489 
     | 
    
         
            +
              
         
     | 
| 
       1488 
1490 
     | 
    
         
             
              /**
         
     | 
| 
       1489 
1491 
     | 
    
         
             
               A lightweight registry used to store factory and option information keyed
         
     | 
| 
       1490 
1492 
     | 
    
         
             
               by type.
         
     | 
| 
         @@ -1651,7 +1653,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio 
     | 
|
| 
       1651 
1653 
     | 
    
         | 
| 
       1652 
1654 
     | 
    
         
             
                lookup: function(fullName, options) {
         
     | 
| 
       1653 
1655 
     | 
    
         | 
| 
       1654 
     | 
    
         
            -
                  if ( 
     | 
| 
      
 1656 
     | 
    
         
            +
                  if (instanceInitializersFeatureEnabled) {
         
     | 
| 
       1655 
1657 
     | 
    
         
             
                          }
         
     | 
| 
       1656 
1658 
     | 
    
         | 
| 
       1657 
1659 
     | 
    
         
             
                  return this._defaultContainer.lookup(fullName, options);
         
     | 
| 
         @@ -1659,7 +1661,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio 
     | 
|
| 
       1659 
1661 
     | 
    
         | 
| 
       1660 
1662 
     | 
    
         
             
                lookupFactory: function(fullName) {
         
     | 
| 
       1661 
1663 
     | 
    
         | 
| 
       1662 
     | 
    
         
            -
                  if ( 
     | 
| 
      
 1664 
     | 
    
         
            +
                  if (instanceInitializersFeatureEnabled) {
         
     | 
| 
       1663 
1665 
     | 
    
         
             
                          }
         
     | 
| 
       1664 
1666 
     | 
    
         | 
| 
       1665 
1667 
     | 
    
         
             
                  return this._defaultContainer.lookupFactory(fullName);
         
     | 
| 
         @@ -2257,12 +2259,12 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe 
     | 
|
| 
       2257 
2259 
     | 
    
         | 
| 
       2258 
2260 
     | 
    
         
             
              var EmberInstrumentation = Ember['default'].Instrumentation = {};
         
     | 
| 
       2259 
2261 
     | 
    
         
             
              EmberInstrumentation.instrument = instrumentation.instrument;
         
     | 
| 
       2260 
     | 
    
         
            -
              EmberInstrumentation.subscribe =  
     | 
| 
       2261 
     | 
    
         
            -
              EmberInstrumentation.unsubscribe =  
     | 
| 
      
 2262 
     | 
    
         
            +
              EmberInstrumentation.subscribe = instrumentation.subscribe;
         
     | 
| 
      
 2263 
     | 
    
         
            +
              EmberInstrumentation.unsubscribe = instrumentation.unsubscribe;
         
     | 
| 
       2262 
2264 
     | 
    
         
             
              EmberInstrumentation.reset  = instrumentation.reset;
         
     | 
| 
       2263 
2265 
     | 
    
         | 
| 
       2264 
2266 
     | 
    
         
             
              Ember['default'].instrument = instrumentation.instrument;
         
     | 
| 
       2265 
     | 
    
         
            -
              Ember['default'].subscribe =  
     | 
| 
      
 2267 
     | 
    
         
            +
              Ember['default'].subscribe = instrumentation.subscribe;
         
     | 
| 
       2266 
2268 
     | 
    
         | 
| 
       2267 
2269 
     | 
    
         
             
              Ember['default']._Cache = Cache['default'];
         
     | 
| 
       2268 
2270 
     | 
    
         | 
| 
         @@ -2412,23 +2414,7 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe 
     | 
|
| 
       2412 
2414 
     | 
    
         | 
| 
       2413 
2415 
     | 
    
         
             
              Ember['default'].merge = merge['default'];
         
     | 
| 
       2414 
2416 
     | 
    
         | 
| 
       2415 
     | 
    
         
            -
               
     | 
| 
       2416 
     | 
    
         
            -
                Ember['default'].stream = {
         
     | 
| 
       2417 
     | 
    
         
            -
                  Stream: Stream['default'],
         
     | 
| 
       2418 
     | 
    
         
            -
             
     | 
| 
       2419 
     | 
    
         
            -
                  isStream: streams__utils.isStream,
         
     | 
| 
       2420 
     | 
    
         
            -
                  subscribe: streams__utils.subscribe,
         
     | 
| 
       2421 
     | 
    
         
            -
                  unsubscribe: streams__utils.unsubscribe,
         
     | 
| 
       2422 
     | 
    
         
            -
                  read: streams__utils.read,
         
     | 
| 
       2423 
     | 
    
         
            -
                  readHash: streams__utils.readHash,
         
     | 
| 
       2424 
     | 
    
         
            -
                  readArray: streams__utils.readArray,
         
     | 
| 
       2425 
     | 
    
         
            -
                  scanArray: streams__utils.scanArray,
         
     | 
| 
       2426 
     | 
    
         
            -
                  scanHash: streams__utils.scanHash,
         
     | 
| 
       2427 
     | 
    
         
            -
                  concat: streams__utils.concat,
         
     | 
| 
       2428 
     | 
    
         
            -
                  chain: streams__utils.chain
         
     | 
| 
       2429 
     | 
    
         
            -
                };
         
     | 
| 
       2430 
     | 
    
         
            -
              }
         
     | 
| 
       2431 
     | 
    
         
            -
             
     | 
| 
      
 2417 
     | 
    
         
            +
              
         
     | 
| 
       2432 
2418 
     | 
    
         
             
              /**
         
     | 
| 
       2433 
2419 
     | 
    
         
             
                A function may be assigned to `Ember.onerror` to be called when Ember
         
     | 
| 
       2434 
2420 
     | 
    
         
             
                internals encounter an error. This is useful for specialized error handling
         
     | 
| 
         @@ -3694,27 +3680,13 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me 
     | 
|
| 
       3694 
3680 
     | 
    
         
             
              */
         
     | 
| 
       3695 
3681 
     | 
    
         
             
              function ComputedProperty(config, opts) {
         
     | 
| 
       3696 
3682 
     | 
    
         
             
                this.isDescriptor = true;
         
     | 
| 
       3697 
     | 
    
         
            -
                 
     | 
| 
       3698 
     | 
    
         
            -
                  if (typeof config === "function") {
         
     | 
| 
       3699 
     | 
    
         
            -
                    config.__ember_arity = config.length;
         
     | 
| 
       3700 
     | 
    
         
            -
                    this._getter = config;
         
     | 
| 
       3701 
     | 
    
         
            -
                    if (config.__ember_arity > 1) {
         
     | 
| 
       3702 
     | 
    
         
            -
                      this._setter = config;
         
     | 
| 
       3703 
     | 
    
         
            -
                    }
         
     | 
| 
       3704 
     | 
    
         
            -
                  } else {
         
     | 
| 
       3705 
     | 
    
         
            -
                    this._getter = config.get;
         
     | 
| 
       3706 
     | 
    
         
            -
                    this._setter = config.set;
         
     | 
| 
       3707 
     | 
    
         
            -
                    if (this._setter && this._setter.__ember_arity === undefined) {
         
     | 
| 
       3708 
     | 
    
         
            -
                      this._setter.__ember_arity = this._setter.length;
         
     | 
| 
       3709 
     | 
    
         
            -
                    }
         
     | 
| 
       3710 
     | 
    
         
            -
                  }
         
     | 
| 
       3711 
     | 
    
         
            -
                } else {
         
     | 
| 
      
 3683 
     | 
    
         
            +
                
         
     | 
| 
       3712 
3684 
     | 
    
         
             
                  config.__ember_arity = config.length;
         
     | 
| 
       3713 
3685 
     | 
    
         
             
                  this._getter = config;
         
     | 
| 
       3714 
3686 
     | 
    
         
             
                  if (config.__ember_arity > 1) {
         
     | 
| 
       3715 
3687 
     | 
    
         
             
                    this._setter = config;
         
     | 
| 
       3716 
3688 
     | 
    
         
             
                  }
         
     | 
| 
       3717 
     | 
    
         
            -
                 
     | 
| 
      
 3689 
     | 
    
         
            +
                
         
     | 
| 
       3718 
3690 
     | 
    
         | 
| 
       3719 
3691 
     | 
    
         
             
                this._dependentKeys = undefined;
         
     | 
| 
       3720 
3692 
     | 
    
         
             
                this._suspended = undefined;
         
     | 
| 
         @@ -4156,14 +4128,12 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me 
     | 
|
| 
       4156 
4128 
     | 
    
         | 
| 
       4157 
4129 
     | 
    
         
             
                var cp = new ComputedProperty(func);
         
     | 
| 
       4158 
4130 
     | 
    
         
             
                // jscs:disable
         
     | 
| 
       4159 
     | 
    
         
            -
                 
     | 
| 
       4160 
     | 
    
         
            -
                  // Empty block on purpose
         
     | 
| 
       4161 
     | 
    
         
            -
                } else {
         
     | 
| 
      
 4131 
     | 
    
         
            +
                
         
     | 
| 
       4162 
4132 
     | 
    
         
             
                  // jscs:enable
         
     | 
| 
       4163 
4133 
     | 
    
         
             
                  if (typeof func !== "function") {
         
     | 
| 
       4164 
4134 
     | 
    
         
             
                    throw new EmberError['default']("Computed Property declared without a property function");
         
     | 
| 
       4165 
4135 
     | 
    
         
             
                  }
         
     | 
| 
       4166 
     | 
    
         
            -
                 
     | 
| 
      
 4136 
     | 
    
         
            +
                
         
     | 
| 
       4167 
4137 
     | 
    
         | 
| 
       4168 
4138 
     | 
    
         
             
                if (args) {
         
     | 
| 
       4169 
4139 
     | 
    
         
             
                  cp.property.apply(cp, args);
         
     | 
| 
         @@ -4975,7 +4945,7 @@ enifed('ember-metal/core', ['exports'], function (exports) { 
     | 
|
| 
       4975 
4945 
     | 
    
         | 
| 
       4976 
4946 
     | 
    
         
             
                @class Ember
         
     | 
| 
       4977 
4947 
     | 
    
         
             
                @static
         
     | 
| 
       4978 
     | 
    
         
            -
                @version 1.11.0-beta. 
     | 
| 
      
 4948 
     | 
    
         
            +
                @version 1.11.0-beta.2
         
     | 
| 
       4979 
4949 
     | 
    
         
             
              */
         
     | 
| 
       4980 
4950 
     | 
    
         | 
| 
       4981 
4951 
     | 
    
         
             
              if ('undefined' === typeof Ember) {
         
     | 
| 
         @@ -5003,10 +4973,10 @@ enifed('ember-metal/core', ['exports'], function (exports) { 
     | 
|
| 
       5003 
4973 
     | 
    
         
             
              /**
         
     | 
| 
       5004 
4974 
     | 
    
         
             
                @property VERSION
         
     | 
| 
       5005 
4975 
     | 
    
         
             
                @type String
         
     | 
| 
       5006 
     | 
    
         
            -
                @default '1.11.0-beta. 
     | 
| 
      
 4976 
     | 
    
         
            +
                @default '1.11.0-beta.2'
         
     | 
| 
       5007 
4977 
     | 
    
         
             
                @static
         
     | 
| 
       5008 
4978 
     | 
    
         
             
              */
         
     | 
| 
       5009 
     | 
    
         
            -
              Ember.VERSION = '1.11.0-beta. 
     | 
| 
      
 4979 
     | 
    
         
            +
              Ember.VERSION = '1.11.0-beta.2';
         
     | 
| 
       5010 
4980 
     | 
    
         | 
| 
       5011 
4981 
     | 
    
         
             
              /**
         
     | 
| 
       5012 
4982 
     | 
    
         
             
                Standard environmental variables. You can define these in a global `EmberENV`
         
     | 
| 
         @@ -16085,7 +16055,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember 
     | 
|
| 
       16085 
16055 
     | 
    
         | 
| 
       16086 
16056 
     | 
    
         
             
                /**
         
     | 
| 
       16087 
16057 
     | 
    
         
             
                  Returns an array with all of the items in the enumeration where the passed
         
     | 
| 
       16088 
     | 
    
         
            -
                  function returns  
     | 
| 
      
 16058 
     | 
    
         
            +
                  function returns true. This method is the inverse of filter().
         
     | 
| 
       16089 
16059 
     | 
    
         | 
| 
       16090 
16060 
     | 
    
         
             
                  The callback method you provide should have the following signature (all
         
     | 
| 
       16091 
16061 
     | 
    
         
             
                  parameters are optional):
         
     | 
| 
         @@ -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. 
     | 
| 
      
 8 
     | 
    
         
            +
             * @version   1.11.0-beta.2
         
     | 
| 
       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. 
     | 
| 
      
 136 
     | 
    
         
            +
                @version 1.11.0-beta.2
         
     | 
| 
       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. 
     | 
| 
      
 164 
     | 
    
         
            +
                @default '1.11.0-beta.2'
         
     | 
| 
       165 
165 
     | 
    
         
             
                @static
         
     | 
| 
       166 
166 
     | 
    
         
             
              */
         
     | 
| 
       167 
     | 
    
         
            -
              Ember.VERSION = '1.11.0-beta. 
     | 
| 
      
 167 
     | 
    
         
            +
              Ember.VERSION = '1.11.0-beta.2';
         
     | 
| 
       168 
168 
     | 
    
         | 
| 
       169 
169 
     | 
    
         
             
              /**
         
     | 
| 
       170 
170 
     | 
    
         
             
                Standard environmental variables. You can define these in a global `EmberENV`
         
     | 
| 
         @@ -209,7 +209,7 @@ enifed('ember-metal/core', ['exports'], function (exports) { 
     | 
|
| 
       209 
209 
     | 
    
         
             
              Ember.FEATURES = Ember.ENV.FEATURES;
         
     | 
| 
       210 
210 
     | 
    
         | 
| 
       211 
211 
     | 
    
         
             
              if (!Ember.FEATURES) {
         
     | 
| 
       212 
     | 
    
         
            -
                Ember.FEATURES = {"features-stripped-test": 
     | 
| 
      
 212 
     | 
    
         
            +
                Ember.FEATURES = {"features-stripped-test":false,"ember-routing-named-substates":true,"mandatory-setter":true,"ember-htmlbars-component-generation":false,"ember-htmlbars-component-helper":true,"ember-htmlbars-inline-if-helper":true,"ember-htmlbars-attribute-syntax":true,"ember-routing-transitioning-classes":true,"new-computed-syntax":false,"ember-testing-checkbox-helpers":false,"ember-metal-stream":false,"ember-htmlbars-each-with-index":true,"ember-application-instance-initializers":false,"ember-application-initializer-context":false,"ember-router-willtransition":true,"ember-application-visit":false}; //jshint ignore:line
         
     | 
| 
       213 
213 
     | 
    
         
             
              }
         
     | 
| 
       214 
214 
     | 
    
         | 
| 
       215 
215 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -345,7 +345,7 @@ enifed('ember-template-compiler/compat', ['ember-metal/core', 'ember-template-co 
     | 
|
| 
       345 
345 
     | 
    
         
             
            	EmberHandlebars.template = template['default'];
         
     | 
| 
       346 
346 
     | 
    
         | 
| 
       347 
347 
     | 
    
         
             
            });
         
     | 
| 
       348 
     | 
    
         
            -
            enifed('ember-template-compiler/compat/precompile', ['exports'], function (exports) {
         
     | 
| 
      
 348 
     | 
    
         
            +
            enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-template-compiler/system/compile_options'], function (exports, compileOptions) {
         
     | 
| 
       349 
349 
     | 
    
         | 
| 
       350 
350 
     | 
    
         
             
              'use strict';
         
     | 
| 
       351 
351 
     | 
    
         | 
| 
         @@ -353,7 +353,6 @@ enifed('ember-template-compiler/compat/precompile', ['exports'], function (expor 
     | 
|
| 
       353 
353 
     | 
    
         
             
              @module ember
         
     | 
| 
       354 
354 
     | 
    
         
             
              @submodule ember-template-compiler
         
     | 
| 
       355 
355 
     | 
    
         
             
              */
         
     | 
| 
       356 
     | 
    
         
            -
             
     | 
| 
       357 
356 
     | 
    
         
             
              var compile, compileSpec;
         
     | 
| 
       358 
357 
     | 
    
         | 
| 
       359 
358 
     | 
    
         
             
              exports['default'] = function(string) {
         
     | 
| 
         @@ -371,7 +370,7 @@ enifed('ember-template-compiler/compat/precompile', ['exports'], function (expor 
     | 
|
| 
       371 
370 
     | 
    
         
             
                var asObject = arguments[1] === undefined ? true : arguments[1];
         
     | 
| 
       372 
371 
     | 
    
         
             
                var compileFunc = asObject ? compile : compileSpec;
         
     | 
| 
       373 
372 
     | 
    
         | 
| 
       374 
     | 
    
         
            -
                return compileFunc(string);
         
     | 
| 
      
 373 
     | 
    
         
            +
                return compileFunc(string, compileOptions['default']());
         
     | 
| 
       375 
374 
     | 
    
         
             
              }
         
     | 
| 
       376 
375 
     | 
    
         | 
| 
       377 
376 
     | 
    
         
             
            });
         
     | 
| 
         @@ -594,11 +593,10 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta 
     | 
|
| 
       594 
593 
     | 
    
         | 
| 
       595 
594 
     | 
    
         
             
              exports['default'] = function() {
         
     | 
| 
       596 
595 
     | 
    
         
             
                var disableComponentGeneration = true;
         
     | 
| 
       597 
     | 
    
         
            -
                 
     | 
| 
       598 
     | 
    
         
            -
                  disableComponentGeneration = false;
         
     | 
| 
       599 
     | 
    
         
            -
                }
         
     | 
| 
       600 
     | 
    
         
            -
             
     | 
| 
      
 596 
     | 
    
         
            +
                
         
     | 
| 
       601 
597 
     | 
    
         
             
                return {
         
     | 
| 
      
 598 
     | 
    
         
            +
                  revision: 'Ember@1.11.0-beta.2',
         
     | 
| 
      
 599 
     | 
    
         
            +
             
     | 
| 
       602 
600 
     | 
    
         
             
                  disableComponentGeneration: disableComponentGeneration,
         
     | 
| 
       603 
601 
     | 
    
         | 
| 
       604 
602 
     | 
    
         
             
                  plugins: plugins['default']
         
     | 
| 
         @@ -671,10 +669,12 @@ enifed("htmlbars-compiler", 
     | 
|
| 
       671 
669 
     | 
    
         
             
              function(__dependency1__, __exports__) {
         
     | 
| 
       672 
670 
     | 
    
         
             
                "use strict";
         
     | 
| 
       673 
671 
     | 
    
         
             
                var compile = __dependency1__.compile;
         
     | 
| 
       674 
     | 
    
         
            -
                var  
     | 
| 
      
 672 
     | 
    
         
            +
                var compileSpec = __dependency1__.compileSpec;
         
     | 
| 
      
 673 
     | 
    
         
            +
                var template = __dependency1__.template;
         
     | 
| 
       675 
674 
     | 
    
         | 
| 
       676 
675 
     | 
    
         
             
                __exports__.compile = compile;
         
     | 
| 
       677 
     | 
    
         
            -
                __exports__. 
     | 
| 
      
 676 
     | 
    
         
            +
                __exports__.compileSpec = compileSpec;
         
     | 
| 
      
 677 
     | 
    
         
            +
                __exports__.template = template;
         
     | 
| 
       678 
678 
     | 
    
         
             
              });
         
     | 
| 
       679 
679 
     | 
    
         
             
            enifed("htmlbars-compiler/compiler",
         
     | 
| 
       680 
680 
     | 
    
         
             
              ["../htmlbars-syntax/parser","./template-compiler","exports"],
         
     | 
| 
         @@ -685,6 +685,37 @@ enifed("htmlbars-compiler/compiler", 
     | 
|
| 
       685 
685 
     | 
    
         
             
                var TemplateCompiler = __dependency2__["default"];
         
     | 
| 
       686 
686 
     | 
    
         | 
| 
       687 
687 
     | 
    
         
             
                /*
         
     | 
| 
      
 688 
     | 
    
         
            +
                 * Compile a string into a template spec string. The template spec is a string
         
     | 
| 
      
 689 
     | 
    
         
            +
                 * representation of a template. Usually, you would use compileSpec for
         
     | 
| 
      
 690 
     | 
    
         
            +
                 * pre-compilation of a template on the server.
         
     | 
| 
      
 691 
     | 
    
         
            +
                 *
         
     | 
| 
      
 692 
     | 
    
         
            +
                 * Example usage:
         
     | 
| 
      
 693 
     | 
    
         
            +
                 *
         
     | 
| 
      
 694 
     | 
    
         
            +
                 *     var templateSpec = compileSpec("Howdy {{name}}");
         
     | 
| 
      
 695 
     | 
    
         
            +
                 *     // This next step is basically what plain compile does
         
     | 
| 
      
 696 
     | 
    
         
            +
                 *     var template = new Function("return " + templateSpec)();
         
     | 
| 
      
 697 
     | 
    
         
            +
                 *
         
     | 
| 
      
 698 
     | 
    
         
            +
                 * @method compileSpec
         
     | 
| 
      
 699 
     | 
    
         
            +
                 * @param {String} string An HTMLBars template string
         
     | 
| 
      
 700 
     | 
    
         
            +
                 * @return {TemplateSpec} A template spec string
         
     | 
| 
      
 701 
     | 
    
         
            +
                 */
         
     | 
| 
      
 702 
     | 
    
         
            +
                function compileSpec(string, options) {
         
     | 
| 
      
 703 
     | 
    
         
            +
                  var ast = preprocess(string, options);
         
     | 
| 
      
 704 
     | 
    
         
            +
                  var compiler = new TemplateCompiler(options);
         
     | 
| 
      
 705 
     | 
    
         
            +
                  var program = compiler.compile(ast);
         
     | 
| 
      
 706 
     | 
    
         
            +
                  return program;
         
     | 
| 
      
 707 
     | 
    
         
            +
                }
         
     | 
| 
      
 708 
     | 
    
         
            +
             
     | 
| 
      
 709 
     | 
    
         
            +
                __exports__.compileSpec = compileSpec;/*
         
     | 
| 
      
 710 
     | 
    
         
            +
                 * @method template
         
     | 
| 
      
 711 
     | 
    
         
            +
                 * @param {TemplateSpec} templateSpec A precompiled template
         
     | 
| 
      
 712 
     | 
    
         
            +
                 * @return {Template} A template spec string
         
     | 
| 
      
 713 
     | 
    
         
            +
                 */
         
     | 
| 
      
 714 
     | 
    
         
            +
                function template(templateSpec) {
         
     | 
| 
      
 715 
     | 
    
         
            +
                  return new Function("return " + templateSpec)();
         
     | 
| 
      
 716 
     | 
    
         
            +
                }
         
     | 
| 
      
 717 
     | 
    
         
            +
             
     | 
| 
      
 718 
     | 
    
         
            +
                __exports__.template = template;/*
         
     | 
| 
       688 
719 
     | 
    
         
             
                 * Compile a string into a template rendering function
         
     | 
| 
       689 
720 
     | 
    
         
             
                 *
         
     | 
| 
       690 
721 
     | 
    
         
             
                 * Example usage:
         
     | 
| 
         @@ -711,13 +742,12 @@ enifed("htmlbars-compiler/compiler", 
     | 
|
| 
       711 
742 
     | 
    
         
             
                 *     var domFragment = template(context, env, contextualElement);
         
     | 
| 
       712 
743 
     | 
    
         
             
                 *
         
     | 
| 
       713 
744 
     | 
    
         
             
                 * @method compile
         
     | 
| 
       714 
     | 
    
         
            -
                 * @param {String} string An  
     | 
| 
      
 745 
     | 
    
         
            +
                 * @param {String} string An HTMLBars template string
         
     | 
| 
       715 
746 
     | 
    
         
             
                 * @param {Object} options A set of options to provide to the compiler
         
     | 
| 
       716 
     | 
    
         
            -
                 * @return { 
     | 
| 
      
 747 
     | 
    
         
            +
                 * @return {Template} A function for rendering the template
         
     | 
| 
       717 
748 
     | 
    
         
             
                 */
         
     | 
| 
       718 
749 
     | 
    
         
             
                function compile(string, options) {
         
     | 
| 
       719 
     | 
    
         
            -
                   
     | 
| 
       720 
     | 
    
         
            -
                  return new Function("return " + program)();
         
     | 
| 
      
 750 
     | 
    
         
            +
                  return template(compileSpec(string, options));
         
     | 
| 
       721 
751 
     | 
    
         
             
                }
         
     | 
| 
       722 
752 
     | 
    
         | 
| 
       723 
753 
     | 
    
         
             
                __exports__.compile = compile;/*
         
     | 
| 
         @@ -742,7 +772,11 @@ enifed("htmlbars-compiler/compiler", 
     | 
|
| 
       742 
772 
     | 
    
         
             
                  return program;
         
     | 
| 
       743 
773 
     | 
    
         
             
                }
         
     | 
| 
       744 
774 
     | 
    
         | 
| 
       745 
     | 
    
         
            -
                __exports__.compileSpec = compileSpec;
         
     | 
| 
      
 775 
     | 
    
         
            +
                __exports__.compileSpec = compileSpec;function template(program) {
         
     | 
| 
      
 776 
     | 
    
         
            +
                  return new Function("return " + program)();
         
     | 
| 
      
 777 
     | 
    
         
            +
                }
         
     | 
| 
      
 778 
     | 
    
         
            +
             
     | 
| 
      
 779 
     | 
    
         
            +
                __exports__.template = template;
         
     | 
| 
       746 
780 
     | 
    
         
             
              });
         
     | 
| 
       747 
781 
     | 
    
         
             
            enifed("htmlbars-compiler/fragment-javascript-compiler",
         
     | 
| 
       748 
782 
     | 
    
         
             
              ["./utils","../htmlbars-util/quoting","exports"],
         
     | 
| 
         @@ -875,14 +909,14 @@ enifed("htmlbars-compiler/fragment-opcode-compiler", 
     | 
|
| 
       875 
909 
     | 
    
         
             
                  this.opcodes.push([type, params]);
         
     | 
| 
       876 
910 
     | 
    
         
             
                };
         
     | 
| 
       877 
911 
     | 
    
         | 
| 
       878 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.text = function(text 
     | 
| 
      
 912 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.text = function(text) {
         
     | 
| 
       879 
913 
     | 
    
         
             
                  this.opcode('createText', [text.chars]);
         
     | 
| 
       880 
     | 
    
         
            -
                   
     | 
| 
      
 914 
     | 
    
         
            +
                  this.opcode('appendChild');
         
     | 
| 
       881 
915 
     | 
    
         
             
                };
         
     | 
| 
       882 
916 
     | 
    
         | 
| 
       883 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.comment = function(comment 
     | 
| 
      
 917 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.comment = function(comment) {
         
     | 
| 
       884 
918 
     | 
    
         
             
                  this.opcode('createComment', [comment.value]);
         
     | 
| 
       885 
     | 
    
         
            -
                   
     | 
| 
      
 919 
     | 
    
         
            +
                  this.opcode('appendChild');
         
     | 
| 
       886 
920 
     | 
    
         
             
                };
         
     | 
| 
       887 
921 
     | 
    
         | 
| 
       888 
922 
     | 
    
         
             
                FragmentOpcodeCompiler.prototype.openElement = function(element) {
         
     | 
| 
         @@ -890,32 +924,39 @@ enifed("htmlbars-compiler/fragment-opcode-compiler", 
     | 
|
| 
       890 
924 
     | 
    
         
             
                  forEach(element.attributes, this.attribute, this);
         
     | 
| 
       891 
925 
     | 
    
         
             
                };
         
     | 
| 
       892 
926 
     | 
    
         | 
| 
       893 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.closeElement = function( 
     | 
| 
       894 
     | 
    
         
            -
                   
     | 
| 
      
 927 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.closeElement = function() {
         
     | 
| 
      
 928 
     | 
    
         
            +
                  this.opcode('appendChild');
         
     | 
| 
       895 
929 
     | 
    
         
             
                };
         
     | 
| 
       896 
930 
     | 
    
         | 
| 
       897 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.startProgram = function( 
     | 
| 
      
 931 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.startProgram = function() {
         
     | 
| 
       898 
932 
     | 
    
         
             
                  this.opcodes.length = 0;
         
     | 
| 
       899 
     | 
    
         
            -
                   
     | 
| 
       900 
     | 
    
         
            -
                    this.opcode('createFragment');
         
     | 
| 
       901 
     | 
    
         
            -
                  }
         
     | 
| 
      
 933 
     | 
    
         
            +
                  this.opcode('createFragment');
         
     | 
| 
       902 
934 
     | 
    
         
             
                };
         
     | 
| 
       903 
935 
     | 
    
         | 
| 
       904 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.endProgram = function( 
     | 
| 
      
 936 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.endProgram = function() {
         
     | 
| 
       905 
937 
     | 
    
         
             
                  this.opcode('returnNode');
         
     | 
| 
       906 
938 
     | 
    
         
             
                };
         
     | 
| 
       907 
939 
     | 
    
         | 
| 
       908 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype.mustache = function 
     | 
| 
      
 940 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.mustache = function() {
         
     | 
| 
      
 941 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode();
         
     | 
| 
      
 942 
     | 
    
         
            +
                };
         
     | 
| 
      
 943 
     | 
    
         
            +
             
     | 
| 
      
 944 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.component = function() {
         
     | 
| 
      
 945 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode();
         
     | 
| 
      
 946 
     | 
    
         
            +
                };
         
     | 
| 
       909 
947 
     | 
    
         | 
| 
       910 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype. 
     | 
| 
      
 948 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.block = function() {
         
     | 
| 
      
 949 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode();
         
     | 
| 
      
 950 
     | 
    
         
            +
                };
         
     | 
| 
       911 
951 
     | 
    
         | 
| 
       912 
     | 
    
         
            -
                FragmentOpcodeCompiler.prototype. 
     | 
| 
      
 952 
     | 
    
         
            +
                FragmentOpcodeCompiler.prototype.pushMorphPlaceholderNode = function() {
         
     | 
| 
      
 953 
     | 
    
         
            +
                  this.opcode('createComment', [""]);
         
     | 
| 
      
 954 
     | 
    
         
            +
                  this.opcode('appendChild');
         
     | 
| 
      
 955 
     | 
    
         
            +
                };
         
     | 
| 
       913 
956 
     | 
    
         | 
| 
       914 
957 
     | 
    
         
             
                FragmentOpcodeCompiler.prototype.attribute = function(attr) {
         
     | 
| 
       915 
958 
     | 
    
         
             
                  if (attr.value.type === 'TextNode') {
         
     | 
| 
       916 
     | 
    
         
            -
             
     | 
| 
       917 
959 
     | 
    
         
             
                    var namespace = getAttrNamespace(attr.name);
         
     | 
| 
       918 
     | 
    
         
            -
             
     | 
| 
       919 
960 
     | 
    
         
             
                    this.opcode('setAttribute', [attr.name, attr.value.chars, namespace]);
         
     | 
| 
       920 
961 
     | 
    
         
             
                  }
         
     | 
| 
       921 
962 
     | 
    
         
             
                };
         
     | 
| 
         @@ -958,9 +999,19 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", 
     | 
|
| 
       958 
999 
     | 
    
         
             
                  this.parentCount = 0;
         
     | 
| 
       959 
1000 
     | 
    
         
             
                  this.indent = (options && options.indent) || "";
         
     | 
| 
       960 
1001 
     | 
    
         
             
                  this.hooks = {};
         
     | 
| 
      
 1002 
     | 
    
         
            +
                  this.hasOpenBoundary = false;
         
     | 
| 
      
 1003 
     | 
    
         
            +
                  this.hasCloseBoundary = false;
         
     | 
| 
       961 
1004 
     | 
    
         | 
| 
       962 
1005 
     | 
    
         
             
                  processOpcodes(this, opcodes);
         
     | 
| 
       963 
1006 
     | 
    
         | 
| 
      
 1007 
     | 
    
         
            +
                  if (this.hasOpenBoundary) {
         
     | 
| 
      
 1008 
     | 
    
         
            +
                    this.source.unshift(this.indent+"  dom.insertBoundary(fragment, 0);\n");
         
     | 
| 
      
 1009 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1010 
     | 
    
         
            +
             
     | 
| 
      
 1011 
     | 
    
         
            +
                  if (this.hasCloseBoundary) {
         
     | 
| 
      
 1012 
     | 
    
         
            +
                    this.source.unshift(this.indent+"  dom.insertBoundary(fragment, null);\n");
         
     | 
| 
      
 1013 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1014 
     | 
    
         
            +
             
     | 
| 
       964 
1015 
     | 
    
         
             
                  var i, l;
         
     | 
| 
       965 
1016 
     | 
    
         
             
                  if (this.morphs.length) {
         
     | 
| 
       966 
1017 
     | 
    
         
             
                    var morphs = "";
         
     | 
| 
         @@ -1006,6 +1057,14 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", 
     | 
|
| 
       1006 
1057 
     | 
    
         
             
                  this.stack.push(value);
         
     | 
| 
       1007 
1058 
     | 
    
         
             
                };
         
     | 
| 
       1008 
1059 
     | 
    
         | 
| 
      
 1060 
     | 
    
         
            +
                prototype.openBoundary = function() {
         
     | 
| 
      
 1061 
     | 
    
         
            +
                  this.hasOpenBoundary = true;
         
     | 
| 
      
 1062 
     | 
    
         
            +
                };
         
     | 
| 
      
 1063 
     | 
    
         
            +
             
     | 
| 
      
 1064 
     | 
    
         
            +
                prototype.closeBoundary = function() {
         
     | 
| 
      
 1065 
     | 
    
         
            +
                  this.hasCloseBoundary = true;
         
     | 
| 
      
 1066 
     | 
    
         
            +
                };
         
     | 
| 
      
 1067 
     | 
    
         
            +
             
     | 
| 
       1009 
1068 
     | 
    
         
             
                prototype.pushLiteral = function(value) {
         
     | 
| 
       1010 
1069 
     | 
    
         
             
                  if (typeof value === 'string') {
         
     | 
| 
       1011 
1070 
     | 
    
         
             
                    this.stack.push(string(value));
         
     | 
| 
         @@ -1264,33 +1323,32 @@ enifed("htmlbars-compiler/hydration-opcode-compiler", 
     | 
|
| 
       1264 
1323 
     | 
    
         
             
                  }
         
     | 
| 
       1265 
1324 
     | 
    
         
             
                };
         
     | 
| 
       1266 
1325 
     | 
    
         | 
| 
       1267 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.endProgram = function( 
     | 
| 
      
 1326 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.endProgram = function() {
         
     | 
| 
       1268 
1327 
     | 
    
         
             
                  distributeMorphs(this.morphs, this.opcodes);
         
     | 
| 
       1269 
1328 
     | 
    
         
             
                };
         
     | 
| 
       1270 
1329 
     | 
    
         | 
| 
       1271 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.text = function( 
     | 
| 
      
 1330 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.text = function() {
         
     | 
| 
       1272 
1331 
     | 
    
         
             
                  ++this.currentDOMChildIndex;
         
     | 
| 
       1273 
1332 
     | 
    
         
             
                };
         
     | 
| 
       1274 
1333 
     | 
    
         | 
| 
       1275 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.comment = function( 
     | 
| 
      
 1334 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.comment = function() {
         
     | 
| 
       1276 
1335 
     | 
    
         
             
                  ++this.currentDOMChildIndex;
         
     | 
| 
       1277 
1336 
     | 
    
         
             
                };
         
     | 
| 
       1278 
1337 
     | 
    
         | 
| 
       1279 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.openElement = function(element, pos, len,  
     | 
| 
      
 1338 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.openElement = function(element, pos, len, mustacheCount, blankChildTextNodes) {
         
     | 
| 
       1280 
1339 
     | 
    
         
             
                  distributeMorphs(this.morphs, this.opcodes);
         
     | 
| 
       1281 
1340 
     | 
    
         
             
                  ++this.currentDOMChildIndex;
         
     | 
| 
       1282 
1341 
     | 
    
         | 
| 
       1283 
1342 
     | 
    
         
             
                  this.element = this.currentDOMChildIndex;
         
     | 
| 
       1284 
1343 
     | 
    
         | 
| 
       1285 
     | 
    
         
            -
                   
     | 
| 
       1286 
     | 
    
         
            -
                    this.opcode('consumeParent', this.currentDOMChildIndex);
         
     | 
| 
      
 1344 
     | 
    
         
            +
                  this.opcode('consumeParent', this.currentDOMChildIndex);
         
     | 
| 
       1287 
1345 
     | 
    
         | 
| 
       1288 
     | 
    
         
            -
             
     | 
| 
       1289 
     | 
    
         
            -
             
     | 
| 
       1290 
     | 
    
         
            -
             
     | 
| 
       1291 
     | 
    
         
            -
             
     | 
| 
       1292 
     | 
    
         
            -
                    }
         
     | 
| 
      
 1346 
     | 
    
         
            +
                  // If our parent reference will be used more than once, cache its reference.
         
     | 
| 
      
 1347 
     | 
    
         
            +
                  if (mustacheCount > 1) {
         
     | 
| 
      
 1348 
     | 
    
         
            +
                    this.opcode('shareElement', ++this.elementNum);
         
     | 
| 
      
 1349 
     | 
    
         
            +
                    this.element = null; // Set element to null so we don't cache it twice
         
     | 
| 
       1293 
1350 
     | 
    
         
             
                  }
         
     | 
| 
      
 1351 
     | 
    
         
            +
             
     | 
| 
       1294 
1352 
     | 
    
         
             
                  var isElementChecked = detectIsElementChecked(element);
         
     | 
| 
       1295 
1353 
     | 
    
         
             
                  if (blankChildTextNodes.length > 0 || isElementChecked) {
         
     | 
| 
       1296 
1354 
     | 
    
         
             
                    this.opcode( 'repairClonedNode',
         
     | 
| 
         @@ -1305,20 +1363,39 @@ enifed("htmlbars-compiler/hydration-opcode-compiler", 
     | 
|
| 
       1305 
1363 
     | 
    
         
             
                  forEach(element.helpers, this.elementHelper, this);
         
     | 
| 
       1306 
1364 
     | 
    
         
             
                };
         
     | 
| 
       1307 
1365 
     | 
    
         | 
| 
       1308 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.closeElement = function( 
     | 
| 
      
 1366 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.closeElement = function() {
         
     | 
| 
       1309 
1367 
     | 
    
         
             
                  distributeMorphs(this.morphs, this.opcodes);
         
     | 
| 
       1310 
     | 
    
         
            -
                   
     | 
| 
      
 1368 
     | 
    
         
            +
                  this.opcode('popParent');
         
     | 
| 
       1311 
1369 
     | 
    
         
             
                  this.currentDOMChildIndex = this.paths.pop();
         
     | 
| 
       1312 
1370 
     | 
    
         
             
                };
         
     | 
| 
       1313 
1371 
     | 
    
         | 
| 
       1314 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype. 
     | 
| 
       1315 
     | 
    
         
            -
                   
     | 
| 
      
 1372 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.mustache = function(mustache, childIndex, childCount) {
         
     | 
| 
      
 1373 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode(childIndex, childCount);
         
     | 
| 
      
 1374 
     | 
    
         
            +
                  
         
     | 
| 
      
 1375 
     | 
    
         
            +
                  var sexpr = mustache.sexpr;
         
     | 
| 
       1316 
1376 
     | 
    
         | 
| 
       1317 
     | 
    
         
            -
                  var  
     | 
| 
       1318 
     | 
    
         
            -
                  var start =  
     | 
| 
       1319 
     | 
    
         
            -
                  var end =  
     | 
| 
      
 1377 
     | 
    
         
            +
                  var morphNum = this.morphNum++;
         
     | 
| 
      
 1378 
     | 
    
         
            +
                  var start = this.currentDOMChildIndex;
         
     | 
| 
      
 1379 
     | 
    
         
            +
                  var end = this.currentDOMChildIndex;
         
     | 
| 
      
 1380 
     | 
    
         
            +
                  this.morphs.push([morphNum, this.paths.slice(), start, end, mustache.escaped]);
         
     | 
| 
      
 1381 
     | 
    
         
            +
             
     | 
| 
      
 1382 
     | 
    
         
            +
                  if (isHelper(sexpr)) {
         
     | 
| 
      
 1383 
     | 
    
         
            +
                    prepareSexpr(this, sexpr);
         
     | 
| 
      
 1384 
     | 
    
         
            +
                    this.opcode('printInlineHook', morphNum);
         
     | 
| 
      
 1385 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 1386 
     | 
    
         
            +
                    preparePath(this, sexpr.path);
         
     | 
| 
      
 1387 
     | 
    
         
            +
                    this.opcode('printContentHook', morphNum);
         
     | 
| 
      
 1388 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1389 
     | 
    
         
            +
                };
         
     | 
| 
      
 1390 
     | 
    
         
            +
             
     | 
| 
      
 1391 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.block = function(block, childIndex, childCount) {
         
     | 
| 
      
 1392 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode(childIndex, childCount);
         
     | 
| 
      
 1393 
     | 
    
         
            +
             
     | 
| 
      
 1394 
     | 
    
         
            +
                  var sexpr = block.sexpr;
         
     | 
| 
       1320 
1395 
     | 
    
         | 
| 
       1321 
1396 
     | 
    
         
             
                  var morphNum = this.morphNum++;
         
     | 
| 
      
 1397 
     | 
    
         
            +
                  var start = this.currentDOMChildIndex;
         
     | 
| 
      
 1398 
     | 
    
         
            +
                  var end = this.currentDOMChildIndex;
         
     | 
| 
       1322 
1399 
     | 
    
         
             
                  this.morphs.push([morphNum, this.paths.slice(), start, end, true]);
         
     | 
| 
       1323 
1400 
     | 
    
         | 
| 
       1324 
1401 
     | 
    
         
             
                  var templateId = this.templateId++;
         
     | 
| 
         @@ -1328,15 +1405,15 @@ enifed("htmlbars-compiler/hydration-opcode-compiler", 
     | 
|
| 
       1328 
1405 
     | 
    
         
             
                  this.opcode('printBlockHook', morphNum, templateId, inverseId);
         
     | 
| 
       1329 
1406 
     | 
    
         
             
                };
         
     | 
| 
       1330 
1407 
     | 
    
         | 
| 
       1331 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype.component = function(component, childIndex,  
     | 
| 
       1332 
     | 
    
         
            -
                   
     | 
| 
      
 1408 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.component = function(component, childIndex, childCount) {
         
     | 
| 
      
 1409 
     | 
    
         
            +
                  this.pushMorphPlaceholderNode(childIndex, childCount);
         
     | 
| 
      
 1410 
     | 
    
         
            +
             
     | 
| 
       1333 
1411 
     | 
    
         
             
                  var program = component.program || {};
         
     | 
| 
       1334 
1412 
     | 
    
         
             
                  var blockParams = program.blockParams || [];
         
     | 
| 
       1335 
1413 
     | 
    
         | 
| 
       1336 
     | 
    
         
            -
                  var start = (currentDOMChildIndex < 0 ? null : currentDOMChildIndex),
         
     | 
| 
       1337 
     | 
    
         
            -
                      end = (childIndex === childrenLength - 1 ? null : currentDOMChildIndex + 1);
         
     | 
| 
       1338 
     | 
    
         
            -
             
     | 
| 
       1339 
1414 
     | 
    
         
             
                  var morphNum = this.morphNum++;
         
     | 
| 
      
 1415 
     | 
    
         
            +
                  var start = this.currentDOMChildIndex;
         
     | 
| 
      
 1416 
     | 
    
         
            +
                  var end = this.currentDOMChildIndex;
         
     | 
| 
       1340 
1417 
     | 
    
         
             
                  this.morphs.push([morphNum, this.paths.slice(), start, end, true]);
         
     | 
| 
       1341 
1418 
     | 
    
         | 
| 
       1342 
1419 
     | 
    
         
             
                  var attrs = component.attributes;
         
     | 
| 
         @@ -1402,23 +1479,16 @@ enifed("htmlbars-compiler/hydration-opcode-compiler", 
     | 
|
| 
       1402 
1479 
     | 
    
         
             
                  this.opcode('printElementHook', this.elementNum);
         
     | 
| 
       1403 
1480 
     | 
    
         
             
                };
         
     | 
| 
       1404 
1481 
     | 
    
         | 
| 
       1405 
     | 
    
         
            -
                HydrationOpcodeCompiler.prototype. 
     | 
| 
       1406 
     | 
    
         
            -
                   
     | 
| 
       1407 
     | 
    
         
            -
             
     | 
| 
       1408 
     | 
    
         
            -
             
     | 
| 
       1409 
     | 
    
         
            -
             
     | 
| 
       1410 
     | 
    
         
            -
             
     | 
| 
       1411 
     | 
    
         
            -
             
     | 
| 
       1412 
     | 
    
         
            -
             
     | 
| 
       1413 
     | 
    
         
            -
                  this.morphs.push([morphNum, this.paths.slice(), start, end, mustache.escaped]);
         
     | 
| 
       1414 
     | 
    
         
            -
             
     | 
| 
       1415 
     | 
    
         
            -
                  if (isHelper(sexpr)) {
         
     | 
| 
       1416 
     | 
    
         
            -
                    prepareSexpr(this, sexpr);
         
     | 
| 
       1417 
     | 
    
         
            -
                    this.opcode('printInlineHook', morphNum);
         
     | 
| 
       1418 
     | 
    
         
            -
                  } else {
         
     | 
| 
       1419 
     | 
    
         
            -
                    preparePath(this, sexpr.path);
         
     | 
| 
       1420 
     | 
    
         
            -
                    this.opcode('printContentHook', morphNum);
         
     | 
| 
      
 1482 
     | 
    
         
            +
                HydrationOpcodeCompiler.prototype.pushMorphPlaceholderNode = function(childIndex, childCount) {
         
     | 
| 
      
 1483 
     | 
    
         
            +
                  if (this.paths.length === 0) {
         
     | 
| 
      
 1484 
     | 
    
         
            +
                    if (childIndex === 0) {
         
     | 
| 
      
 1485 
     | 
    
         
            +
                      this.opcode('openBoundary');
         
     | 
| 
      
 1486 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1487 
     | 
    
         
            +
                    if (childIndex === childCount - 1) {
         
     | 
| 
      
 1488 
     | 
    
         
            +
                      this.opcode('closeBoundary');
         
     | 
| 
      
 1489 
     | 
    
         
            +
                    }
         
     | 
| 
       1421 
1490 
     | 
    
         
             
                  }
         
     | 
| 
      
 1491 
     | 
    
         
            +
                  this.comment();
         
     | 
| 
       1422 
1492 
     | 
    
         
             
                };
         
     | 
| 
       1423 
1493 
     | 
    
         | 
| 
       1424 
1494 
     | 
    
         
             
                HydrationOpcodeCompiler.prototype.SubExpression = function(sexpr) {
         
     | 
| 
         @@ -1511,6 +1581,7 @@ enifed("htmlbars-compiler/template-compiler", 
     | 
|
| 
       1511 
1581 
     | 
    
         | 
| 
       1512 
1582 
     | 
    
         
             
                function TemplateCompiler(options) {
         
     | 
| 
       1513 
1583 
     | 
    
         
             
                  this.options = options || {};
         
     | 
| 
      
 1584 
     | 
    
         
            +
                  this.revision = this.options.revision || "HTMLBars@v0.11.1";
         
     | 
| 
       1514 
1585 
     | 
    
         
             
                  this.fragmentOpcodeCompiler = new FragmentOpcodeCompiler();
         
     | 
| 
       1515 
1586 
     | 
    
         
             
                  this.fragmentCompiler = new FragmentJavaScriptCompiler();
         
     | 
| 
       1516 
1587 
     | 
    
         
             
                  this.hydrationOpcodeCompiler = new HydrationOpcodeCompiler();
         
     | 
| 
         @@ -1596,6 +1667,7 @@ enifed("htmlbars-compiler/template-compiler", 
     | 
|
| 
       1596 
1667 
     | 
    
         
             
                    this.getChildTemplateVars(indent + '  ') +
         
     | 
| 
       1597 
1668 
     | 
    
         
             
                    indent+'  return {\n' +
         
     | 
| 
       1598 
1669 
     | 
    
         
             
                    indent+'    isHTMLBars: true,\n' +
         
     | 
| 
      
 1670 
     | 
    
         
            +
                    indent+'    revision: "' + this.revision + '",\n' +
         
     | 
| 
       1599 
1671 
     | 
    
         
             
                    indent+'    blockParams: ' + blockParams.length + ',\n' +
         
     | 
| 
       1600 
1672 
     | 
    
         
             
                    indent+'    cachedFragment: null,\n' +
         
     | 
| 
       1601 
1673 
     | 
    
         
             
                    indent+'    hasRendered: false,\n' +
         
     | 
| 
         @@ -1639,14 +1711,14 @@ enifed("htmlbars-compiler/template-compiler", 
     | 
|
| 
       1639 
1711 
     | 
    
         
             
                  this.hydrationOpcodeCompiler.closeElement(element, i, l, r);
         
     | 
| 
       1640 
1712 
     | 
    
         
             
                };
         
     | 
| 
       1641 
1713 
     | 
    
         | 
| 
       1642 
     | 
    
         
            -
                TemplateCompiler.prototype.component = function(component, i, l) {
         
     | 
| 
       1643 
     | 
    
         
            -
                  this.fragmentOpcodeCompiler.component(component, i, l);
         
     | 
| 
       1644 
     | 
    
         
            -
                  this.hydrationOpcodeCompiler.component(component, i, l);
         
     | 
| 
      
 1714 
     | 
    
         
            +
                TemplateCompiler.prototype.component = function(component, i, l, s) {
         
     | 
| 
      
 1715 
     | 
    
         
            +
                  this.fragmentOpcodeCompiler.component(component, i, l, s);
         
     | 
| 
      
 1716 
     | 
    
         
            +
                  this.hydrationOpcodeCompiler.component(component, i, l, s);
         
     | 
| 
       1645 
1717 
     | 
    
         
             
                };
         
     | 
| 
       1646 
1718 
     | 
    
         | 
| 
       1647 
     | 
    
         
            -
                TemplateCompiler.prototype.block = function(block, i, l) {
         
     | 
| 
       1648 
     | 
    
         
            -
                  this.fragmentOpcodeCompiler.block(block, i, l);
         
     | 
| 
       1649 
     | 
    
         
            -
                  this.hydrationOpcodeCompiler.block(block, i, l);
         
     | 
| 
      
 1719 
     | 
    
         
            +
                TemplateCompiler.prototype.block = function(block, i, l, s) {
         
     | 
| 
      
 1720 
     | 
    
         
            +
                  this.fragmentOpcodeCompiler.block(block, i, l, s);
         
     | 
| 
      
 1721 
     | 
    
         
            +
                  this.hydrationOpcodeCompiler.block(block, i, l, s);
         
     | 
| 
       1650 
1722 
     | 
    
         
             
                };
         
     | 
| 
       1651 
1723 
     | 
    
         | 
| 
       1652 
1724 
     | 
    
         
             
                TemplateCompiler.prototype.text = function(string, i, l, r) {
         
     | 
| 
         @@ -1659,9 +1731,9 @@ enifed("htmlbars-compiler/template-compiler", 
     | 
|
| 
       1659 
1731 
     | 
    
         
             
                  this.hydrationOpcodeCompiler.comment(string, i, l, r);
         
     | 
| 
       1660 
1732 
     | 
    
         
             
                };
         
     | 
| 
       1661 
1733 
     | 
    
         | 
| 
       1662 
     | 
    
         
            -
                TemplateCompiler.prototype.mustache = function (mustache, i, l) {
         
     | 
| 
       1663 
     | 
    
         
            -
                  this.fragmentOpcodeCompiler.mustache(mustache, i, l);
         
     | 
| 
       1664 
     | 
    
         
            -
                  this.hydrationOpcodeCompiler.mustache(mustache, i, l);
         
     | 
| 
      
 1734 
     | 
    
         
            +
                TemplateCompiler.prototype.mustache = function (mustache, i, l, s) {
         
     | 
| 
      
 1735 
     | 
    
         
            +
                  this.fragmentOpcodeCompiler.mustache(mustache, i, l, s);
         
     | 
| 
      
 1736 
     | 
    
         
            +
                  this.hydrationOpcodeCompiler.mustache(mustache, i, l, s);
         
     | 
| 
       1665 
1737 
     | 
    
         
             
                };
         
     | 
| 
       1666 
1738 
     | 
    
         | 
| 
       1667 
1739 
     | 
    
         
             
                TemplateCompiler.prototype.setNamespace = function(namespace) {
         
     | 
| 
         @@ -1779,7 +1851,6 @@ enifed("htmlbars-compiler/template-visitor", 
     | 
|
| 
       1779 
1851 
     | 
    
         
             
                TemplateVisitor.prototype.ElementNode = function(element) {
         
     | 
| 
       1780 
1852 
     | 
    
         
             
                  var parentFrame = this.getCurrentFrame();
         
     | 
| 
       1781 
1853 
     | 
    
         
             
                  var elementFrame = this.pushFrame();
         
     | 
| 
       1782 
     | 
    
         
            -
                  var parentNode = parentFrame.parentNode;
         
     | 
| 
       1783 
1854 
     | 
    
         | 
| 
       1784 
1855 
     | 
    
         
             
                  elementFrame.parentNode = element;
         
     | 
| 
       1785 
1856 
     | 
    
         
             
                  elementFrame.children = element.children;
         
     | 
| 
         @@ -1790,8 +1861,7 @@ enifed("htmlbars-compiler/template-visitor", 
     | 
|
| 
       1790 
1861 
     | 
    
         
             
                  var actionArgs = [
         
     | 
| 
       1791 
1862 
     | 
    
         
             
                    element,
         
     | 
| 
       1792 
1863 
     | 
    
         
             
                    parentFrame.childIndex,
         
     | 
| 
       1793 
     | 
    
         
            -
                    parentFrame.childCount 
     | 
| 
       1794 
     | 
    
         
            -
                    parentNode.type === 'Program' && parentFrame.childCount === 1
         
     | 
| 
      
 1864 
     | 
    
         
            +
                    parentFrame.childCount
         
     | 
| 
       1795 
1865 
     | 
    
         
             
                  ];
         
     | 
| 
       1796 
1866 
     | 
    
         | 
| 
       1797 
1867 
     | 
    
         
             
                  elementFrame.actions.push(['closeElement', actionArgs]);
         
     | 
| 
         @@ -1823,11 +1893,10 @@ enifed("htmlbars-compiler/template-visitor", 
     | 
|
| 
       1823 
1893 
     | 
    
         | 
| 
       1824 
1894 
     | 
    
         
             
                TemplateVisitor.prototype.TextNode = function(text) {
         
     | 
| 
       1825 
1895 
     | 
    
         
             
                  var frame = this.getCurrentFrame();
         
     | 
| 
       1826 
     | 
    
         
            -
                  var isSingleRoot = frame.parentNode.type === 'Program' && frame.childCount === 1;
         
     | 
| 
       1827 
1896 
     | 
    
         
             
                  if (text.chars === '') {
         
     | 
| 
       1828 
1897 
     | 
    
         
             
                    frame.blankChildTextNodes.push(domIndexOf(frame.children, text));
         
     | 
| 
       1829 
1898 
     | 
    
         
             
                  }
         
     | 
| 
       1830 
     | 
    
         
            -
                  frame.actions.push(['text', [text, frame.childIndex, frame.childCount 
     | 
| 
      
 1899 
     | 
    
         
            +
                  frame.actions.push(['text', [text, frame.childIndex, frame.childCount]]);
         
     | 
| 
       1831 
1900 
     | 
    
         
             
                };
         
     | 
| 
       1832 
1901 
     | 
    
         | 
| 
       1833 
1902 
     | 
    
         
             
                TemplateVisitor.prototype.BlockStatement = function(node) {
         
     | 
| 
         @@ -1858,9 +1927,7 @@ enifed("htmlbars-compiler/template-visitor", 
     | 
|
| 
       1858 
1927 
     | 
    
         | 
| 
       1859 
1928 
     | 
    
         
             
                TemplateVisitor.prototype.CommentStatement = function(text) {
         
     | 
| 
       1860 
1929 
     | 
    
         
             
                  var frame = this.getCurrentFrame();
         
     | 
| 
       1861 
     | 
    
         
            -
                   
     | 
| 
       1862 
     | 
    
         
            -
             
     | 
| 
       1863 
     | 
    
         
            -
                  frame.actions.push(['comment', [text, frame.childIndex, frame.childCount, isSingleRoot]]);
         
     | 
| 
      
 1930 
     | 
    
         
            +
                  frame.actions.push(['comment', [text, frame.childIndex, frame.childCount]]);
         
     | 
| 
       1864 
1931 
     | 
    
         
             
                };
         
     | 
| 
       1865 
1932 
     | 
    
         | 
| 
       1866 
1933 
     | 
    
         
             
                TemplateVisitor.prototype.MustacheStatement = function(mustache) {
         
     | 
| 
         @@ -1928,6 +1995,159 @@ enifed("htmlbars-compiler/utils", 
     | 
|
| 
       1928 
1995 
     | 
    
         | 
| 
       1929 
1996 
     | 
    
         
             
                __exports__.processOpcodes = processOpcodes;
         
     | 
| 
       1930 
1997 
     | 
    
         
             
              });
         
     | 
| 
      
 1998 
     | 
    
         
            +
            enifed("htmlbars-runtime",
         
     | 
| 
      
 1999 
     | 
    
         
            +
              ["htmlbars-runtime/hooks","htmlbars-runtime/helpers","exports"],
         
     | 
| 
      
 2000 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __exports__) {
         
     | 
| 
      
 2001 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 2002 
     | 
    
         
            +
                var hooks = __dependency1__["default"];
         
     | 
| 
      
 2003 
     | 
    
         
            +
                var helpers = __dependency2__["default"];
         
     | 
| 
      
 2004 
     | 
    
         
            +
             
     | 
| 
      
 2005 
     | 
    
         
            +
                __exports__.hooks = hooks;
         
     | 
| 
      
 2006 
     | 
    
         
            +
                __exports__.helpers = helpers;
         
     | 
| 
      
 2007 
     | 
    
         
            +
              });
         
     | 
| 
      
 2008 
     | 
    
         
            +
            enifed("htmlbars-runtime/helpers",
         
     | 
| 
      
 2009 
     | 
    
         
            +
              ["exports"],
         
     | 
| 
      
 2010 
     | 
    
         
            +
              function(__exports__) {
         
     | 
| 
      
 2011 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 2012 
     | 
    
         
            +
                function partial(params, hash, options, env) {
         
     | 
| 
      
 2013 
     | 
    
         
            +
                  var template = env.partials[params[0]];
         
     | 
| 
      
 2014 
     | 
    
         
            +
                  return template.render(this, env, options.morph.contextualElement);
         
     | 
| 
      
 2015 
     | 
    
         
            +
                }
         
     | 
| 
      
 2016 
     | 
    
         
            +
             
     | 
| 
      
 2017 
     | 
    
         
            +
                __exports__.partial = partial;__exports__["default"] = {
         
     | 
| 
      
 2018 
     | 
    
         
            +
                  partial: partial
         
     | 
| 
      
 2019 
     | 
    
         
            +
                };
         
     | 
| 
      
 2020 
     | 
    
         
            +
              });
         
     | 
| 
      
 2021 
     | 
    
         
            +
            enifed("htmlbars-runtime/hooks",
         
     | 
| 
      
 2022 
     | 
    
         
            +
              ["exports"],
         
     | 
| 
      
 2023 
     | 
    
         
            +
              function(__exports__) {
         
     | 
| 
      
 2024 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 2025 
     | 
    
         
            +
                function block(env, morph, context, path, params, hash, template, inverse) {
         
     | 
| 
      
 2026 
     | 
    
         
            +
                  var options = {
         
     | 
| 
      
 2027 
     | 
    
         
            +
                    morph: morph,
         
     | 
| 
      
 2028 
     | 
    
         
            +
                    template: template,
         
     | 
| 
      
 2029 
     | 
    
         
            +
                    inverse: inverse
         
     | 
| 
      
 2030 
     | 
    
         
            +
                  };
         
     | 
| 
      
 2031 
     | 
    
         
            +
             
     | 
| 
      
 2032 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, path);
         
     | 
| 
      
 2033 
     | 
    
         
            +
                  var value = helper.call(context, params, hash, options, env);
         
     | 
| 
      
 2034 
     | 
    
         
            +
             
     | 
| 
      
 2035 
     | 
    
         
            +
                  morph.setContent(value);
         
     | 
| 
      
 2036 
     | 
    
         
            +
                }
         
     | 
| 
      
 2037 
     | 
    
         
            +
             
     | 
| 
      
 2038 
     | 
    
         
            +
                __exports__.block = block;function inline(env, morph, context, path, params, hash) {
         
     | 
| 
      
 2039 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, path);
         
     | 
| 
      
 2040 
     | 
    
         
            +
                  var value = helper.call(context, params, hash, { morph: morph }, env);
         
     | 
| 
      
 2041 
     | 
    
         
            +
             
     | 
| 
      
 2042 
     | 
    
         
            +
                  morph.setContent(value);
         
     | 
| 
      
 2043 
     | 
    
         
            +
                }
         
     | 
| 
      
 2044 
     | 
    
         
            +
             
     | 
| 
      
 2045 
     | 
    
         
            +
                __exports__.inline = inline;function content(env, morph, context, path) {
         
     | 
| 
      
 2046 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, path);
         
     | 
| 
      
 2047 
     | 
    
         
            +
             
     | 
| 
      
 2048 
     | 
    
         
            +
                  var value;
         
     | 
| 
      
 2049 
     | 
    
         
            +
                  if (helper) {
         
     | 
| 
      
 2050 
     | 
    
         
            +
                    value = helper.call(context, [], {}, { morph: morph }, env);
         
     | 
| 
      
 2051 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 2052 
     | 
    
         
            +
                    value = get(env, context, path);
         
     | 
| 
      
 2053 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2054 
     | 
    
         
            +
             
     | 
| 
      
 2055 
     | 
    
         
            +
                  morph.setContent(value);
         
     | 
| 
      
 2056 
     | 
    
         
            +
                }
         
     | 
| 
      
 2057 
     | 
    
         
            +
             
     | 
| 
      
 2058 
     | 
    
         
            +
                __exports__.content = content;function element(env, domElement, context, path, params, hash) {
         
     | 
| 
      
 2059 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, path);
         
     | 
| 
      
 2060 
     | 
    
         
            +
                  if (helper) {
         
     | 
| 
      
 2061 
     | 
    
         
            +
                    helper.call(context, params, hash, { element: domElement }, env);
         
     | 
| 
      
 2062 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2063 
     | 
    
         
            +
                }
         
     | 
| 
      
 2064 
     | 
    
         
            +
             
     | 
| 
      
 2065 
     | 
    
         
            +
                __exports__.element = element;function attribute(env, attrMorph, domElement, name, value) {
         
     | 
| 
      
 2066 
     | 
    
         
            +
                  attrMorph.setContent(value);
         
     | 
| 
      
 2067 
     | 
    
         
            +
                }
         
     | 
| 
      
 2068 
     | 
    
         
            +
             
     | 
| 
      
 2069 
     | 
    
         
            +
                __exports__.attribute = attribute;function subexpr(env, context, helperName, params, hash) {
         
     | 
| 
      
 2070 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, helperName);
         
     | 
| 
      
 2071 
     | 
    
         
            +
                  if (helper) {
         
     | 
| 
      
 2072 
     | 
    
         
            +
                    return helper.call(context, params, hash, {}, env);
         
     | 
| 
      
 2073 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 2074 
     | 
    
         
            +
                    return get(env, context, helperName);
         
     | 
| 
      
 2075 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2076 
     | 
    
         
            +
                }
         
     | 
| 
      
 2077 
     | 
    
         
            +
             
     | 
| 
      
 2078 
     | 
    
         
            +
                __exports__.subexpr = subexpr;function get(env, context, path) {
         
     | 
| 
      
 2079 
     | 
    
         
            +
                  if (path === '') {
         
     | 
| 
      
 2080 
     | 
    
         
            +
                    return context;
         
     | 
| 
      
 2081 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2082 
     | 
    
         
            +
             
     | 
| 
      
 2083 
     | 
    
         
            +
                  var keys = path.split('.');
         
     | 
| 
      
 2084 
     | 
    
         
            +
                  var value = context;
         
     | 
| 
      
 2085 
     | 
    
         
            +
                  for (var i = 0; i < keys.length; i++) {
         
     | 
| 
      
 2086 
     | 
    
         
            +
                    if (value) {
         
     | 
| 
      
 2087 
     | 
    
         
            +
                      value = value[keys[i]];
         
     | 
| 
      
 2088 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 2089 
     | 
    
         
            +
                      break;
         
     | 
| 
      
 2090 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2091 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2092 
     | 
    
         
            +
                  return value;
         
     | 
| 
      
 2093 
     | 
    
         
            +
                }
         
     | 
| 
      
 2094 
     | 
    
         
            +
             
     | 
| 
      
 2095 
     | 
    
         
            +
                __exports__.get = get;function set(env, context, name, value) {
         
     | 
| 
      
 2096 
     | 
    
         
            +
                  context[name] = value;
         
     | 
| 
      
 2097 
     | 
    
         
            +
                }
         
     | 
| 
      
 2098 
     | 
    
         
            +
             
     | 
| 
      
 2099 
     | 
    
         
            +
                __exports__.set = set;function component(env, morph, context, tagName, attrs, template) {
         
     | 
| 
      
 2100 
     | 
    
         
            +
                  var helper = lookupHelper(env, context, tagName);
         
     | 
| 
      
 2101 
     | 
    
         
            +
             
     | 
| 
      
 2102 
     | 
    
         
            +
                  var value;
         
     | 
| 
      
 2103 
     | 
    
         
            +
                  if (helper) {
         
     | 
| 
      
 2104 
     | 
    
         
            +
                    var options = {
         
     | 
| 
      
 2105 
     | 
    
         
            +
                      morph: morph,
         
     | 
| 
      
 2106 
     | 
    
         
            +
                      template: template
         
     | 
| 
      
 2107 
     | 
    
         
            +
                    };
         
     | 
| 
      
 2108 
     | 
    
         
            +
             
     | 
| 
      
 2109 
     | 
    
         
            +
                    value = helper.call(context, [], attrs, options, env);
         
     | 
| 
      
 2110 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 2111 
     | 
    
         
            +
                    value = componentFallback(env, morph, context, tagName, attrs, template);
         
     | 
| 
      
 2112 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2113 
     | 
    
         
            +
             
     | 
| 
      
 2114 
     | 
    
         
            +
                  morph.setContent(value);
         
     | 
| 
      
 2115 
     | 
    
         
            +
                }
         
     | 
| 
      
 2116 
     | 
    
         
            +
             
     | 
| 
      
 2117 
     | 
    
         
            +
                __exports__.component = component;function concat(env, params) {
         
     | 
| 
      
 2118 
     | 
    
         
            +
                  var value = "";
         
     | 
| 
      
 2119 
     | 
    
         
            +
                  for (var i = 0, l = params.length; i < l; i++) {
         
     | 
| 
      
 2120 
     | 
    
         
            +
                    value += params[i];
         
     | 
| 
      
 2121 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2122 
     | 
    
         
            +
                  return value;
         
     | 
| 
      
 2123 
     | 
    
         
            +
                }
         
     | 
| 
      
 2124 
     | 
    
         
            +
             
     | 
| 
      
 2125 
     | 
    
         
            +
                __exports__.concat = concat;function componentFallback(env, morph, context, tagName, attrs, template) {
         
     | 
| 
      
 2126 
     | 
    
         
            +
                  var element = env.dom.createElement(tagName);
         
     | 
| 
      
 2127 
     | 
    
         
            +
                  for (var name in attrs) {
         
     | 
| 
      
 2128 
     | 
    
         
            +
                    element.setAttribute(name, attrs[name]);
         
     | 
| 
      
 2129 
     | 
    
         
            +
                  }
         
     | 
| 
      
 2130 
     | 
    
         
            +
                  element.appendChild(template.render(context, env, morph.contextualElement));
         
     | 
| 
      
 2131 
     | 
    
         
            +
                  return element;
         
     | 
| 
      
 2132 
     | 
    
         
            +
                }
         
     | 
| 
      
 2133 
     | 
    
         
            +
             
     | 
| 
      
 2134 
     | 
    
         
            +
                function lookupHelper(env, context, helperName) {
         
     | 
| 
      
 2135 
     | 
    
         
            +
                  return env.helpers[helperName];
         
     | 
| 
      
 2136 
     | 
    
         
            +
                }
         
     | 
| 
      
 2137 
     | 
    
         
            +
             
     | 
| 
      
 2138 
     | 
    
         
            +
                __exports__["default"] = {
         
     | 
| 
      
 2139 
     | 
    
         
            +
                  content: content,
         
     | 
| 
      
 2140 
     | 
    
         
            +
                  block: block,
         
     | 
| 
      
 2141 
     | 
    
         
            +
                  inline: inline,
         
     | 
| 
      
 2142 
     | 
    
         
            +
                  component: component,
         
     | 
| 
      
 2143 
     | 
    
         
            +
                  element: element,
         
     | 
| 
      
 2144 
     | 
    
         
            +
                  attribute: attribute,
         
     | 
| 
      
 2145 
     | 
    
         
            +
                  subexpr: subexpr,
         
     | 
| 
      
 2146 
     | 
    
         
            +
                  concat: concat,
         
     | 
| 
      
 2147 
     | 
    
         
            +
                  get: get,
         
     | 
| 
      
 2148 
     | 
    
         
            +
                  set: set
         
     | 
| 
      
 2149 
     | 
    
         
            +
                };
         
     | 
| 
      
 2150 
     | 
    
         
            +
              });
         
     | 
| 
       1931 
2151 
     | 
    
         
             
            enifed("htmlbars-syntax",
         
     | 
| 
       1932 
2152 
     | 
    
         
             
              ["./htmlbars-syntax/walker","./htmlbars-syntax/builders","./htmlbars-syntax/parser","exports"],
         
     | 
| 
       1933 
2153 
     | 
    
         
             
              function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
         
     | 
| 
         @@ -3356,7 +3576,6 @@ enifed("htmlbars-syntax/node-handlers", 
     | 
|
| 
       3356 
3576 
     | 
    
         
             
                var buildHash = __dependency1__.buildHash;
         
     | 
| 
       3357 
3577 
     | 
    
         
             
                var forEach = __dependency2__.forEach;
         
     | 
| 
       3358 
3578 
     | 
    
         
             
                var appendChild = __dependency3__.appendChild;
         
     | 
| 
       3359 
     | 
    
         
            -
                var postprocessProgram = __dependency3__.postprocessProgram;
         
     | 
| 
       3360 
3579 
     | 
    
         | 
| 
       3361 
3580 
     | 
    
         
             
                var nodeHandlers = {
         
     | 
| 
       3362 
3581 
     | 
    
         | 
| 
         @@ -3375,8 +3594,6 @@ enifed("htmlbars-syntax/node-handlers", 
     | 
|
| 
       3375 
3594 
     | 
    
         | 
| 
       3376 
3595 
     | 
    
         
             
                    this.acceptToken(this.tokenizer.tokenizeEOF());
         
     | 
| 
       3377 
3596 
     | 
    
         | 
| 
       3378 
     | 
    
         
            -
                    postprocessProgram(node);
         
     | 
| 
       3379 
     | 
    
         
            -
             
     | 
| 
       3380 
3597 
     | 
    
         
             
                    // Ensure that that the element stack is balanced properly.
         
     | 
| 
       3381 
3598 
     | 
    
         
             
                    var poppedNode = this.elementStack.pop();
         
     | 
| 
       3382 
3599 
     | 
    
         
             
                    if (poppedNode !== node) {
         
     | 
| 
         @@ -3632,7 +3849,6 @@ enifed("htmlbars-syntax/token-handlers", 
     | 
|
| 
       3632 
3849 
     | 
    
         
             
                var buildText = __dependency2__.buildText;
         
     | 
| 
       3633 
3850 
     | 
    
         
             
                var appendChild = __dependency3__.appendChild;
         
     | 
| 
       3634 
3851 
     | 
    
         
             
                var parseComponentBlockParams = __dependency3__.parseComponentBlockParams;
         
     | 
| 
       3635 
     | 
    
         
            -
                var postprocessProgram = __dependency3__.postprocessProgram;
         
     | 
| 
       3636 
3852 
     | 
    
         | 
| 
       3637 
3853 
     | 
    
         
             
                // The HTML elements in this list are speced by
         
     | 
| 
       3638 
3854 
     | 
    
         
             
                // http://www.w3.org/TR/html-markup/syntax.html#syntax-elements,
         
     | 
| 
         @@ -3735,7 +3951,6 @@ enifed("htmlbars-syntax/token-handlers", 
     | 
|
| 
       3735 
3951 
     | 
    
         
             
                    } else {
         
     | 
| 
       3736 
3952 
     | 
    
         
             
                      var program = buildProgram(element.children);
         
     | 
| 
       3737 
3953 
     | 
    
         
             
                      parseComponentBlockParams(element, program);
         
     | 
| 
       3738 
     | 
    
         
            -
                      postprocessProgram(program);
         
     | 
| 
       3739 
3954 
     | 
    
         
             
                      var component = buildComponent(element.tag, element.attributes, program);
         
     | 
| 
       3740 
3955 
     | 
    
         
             
                      appendChild(parent, component);
         
     | 
| 
       3741 
3956 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -3872,11 +4087,10 @@ enifed("htmlbars-syntax/tokenizer", 
     | 
|
| 
       3872 
4087 
     | 
    
         
             
                __exports__.unwrapMustache = unwrapMustache;__exports__.Tokenizer = Tokenizer;
         
     | 
| 
       3873 
4088 
     | 
    
         
             
              });
         
     | 
| 
       3874 
4089 
     | 
    
         
             
            enifed("htmlbars-syntax/utils",
         
     | 
| 
       3875 
     | 
    
         
            -
              [" 
     | 
| 
       3876 
     | 
    
         
            -
              function(__dependency1__,  
     | 
| 
      
 4090 
     | 
    
         
            +
              ["../htmlbars-util/array-utils","exports"],
         
     | 
| 
      
 4091 
     | 
    
         
            +
              function(__dependency1__, __exports__) {
         
     | 
| 
       3877 
4092 
     | 
    
         
             
                "use strict";
         
     | 
| 
       3878 
     | 
    
         
            -
                var  
     | 
| 
       3879 
     | 
    
         
            -
                var indexOfArray = __dependency2__.indexOfArray;
         
     | 
| 
      
 4093 
     | 
    
         
            +
                var indexOfArray = __dependency1__.indexOfArray;
         
     | 
| 
       3880 
4094 
     | 
    
         
             
                // Regex to validate the identifier for block parameters. 
         
     | 
| 
       3881 
4095 
     | 
    
         
             
                // Based on the ID validation regex in Handlebars.
         
     | 
| 
       3882 
4096 
     | 
    
         | 
| 
         @@ -3923,26 +4137,7 @@ enifed("htmlbars-syntax/utils", 
     | 
|
| 
       3923 
4137 
     | 
    
         
             
                  }
         
     | 
| 
       3924 
4138 
     | 
    
         
             
                }
         
     | 
| 
       3925 
4139 
     | 
    
         | 
| 
       3926 
     | 
    
         
            -
                __exports__.parseComponentBlockParams = parseComponentBlockParams 
     | 
| 
       3927 
     | 
    
         
            -
                // The empty text nodes *between* nodes are handled elsewhere.
         
     | 
| 
       3928 
     | 
    
         
            -
             
     | 
| 
       3929 
     | 
    
         
            -
                function postprocessProgram(program) {
         
     | 
| 
       3930 
     | 
    
         
            -
                  var body = program.body;
         
     | 
| 
       3931 
     | 
    
         
            -
             
     | 
| 
       3932 
     | 
    
         
            -
                  if (body.length === 0) {
         
     | 
| 
       3933 
     | 
    
         
            -
                    return;
         
     | 
| 
       3934 
     | 
    
         
            -
                  }
         
     | 
| 
       3935 
     | 
    
         
            -
             
     | 
| 
       3936 
     | 
    
         
            -
                  if (usesMorph(body[0])) {
         
     | 
| 
       3937 
     | 
    
         
            -
                    body.unshift(buildText(''));
         
     | 
| 
       3938 
     | 
    
         
            -
                  }
         
     | 
| 
       3939 
     | 
    
         
            -
             
     | 
| 
       3940 
     | 
    
         
            -
                  if (usesMorph(body[body.length-1])) {
         
     | 
| 
       3941 
     | 
    
         
            -
                    body.push(buildText(''));
         
     | 
| 
       3942 
     | 
    
         
            -
                  }
         
     | 
| 
       3943 
     | 
    
         
            -
                }
         
     | 
| 
       3944 
     | 
    
         
            -
             
     | 
| 
       3945 
     | 
    
         
            -
                __exports__.postprocessProgram = postprocessProgram;function childrenFor(node) {
         
     | 
| 
      
 4140 
     | 
    
         
            +
                __exports__.parseComponentBlockParams = parseComponentBlockParams;function childrenFor(node) {
         
     | 
| 
       3946 
4141 
     | 
    
         
             
                  if (node.type === 'Program') {
         
     | 
| 
       3947 
4142 
     | 
    
         
             
                    return node.body;
         
     | 
| 
       3948 
4143 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -3951,23 +4146,8 @@ enifed("htmlbars-syntax/utils", 
     | 
|
| 
       3951 
4146 
     | 
    
         
             
                  }
         
     | 
| 
       3952 
4147 
     | 
    
         
             
                }
         
     | 
| 
       3953 
4148 
     | 
    
         | 
| 
       3954 
     | 
    
         
            -
                __exports__.childrenFor = childrenFor;function  
     | 
| 
       3955 
     | 
    
         
            -
                   
     | 
| 
       3956 
     | 
    
         
            -
                         node.type === 'BlockStatement' ||
         
     | 
| 
       3957 
     | 
    
         
            -
                         node.type === 'ComponentNode';
         
     | 
| 
       3958 
     | 
    
         
            -
                }
         
     | 
| 
       3959 
     | 
    
         
            -
             
     | 
| 
       3960 
     | 
    
         
            -
                __exports__.usesMorph = usesMorph;function appendChild(parent, node) {
         
     | 
| 
       3961 
     | 
    
         
            -
                  var children = childrenFor(parent);
         
     | 
| 
       3962 
     | 
    
         
            -
             
     | 
| 
       3963 
     | 
    
         
            -
                  var len = children.length, last;
         
     | 
| 
       3964 
     | 
    
         
            -
                  if (len > 0) {
         
     | 
| 
       3965 
     | 
    
         
            -
                    last = children[len-1];
         
     | 
| 
       3966 
     | 
    
         
            -
                    if (usesMorph(last) && usesMorph(node)) {
         
     | 
| 
       3967 
     | 
    
         
            -
                      children.push(buildText(''));
         
     | 
| 
       3968 
     | 
    
         
            -
                    }
         
     | 
| 
       3969 
     | 
    
         
            -
                  }
         
     | 
| 
       3970 
     | 
    
         
            -
                  children.push(node);
         
     | 
| 
      
 4149 
     | 
    
         
            +
                __exports__.childrenFor = childrenFor;function appendChild(parent, node) {
         
     | 
| 
      
 4150 
     | 
    
         
            +
                  childrenFor(parent).push(node);
         
     | 
| 
       3971 
4151 
     | 
    
         
             
                }
         
     | 
| 
       3972 
4152 
     | 
    
         | 
| 
       3973 
4153 
     | 
    
         
             
                __exports__.appendChild = appendChild;function isHelper(sexpr) {
         
     |