ember-source 2.7.0.beta.1 → 2.7.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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +16 -111
- data/dist/ember-template-compiler.js +226 -251
- data/dist/ember-testing.js +48 -7
- data/dist/ember.debug.js +690 -439
- data/dist/ember.js +690 -439
- data/dist/ember.min.js +14 -14
- data/dist/ember.prod.js +669 -334
- 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: 90c21da72b97a73931be4e54c767065212ecdc48
         | 
| 4 | 
            +
              data.tar.gz: 2728cf5afffd1abb96ab09c42cd32fb9d379078d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: afbaf14740b760d8db29367a709a72aad50f980e0ae5ea82a60d6c00a524d6cd9ab84ce53d6ad3c5b334b241f9e2c2d52bd9ca09e8a39982e29ddc915a4029ec
         | 
| 7 | 
            +
              data.tar.gz: f4ee38ad6f0248a594b5b5a59f8a052e0b011ba5d98034ee1ee4e77986c17cb87e367eb45894acae4b54e1eb08ac25643af0d8f4fec15c07ef003364b609b0f8
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            2.7.0-beta. | 
| 1 | 
            +
            2.7.0-beta.2
         | 
    
        data/dist/ember-runtime.js
    CHANGED
    
    | @@ -6,7 +6,7 @@ | |
| 6 6 | 
             
             *            Portions Copyright 2008-2011 Apple Inc. All rights reserved.
         | 
| 7 7 | 
             
             * @license   Licensed under MIT license
         | 
| 8 8 | 
             
             *            See https://raw.github.com/emberjs/ember.js/master/LICENSE
         | 
| 9 | 
            -
             * @version   2.7.0-beta. | 
| 9 | 
            +
             * @version   2.7.0-beta.2
         | 
| 10 10 | 
             
             */
         | 
| 11 11 |  | 
| 12 12 | 
             
            var enifed, requireModule, require, Ember;
         | 
| @@ -2485,7 +2485,7 @@ enifed("ember/features", ["exports"], function (exports) { | |
| 2485 2485 | 
             
            enifed("ember/version", ["exports"], function (exports) {
         | 
| 2486 2486 | 
             
              "use strict";
         | 
| 2487 2487 |  | 
| 2488 | 
            -
              exports.default = "2.7.0-beta. | 
| 2488 | 
            +
              exports.default = "2.7.0-beta.2";
         | 
| 2489 2489 | 
             
            });
         | 
| 2490 2490 | 
             
            enifed('ember-console/index', ['exports', 'ember-environment'], function (exports, _emberEnvironment) {
         | 
| 2491 2491 | 
             
              'use strict';
         | 
| @@ -2615,10 +2615,12 @@ enifed('ember-console/index', ['exports', 'ember-environment'], function (export | |
| 2615 2615 | 
             
                   ```javascript
         | 
| 2616 2616 | 
             
                  Ember.Logger.assert(true); // undefined
         | 
| 2617 2617 | 
             
                  Ember.Logger.assert(true === false); // Throws an Assertion failed error.
         | 
| 2618 | 
            +
                  Ember.Logger.assert(true === false, 'Something invalid'); // Throws an Assertion failed error with message.
         | 
| 2618 2619 | 
             
                  ```
         | 
| 2619 2620 | 
             
                  @method assert
         | 
| 2620 2621 | 
             
                 @for Ember.Logger
         | 
| 2621 2622 | 
             
                 @param {Boolean} bool Value to test
         | 
| 2623 | 
            +
                 @param {String} message Assertion message on failed
         | 
| 2622 2624 | 
             
                 @public
         | 
| 2623 2625 | 
             
                */
         | 
| 2624 2626 | 
             
                assert: consoleMethod('assert') || assertPolyfill
         | 
| @@ -4975,7 +4977,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils | |
| 4975 4977 | 
             
                    }
         | 
| 4976 4978 | 
             
                  } else {
         | 
| 4977 4979 | 
             
                    if (params) {
         | 
| 4978 | 
            -
                       | 
| 4980 | 
            +
                      method.apply(target, params);
         | 
| 4979 4981 | 
             
                    } else {
         | 
| 4980 4982 | 
             
                      method.call(target);
         | 
| 4981 4983 | 
             
                    }
         | 
| @@ -6345,13 +6347,13 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob | |
| 6345 6347 | 
             
                @constructor
         | 
| 6346 6348 | 
             
              */
         | 
| 6347 6349 | 
             
              function Map() {
         | 
| 6348 | 
            -
                if (this instanceof  | 
| 6350 | 
            +
                if (this instanceof Map) {
         | 
| 6349 6351 | 
             
                  this._keys = OrderedSet.create();
         | 
| 6350 6352 | 
             
                  this._keys._silenceRemoveDeprecation = true;
         | 
| 6351 6353 | 
             
                  this._values = new _emberMetalEmpty_object.default();
         | 
| 6352 6354 | 
             
                  this.size = 0;
         | 
| 6353 6355 | 
             
                } else {
         | 
| 6354 | 
            -
                  missingNew(' | 
| 6356 | 
            +
                  missingNew('Map');
         | 
| 6355 6357 | 
             
                }
         | 
| 6356 6358 | 
             
              }
         | 
| 6357 6359 |  | 
| @@ -9165,11 +9167,10 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal | |
| 9165 9167 | 
             
            enifed("ember-metal/replace", ["exports"], function (exports) {
         | 
| 9166 9168 | 
             
              "use strict";
         | 
| 9167 9169 |  | 
| 9168 | 
            -
              exports._replace = _replace;
         | 
| 9169 9170 | 
             
              exports.default = replace;
         | 
| 9170 9171 | 
             
              var splice = Array.prototype.splice;
         | 
| 9171 9172 |  | 
| 9172 | 
            -
              function  | 
| 9173 | 
            +
              function replace(array, idx, amt, objects) {
         | 
| 9173 9174 | 
             
                var args = [].concat(objects);
         | 
| 9174 9175 | 
             
                var ret = [];
         | 
| 9175 9176 | 
             
                // https://code.google.com/p/chromium/issues/detail?id=56588
         | 
| @@ -9194,42 +9195,6 @@ enifed("ember-metal/replace", ["exports"], function (exports) { | |
| 9194 9195 | 
             
                }
         | 
| 9195 9196 | 
             
                return ret;
         | 
| 9196 9197 | 
             
              }
         | 
| 9197 | 
            -
             | 
| 9198 | 
            -
              /**
         | 
| 9199 | 
            -
                Replaces objects in an array with the passed objects.
         | 
| 9200 | 
            -
              
         | 
| 9201 | 
            -
                ```javascript
         | 
| 9202 | 
            -
                  var array = [1,2,3];
         | 
| 9203 | 
            -
                  Ember.EnumerableUtils.replace(array, 1, 2, [4, 5]); // [1, 4, 5]
         | 
| 9204 | 
            -
              
         | 
| 9205 | 
            -
                  var array = [1,2,3];
         | 
| 9206 | 
            -
                  Ember.EnumerableUtils.replace(array, 1, 1, [4, 5]); // [1, 4, 5, 3]
         | 
| 9207 | 
            -
              
         | 
| 9208 | 
            -
                  var array = [1,2,3];
         | 
| 9209 | 
            -
                  Ember.EnumerableUtils.replace(array, 10, 1, [4, 5]); // [1, 2, 3, 4, 5]
         | 
| 9210 | 
            -
                ```
         | 
| 9211 | 
            -
              
         | 
| 9212 | 
            -
                @method replace
         | 
| 9213 | 
            -
                @deprecated
         | 
| 9214 | 
            -
                @param {Array} array The array the objects should be inserted into.
         | 
| 9215 | 
            -
                @param {Number} idx Starting index in the array to replace. If *idx* >=
         | 
| 9216 | 
            -
                length, then append to the end of the array.
         | 
| 9217 | 
            -
                @param {Number} amt Number of elements that should be removed from the array,
         | 
| 9218 | 
            -
                starting at *idx*
         | 
| 9219 | 
            -
                @param {Array} objects An array of zero or more objects that should be
         | 
| 9220 | 
            -
                inserted into the array at *idx*
         | 
| 9221 | 
            -
              
         | 
| 9222 | 
            -
                @return {Array} The modified array.
         | 
| 9223 | 
            -
                @public
         | 
| 9224 | 
            -
              */
         | 
| 9225 | 
            -
             | 
| 9226 | 
            -
              function replace(array, idx, amt, objects) {
         | 
| 9227 | 
            -
                if (array.replace) {
         | 
| 9228 | 
            -
                  return array.replace(idx, amt, objects);
         | 
| 9229 | 
            -
                } else {
         | 
| 9230 | 
            -
                  return _replace(array, idx, amt, objects);
         | 
| 9231 | 
            -
                }
         | 
| 9232 | 
            -
              }
         | 
| 9233 9198 | 
             
            });
         | 
| 9234 9199 | 
             
            enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/utils', 'ember-metal/property_events', 'backburner'], function (exports, _emberMetalDebug, _emberMetalTesting, _emberMetalError_handler, _emberMetalUtils, _emberMetalProperty_events, _backburner) {
         | 
| 9235 9200 | 
             
              'use strict';
         | 
| @@ -10078,7 +10043,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10078 10043 | 
             
              exports.tryInvoke = tryInvoke;
         | 
| 10079 10044 | 
             
              exports.makeArray = makeArray;
         | 
| 10080 10045 | 
             
              exports.inspect = inspect;
         | 
| 10081 | 
            -
              exports.apply = apply;
         | 
| 10082 10046 | 
             
              exports.applyStr = applyStr;
         | 
| 10083 10047 | 
             
              exports.lookupDescriptor = lookupDescriptor;
         | 
| 10084 10048 | 
             
              exports.toString = toString;
         | 
| @@ -10320,15 +10284,16 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10320 10284 | 
             
              }
         | 
| 10321 10285 |  | 
| 10322 10286 | 
             
              var HAS_SUPER_PATTERN = /\.(_super|call\(this|apply\(this)/;
         | 
| 10287 | 
            +
              var fnToString = Function.prototype.toString;
         | 
| 10323 10288 |  | 
| 10324 10289 | 
             
              var checkHasSuper = (function () {
         | 
| 10325 | 
            -
                var sourceAvailable = (function () {
         | 
| 10290 | 
            +
                var sourceAvailable = fnToString.call(function () {
         | 
| 10326 10291 | 
             
                  return this;
         | 
| 10327 | 
            -
                }). | 
| 10292 | 
            +
                }).indexOf('return this') > -1;
         | 
| 10328 10293 |  | 
| 10329 10294 | 
             
                if (sourceAvailable) {
         | 
| 10330 10295 | 
             
                  return function checkHasSuper(func) {
         | 
| 10331 | 
            -
                    return HAS_SUPER_PATTERN.test( | 
| 10296 | 
            +
                    return HAS_SUPER_PATTERN.test(fnToString.call(func));
         | 
| 10332 10297 | 
             
                  };
         | 
| 10333 10298 | 
             
                }
         | 
| 10334 10299 |  | 
| @@ -10375,31 +10340,8 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10375 10340 | 
             
              function _wrap(func, superFunc) {
         | 
| 10376 10341 | 
             
                function superWrapper() {
         | 
| 10377 10342 | 
             
                  var orig = this._super;
         | 
| 10378 | 
            -
                  var ret = undefined;
         | 
| 10379 10343 | 
             
                  this._super = superFunc;
         | 
| 10380 | 
            -
                   | 
| 10381 | 
            -
                    case 0:
         | 
| 10382 | 
            -
                      ret = func.call(this);break;
         | 
| 10383 | 
            -
                    case 1:
         | 
| 10384 | 
            -
                      ret = func.call(this, arguments[0]);break;
         | 
| 10385 | 
            -
                    case 2:
         | 
| 10386 | 
            -
                      ret = func.call(this, arguments[0], arguments[1]);break;
         | 
| 10387 | 
            -
                    case 3:
         | 
| 10388 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2]);break;
         | 
| 10389 | 
            -
                    case 4:
         | 
| 10390 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3]);break;
         | 
| 10391 | 
            -
                    case 5:
         | 
| 10392 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);break;
         | 
| 10393 | 
            -
                    default:
         | 
| 10394 | 
            -
                      // v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
         | 
| 10395 | 
            -
                      // we may want to keep this around till this ages out on mobile
         | 
| 10396 | 
            -
                      var args = new Array(arguments.length);
         | 
| 10397 | 
            -
                      for (var x = 0; x < arguments.length; x++) {
         | 
| 10398 | 
            -
                        args[x] = arguments[x];
         | 
| 10399 | 
            -
                      }
         | 
| 10400 | 
            -
                      ret = func.apply(this, args);
         | 
| 10401 | 
            -
                      break;
         | 
| 10402 | 
            -
                  }
         | 
| 10344 | 
            +
                  var ret = func.apply(this, arguments);
         | 
| 10403 10345 | 
             
                  this._super = orig;
         | 
| 10404 10346 | 
             
                  return ret;
         | 
| 10405 10347 | 
             
                }
         | 
| @@ -10556,36 +10498,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10556 10498 | 
             
                return '{' + ret.join(', ') + '}';
         | 
| 10557 10499 | 
             
              }
         | 
| 10558 10500 |  | 
| 10559 | 
            -
              // The following functions are intentionally minified to keep the functions
         | 
| 10560 | 
            -
              // below Chrome's function body size inlining limit of 600 chars.
         | 
| 10561 | 
            -
              /**
         | 
| 10562 | 
            -
                @param {Object} t target
         | 
| 10563 | 
            -
                @param {Function} m method
         | 
| 10564 | 
            -
                @param {Array} a args
         | 
| 10565 | 
            -
                @private
         | 
| 10566 | 
            -
              */
         | 
| 10567 | 
            -
             | 
| 10568 | 
            -
              function apply(t, m, a) {
         | 
| 10569 | 
            -
                var l = a && a.length;
         | 
| 10570 | 
            -
                if (!a || !l) {
         | 
| 10571 | 
            -
                  return m.call(t);
         | 
| 10572 | 
            -
                }
         | 
| 10573 | 
            -
                switch (l) {
         | 
| 10574 | 
            -
                  case 1:
         | 
| 10575 | 
            -
                    return m.call(t, a[0]);
         | 
| 10576 | 
            -
                  case 2:
         | 
| 10577 | 
            -
                    return m.call(t, a[0], a[1]);
         | 
| 10578 | 
            -
                  case 3:
         | 
| 10579 | 
            -
                    return m.call(t, a[0], a[1], a[2]);
         | 
| 10580 | 
            -
                  case 4:
         | 
| 10581 | 
            -
                    return m.call(t, a[0], a[1], a[2], a[3]);
         | 
| 10582 | 
            -
                  case 5:
         | 
| 10583 | 
            -
                    return m.call(t, a[0], a[1], a[2], a[3], a[4]);
         | 
| 10584 | 
            -
                  default:
         | 
| 10585 | 
            -
                    return m.apply(t, a);
         | 
| 10586 | 
            -
                }
         | 
| 10587 | 
            -
              }
         | 
| 10588 | 
            -
             | 
| 10589 10501 | 
             
              /**
         | 
| 10590 10502 | 
             
                @param {Object} t target
         | 
| 10591 10503 | 
             
                @param {String} m method
         | 
| @@ -11044,7 +10956,7 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim | |
| 11044 10956 | 
             
              // ,'________________                          \`-._`-','
         | 
| 11045 10957 | 
             
              //  `._              ```````````------...___   '-.._'-:
         | 
| 11046 10958 | 
             
              //     ```--.._      ,.                     ````--...__\-.
         | 
| 11047 | 
            -
              //             `.--. `-` " | 
| 10959 | 
            +
              //             `.--. `-` "INFINITY IS LESS     ____    |  |`
         | 
| 11048 10960 | 
             
              //               `. `.   THAN BEYOND"        ,'`````.  ;  ;`
         | 
| 11049 10961 | 
             
              //                 `._`.        __________   `.      \'__/`
         | 
| 11050 10962 | 
             
              //                    `-:._____/______/___/____`.     \  `
         | 
| @@ -12791,13 +12703,6 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/debug', 'ember-runtime/sys | |
| 12791 12703 | 
             
                return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
         | 
| 12792 12704 | 
             
              }
         | 
| 12793 12705 | 
             
            });
         | 
| 12794 | 
            -
            enifed("ember-runtime/core", ["exports"], function (exports) {
         | 
| 12795 | 
            -
              "use strict";
         | 
| 12796 | 
            -
            });
         | 
| 12797 | 
            -
            /**
         | 
| 12798 | 
            -
            @module ember
         | 
| 12799 | 
            -
            @submodule ember-runtime
         | 
| 12800 | 
            -
            */
         | 
| 12801 12706 | 
             
            enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/mixin'], function (exports, _emberEnvironment, _emberMetalDebug, _emberMetalComputed, _emberMetalMixin) {
         | 
| 12802 12707 | 
             
              /**
         | 
| 12803 12708 | 
             
              @module ember
         | 
| @@ -12851,7 +12756,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met | |
| 12851 12756 | 
             
                  will not immediately trigger an update of the computed property, but
         | 
| 12852 12757 | 
             
                  will instead clear the cache so that it is updated when the next `get`
         | 
| 12853 12758 | 
             
                  is called on the property.
         | 
| 12854 | 
            -
                   See [Ember.ComputedProperty](/api/classes/Ember.ComputedProperty.html), [Ember.computed](/api | 
| 12759 | 
            +
                   See [Ember.ComputedProperty](/api/classes/Ember.ComputedProperty.html), [Ember.computed](/api/classes/Ember.computed.html).
         | 
| 12855 12760 | 
             
                   @method property
         | 
| 12856 12761 | 
             
                  @for Function
         | 
| 12857 12762 | 
             
                  @public
         | 
| @@ -19115,7 +19020,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb | |
| 19115 19020 | 
             
                  if (len === 0) {
         | 
| 19116 19021 | 
             
                    this.splice(idx, amt);
         | 
| 19117 19022 | 
             
                  } else {
         | 
| 19118 | 
            -
                    _emberMetalReplace. | 
| 19023 | 
            +
                    _emberMetalReplace.default(this, idx, amt, objects);
         | 
| 19119 19024 | 
             
                  }
         | 
| 19120 19025 |  | 
| 19121 19026 | 
             
                  this.arrayContentDidChange(idx, amt, len);
         | 
| @@ -6,7 +6,7 @@ | |
| 6 6 | 
             
             *            Portions Copyright 2008-2011 Apple Inc. All rights reserved.
         | 
| 7 7 | 
             
             * @license   Licensed under MIT license
         | 
| 8 8 | 
             
             *            See https://raw.github.com/emberjs/ember.js/master/LICENSE
         | 
| 9 | 
            -
             * @version   2.7.0-beta. | 
| 9 | 
            +
             * @version   2.7.0-beta.2
         | 
| 10 10 | 
             
             */
         | 
| 11 11 |  | 
| 12 12 | 
             
            var enifed, requireModule, require, Ember;
         | 
| @@ -1161,7 +1161,7 @@ enifed("ember/features", ["exports"], function (exports) { | |
| 1161 1161 | 
             
            enifed("ember/version", ["exports"], function (exports) {
         | 
| 1162 1162 | 
             
              "use strict";
         | 
| 1163 1163 |  | 
| 1164 | 
            -
              exports.default = "2.7.0-beta. | 
| 1164 | 
            +
              exports.default = "2.7.0-beta.2";
         | 
| 1165 1165 | 
             
            });
         | 
| 1166 1166 | 
             
            enifed('ember-console/index', ['exports', 'ember-environment'], function (exports, _emberEnvironment) {
         | 
| 1167 1167 | 
             
              'use strict';
         | 
| @@ -1291,10 +1291,12 @@ enifed('ember-console/index', ['exports', 'ember-environment'], function (export | |
| 1291 1291 | 
             
                   ```javascript
         | 
| 1292 1292 | 
             
                  Ember.Logger.assert(true); // undefined
         | 
| 1293 1293 | 
             
                  Ember.Logger.assert(true === false); // Throws an Assertion failed error.
         | 
| 1294 | 
            +
                  Ember.Logger.assert(true === false, 'Something invalid'); // Throws an Assertion failed error with message.
         | 
| 1294 1295 | 
             
                  ```
         | 
| 1295 1296 | 
             
                  @method assert
         | 
| 1296 1297 | 
             
                 @for Ember.Logger
         | 
| 1297 1298 | 
             
                 @param {Boolean} bool Value to test
         | 
| 1299 | 
            +
                 @param {String} message Assertion message on failed
         | 
| 1298 1300 | 
             
                 @public
         | 
| 1299 1301 | 
             
                */
         | 
| 1300 1302 | 
             
                assert: consoleMethod('assert') || assertPolyfill
         | 
| @@ -1673,6 +1675,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment', | |
| 1673 1675 | 
             
                _emberMetalFeatures.FEATURES['features-stripped-test'] = true;
         | 
| 1674 1676 | 
             
                var featuresWereStripped = true;
         | 
| 1675 1677 |  | 
| 1678 | 
            +
                if (false) {
         | 
| 1679 | 
            +
                  exports.featuresWereStripped = featuresWereStripped = false;
         | 
| 1680 | 
            +
                }
         | 
| 1681 | 
            +
             | 
| 1676 1682 | 
             
                delete _emberMetalFeatures.FEATURES['features-stripped-test'];
         | 
| 1677 1683 | 
             
                _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
         | 
| 1678 1684 |  | 
| @@ -4651,7 +4657,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils | |
| 4651 4657 | 
             
                    }
         | 
| 4652 4658 | 
             
                  } else {
         | 
| 4653 4659 | 
             
                    if (params) {
         | 
| 4654 | 
            -
                       | 
| 4660 | 
            +
                      method.apply(target, params);
         | 
| 4655 4661 | 
             
                    } else {
         | 
| 4656 4662 | 
             
                      method.call(target);
         | 
| 4657 4663 | 
             
                    }
         | 
| @@ -5391,10 +5397,13 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me | |
| 5391 5397 | 
             
              }
         | 
| 5392 5398 |  | 
| 5393 5399 | 
             
              var flaggedInstrument;
         | 
| 5394 | 
            -
             | 
| 5395 | 
            -
             | 
| 5396 | 
            -
             | 
| 5397 | 
            -
             | 
| 5400 | 
            +
              if (false) {
         | 
| 5401 | 
            +
                exports.flaggedInstrument = flaggedInstrument = instrument;
         | 
| 5402 | 
            +
              } else {
         | 
| 5403 | 
            +
                exports.flaggedInstrument = flaggedInstrument = function (name, payload, callback) {
         | 
| 5404 | 
            +
                  return callback();
         | 
| 5405 | 
            +
                };
         | 
| 5406 | 
            +
              }
         | 
| 5398 5407 | 
             
              exports.flaggedInstrument = flaggedInstrument;
         | 
| 5399 5408 |  | 
| 5400 5409 | 
             
              function withFinalizer(callback, finalizer, payload, binding) {
         | 
| @@ -5763,6 +5772,12 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe | |
| 5763 5772 | 
             
                }
         | 
| 5764 5773 | 
             
              };
         | 
| 5765 5774 |  | 
| 5775 | 
            +
              if (false) {
         | 
| 5776 | 
            +
                Libraries.prototype.isRegistered = function (name) {
         | 
| 5777 | 
            +
                  return !!this._getLibraryByName(name);
         | 
| 5778 | 
            +
                };
         | 
| 5779 | 
            +
              }
         | 
| 5780 | 
            +
             | 
| 5766 5781 | 
             
              exports.default = new Libraries();
         | 
| 5767 5782 | 
             
            });
         | 
| 5768 5783 | 
             
            enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_object'], function (exports, _emberMetalUtils, _emberMetalEmpty_object) {
         | 
| @@ -6012,13 +6027,13 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob | |
| 6012 6027 | 
             
                @constructor
         | 
| 6013 6028 | 
             
              */
         | 
| 6014 6029 | 
             
              function Map() {
         | 
| 6015 | 
            -
                if (this instanceof  | 
| 6030 | 
            +
                if (this instanceof Map) {
         | 
| 6016 6031 | 
             
                  this._keys = OrderedSet.create();
         | 
| 6017 6032 | 
             
                  this._keys._silenceRemoveDeprecation = true;
         | 
| 6018 6033 | 
             
                  this._values = new _emberMetalEmpty_object.default();
         | 
| 6019 6034 | 
             
                  this.size = 0;
         | 
| 6020 6035 | 
             
                } else {
         | 
| 6021 | 
            -
                  missingNew(' | 
| 6036 | 
            +
                  missingNew('Map');
         | 
| 6022 6037 | 
             
                }
         | 
| 6023 6038 | 
             
              }
         | 
| 6024 6039 |  | 
| @@ -6616,35 +6631,37 @@ enifed('ember-metal/meta', ['exports', 'ember-metal/features', 'ember-metal/meta | |
| 6616 6631 | 
             
                descriptor: META_DESC
         | 
| 6617 6632 | 
             
              };
         | 
| 6618 6633 |  | 
| 6619 | 
            -
               | 
| 6620 | 
            -
                 | 
| 6634 | 
            +
              if (true) {
         | 
| 6635 | 
            +
                Meta.prototype.readInheritedValue = function (key, subkey) {
         | 
| 6636 | 
            +
                  var internalKey = '_' + key;
         | 
| 6621 6637 |  | 
| 6622 | 
            -
             | 
| 6638 | 
            +
                  var pointer = this;
         | 
| 6623 6639 |  | 
| 6624 | 
            -
             | 
| 6625 | 
            -
             | 
| 6626 | 
            -
             | 
| 6627 | 
            -
             | 
| 6628 | 
            -
             | 
| 6629 | 
            -
             | 
| 6640 | 
            +
                  while (pointer !== undefined) {
         | 
| 6641 | 
            +
                    var map = pointer[internalKey];
         | 
| 6642 | 
            +
                    if (map) {
         | 
| 6643 | 
            +
                      var value = map[subkey];
         | 
| 6644 | 
            +
                      if (value !== undefined || subkey in map) {
         | 
| 6645 | 
            +
                        return map[subkey];
         | 
| 6646 | 
            +
                      }
         | 
| 6630 6647 | 
             
                    }
         | 
| 6648 | 
            +
                    pointer = pointer.parent;
         | 
| 6631 6649 | 
             
                  }
         | 
| 6632 | 
            -
                  pointer = pointer.parent;
         | 
| 6633 | 
            -
                }
         | 
| 6634 6650 |  | 
| 6635 | 
            -
             | 
| 6636 | 
            -
             | 
| 6651 | 
            +
                  return UNDEFINED;
         | 
| 6652 | 
            +
                };
         | 
| 6637 6653 |  | 
| 6638 | 
            -
             | 
| 6639 | 
            -
             | 
| 6640 | 
            -
             | 
| 6654 | 
            +
                Meta.prototype.writeValue = function (obj, key, value) {
         | 
| 6655 | 
            +
                  var descriptor = _emberMetalUtils.lookupDescriptor(obj, key);
         | 
| 6656 | 
            +
                  var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter;
         | 
| 6641 6657 |  | 
| 6642 | 
            -
             | 
| 6643 | 
            -
             | 
| 6644 | 
            -
             | 
| 6645 | 
            -
             | 
| 6646 | 
            -
             | 
| 6647 | 
            -
             | 
| 6658 | 
            +
                  if (isMandatorySetter) {
         | 
| 6659 | 
            +
                    this.writeValues(key, value);
         | 
| 6660 | 
            +
                  } else {
         | 
| 6661 | 
            +
                    obj[key] = value;
         | 
| 6662 | 
            +
                  }
         | 
| 6663 | 
            +
                };
         | 
| 6664 | 
            +
              }
         | 
| 6648 6665 |  | 
| 6649 6666 | 
             
              // choose the one appropriate for given platform
         | 
| 6650 6667 | 
             
              var setMeta = function (obj, meta) {
         | 
| @@ -8200,18 +8217,20 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f | |
| 8200 8217 |  | 
| 8201 8218 | 
             
                if (desc instanceof Descriptor) {
         | 
| 8202 8219 | 
             
                  value = desc;
         | 
| 8203 | 
            -
             | 
| 8204 | 
            -
             | 
| 8205 | 
            -
             | 
| 8206 | 
            -
             | 
| 8207 | 
            -
             | 
| 8208 | 
            -
             | 
| 8209 | 
            -
             | 
| 8210 | 
            -
             | 
| 8220 | 
            +
                  if (true) {
         | 
| 8221 | 
            +
                    if (watching) {
         | 
| 8222 | 
            +
                      Object.defineProperty(obj, keyName, {
         | 
| 8223 | 
            +
                        configurable: true,
         | 
| 8224 | 
            +
                        enumerable: true,
         | 
| 8225 | 
            +
                        writable: true,
         | 
| 8226 | 
            +
                        value: value
         | 
| 8227 | 
            +
                      });
         | 
| 8228 | 
            +
                    } else {
         | 
| 8229 | 
            +
                      obj[keyName] = value;
         | 
| 8230 | 
            +
                    }
         | 
| 8211 8231 | 
             
                  } else {
         | 
| 8212 8232 | 
             
                    obj[keyName] = value;
         | 
| 8213 8233 | 
             
                  }
         | 
| 8214 | 
            -
             | 
| 8215 8234 | 
             
                  if (desc.setup) {
         | 
| 8216 8235 | 
             
                    desc.setup(obj, keyName);
         | 
| 8217 8236 | 
             
                  }
         | 
| @@ -8219,20 +8238,24 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f | |
| 8219 8238 | 
             
                  if (desc == null) {
         | 
| 8220 8239 | 
             
                    value = data;
         | 
| 8221 8240 |  | 
| 8222 | 
            -
                    if ( | 
| 8223 | 
            -
                       | 
| 8241 | 
            +
                    if (true) {
         | 
| 8242 | 
            +
                      if (watching) {
         | 
| 8243 | 
            +
                        meta.writeValues(keyName, data);
         | 
| 8224 8244 |  | 
| 8225 | 
            -
             | 
| 8226 | 
            -
             | 
| 8227 | 
            -
             | 
| 8228 | 
            -
             | 
| 8229 | 
            -
             | 
| 8230 | 
            -
             | 
| 8245 | 
            +
                        var defaultDescriptor = {
         | 
| 8246 | 
            +
                          configurable: true,
         | 
| 8247 | 
            +
                          enumerable: true,
         | 
| 8248 | 
            +
                          set: MANDATORY_SETTER_FUNCTION(keyName),
         | 
| 8249 | 
            +
                          get: DEFAULT_GETTER_FUNCTION(keyName)
         | 
| 8250 | 
            +
                        };
         | 
| 8231 8251 |  | 
| 8232 | 
            -
             | 
| 8233 | 
            -
             | 
| 8252 | 
            +
                        if (REDEFINE_SUPPORTED) {
         | 
| 8253 | 
            +
                          Object.defineProperty(obj, keyName, defaultDescriptor);
         | 
| 8254 | 
            +
                        } else {
         | 
| 8255 | 
            +
                          handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
         | 
| 8256 | 
            +
                        }
         | 
| 8234 8257 | 
             
                      } else {
         | 
| 8235 | 
            -
                         | 
| 8258 | 
            +
                        obj[keyName] = data;
         | 
| 8236 8259 | 
             
                      }
         | 
| 8237 8260 | 
             
                    } else {
         | 
| 8238 8261 | 
             
                      obj[keyName] = data;
         | 
| @@ -8740,7 +8763,11 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal | |
| 8740 8763 | 
             
                } else {
         | 
| 8741 8764 | 
             
                  _emberMetalProperty_events.propertyWillChange(obj, keyName);
         | 
| 8742 8765 |  | 
| 8743 | 
            -
                   | 
| 8766 | 
            +
                  if (true) {
         | 
| 8767 | 
            +
                    setWithMandatorySetter(meta, obj, keyName, value);
         | 
| 8768 | 
            +
                  } else {
         | 
| 8769 | 
            +
                    obj[keyName] = value;
         | 
| 8770 | 
            +
                  }
         | 
| 8744 8771 |  | 
| 8745 8772 | 
             
                  _emberMetalProperty_events.propertyDidChange(obj, keyName);
         | 
| 8746 8773 | 
             
                }
         | 
| @@ -8748,23 +8775,25 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal | |
| 8748 8775 | 
             
                return value;
         | 
| 8749 8776 | 
             
              }
         | 
| 8750 8777 |  | 
| 8751 | 
            -
               | 
| 8752 | 
            -
                 | 
| 8753 | 
            -
                   | 
| 8754 | 
            -
             | 
| 8755 | 
            -
             | 
| 8756 | 
            -
                   | 
| 8757 | 
            -
             | 
| 8758 | 
            -
             | 
| 8778 | 
            +
              if (true) {
         | 
| 8779 | 
            +
                var setWithMandatorySetter = function (meta, obj, keyName, value) {
         | 
| 8780 | 
            +
                  if (meta && meta.peekWatching(keyName) > 0) {
         | 
| 8781 | 
            +
                    makeEnumerable(obj, keyName);
         | 
| 8782 | 
            +
                    meta.writeValue(obj, keyName, value);
         | 
| 8783 | 
            +
                  } else {
         | 
| 8784 | 
            +
                    obj[keyName] = value;
         | 
| 8785 | 
            +
                  }
         | 
| 8786 | 
            +
                };
         | 
| 8759 8787 |  | 
| 8760 | 
            -
             | 
| 8761 | 
            -
             | 
| 8788 | 
            +
                var makeEnumerable = function (obj, key) {
         | 
| 8789 | 
            +
                  var desc = Object.getOwnPropertyDescriptor(obj, key);
         | 
| 8762 8790 |  | 
| 8763 | 
            -
             | 
| 8764 | 
            -
             | 
| 8765 | 
            -
             | 
| 8766 | 
            -
             | 
| 8767 | 
            -
             | 
| 8791 | 
            +
                  if (desc && desc.set && desc.set.isMandatorySetter) {
         | 
| 8792 | 
            +
                    desc.enumerable = true;
         | 
| 8793 | 
            +
                    Object.defineProperty(obj, key, desc);
         | 
| 8794 | 
            +
                  }
         | 
| 8795 | 
            +
                };
         | 
| 8796 | 
            +
              }
         | 
| 8768 8797 |  | 
| 8769 8798 | 
             
              function setPath(root, path, value, tolerant) {
         | 
| 8770 8799 | 
             
                var keyName;
         | 
| @@ -8818,11 +8847,10 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal | |
| 8818 8847 | 
             
            enifed("ember-metal/replace", ["exports"], function (exports) {
         | 
| 8819 8848 | 
             
              "use strict";
         | 
| 8820 8849 |  | 
| 8821 | 
            -
              exports._replace = _replace;
         | 
| 8822 8850 | 
             
              exports.default = replace;
         | 
| 8823 8851 | 
             
              var splice = Array.prototype.splice;
         | 
| 8824 8852 |  | 
| 8825 | 
            -
              function  | 
| 8853 | 
            +
              function replace(array, idx, amt, objects) {
         | 
| 8826 8854 | 
             
                var args = [].concat(objects);
         | 
| 8827 8855 | 
             
                var ret = [];
         | 
| 8828 8856 | 
             
                // https://code.google.com/p/chromium/issues/detail?id=56588
         | 
| @@ -8847,42 +8875,6 @@ enifed("ember-metal/replace", ["exports"], function (exports) { | |
| 8847 8875 | 
             
                }
         | 
| 8848 8876 | 
             
                return ret;
         | 
| 8849 8877 | 
             
              }
         | 
| 8850 | 
            -
             | 
| 8851 | 
            -
              /**
         | 
| 8852 | 
            -
                Replaces objects in an array with the passed objects.
         | 
| 8853 | 
            -
              
         | 
| 8854 | 
            -
                ```javascript
         | 
| 8855 | 
            -
                  var array = [1,2,3];
         | 
| 8856 | 
            -
                  Ember.EnumerableUtils.replace(array, 1, 2, [4, 5]); // [1, 4, 5]
         | 
| 8857 | 
            -
              
         | 
| 8858 | 
            -
                  var array = [1,2,3];
         | 
| 8859 | 
            -
                  Ember.EnumerableUtils.replace(array, 1, 1, [4, 5]); // [1, 4, 5, 3]
         | 
| 8860 | 
            -
              
         | 
| 8861 | 
            -
                  var array = [1,2,3];
         | 
| 8862 | 
            -
                  Ember.EnumerableUtils.replace(array, 10, 1, [4, 5]); // [1, 2, 3, 4, 5]
         | 
| 8863 | 
            -
                ```
         | 
| 8864 | 
            -
              
         | 
| 8865 | 
            -
                @method replace
         | 
| 8866 | 
            -
                @deprecated
         | 
| 8867 | 
            -
                @param {Array} array The array the objects should be inserted into.
         | 
| 8868 | 
            -
                @param {Number} idx Starting index in the array to replace. If *idx* >=
         | 
| 8869 | 
            -
                length, then append to the end of the array.
         | 
| 8870 | 
            -
                @param {Number} amt Number of elements that should be removed from the array,
         | 
| 8871 | 
            -
                starting at *idx*
         | 
| 8872 | 
            -
                @param {Array} objects An array of zero or more objects that should be
         | 
| 8873 | 
            -
                inserted into the array at *idx*
         | 
| 8874 | 
            -
              
         | 
| 8875 | 
            -
                @return {Array} The modified array.
         | 
| 8876 | 
            -
                @public
         | 
| 8877 | 
            -
              */
         | 
| 8878 | 
            -
             | 
| 8879 | 
            -
              function replace(array, idx, amt, objects) {
         | 
| 8880 | 
            -
                if (array.replace) {
         | 
| 8881 | 
            -
                  return array.replace(idx, amt, objects);
         | 
| 8882 | 
            -
                } else {
         | 
| 8883 | 
            -
                  return _replace(array, idx, amt, objects);
         | 
| 8884 | 
            -
                }
         | 
| 8885 | 
            -
              }
         | 
| 8886 8878 | 
             
            });
         | 
| 8887 8879 | 
             
            enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/utils', 'ember-metal/property_events', 'backburner'], function (exports, _emberMetalDebug, _emberMetalTesting, _emberMetalError_handler, _emberMetalUtils, _emberMetalProperty_events, _backburner) {
         | 
| 8888 8880 | 
             
              'use strict';
         | 
| @@ -9731,7 +9723,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 9731 9723 | 
             
              exports.tryInvoke = tryInvoke;
         | 
| 9732 9724 | 
             
              exports.makeArray = makeArray;
         | 
| 9733 9725 | 
             
              exports.inspect = inspect;
         | 
| 9734 | 
            -
              exports.apply = apply;
         | 
| 9735 9726 | 
             
              exports.applyStr = applyStr;
         | 
| 9736 9727 | 
             
              exports.lookupDescriptor = lookupDescriptor;
         | 
| 9737 9728 | 
             
              exports.toString = toString;
         | 
| @@ -9973,15 +9964,16 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 9973 9964 | 
             
              }
         | 
| 9974 9965 |  | 
| 9975 9966 | 
             
              var HAS_SUPER_PATTERN = /\.(_super|call\(this|apply\(this)/;
         | 
| 9967 | 
            +
              var fnToString = Function.prototype.toString;
         | 
| 9976 9968 |  | 
| 9977 9969 | 
             
              var checkHasSuper = (function () {
         | 
| 9978 | 
            -
                var sourceAvailable = (function () {
         | 
| 9970 | 
            +
                var sourceAvailable = fnToString.call(function () {
         | 
| 9979 9971 | 
             
                  return this;
         | 
| 9980 | 
            -
                }). | 
| 9972 | 
            +
                }).indexOf('return this') > -1;
         | 
| 9981 9973 |  | 
| 9982 9974 | 
             
                if (sourceAvailable) {
         | 
| 9983 9975 | 
             
                  return function checkHasSuper(func) {
         | 
| 9984 | 
            -
                    return HAS_SUPER_PATTERN.test( | 
| 9976 | 
            +
                    return HAS_SUPER_PATTERN.test(fnToString.call(func));
         | 
| 9985 9977 | 
             
                  };
         | 
| 9986 9978 | 
             
                }
         | 
| 9987 9979 |  | 
| @@ -10028,31 +10020,8 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10028 10020 | 
             
              function _wrap(func, superFunc) {
         | 
| 10029 10021 | 
             
                function superWrapper() {
         | 
| 10030 10022 | 
             
                  var orig = this._super;
         | 
| 10031 | 
            -
                  var ret = undefined;
         | 
| 10032 10023 | 
             
                  this._super = superFunc;
         | 
| 10033 | 
            -
                   | 
| 10034 | 
            -
                    case 0:
         | 
| 10035 | 
            -
                      ret = func.call(this);break;
         | 
| 10036 | 
            -
                    case 1:
         | 
| 10037 | 
            -
                      ret = func.call(this, arguments[0]);break;
         | 
| 10038 | 
            -
                    case 2:
         | 
| 10039 | 
            -
                      ret = func.call(this, arguments[0], arguments[1]);break;
         | 
| 10040 | 
            -
                    case 3:
         | 
| 10041 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2]);break;
         | 
| 10042 | 
            -
                    case 4:
         | 
| 10043 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3]);break;
         | 
| 10044 | 
            -
                    case 5:
         | 
| 10045 | 
            -
                      ret = func.call(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);break;
         | 
| 10046 | 
            -
                    default:
         | 
| 10047 | 
            -
                      // v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
         | 
| 10048 | 
            -
                      // we may want to keep this around till this ages out on mobile
         | 
| 10049 | 
            -
                      var args = new Array(arguments.length);
         | 
| 10050 | 
            -
                      for (var x = 0; x < arguments.length; x++) {
         | 
| 10051 | 
            -
                        args[x] = arguments[x];
         | 
| 10052 | 
            -
                      }
         | 
| 10053 | 
            -
                      ret = func.apply(this, args);
         | 
| 10054 | 
            -
                      break;
         | 
| 10055 | 
            -
                  }
         | 
| 10024 | 
            +
                  var ret = func.apply(this, arguments);
         | 
| 10056 10025 | 
             
                  this._super = orig;
         | 
| 10057 10026 | 
             
                  return ret;
         | 
| 10058 10027 | 
             
                }
         | 
| @@ -10209,36 +10178,6 @@ enifed('ember-metal/utils', ['exports'], function (exports) { | |
| 10209 10178 | 
             
                return '{' + ret.join(', ') + '}';
         | 
| 10210 10179 | 
             
              }
         | 
| 10211 10180 |  | 
| 10212 | 
            -
              // The following functions are intentionally minified to keep the functions
         | 
| 10213 | 
            -
              // below Chrome's function body size inlining limit of 600 chars.
         | 
| 10214 | 
            -
              /**
         | 
| 10215 | 
            -
                @param {Object} t target
         | 
| 10216 | 
            -
                @param {Function} m method
         | 
| 10217 | 
            -
                @param {Array} a args
         | 
| 10218 | 
            -
                @private
         | 
| 10219 | 
            -
              */
         | 
| 10220 | 
            -
             | 
| 10221 | 
            -
              function apply(t, m, a) {
         | 
| 10222 | 
            -
                var l = a && a.length;
         | 
| 10223 | 
            -
                if (!a || !l) {
         | 
| 10224 | 
            -
                  return m.call(t);
         | 
| 10225 | 
            -
                }
         | 
| 10226 | 
            -
                switch (l) {
         | 
| 10227 | 
            -
                  case 1:
         | 
| 10228 | 
            -
                    return m.call(t, a[0]);
         | 
| 10229 | 
            -
                  case 2:
         | 
| 10230 | 
            -
                    return m.call(t, a[0], a[1]);
         | 
| 10231 | 
            -
                  case 3:
         | 
| 10232 | 
            -
                    return m.call(t, a[0], a[1], a[2]);
         | 
| 10233 | 
            -
                  case 4:
         | 
| 10234 | 
            -
                    return m.call(t, a[0], a[1], a[2], a[3]);
         | 
| 10235 | 
            -
                  case 5:
         | 
| 10236 | 
            -
                    return m.call(t, a[0], a[1], a[2], a[3], a[4]);
         | 
| 10237 | 
            -
                  default:
         | 
| 10238 | 
            -
                    return m.apply(t, a);
         | 
| 10239 | 
            -
                }
         | 
| 10240 | 
            -
              }
         | 
| 10241 | 
            -
             | 
| 10242 10181 | 
             
              /**
         | 
| 10243 10182 | 
             
                @param {Object} t target
         | 
| 10244 10183 | 
             
                @param {String} m method
         | 
| @@ -10322,55 +10261,61 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal | |
| 10322 10261 | 
             
                    obj.willWatchProperty(keyName);
         | 
| 10323 10262 | 
             
                  }
         | 
| 10324 10263 |  | 
| 10325 | 
            -
                   | 
| 10326 | 
            -
             | 
| 10264 | 
            +
                  if (true) {
         | 
| 10265 | 
            +
                    // NOTE: this is dropped for prod + minified builds
         | 
| 10266 | 
            +
                    handleMandatorySetter(m, obj, keyName);
         | 
| 10267 | 
            +
                  }
         | 
| 10327 10268 | 
             
                } else {
         | 
| 10328 10269 | 
             
                  m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1);
         | 
| 10329 10270 | 
             
                }
         | 
| 10330 10271 | 
             
              }
         | 
| 10331 10272 |  | 
| 10332 | 
            -
               | 
| 10333 | 
            -
                 | 
| 10334 | 
            -
             | 
| 10335 | 
            -
             | 
| 10336 | 
            -
             | 
| 10337 | 
            -
                return Object.prototype.propertyIsEnumerable.call(obj, key);
         | 
| 10338 | 
            -
              };
         | 
| 10273 | 
            +
              if (true) {
         | 
| 10274 | 
            +
                (function () {
         | 
| 10275 | 
            +
                  var hasOwnProperty = function (obj, key) {
         | 
| 10276 | 
            +
                    return Object.prototype.hasOwnProperty.call(obj, key);
         | 
| 10277 | 
            +
                  };
         | 
| 10339 10278 |  | 
| 10340 | 
            -
             | 
| 10341 | 
            -
             | 
| 10342 | 
            -
             | 
| 10343 | 
            -
              handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
         | 
| 10344 | 
            -
                var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
         | 
| 10345 | 
            -
                var configurable = descriptor ? descriptor.configurable : true;
         | 
| 10346 | 
            -
                var isWritable = descriptor ? descriptor.writable : true;
         | 
| 10347 | 
            -
                var hasValue = descriptor ? 'value' in descriptor : true;
         | 
| 10348 | 
            -
                var possibleDesc = descriptor && descriptor.value;
         | 
| 10349 | 
            -
                var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
         | 
| 10279 | 
            +
                  var propertyIsEnumerable = function (obj, key) {
         | 
| 10280 | 
            +
                    return Object.prototype.propertyIsEnumerable.call(obj, key);
         | 
| 10281 | 
            +
                  };
         | 
| 10350 10282 |  | 
| 10351 | 
            -
             | 
| 10352 | 
            -
                   | 
| 10353 | 
            -
             | 
| 10283 | 
            +
                  // Future traveler, although this code looks scary. It merely exists in
         | 
| 10284 | 
            +
                  // development to aid in development asertions. Production builds of
         | 
| 10285 | 
            +
                  // ember strip this entire block out
         | 
| 10286 | 
            +
                  handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
         | 
| 10287 | 
            +
                    var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
         | 
| 10288 | 
            +
                    var configurable = descriptor ? descriptor.configurable : true;
         | 
| 10289 | 
            +
                    var isWritable = descriptor ? descriptor.writable : true;
         | 
| 10290 | 
            +
                    var hasValue = descriptor ? 'value' in descriptor : true;
         | 
| 10291 | 
            +
                    var possibleDesc = descriptor && descriptor.value;
         | 
| 10292 | 
            +
                    var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
         | 
| 10293 | 
            +
             | 
| 10294 | 
            +
                    if (isDescriptor) {
         | 
| 10295 | 
            +
                      return;
         | 
| 10296 | 
            +
                    }
         | 
| 10354 10297 |  | 
| 10355 | 
            -
             | 
| 10356 | 
            -
             | 
| 10357 | 
            -
             | 
| 10358 | 
            -
             | 
| 10359 | 
            -
             | 
| 10360 | 
            -
             | 
| 10361 | 
            -
             | 
| 10362 | 
            -
             | 
| 10298 | 
            +
                    // this x in Y deopts, so keeping it in this function is better;
         | 
| 10299 | 
            +
                    if (configurable && isWritable && hasValue && keyName in obj) {
         | 
| 10300 | 
            +
                      var desc = {
         | 
| 10301 | 
            +
                        configurable: true,
         | 
| 10302 | 
            +
                        set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName),
         | 
| 10303 | 
            +
                        enumerable: propertyIsEnumerable(obj, keyName),
         | 
| 10304 | 
            +
                        get: undefined
         | 
| 10305 | 
            +
                      };
         | 
| 10363 10306 |  | 
| 10364 | 
            -
             | 
| 10365 | 
            -
             | 
| 10366 | 
            -
             | 
| 10367 | 
            -
             | 
| 10368 | 
            -
             | 
| 10369 | 
            -
             | 
| 10307 | 
            +
                      if (hasOwnProperty(obj, keyName)) {
         | 
| 10308 | 
            +
                        m.writeValues(keyName, obj[keyName]);
         | 
| 10309 | 
            +
                        desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName);
         | 
| 10310 | 
            +
                      } else {
         | 
| 10311 | 
            +
                        desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName);
         | 
| 10312 | 
            +
                      }
         | 
| 10370 10313 |  | 
| 10371 | 
            -
             | 
| 10372 | 
            -
             | 
| 10373 | 
            -
             | 
| 10314 | 
            +
                      Object.defineProperty(obj, keyName, desc);
         | 
| 10315 | 
            +
                    }
         | 
| 10316 | 
            +
                  };
         | 
| 10317 | 
            +
                })();
         | 
| 10318 | 
            +
              }
         | 
| 10374 10319 |  | 
| 10375 10320 | 
             
              function unwatchKey(obj, keyName, meta) {
         | 
| 10376 10321 | 
             
                var m = meta || _emberMetalMeta.meta(obj);
         | 
| @@ -10389,33 +10334,35 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal | |
| 10389 10334 | 
             
                    obj.didUnwatchProperty(keyName);
         | 
| 10390 10335 | 
             
                  }
         | 
| 10391 10336 |  | 
| 10392 | 
            -
                   | 
| 10393 | 
            -
             | 
| 10394 | 
            -
             | 
| 10395 | 
            -
             | 
| 10396 | 
            -
             | 
| 10397 | 
            -
             | 
| 10398 | 
            -
             | 
| 10399 | 
            -
             | 
| 10400 | 
            -
             | 
| 10401 | 
            -
                     | 
| 10402 | 
            -
             | 
| 10403 | 
            -
             | 
| 10404 | 
            -
                      if (maybeMandatoryDescriptor. | 
| 10405 | 
            -
                         | 
| 10406 | 
            -
             | 
| 10407 | 
            -
                           | 
| 10408 | 
            -
             | 
| 10337 | 
            +
                  if (true) {
         | 
| 10338 | 
            +
                    // It is true, the following code looks quite WAT. But have no fear, It
         | 
| 10339 | 
            +
                    // exists purely to improve development ergonomics and is removed from
         | 
| 10340 | 
            +
                    // ember.min.js and ember.prod.js builds.
         | 
| 10341 | 
            +
                    //
         | 
| 10342 | 
            +
                    // Some further context: Once a property is watched by ember, bypassing `set`
         | 
| 10343 | 
            +
                    // for mutation, will bypass observation. This code exists to assert when
         | 
| 10344 | 
            +
                    // that occurs, and attempt to provide more helpful feedback. The alternative
         | 
| 10345 | 
            +
                    // is tricky to debug partially observable properties.
         | 
| 10346 | 
            +
                    if (!desc && keyName in obj) {
         | 
| 10347 | 
            +
                      var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
         | 
| 10348 | 
            +
             | 
| 10349 | 
            +
                      if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
         | 
| 10350 | 
            +
                        if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) {
         | 
| 10351 | 
            +
                          var possibleValue = m.readInheritedValue('values', keyName);
         | 
| 10352 | 
            +
                          if (possibleValue === _emberMetalMeta.UNDEFINED) {
         | 
| 10353 | 
            +
                            delete obj[keyName];
         | 
| 10354 | 
            +
                            return;
         | 
| 10355 | 
            +
                          }
         | 
| 10409 10356 | 
             
                        }
         | 
| 10410 | 
            -
                      }
         | 
| 10411 10357 |  | 
| 10412 | 
            -
             | 
| 10413 | 
            -
             | 
| 10414 | 
            -
             | 
| 10415 | 
            -
             | 
| 10416 | 
            -
             | 
| 10417 | 
            -
             | 
| 10418 | 
            -
             | 
| 10358 | 
            +
                        Object.defineProperty(obj, keyName, {
         | 
| 10359 | 
            +
                          configurable: true,
         | 
| 10360 | 
            +
                          enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
         | 
| 10361 | 
            +
                          writable: true,
         | 
| 10362 | 
            +
                          value: m.peekValues(keyName)
         | 
| 10363 | 
            +
                        });
         | 
| 10364 | 
            +
                        m.deleteFromValues(keyName);
         | 
| 10365 | 
            +
                      }
         | 
| 10419 10366 | 
             
                    }
         | 
| 10420 10367 | 
             
                  }
         | 
| 10421 10368 | 
             
                } else if (count > 1) {
         | 
| @@ -10670,8 +10617,11 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'embe | |
| 10670 10617 | 
             
              var compile, compileSpec, compileOptions;
         | 
| 10671 10618 |  | 
| 10672 10619 | 
             
              // Note we don't really want to expose this from main file
         | 
| 10673 | 
            -
             | 
| 10674 | 
            -
             | 
| 10620 | 
            +
              if (false) {
         | 
| 10621 | 
            +
                compileOptions = _require.default('ember-glimmer-template-compiler/system/compile-options').default;
         | 
| 10622 | 
            +
              } else {
         | 
| 10623 | 
            +
                compileOptions = _require.default('ember-htmlbars-template-compiler/system/compile-options').default;
         | 
| 10624 | 
            +
              }
         | 
| 10675 10625 |  | 
| 10676 10626 | 
             
              exports.default = function (string) {
         | 
| 10677 10627 | 
             
                if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) {
         | 
| @@ -10717,8 +10667,11 @@ enifed('ember-template-compiler/compiler', ['exports', 'ember-metal/features', ' | |
| 10717 10667 |  | 
| 10718 10668 | 
             
              function pickCompiler() {
         | 
| 10719 10669 | 
             
                var compiler = undefined;
         | 
| 10720 | 
            -
             | 
| 10721 | 
            -
             | 
| 10670 | 
            +
                if (false) {
         | 
| 10671 | 
            +
                  compiler = _require.default('ember-glimmer-template-compiler');
         | 
| 10672 | 
            +
                } else {
         | 
| 10673 | 
            +
                  compiler = _require.default('ember-htmlbars-template-compiler');
         | 
| 10674 | 
            +
                }
         | 
| 10722 10675 |  | 
| 10723 10676 | 
             
                return compiler;
         | 
| 10724 10677 | 
             
              }
         | 
| @@ -11546,7 +11499,7 @@ enifed("htmlbars-compiler/fragment-opcode-compiler", ["exports", "htmlbars-compi | |
| 11546 11499 | 
             
                this.opcode('setNamespace', [namespace]);
         | 
| 11547 11500 | 
             
              };
         | 
| 11548 11501 | 
             
            });
         | 
| 11549 | 
            -
            enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars-compiler/utils", "htmlbars-util/quoting"], function (exports, _htmlbarsCompilerUtils, _htmlbarsUtilQuoting) {
         | 
| 11502 | 
            +
            enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars-compiler/utils", "htmlbars-util/quoting", "htmlbars-util/template-utils"], function (exports, _htmlbarsCompilerUtils, _htmlbarsUtilQuoting, _htmlbarsUtilTemplateUtils) {
         | 
| 11550 11503 | 
             
              "use strict";
         | 
| 11551 11504 |  | 
| 11552 11505 | 
             
              function HydrationJavaScriptCompiler() {
         | 
| @@ -11683,15 +11636,17 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars- | |
| 11683 11636 | 
             
              };
         | 
| 11684 11637 |  | 
| 11685 11638 | 
             
              prototype.pushGetHook = function (path, meta) {
         | 
| 11686 | 
            -
                this.expressionStack.push( | 
| 11639 | 
            +
                this.expressionStack.push(_htmlbarsUtilTemplateUtils.buildStatement('get', path, meta));
         | 
| 11687 11640 | 
             
              };
         | 
| 11688 11641 |  | 
| 11689 11642 | 
             
              prototype.pushSexprHook = function (meta) {
         | 
| 11690 | 
            -
                 | 
| 11643 | 
            +
                var statement = _htmlbarsUtilTemplateUtils.buildStatement('subexpr', this.expressionStack.pop(), this.expressionStack.pop(), this.expressionStack.pop(), meta);
         | 
| 11644 | 
            +
             | 
| 11645 | 
            +
                this.expressionStack.push(statement);
         | 
| 11691 11646 | 
             
              };
         | 
| 11692 11647 |  | 
| 11693 11648 | 
             
              prototype.pushConcatHook = function () {
         | 
| 11694 | 
            -
                this.expressionStack.push( | 
| 11649 | 
            +
                this.expressionStack.push(_htmlbarsUtilTemplateUtils.buildStatement('concat', this.expressionStack.pop()));
         | 
| 11695 11650 | 
             
              };
         | 
| 11696 11651 |  | 
| 11697 11652 | 
             
              prototype.printSetHook = function (name) {
         | 
| @@ -11699,10 +11654,10 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars- | |
| 11699 11654 | 
             
              };
         | 
| 11700 11655 |  | 
| 11701 11656 | 
             
              prototype.printBlockHook = function (templateId, inverseId, meta) {
         | 
| 11702 | 
            -
                this. | 
| 11657 | 
            +
                this.pushStatement('block', this.expressionStack.pop(), // path
         | 
| 11703 11658 | 
             
                this.expressionStack.pop(), // params
         | 
| 11704 11659 | 
             
                this.expressionStack.pop(), // hash
         | 
| 11705 | 
            -
                templateId, inverseId, meta | 
| 11660 | 
            +
                templateId, inverseId, meta);
         | 
| 11706 11661 | 
             
              };
         | 
| 11707 11662 |  | 
| 11708 11663 | 
             
              prototype.printInlineHook = function (meta) {
         | 
| @@ -11710,30 +11665,30 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars- | |
| 11710 11665 | 
             
                var params = this.expressionStack.pop();
         | 
| 11711 11666 | 
             
                var hash = this.expressionStack.pop();
         | 
| 11712 11667 |  | 
| 11713 | 
            -
                this. | 
| 11668 | 
            +
                this.pushStatement('inline', path, params, hash, meta);
         | 
| 11714 11669 | 
             
              };
         | 
| 11715 11670 |  | 
| 11716 11671 | 
             
              prototype.printContentHook = function (meta) {
         | 
| 11717 | 
            -
                this. | 
| 11672 | 
            +
                this.pushStatement('content', this.expressionStack.pop(), meta);
         | 
| 11718 11673 | 
             
              };
         | 
| 11719 11674 |  | 
| 11720 11675 | 
             
              prototype.printComponentHook = function (templateId) {
         | 
| 11721 | 
            -
                this. | 
| 11676 | 
            +
                this.pushStatement('component', this.expressionStack.pop(), // path
         | 
| 11722 11677 | 
             
                this.expressionStack.pop(), // attrs
         | 
| 11723 | 
            -
                templateId | 
| 11678 | 
            +
                templateId);
         | 
| 11724 11679 | 
             
              };
         | 
| 11725 11680 |  | 
| 11726 11681 | 
             
              prototype.printAttributeHook = function () {
         | 
| 11727 | 
            -
                this. | 
| 11682 | 
            +
                this.pushStatement('attribute', this.expressionStack.pop(), // name
         | 
| 11728 11683 | 
             
                this.expressionStack.pop() // value;
         | 
| 11729 | 
            -
                 | 
| 11684 | 
            +
                );
         | 
| 11730 11685 | 
             
              };
         | 
| 11731 11686 |  | 
| 11732 11687 | 
             
              prototype.printElementHook = function (meta) {
         | 
| 11733 | 
            -
                this. | 
| 11688 | 
            +
                this.pushStatement('element', this.expressionStack.pop(), // path
         | 
| 11734 11689 | 
             
                this.expressionStack.pop(), // params
         | 
| 11735 11690 | 
             
                this.expressionStack.pop(), // hash
         | 
| 11736 | 
            -
                meta | 
| 11691 | 
            +
                meta);
         | 
| 11737 11692 | 
             
              };
         | 
| 11738 11693 |  | 
| 11739 11694 | 
             
              prototype.createMorph = function (morphNum, parentPath, startIndex, endIndex, escaped) {
         | 
| @@ -11795,6 +11750,10 @@ enifed("htmlbars-compiler/hydration-javascript-compiler", ["exports", "htmlbars- | |
| 11795 11750 | 
             
              prototype.lastParent = function () {
         | 
| 11796 11751 | 
             
                return this.parents[this.parents.length - 1];
         | 
| 11797 11752 | 
             
              };
         | 
| 11753 | 
            +
             | 
| 11754 | 
            +
              prototype.pushStatement = function () {
         | 
| 11755 | 
            +
                this.statements.push(_htmlbarsUtilTemplateUtils.buildStatement.apply(undefined, arguments));
         | 
| 11756 | 
            +
              };
         | 
| 11798 11757 | 
             
            });
         | 
| 11799 11758 | 
             
            enifed("htmlbars-compiler/hydration-opcode-compiler", ["exports", "htmlbars-compiler/template-visitor", "htmlbars-compiler/utils", "htmlbars-util", "htmlbars-util/array-utils", "htmlbars-syntax/utils"], function (exports, _htmlbarsCompilerTemplateVisitor, _htmlbarsCompilerUtils, _htmlbarsUtil, _htmlbarsUtilArrayUtils, _htmlbarsSyntaxUtils) {
         | 
| 11800 11759 | 
             
              "use strict";
         | 
| @@ -12599,10 +12558,12 @@ enifed('htmlbars-runtime/expression-visitor', ['exports'], function (exports) { | |
| 12599 12558 |  | 
| 12600 12559 | 
             
                // Primitive literals are unambiguously non-array representations of
         | 
| 12601 12560 | 
             
                // themselves.
         | 
| 12602 | 
            -
                if ( | 
| 12603 | 
            -
                   | 
| 12604 | 
            -
             | 
| 12561 | 
            +
                if (Array.isArray(node)) {
         | 
| 12562 | 
            +
                  // if (node.length !== 7) { throw new Error('FIXME: Invalid statement length!'); }
         | 
| 12563 | 
            +
             | 
| 12605 12564 | 
             
                  ret.value = evaluateNode(node, env, scope);
         | 
| 12565 | 
            +
                } else {
         | 
| 12566 | 
            +
                  ret.value = node;
         | 
| 12606 12567 | 
             
                }
         | 
| 12607 12568 |  | 
| 12608 12569 | 
             
                return ret;
         | 
| @@ -14152,13 +14113,14 @@ enifed("htmlbars-runtime/render", ["exports", "htmlbars-util/morph-utils", "html | |
| 14152 14113 | 
             
                  if (typeof attributes[key] === 'string') {
         | 
| 14153 14114 | 
             
                    continue;
         | 
| 14154 14115 | 
             
                  }
         | 
| 14155 | 
            -
             | 
| 14116 | 
            +
             | 
| 14117 | 
            +
                  statements.push(_htmlbarsUtilTemplateUtils.buildStatement("attribute", key, attributes[key]));
         | 
| 14156 14118 | 
             
                }
         | 
| 14157 14119 |  | 
| 14158 14120 | 
             
                var isEmpty = _isEmpty || _htmlbarsUtilVoidTagNames.default[tagName];
         | 
| 14159 14121 |  | 
| 14160 14122 | 
             
                if (!isEmpty) {
         | 
| 14161 | 
            -
                  statements.push( | 
| 14123 | 
            +
                  statements.push(_htmlbarsUtilTemplateUtils.buildStatement('content', 'yield'));
         | 
| 14162 14124 | 
             
                }
         | 
| 14163 14125 |  | 
| 14164 14126 | 
             
                var template = {
         | 
| @@ -14220,7 +14182,7 @@ enifed("htmlbars-runtime/render", ["exports", "htmlbars-util/morph-utils", "html | |
| 14220 14182 | 
             
                  if (typeof attributes[key] === 'string') {
         | 
| 14221 14183 | 
             
                    continue;
         | 
| 14222 14184 | 
             
                  }
         | 
| 14223 | 
            -
                  statements.push( | 
| 14185 | 
            +
                  statements.push(_htmlbarsUtilTemplateUtils.buildStatement("attribute", key, attributes[key]));
         | 
| 14224 14186 | 
             
                }
         | 
| 14225 14187 |  | 
| 14226 14188 | 
             
                var template = {
         | 
| @@ -17854,11 +17816,13 @@ enifed('htmlbars-util/safe-string', ['exports', 'htmlbars-util/handlebars/safe-s | |
| 17854 17816 | 
             
            enifed("htmlbars-util/template-utils", ["exports", "htmlbars-util/morph-utils", "htmlbars-runtime/render"], function (exports, _htmlbarsUtilMorphUtils, _htmlbarsRuntimeRender) {
         | 
| 17855 17817 | 
             
              "use strict";
         | 
| 17856 17818 |  | 
| 17819 | 
            +
              var _slice = Array.prototype.slice;
         | 
| 17857 17820 | 
             
              exports.RenderState = RenderState;
         | 
| 17858 17821 | 
             
              exports.blockFor = blockFor;
         | 
| 17859 17822 | 
             
              exports.renderAndCleanup = renderAndCleanup;
         | 
| 17860 17823 | 
             
              exports.clearMorph = clearMorph;
         | 
| 17861 17824 | 
             
              exports.clearMorphList = clearMorphList;
         | 
| 17825 | 
            +
              exports.buildStatement = buildStatement;
         | 
| 17862 17826 |  | 
| 17863 17827 | 
             
              function RenderState(renderNode, morphList) {
         | 
| 17864 17828 | 
             
                // The morph list that is no longer needed and can be
         | 
| @@ -18052,6 +18016,17 @@ enifed("htmlbars-util/template-utils", ["exports", "htmlbars-util/morph-utils", | |
| 18052 18016 | 
             
                morphList.clear();
         | 
| 18053 18017 | 
             
                morph.morphList = null;
         | 
| 18054 18018 | 
             
              }
         | 
| 18019 | 
            +
             | 
| 18020 | 
            +
              function buildStatement() {
         | 
| 18021 | 
            +
                var statement = [].concat(_slice.call(arguments));
         | 
| 18022 | 
            +
             | 
| 18023 | 
            +
                // ensure array length is 7 by padding with 0
         | 
| 18024 | 
            +
                for (var i = arguments.length; i < 7; i++) {
         | 
| 18025 | 
            +
                  statement[i] = 0;
         | 
| 18026 | 
            +
                }
         | 
| 18027 | 
            +
             | 
| 18028 | 
            +
                return statement;
         | 
| 18029 | 
            +
              }
         | 
| 18055 18030 | 
             
            });
         | 
| 18056 18031 | 
             
            enifed("htmlbars-util/void-tag-names", ["exports", "htmlbars-util/array-utils"], function (exports, _htmlbarsUtilArrayUtils) {
         | 
| 18057 18032 | 
             
              "use strict";
         |