ember-source 2.7.2 → 2.8.0.beta.1

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.
@@ -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.2
9
+ * @version 2.8.0-beta.1
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, Ember;
@@ -1399,16 +1399,13 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/error', 'ember-console'
1399
1399
 
1400
1400
  @method deprecate
1401
1401
  @param {String} message A description of the deprecation.
1402
- @param {Boolean} test A boolean. If falsy, the deprecation will be displayed.
1403
- @param {Object} options
1404
- @param {String} options.id A unique id for this deprecation. The id can be
1405
- used by Ember debugging tools to change the behavior (raise, log or silence)
1406
- for that specific deprecation. The id should be namespaced by dots, e.g.
1407
- "view.helper.select".
1408
- @param {string} options.until The version of Ember when this deprecation
1409
- warning will be removed.
1410
- @param {String} [options.url] An optional url to the transition guide on the
1411
- emberjs.com website.
1402
+ @param {Boolean} test A boolean. If falsy, the deprecation
1403
+ will be displayed.
1404
+ @param {Object} options An object that can be used to pass
1405
+ in a `url` to the transition guide on the emberjs.com website, and a unique
1406
+ `id` for this deprecation. The `id` can be used by Ember debugging tools
1407
+ to change the behavior (raise, log or silence) for that specific deprecation.
1408
+ The `id` should be namespaced by dots, e.g. "view.helper.select".
1412
1409
  @for Ember
1413
1410
  @public
1414
1411
  */
@@ -1664,36 +1661,38 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment',
1664
1661
  }
1665
1662
 
1666
1663
  if (!_emberMetalTesting.isTesting()) {
1667
- // Complain if they're using FEATURE flags in builds other than canary
1668
- _emberMetalFeatures.FEATURES['features-stripped-test'] = true;
1669
- var featuresWereStripped = true;
1664
+ (function () {
1665
+ // Complain if they're using FEATURE flags in builds other than canary
1666
+ _emberMetalFeatures.FEATURES['features-stripped-test'] = true;
1667
+ var featuresWereStripped = true;
1670
1668
 
1671
- if (false) {
1672
- exports.featuresWereStripped = featuresWereStripped = false;
1673
- }
1669
+ if (false) {
1670
+ featuresWereStripped = false;
1671
+ }
1674
1672
 
1675
- delete _emberMetalFeatures.FEATURES['features-stripped-test'];
1676
- _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
1673
+ delete _emberMetalFeatures.FEATURES['features-stripped-test'];
1674
+ _warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
1677
1675
 
1678
- // Inform the developer about the Ember Inspector if not installed.
1679
- var isFirefox = _emberEnvironment.environment.isFirefox;
1680
- var isChrome = _emberEnvironment.environment.isChrome;
1676
+ // Inform the developer about the Ember Inspector if not installed.
1677
+ var isFirefox = _emberEnvironment.environment.isFirefox;
1678
+ var isChrome = _emberEnvironment.environment.isChrome;
1681
1679
 
1682
- if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) {
1683
- window.addEventListener('load', function () {
1684
- if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset.emberExtension) {
1685
- var downloadURL;
1680
+ if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) {
1681
+ window.addEventListener('load', function () {
1682
+ if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset.emberExtension) {
1683
+ var downloadURL;
1686
1684
 
1687
- if (isChrome) {
1688
- downloadURL = 'https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi';
1689
- } else if (isFirefox) {
1690
- downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/';
1691
- }
1685
+ if (isChrome) {
1686
+ downloadURL = 'https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi';
1687
+ } else if (isFirefox) {
1688
+ downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/';
1689
+ }
1692
1690
 
1693
- _emberMetalDebug.debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL);
1694
- }
1695
- }, false);
1696
- }
1691
+ _emberMetalDebug.debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL);
1692
+ }
1693
+ }, false);
1694
+ }
1695
+ })();
1697
1696
  }
1698
1697
  /**
1699
1698
  @public
@@ -2021,18 +2020,19 @@ enifed("ember-environment/utils", ["exports"], function (exports) {
2021
2020
  }
2022
2021
  }
2023
2022
  });
2024
- enifed('ember-htmlbars-template-compiler/index', ['exports', 'ember-htmlbars-template-compiler/system/compile', 'ember-htmlbars-template-compiler/system/precompile', 'ember-htmlbars-template-compiler/system/template', 'ember-htmlbars-template-compiler/system/compile-options'], function (exports, _emberHtmlbarsTemplateCompilerSystemCompile, _emberHtmlbarsTemplateCompilerSystemPrecompile, _emberHtmlbarsTemplateCompilerSystemTemplate, _emberHtmlbarsTemplateCompilerSystemCompileOptions) {
2023
+ enifed('ember-htmlbars-template-compiler/index', ['exports', 'ember-htmlbars-template-compiler/system/compile', 'ember-htmlbars-template-compiler/system/precompile', 'ember-htmlbars-template-compiler/system/compile-options'], function (exports, _emberHtmlbarsTemplateCompilerSystemCompile, _emberHtmlbarsTemplateCompilerSystemPrecompile, _emberHtmlbarsTemplateCompilerSystemCompileOptions) {
2025
2024
  'use strict';
2026
2025
 
2027
2026
  exports.compile = _emberHtmlbarsTemplateCompilerSystemCompile.default;
2028
2027
  exports.precompile = _emberHtmlbarsTemplateCompilerSystemPrecompile.default;
2029
- exports.template = _emberHtmlbarsTemplateCompilerSystemTemplate.default;
2030
2028
  exports.defaultCompileOptions = _emberHtmlbarsTemplateCompilerSystemCompileOptions.default;
2031
2029
  exports.registerPlugin = _emberHtmlbarsTemplateCompilerSystemCompileOptions.registerPlugin;
2032
2030
  });
2033
2031
  enifed('ember-htmlbars-template-compiler/plugins/transform-closure-component-attrs-into-mut', ['exports'], function (exports) {
2034
2032
  'use strict';
2035
2033
 
2034
+ exports.default = TransformClosureComponentAttrsIntoMut;
2035
+
2036
2036
  function TransformClosureComponentAttrsIntoMut() {
2037
2037
  // set later within HTMLBars to the syntax package
2038
2038
  this.syntax = null;
@@ -2068,26 +2068,21 @@ enifed('ember-htmlbars-template-compiler/plugins/transform-closure-component-att
2068
2068
  }
2069
2069
  }
2070
2070
 
2071
- each(node.hash.pairs, function (pair) {
2071
+ for (var i = 0; i < node.hash.pairs.length; i++) {
2072
+ var pair = node.hash.pairs[i];
2072
2073
  var value = pair.value;
2073
2074
 
2074
2075
  if (value.type === 'PathExpression') {
2075
2076
  pair.value = builder.sexpr(builder.path('@mut'), [pair.value]);
2076
2077
  }
2077
- });
2078
- }
2079
-
2080
- function each(list, callback) {
2081
- for (var i = 0, l = list.length; i < l; i++) {
2082
- callback(list[i]);
2083
2078
  }
2084
2079
  }
2085
-
2086
- exports.default = TransformClosureComponentAttrsIntoMut;
2087
2080
  });
2088
2081
  enifed('ember-htmlbars-template-compiler/plugins/transform-component-attrs-into-mut', ['exports'], function (exports) {
2089
2082
  'use strict';
2090
2083
 
2084
+ exports.default = TransformComponentAttrsIntoMut;
2085
+
2091
2086
  function TransformComponentAttrsIntoMut() {
2092
2087
  // set later within HTMLBars to the syntax package
2093
2088
  this.syntax = null;
@@ -2107,13 +2102,14 @@ enifed('ember-htmlbars-template-compiler/plugins/transform-component-attrs-into-
2107
2102
  return;
2108
2103
  }
2109
2104
 
2110
- each(node.hash.pairs, function (pair) {
2105
+ for (var i = 0; i < node.hash.pairs.length; i++) {
2106
+ var pair = node.hash.pairs[i];
2111
2107
  var value = pair.value;
2112
2108
 
2113
2109
  if (value.type === 'PathExpression') {
2114
2110
  pair.value = b.sexpr(b.path('@mut'), [pair.value]);
2115
2111
  }
2116
- });
2112
+ }
2117
2113
  });
2118
2114
 
2119
2115
  return ast;
@@ -2122,18 +2118,12 @@ enifed('ember-htmlbars-template-compiler/plugins/transform-component-attrs-into-
2122
2118
  function validate(node) {
2123
2119
  return node.type === 'BlockStatement' || node.type === 'MustacheStatement';
2124
2120
  }
2125
-
2126
- function each(list, callback) {
2127
- for (var i = 0; i < list.length; i++) {
2128
- callback(list[i]);
2129
- }
2130
- }
2131
-
2132
- exports.default = TransformComponentAttrsIntoMut;
2133
2121
  });
2134
2122
  enifed('ember-htmlbars-template-compiler/plugins/transform-component-curly-to-readonly', ['exports'], function (exports) {
2135
2123
  'use strict';
2136
2124
 
2125
+ exports.default = TransformComponentCurlyToReadonly;
2126
+
2137
2127
  function TransformComponentCurlyToReadonly() {
2138
2128
  // set later within HTMLBars to the syntax package
2139
2129
  this.syntax = null;
@@ -2153,7 +2143,9 @@ enifed('ember-htmlbars-template-compiler/plugins/transform-component-curly-to-re
2153
2143
  return;
2154
2144
  }
2155
2145
 
2156
- each(node.attributes, function (attr) {
2146
+ for (var i = 0; i < node.attributes.length; i++) {
2147
+ var attr = node.attributes[i];
2148
+
2157
2149
  if (attr.value.type !== 'MustacheStatement') {
2158
2150
  return;
2159
2151
  }
@@ -2162,165 +2154,17 @@ enifed('ember-htmlbars-template-compiler/plugins/transform-component-curly-to-re
2162
2154
  }
2163
2155
 
2164
2156
  attr.value = b.mustache(b.path('readonly'), [attr.value.path], null, !attr.value.escape);
2165
- });
2166
- });
2167
-
2168
- return ast;
2169
- };
2170
-
2171
- function validate(node) {
2172
- return node.type === 'ComponentNode';
2173
- }
2174
-
2175
- function each(list, callback) {
2176
- for (var i = 0; i < list.length; i++) {
2177
- callback(list[i]);
2178
- }
2179
- }
2180
-
2181
- exports.default = TransformComponentCurlyToReadonly;
2182
- });
2183
- enifed('ember-htmlbars-template-compiler/plugins/transform-old-class-binding-syntax', ['exports'], function (exports) {
2184
- 'use strict';
2185
-
2186
- exports.default = TransformOldClassBindingSyntax;
2187
-
2188
- function TransformOldClassBindingSyntax(options) {
2189
- this.syntax = null;
2190
- this.options = options;
2191
- }
2192
-
2193
- TransformOldClassBindingSyntax.prototype.transform = function TransformOldClassBindingSyntax_transform(ast) {
2194
- var b = this.syntax.builders;
2195
- var walker = new this.syntax.Walker();
2196
-
2197
- walker.visit(ast, function (node) {
2198
- if (!validate(node)) {
2199
- return;
2200
- }
2201
-
2202
- var allOfTheMicrosyntaxes = [];
2203
- var allOfTheMicrosyntaxIndexes = [];
2204
- var classPair = undefined;
2205
-
2206
- each(node.hash.pairs, function (pair, index) {
2207
- var key = pair.key;
2208
-
2209
- if (key === 'classBinding' || key === 'classNameBindings') {
2210
- allOfTheMicrosyntaxIndexes.push(index);
2211
- allOfTheMicrosyntaxes.push(pair);
2212
- } else if (key === 'class') {
2213
- classPair = pair;
2214
- }
2215
- });
2216
-
2217
- if (allOfTheMicrosyntaxes.length === 0) {
2218
- return;
2219
- }
2220
-
2221
- var classValue = [];
2222
-
2223
- if (classPair) {
2224
- classValue.push(classPair.value);
2225
- classValue.push(b.string(' '));
2226
- } else {
2227
- classPair = b.pair('class', null);
2228
- node.hash.pairs.push(classPair);
2229
2157
  }
2230
-
2231
- each(allOfTheMicrosyntaxIndexes, function (index) {
2232
- node.hash.pairs.splice(index, 1);
2233
- });
2234
-
2235
- each(allOfTheMicrosyntaxes, function (_ref) {
2236
- var value = _ref.value;
2237
- var loc = _ref.loc;
2238
-
2239
- var sexprs = [];
2240
- // TODO: add helpful deprecation when both `classNames` and `classNameBindings` can
2241
- // be removed.
2242
-
2243
- if (value.type === 'StringLiteral') {
2244
- var microsyntax = parseMicrosyntax(value.original);
2245
-
2246
- buildSexprs(microsyntax, sexprs, b);
2247
-
2248
- classValue.push.apply(classValue, sexprs);
2249
- }
2250
- });
2251
-
2252
- var hash = b.hash();
2253
- classPair.value = b.sexpr(b.string('concat'), classValue, hash);
2254
2158
  });
2255
2159
 
2256
2160
  return ast;
2257
2161
  };
2258
2162
 
2259
- function buildSexprs(microsyntax, sexprs, b) {
2260
- for (var i = 0; i < microsyntax.length; i++) {
2261
- var _microsyntax$i = microsyntax[i];
2262
- var propName = _microsyntax$i[0];
2263
- var activeClass = _microsyntax$i[1];
2264
- var inactiveClass = _microsyntax$i[2];
2265
-
2266
- var sexpr = undefined;
2267
-
2268
- // :my-class-name microsyntax for static values
2269
- if (propName === '') {
2270
- sexpr = b.string(activeClass);
2271
- } else {
2272
- var params = [b.path(propName)];
2273
-
2274
- if (activeClass) {
2275
- params.push(b.string(activeClass));
2276
- } else {
2277
- var sexprParams = [b.string(propName), b.path(propName)];
2278
-
2279
- var hash = b.hash();
2280
- if (activeClass !== undefined) {
2281
- hash.pairs.push(b.pair('activeClass', b.string(activeClass)));
2282
- }
2283
-
2284
- if (inactiveClass !== undefined) {
2285
- hash.pairs.push(b.pair('inactiveClass', b.string(inactiveClass)));
2286
- }
2287
-
2288
- params.push(b.sexpr(b.string('-normalize-class'), sexprParams, hash));
2289
- }
2290
-
2291
- if (inactiveClass) {
2292
- params.push(b.string(inactiveClass));
2293
- }
2294
-
2295
- sexpr = b.sexpr(b.string('if'), params);
2296
- }
2297
-
2298
- sexprs.push(sexpr);
2299
- sexprs.push(b.string(' '));
2300
- }
2301
- }
2302
-
2303
2163
  function validate(node) {
2304
- return node.type === 'BlockStatement' || node.type === 'MustacheStatement';
2305
- }
2306
-
2307
- function each(list, callback) {
2308
- for (var i = 0; i < list.length; i++) {
2309
- callback(list[i], i);
2310
- }
2311
- }
2312
-
2313
- function parseMicrosyntax(string) {
2314
- var segments = string.split(' ');
2315
-
2316
- for (var i = 0; i < segments.length; i++) {
2317
- segments[i] = segments[i].split(':');
2318
- }
2319
-
2320
- return segments;
2164
+ return node.type === 'ComponentNode';
2321
2165
  }
2322
2166
  });
2323
- enifed('ember-htmlbars-template-compiler/system/compile-options', ['exports', 'ember/version', 'ember-metal/assign', 'ember-template-compiler/plugins', 'ember-htmlbars-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-htmlbars-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-htmlbars-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-htmlbars-template-compiler/plugins/transform-old-class-binding-syntax'], function (exports, _emberVersion, _emberMetalAssign, _emberTemplateCompilerPlugins, _emberHtmlbarsTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberHtmlbarsTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberHtmlbarsTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberHtmlbarsTemplateCompilerPluginsTransformOldClassBindingSyntax) {
2167
+ enifed('ember-htmlbars-template-compiler/system/compile-options', ['exports', 'ember/version', 'ember-metal/assign', 'ember-template-compiler/plugins', 'ember-htmlbars-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-htmlbars-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-htmlbars-template-compiler/plugins/transform-component-curly-to-readonly'], function (exports, _emberVersion, _emberMetalAssign, _emberTemplateCompilerPlugins, _emberHtmlbarsTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberHtmlbarsTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberHtmlbarsTemplateCompilerPluginsTransformComponentCurlyToReadonly) {
2324
2168
  /**
2325
2169
  @module ember
2326
2170
  @submodule ember-htmlbars
@@ -2330,19 +2174,18 @@ enifed('ember-htmlbars-template-compiler/system/compile-options', ['exports', 'e
2330
2174
 
2331
2175
  exports.registerPlugin = registerPlugin;
2332
2176
  exports.removePlugin = removePlugin;
2333
-
2334
- var compileOptions = undefined;
2335
-
2177
+ exports.default = compileOptions;
2336
2178
  var PLUGINS = [].concat(_emberTemplateCompilerPlugins.default, [
2337
2179
 
2338
2180
  // the following are ember-htmlbars specific
2339
- _emberHtmlbarsTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut.default, _emberHtmlbarsTemplateCompilerPluginsTransformComponentAttrsIntoMut.default, _emberHtmlbarsTemplateCompilerPluginsTransformComponentCurlyToReadonly.default, _emberHtmlbarsTemplateCompilerPluginsTransformOldClassBindingSyntax.default]);
2181
+ _emberHtmlbarsTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut.default, _emberHtmlbarsTemplateCompilerPluginsTransformComponentAttrsIntoMut.default, _emberHtmlbarsTemplateCompilerPluginsTransformComponentCurlyToReadonly.default]);
2340
2182
 
2341
2183
  exports.PLUGINS = PLUGINS;
2342
2184
  var USER_PLUGINS = [];
2343
2185
 
2344
- function mergePlugins(options) {
2345
- options = options || {};
2186
+ function mergePlugins() {
2187
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
2188
+
2346
2189
  options = _emberMetalAssign.default({}, options);
2347
2190
  if (!options.plugins) {
2348
2191
  options.plugins = { ast: [].concat(USER_PLUGINS, PLUGINS) };
@@ -2382,9 +2225,9 @@ enifed('ember-htmlbars-template-compiler/system/compile-options', ['exports', 'e
2382
2225
  @private
2383
2226
  @property compileOptions
2384
2227
  */
2385
- compileOptions = function (_options) {
2386
- var disableComponentGeneration = true;
2387
2228
 
2229
+ function compileOptions(_options) {
2230
+ var disableComponentGeneration = true;
2388
2231
  var options = undefined;
2389
2232
  // When calling `Ember.Handlebars.compile()` a second argument of `true`
2390
2233
  // had a special meaning (long since lost), this just gaurds against
@@ -2408,18 +2251,21 @@ enifed('ember-htmlbars-template-compiler/system/compile-options', ['exports', 'e
2408
2251
  };
2409
2252
 
2410
2253
  return options;
2411
- };
2412
-
2413
- exports.default = compileOptions;
2254
+ }
2414
2255
  });
2415
- enifed('ember-htmlbars-template-compiler/system/compile', ['exports', 'require', 'ember-htmlbars-template-compiler/system/template', 'ember-htmlbars-template-compiler/system/compile-options'], function (exports, _require, _emberHtmlbarsTemplateCompilerSystemTemplate, _emberHtmlbarsTemplateCompilerSystemCompileOptions) {
2256
+ enifed('ember-htmlbars-template-compiler/system/compile', ['exports', 'require', 'ember-htmlbars-template-compiler/system/compile-options'], function (exports, _require, _emberHtmlbarsTemplateCompilerSystemCompileOptions) {
2416
2257
  'use strict';
2417
2258
 
2418
2259
  exports.default = compiler;
2419
2260
 
2420
- var compile = undefined;
2261
+ var compile = undefined,
2262
+ template = undefined;
2421
2263
 
2422
2264
  function compiler(string, options) {
2265
+ if (!template && _require.has('ember-htmlbars')) {
2266
+ template = _require.default('ember-htmlbars').template;
2267
+ }
2268
+
2423
2269
  if (!compile && _require.has('htmlbars-compiler/compiler')) {
2424
2270
  compile = _require.default('htmlbars-compiler/compiler').compile;
2425
2271
  }
@@ -2428,9 +2274,13 @@ enifed('ember-htmlbars-template-compiler/system/compile', ['exports', 'require',
2428
2274
  throw new Error('Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.');
2429
2275
  }
2430
2276
 
2277
+ if (!template) {
2278
+ throw new Error('Cannot call `compile` with only the template compiler loaded. Please load `ember.debug.js` or `ember.prod.js` prior to calling `compile`.');
2279
+ }
2280
+
2431
2281
  var templateSpec = compile(string, _emberHtmlbarsTemplateCompilerSystemCompileOptions.default(options));
2432
2282
 
2433
- return _emberHtmlbarsTemplateCompilerSystemTemplate.default(templateSpec);
2283
+ return template(templateSpec);
2434
2284
  }
2435
2285
  });
2436
2286
  enifed('ember-htmlbars-template-compiler/system/precompile', ['exports', 'ember-htmlbars-template-compiler/system/compile-options', 'require'], function (exports, _emberHtmlbarsTemplateCompilerSystemCompileOptions, _require) {
@@ -2452,26 +2302,6 @@ enifed('ember-htmlbars-template-compiler/system/precompile', ['exports', 'ember-
2452
2302
  return compileSpec(templateString, _emberHtmlbarsTemplateCompilerSystemCompileOptions.default(options));
2453
2303
  }
2454
2304
  });
2455
- enifed('ember-htmlbars-template-compiler/system/template', ['exports', 'require'], function (exports, _require2) {
2456
- 'use strict';
2457
-
2458
- var _require = _require2.default('htmlbars-runtime/hooks');
2459
-
2460
- var wrap = _require.wrap;
2461
-
2462
- var template = function (templateSpec) {
2463
- if (!templateSpec.render) {
2464
- templateSpec = wrap(templateSpec);
2465
- }
2466
-
2467
- templateSpec.isTop = true;
2468
- templateSpec.isMethod = false;
2469
-
2470
- return templateSpec;
2471
- };
2472
-
2473
- exports.default = template;
2474
- });
2475
2305
  enifed('ember-metal/alias', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/error', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/dependent_keys'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalError, _emberMetalProperties, _emberMetalComputed, _emberMetalUtils, _emberMetalMeta, _emberMetalDependent_keys) {
2476
2306
  'use strict';
2477
2307
 
@@ -2549,10 +2379,10 @@ enifed("ember-metal/assign", ["exports"], function (exports) {
2549
2379
  Copy properties from a source object to a target object.
2550
2380
 
2551
2381
  ```javascript
2552
- var a = {first: 'Yehuda'};
2553
- var b = {last: 'Katz'};
2554
- var c = {company: 'Tilde Inc.'};
2555
- Ember.assign(a, b, c); // a === {first: 'Yehuda', last: 'Katz', company: 'Tilde Inc.'}, b === {last: 'Katz'}, c === {company: 'Tilde Inc.'}
2382
+ var a = { first: 'Yehuda' };
2383
+ var b = { last: 'Katz' };
2384
+ var c = { company: 'Tilde Inc.' };
2385
+ Ember.assign(a, b, c); // a === { first: 'Yehuda', last: 'Katz', company: 'Tilde Inc.' }, b === { last: 'Katz' }, c === { company: 'Tilde Inc.' }
2556
2386
  ```
2557
2387
 
2558
2388
  @method assign
@@ -2749,7 +2579,7 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
2749
2579
 
2750
2580
  _emberMetalEvents.addListener(obj, 'willDestroy', this, 'disconnect');
2751
2581
 
2752
- fireDeprecations(obj, this._to, this._from, possibleGlobal, this._oneWay, !possibleGlobal && !this._oneWay);
2582
+ fireDeprecations(possibleGlobal, this._oneWay, !possibleGlobal && !this._oneWay);
2753
2583
 
2754
2584
  this._readyToSync = true;
2755
2585
  this._fromObj = fromObj;
@@ -2858,23 +2688,22 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
2858
2688
 
2859
2689
  };
2860
2690
 
2861
- function fireDeprecations(obj, toPath, fromPath, deprecateGlobal, deprecateOneWay, deprecateAlias) {
2691
+ function fireDeprecations(deprecateGlobal, deprecateOneWay, deprecateAlias) {
2862
2692
  var deprecateGlobalMessage = '`Ember.Binding` is deprecated. Since you' + ' are binding to a global consider using a service instead.';
2863
2693
  var deprecateOneWayMessage = '`Ember.Binding` is deprecated. Since you' + ' are using a `oneWay` binding consider using a `readOnly` computed' + ' property instead.';
2864
2694
  var deprecateAliasMessage = '`Ember.Binding` is deprecated. Consider' + ' using an `alias` computed property instead.';
2865
2695
 
2866
- var objectInfo = 'The `' + toPath + '` property of `' + obj + '` is an `Ember.Binding` connected to `' + fromPath + '`, but ';
2867
- _emberMetalDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
2696
+ _emberMetalDebug.deprecate(deprecateGlobalMessage, !deprecateGlobal, {
2868
2697
  id: 'ember-metal.binding',
2869
2698
  until: '3.0.0',
2870
2699
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
2871
2700
  });
2872
- _emberMetalDebug.deprecate(objectInfo + deprecateOneWayMessage, !deprecateOneWay, {
2701
+ _emberMetalDebug.deprecate(deprecateOneWayMessage, !deprecateOneWay, {
2873
2702
  id: 'ember-metal.binding',
2874
2703
  until: '3.0.0',
2875
2704
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
2876
2705
  });
2877
- _emberMetalDebug.deprecate(objectInfo + deprecateAliasMessage, !deprecateAlias, {
2706
+ _emberMetalDebug.deprecate(deprecateAliasMessage, !deprecateAlias, {
2878
2707
  id: 'ember-metal.binding',
2879
2708
  until: '3.0.0',
2880
2709
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
@@ -3067,39 +2896,40 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
3067
2896
  enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
3068
2897
  'use strict';
3069
2898
 
3070
- exports.default = Cache;
2899
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3071
2900
 
3072
- function Cache(limit, func) {
3073
- this.store = new _emberMetalEmpty_object.default();
3074
- this.size = 0;
3075
- this.misses = 0;
3076
- this.hits = 0;
3077
- this.limit = limit;
3078
- this.func = func;
3079
- }
2901
+ var Cache = (function () {
2902
+ function Cache(limit, func, key, store) {
2903
+ _classCallCheck(this, Cache);
3080
2904
 
3081
- var UNDEFINED = function () {};
2905
+ this.size = 0;
2906
+ this.misses = 0;
2907
+ this.hits = 0;
2908
+ this.limit = limit;
2909
+ this.func = func;
2910
+ this.key = key;
2911
+ this.store = store || new DefaultStore();
2912
+ }
3082
2913
 
3083
- Cache.prototype = {
3084
- set: function (key, value) {
2914
+ Cache.prototype.set = function set(obj, value) {
3085
2915
  if (this.limit > this.size) {
2916
+ var key = this.key === undefined ? obj : this.key(obj);
3086
2917
  this.size++;
3087
2918
  if (value === undefined) {
3088
- this.store[key] = UNDEFINED;
2919
+ this.store.set(key, UNDEFINED);
3089
2920
  } else {
3090
- this.store[key] = value;
2921
+ this.store.set(key, value);
3091
2922
  }
3092
2923
  }
3093
-
3094
2924
  return value;
3095
- },
3096
-
3097
- get: function (key) {
3098
- var value = this.store[key];
2925
+ };
3099
2926
 
2927
+ Cache.prototype.get = function get(obj) {
2928
+ var key = this.key === undefined ? obj : this.key(obj);
2929
+ var value = this.store.get(key);
3100
2930
  if (value === undefined) {
3101
2931
  this.misses++;
3102
- value = this.set(key, this.func(key));
2932
+ value = this.set(key, this.func(obj));
3103
2933
  } else if (value === UNDEFINED) {
3104
2934
  this.hits++;
3105
2935
  value = undefined;
@@ -3109,15 +2939,43 @@ enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (e
3109
2939
  }
3110
2940
 
3111
2941
  return value;
3112
- },
2942
+ };
3113
2943
 
3114
- purge: function () {
3115
- this.store = new _emberMetalEmpty_object.default();
2944
+ Cache.prototype.purge = function purge() {
2945
+ this.store.clear();
3116
2946
  this.size = 0;
3117
2947
  this.hits = 0;
3118
2948
  this.misses = 0;
2949
+ };
2950
+
2951
+ return Cache;
2952
+ })();
2953
+
2954
+ exports.default = Cache;
2955
+
2956
+ function UNDEFINED() {}
2957
+
2958
+ var DefaultStore = (function () {
2959
+ function DefaultStore() {
2960
+ _classCallCheck(this, DefaultStore);
2961
+
2962
+ this.data = new _emberMetalEmpty_object.default();
3119
2963
  }
3120
- };
2964
+
2965
+ DefaultStore.prototype.get = function get(key) {
2966
+ return this.data[key];
2967
+ };
2968
+
2969
+ DefaultStore.prototype.set = function set(key, value) {
2970
+ this.data[key] = value;
2971
+ };
2972
+
2973
+ DefaultStore.prototype.clear = function clear() {
2974
+ this.data = new _emberMetalEmpty_object.default();
2975
+ };
2976
+
2977
+ return DefaultStore;
2978
+ })();
3121
2979
  });
3122
2980
  enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/empty_object', 'ember-metal/watch_path'], function (exports, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalEmpty_object, _emberMetalWatch_path) {
3123
2981
  'use strict';
@@ -3332,7 +3190,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
3332
3190
  copy: function (obj) {
3333
3191
  var ret = new ChainNode(null, null, obj);
3334
3192
  var paths = this._paths;
3335
- var path;
3193
+ var path = undefined;
3336
3194
 
3337
3195
  for (path in paths) {
3338
3196
  // this check will also catch non-number vals.
@@ -3372,7 +3230,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
3372
3230
 
3373
3231
  chain: function (key, path) {
3374
3232
  var chains = this._chains;
3375
- var node;
3233
+ var node = undefined;
3376
3234
  if (chains === undefined) {
3377
3235
  chains = this._chains = new _emberMetalEmpty_object.default();
3378
3236
  } else {
@@ -3425,7 +3283,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
3425
3283
 
3426
3284
  // then notify chains...
3427
3285
  var chains = this._chains;
3428
- var node;
3286
+ var node = undefined;
3429
3287
  if (chains) {
3430
3288
  for (var key in chains) {
3431
3289
  node = chains[key];
@@ -3601,7 +3459,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
3601
3459
  this._getter = config;
3602
3460
  } else {
3603
3461
  _emberMetalDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
3604
- _emberMetalDebug.assert('Config object pased to a Ember.computed can only contain `get` or `set` keys.', (function () {
3462
+ _emberMetalDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', (function () {
3605
3463
  var keys = Object.keys(config);
3606
3464
  for (var i = 0; i < keys.length; i++) {
3607
3465
  if (keys[i] !== 'get' && keys[i] !== 'set') {
@@ -3710,14 +3568,13 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
3710
3568
  @public
3711
3569
  */
3712
3570
  ComputedPropertyPrototype.property = function () {
3713
- var args;
3571
+ var args = [];
3714
3572
 
3715
- var addArg = function (property) {
3573
+ function addArg(property) {
3716
3574
  _emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + 'You cannot use nested forms like todos.@each.owner.name or todos.@each.owner.@each.name. ' + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
3717
3575
  args.push(property);
3718
- };
3576
+ }
3719
3577
 
3720
- args = [];
3721
3578
  for (var i = 0; i < arguments.length; i++) {
3722
3579
  _emberMetalExpand_properties.default(arguments[i], addArg);
3723
3580
  }
@@ -3995,7 +3852,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
3995
3852
  */
3996
3853
 
3997
3854
  function computed(func) {
3998
- var args;
3855
+ var args = undefined;
3999
3856
 
4000
3857
  if (arguments.length > 1) {
4001
3858
  args = [].slice.call(arguments);
@@ -4190,7 +4047,8 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], functi
4190
4047
  function addDependentKeys(desc, obj, keyName, meta) {
4191
4048
  // the descriptor has a list of dependent keys, so
4192
4049
  // add all of its dependent keys.
4193
- var idx, depKey;
4050
+ var idx = undefined,
4051
+ depKey = undefined;
4194
4052
  var depKeys = desc._dependentKeys;
4195
4053
  if (!depKeys) {
4196
4054
  return;
@@ -4209,13 +4067,12 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], functi
4209
4067
  // the descriptor has a list of dependent keys, so
4210
4068
  // remove all of its dependent keys.
4211
4069
  var depKeys = desc._dependentKeys;
4212
- var idx, depKey;
4213
4070
  if (!depKeys) {
4214
4071
  return;
4215
4072
  }
4216
4073
 
4217
- for (idx = 0; idx < depKeys.length; idx++) {
4218
- depKey = depKeys[idx];
4074
+ for (var idx = 0; idx < depKeys.length; idx++) {
4075
+ var depKey = depKeys[idx];
4219
4076
  // Decrement the number of times depKey depends on keyName.
4220
4077
  meta.writeDeps(depKey, keyName, (meta.peekDeps(depKey, keyName) || 0) - 1);
4221
4078
  // Unwatch the depKey
@@ -4276,7 +4133,7 @@ enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], functi
4276
4133
  // only makes sense for long-lived dictionaries that aren't instantiated often.
4277
4134
 
4278
4135
  function makeDictionary(parent) {
4279
- var dict;
4136
+ var dict = undefined;
4280
4137
  if (parent === null) {
4281
4138
  dict = new _emberMetalEmpty_object.default();
4282
4139
  } else {
@@ -4355,6 +4212,18 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
4355
4212
  exports.dispatchError = dispatchError;
4356
4213
  exports.setDispatchOverride = setDispatchOverride;
4357
4214
 
4215
+ // To maintain stacktrace consistency across browsers
4216
+ var getStack = function (error) {
4217
+ var stack = error.stack;
4218
+ var message = error.message;
4219
+
4220
+ if (stack.indexOf(message) === -1) {
4221
+ stack = message + '\n' + stack;
4222
+ }
4223
+
4224
+ return stack;
4225
+ };
4226
+
4358
4227
  var onerror = undefined;
4359
4228
  // Ember.onerror getter
4360
4229
 
@@ -4392,7 +4261,7 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
4392
4261
  if (onerror) {
4393
4262
  onerror(error);
4394
4263
  } else {
4395
- _emberConsole.default.error(error.stack);
4264
+ _emberConsole.default.error(getStack(error));
4396
4265
  }
4397
4266
  }
4398
4267
  });
@@ -4706,13 +4575,13 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils
4706
4575
 
4707
4576
 
4708
4577
  ``` javascript
4709
- var Job = Ember.Object.extend({
4578
+ let Job = Ember.Object.extend({
4710
4579
  logCompleted: Ember.on('completed', function() {
4711
4580
  console.log('Job completed!');
4712
4581
  })
4713
4582
  });
4714
4583
 
4715
- var job = Job.create();
4584
+ let job = Job.create();
4716
4585
 
4717
4586
  Ember.sendEvent(job, 'completed'); // Logs 'Job completed!'
4718
4587
  ```
@@ -4906,7 +4775,7 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
4906
4775
  return ret;
4907
4776
  }
4908
4777
  });
4909
- enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/version', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-console', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberEnvironment, _emberVersion, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberConsole, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalTesting, _emberMetalError_handler, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
4778
+ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/version', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-console', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/weak_map', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberEnvironment, _emberVersion, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberConsole, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalWeak_map, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalTesting, _emberMetalError_handler, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
4910
4779
  /**
4911
4780
  @module ember
4912
4781
  @submodule ember-metal
@@ -4985,6 +4854,9 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
4985
4854
  _emberMetalCore.default.set = _emberMetalProperty_set.set;
4986
4855
  _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
4987
4856
 
4857
+ if (false) {
4858
+ _emberMetalCore.default.WeakMap = _emberMetalWeak_map.default;
4859
+ }
4988
4860
  _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
4989
4861
  _emberMetalCore.default.Map = _emberMetalMap.Map;
4990
4862
  _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
@@ -5020,7 +4892,6 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5020
4892
  _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
5021
4893
  _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
5022
4894
 
5023
- _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
5024
4895
  _emberMetalCore.default.required = _emberMetalMixin.required;
5025
4896
  _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
5026
4897
  _emberMetalCore.default.observer = _emberMetalMixin.observer;
@@ -5054,6 +4925,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5054
4925
 
5055
4926
  return new BackburnerAlias(arguments);
5056
4927
  };
4928
+
5057
4929
  _emberMetalCore.default._Backburner = _backburner.default;
5058
4930
 
5059
4931
  /**
@@ -5087,7 +4959,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5087
4959
  return _emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION;
5088
4960
  },
5089
4961
  set: function (value) {
5090
- return _emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION = !!value;
4962
+ _emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION = !!value;
5091
4963
  },
5092
4964
  enumerable: false
5093
4965
  });
@@ -5097,7 +4969,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5097
4969
  return _emberEnvironment.ENV.LOG_VERSION;
5098
4970
  },
5099
4971
  set: function (value) {
5100
- return _emberEnvironment.ENV.LOG_VERSION = !!value;
4972
+ _emberEnvironment.ENV.LOG_VERSION = !!value;
5101
4973
  },
5102
4974
  enumerable: false
5103
4975
  });
@@ -5107,7 +4979,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5107
4979
  return _emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS;
5108
4980
  },
5109
4981
  set: function (value) {
5110
- return _emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS = !!value;
4982
+ _emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS = !!value;
5111
4983
  },
5112
4984
  enumerable: false
5113
4985
  });
@@ -5117,7 +4989,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5117
4989
  return _emberEnvironment.ENV.LOG_BINDINGS;
5118
4990
  },
5119
4991
  set: function (value) {
5120
- return _emberEnvironment.ENV.LOG_BINDINGS = !!value;
4992
+ _emberEnvironment.ENV.LOG_BINDINGS = !!value;
5121
4993
  },
5122
4994
  enumerable: false
5123
4995
  });
@@ -5139,7 +5011,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5139
5011
  return _emberEnvironment.context.lookup;
5140
5012
  },
5141
5013
  set: function (value) {
5142
- return _emberEnvironment.context.lookup = value;
5014
+ _emberEnvironment.context.lookup = value;
5143
5015
  },
5144
5016
  enumerable: false
5145
5017
  });
@@ -5226,6 +5098,8 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
5226
5098
  enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties', 'container/owner'], function (exports, _emberMetalDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties, _containerOwner) {
5227
5099
  'use strict';
5228
5100
 
5101
+ exports.default = InjectedProperty;
5102
+
5229
5103
  /**
5230
5104
  Read-only property that returns the result of a container lookup.
5231
5105
 
@@ -5237,6 +5111,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
5237
5111
  to the property's name
5238
5112
  @private
5239
5113
  */
5114
+
5240
5115
  function InjectedProperty(type, name) {
5241
5116
  this.type = type;
5242
5117
  this.name = name;
@@ -5265,10 +5140,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
5265
5140
 
5266
5141
  InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
5267
5142
  InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
5268
-
5269
5143
  InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
5270
-
5271
- exports.default = InjectedProperty;
5272
5144
  });
5273
5145
  enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-metal/features'], function (exports, _emberEnvironment, _emberMetalFeatures) {
5274
5146
  'use strict';
@@ -5288,11 +5160,11 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5288
5160
 
5289
5161
  ```javascript
5290
5162
  Ember.subscribe("render", {
5291
- before: function(name, timestamp, payload) {
5163
+ before(name, timestamp, payload) {
5292
5164
 
5293
5165
  },
5294
5166
 
5295
- after: function(name, timestamp, payload) {
5167
+ after(name, timestamp, payload) {
5296
5168
 
5297
5169
  }
5298
5170
  });
@@ -5330,9 +5202,9 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5330
5202
  exports.subscribers = subscribers;
5331
5203
  var cache = {};
5332
5204
 
5333
- var populateListeners = function (name) {
5205
+ function populateListeners(name) {
5334
5206
  var listeners = [];
5335
- var subscriber;
5207
+ var subscriber = undefined;
5336
5208
 
5337
5209
  for (var i = 0; i < subscribers.length; i++) {
5338
5210
  subscriber = subscribers[i];
@@ -5343,7 +5215,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5343
5215
 
5344
5216
  cache[name] = listeners;
5345
5217
  return listeners;
5346
- };
5218
+ }
5347
5219
 
5348
5220
  var time = (function () {
5349
5221
  var perf = 'undefined' !== typeof window ? window.performance || {} : {};
@@ -5388,7 +5260,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5388
5260
  }
5389
5261
  }
5390
5262
 
5391
- var flaggedInstrument;
5263
+ var flaggedInstrument = undefined;
5392
5264
  if (false) {
5393
5265
  exports.flaggedInstrument = flaggedInstrument = instrument;
5394
5266
  } else {
@@ -5427,14 +5299,15 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5427
5299
  var payload = _payload();
5428
5300
 
5429
5301
  var STRUCTURED_PROFILE = _emberEnvironment.ENV.STRUCTURED_PROFILE;
5430
- var timeName;
5302
+ var timeName = undefined;
5431
5303
  if (STRUCTURED_PROFILE) {
5432
5304
  timeName = name + ': ' + payload.object;
5433
5305
  console.time(timeName);
5434
5306
  }
5435
5307
 
5436
5308
  var beforeValues = new Array(listeners.length);
5437
- var i, listener;
5309
+ var i = undefined,
5310
+ listener = undefined;
5438
5311
  var timestamp = time();
5439
5312
  for (i = 0; i < listeners.length; i++) {
5440
5313
  listener = listeners[i];
@@ -5442,7 +5315,8 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5442
5315
  }
5443
5316
 
5444
5317
  return function _instrumentEnd() {
5445
- var i, listener;
5318
+ var i = undefined,
5319
+ listener = undefined;
5446
5320
  var timestamp = time();
5447
5321
  for (i = 0; i < listeners.length; i++) {
5448
5322
  listener = listeners[i];
@@ -5472,7 +5346,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5472
5346
 
5473
5347
  function subscribe(pattern, object) {
5474
5348
  var paths = pattern.split('.');
5475
- var path;
5349
+ var path = undefined;
5476
5350
  var regex = [];
5477
5351
 
5478
5352
  for (var i = 0; i < paths.length; i++) {
@@ -5510,7 +5384,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5510
5384
  */
5511
5385
 
5512
5386
  function unsubscribe(subscriber) {
5513
- var index;
5387
+ var index = undefined;
5514
5388
 
5515
5389
  for (var i = 0; i < subscribers.length; i++) {
5516
5390
  if (subscribers[i] === subscriber) {
@@ -5572,6 +5446,8 @@ enifed('ember-metal/is_blank', ['exports', 'ember-metal/is_empty'], function (ex
5572
5446
  enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-metal/is_none'], function (exports, _emberMetalProperty_get, _emberMetalIs_none) {
5573
5447
  'use strict';
5574
5448
 
5449
+ exports.default = isEmpty;
5450
+
5575
5451
  /**
5576
5452
  Verifies that a value is `null` or an empty string, empty array,
5577
5453
  or empty function.
@@ -5598,6 +5474,7 @@ enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-me
5598
5474
  @return {Boolean}
5599
5475
  @public
5600
5476
  */
5477
+
5601
5478
  function isEmpty(obj) {
5602
5479
  var none = _emberMetalIs_none.default(obj);
5603
5480
  if (none) {
@@ -5622,16 +5499,14 @@ enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-me
5622
5499
  }
5623
5500
 
5624
5501
  if (objectType === 'object') {
5625
- var length = _emberMetalProperty_get.get(obj, 'length');
5626
- if (typeof length === 'number') {
5627
- return !length;
5502
+ var _length = _emberMetalProperty_get.get(obj, 'length');
5503
+ if (typeof _length === 'number') {
5504
+ return !_length;
5628
5505
  }
5629
5506
  }
5630
5507
 
5631
5508
  return false;
5632
5509
  }
5633
-
5634
- exports.default = isEmpty;
5635
5510
  });
5636
5511
  enifed("ember-metal/is_none", ["exports"], function (exports) {
5637
5512
  /**
@@ -5755,7 +5630,7 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe
5755
5630
 
5756
5631
  deRegister: function (name) {
5757
5632
  var lib = this._getLibraryByName(name);
5758
- var index;
5633
+ var index = undefined;
5759
5634
 
5760
5635
  if (lib) {
5761
5636
  index = this._registry.indexOf(lib);
@@ -5958,14 +5833,13 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob
5958
5833
  }
5959
5834
 
5960
5835
  var list = this.list;
5961
- var i;
5962
5836
 
5963
5837
  if (arguments.length === 2) {
5964
- for (i = 0; i < list.length; i++) {
5838
+ for (var i = 0; i < list.length; i++) {
5965
5839
  fn.call(arguments[1], list[i]);
5966
5840
  }
5967
5841
  } else {
5968
- for (i = 0; i < list.length; i++) {
5842
+ for (var i = 0; i < list.length; i++) {
5969
5843
  fn(list[i]);
5970
5844
  }
5971
5845
  }
@@ -6155,16 +6029,17 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob
6155
6029
  }
6156
6030
 
6157
6031
  var map = this;
6158
- var cb, thisArg;
6032
+ var cb = undefined,
6033
+ thisArg = undefined;
6159
6034
 
6160
6035
  if (arguments.length === 2) {
6161
6036
  thisArg = arguments[1];
6162
6037
  cb = function (key) {
6163
- callback.call(thisArg, map.get(key), key, map);
6038
+ return callback.call(thisArg, map.get(key), key, map);
6164
6039
  };
6165
6040
  } else {
6166
6041
  cb = function (key) {
6167
- callback(map.get(key), key, map);
6042
+ return callback(map.get(key), key, map);
6168
6043
  };
6169
6044
  }
6170
6045
 
@@ -6269,10 +6144,10 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
6269
6144
  Merge the contents of two objects together into the first object.
6270
6145
 
6271
6146
  ```javascript
6272
- Ember.merge({first: 'Tom'}, {last: 'Dale'}); // {first: 'Tom', last: 'Dale'}
6273
- var a = {first: 'Yehuda'};
6274
- var b = {last: 'Katz'};
6275
- Ember.merge(a, b); // a == {first: 'Yehuda', last: 'Katz'}, b == {last: 'Katz'}
6147
+ Ember.merge({ first: 'Tom' }, { last: 'Dale' }); // { first: 'Tom', last: 'Dale' }
6148
+ var a = { first: 'Yehuda' };
6149
+ var b = { last: 'Katz' };
6150
+ Ember.merge(a, b); // a == { first: 'Yehuda', last: 'Katz' }, b == { last: 'Katz' }
6276
6151
  ```
6277
6152
 
6278
6153
  @method merge
@@ -6292,7 +6167,7 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
6292
6167
  }
6293
6168
 
6294
6169
  var props = Object.keys(updates);
6295
- var prop;
6170
+ var prop = undefined;
6296
6171
 
6297
6172
  for (var i = 0; i < props.length; i++) {
6298
6173
  prop = props[i];
@@ -6899,6 +6774,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6899
6774
  @module ember
6900
6775
  @submodule ember-metal
6901
6776
  */
6777
+ exports.detectBinding = detectBinding;
6902
6778
  exports.mixin = mixin;
6903
6779
  exports.default = Mixin;
6904
6780
  exports.hasUnprocessedMixins = hasUnprocessedMixins;
@@ -6912,7 +6788,6 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6912
6788
  function ROOT() {}
6913
6789
  ROOT.__hasSuper = false;
6914
6790
 
6915
- var REQUIRED;
6916
6791
  var a_slice = [].slice;
6917
6792
 
6918
6793
  function isMethod(obj) {
@@ -6922,7 +6797,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6922
6797
  var CONTINUE = {};
6923
6798
 
6924
6799
  function mixinProperties(mixinsMeta, mixin) {
6925
- var guid;
6800
+ var guid = undefined;
6926
6801
 
6927
6802
  if (mixin instanceof Mixin) {
6928
6803
  guid = _emberMetalUtils.guidFor(mixin);
@@ -6937,7 +6812,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6937
6812
  }
6938
6813
 
6939
6814
  function concatenatedMixinProperties(concatProp, props, values, base) {
6940
- var concats;
6815
+ var concats = undefined;
6941
6816
 
6942
6817
  // reset before adding each new mixin to pickup concats from previous
6943
6818
  concats = values[concatProp] || base[concatProp];
@@ -6949,7 +6824,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6949
6824
  }
6950
6825
 
6951
6826
  function giveDescriptorSuper(meta, key, property, values, descs, base) {
6952
- var superProperty;
6827
+ var superProperty = undefined;
6953
6828
 
6954
6829
  // Computed properties override methods, and do not call super to them
6955
6830
  if (values[key] === undefined) {
@@ -6987,7 +6862,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
6987
6862
  }
6988
6863
 
6989
6864
  function giveMethodSuper(obj, key, method, values, descs) {
6990
- var superMethod;
6865
+ var superMethod = undefined;
6991
6866
 
6992
6867
  // Methods overwrite computed properties, and do not call super to them.
6993
6868
  if (descs[key] === undefined) {
@@ -7093,7 +6968,12 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7093
6968
  }
7094
6969
 
7095
6970
  function mergeMixins(mixins, m, descs, values, base, keys) {
7096
- var currentMixin, props, key, concats, mergings, meta;
6971
+ var currentMixin = undefined,
6972
+ props = undefined,
6973
+ key = undefined,
6974
+ concats = undefined,
6975
+ mergings = undefined,
6976
+ meta = undefined;
7097
6977
 
7098
6978
  function removeKeys(keyName) {
7099
6979
  delete descs[keyName];
@@ -7138,14 +7018,16 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7138
7018
  }
7139
7019
  }
7140
7020
 
7141
- var IS_BINDING = /^.+Binding$/;
7021
+ function detectBinding(key) {
7022
+ var length = key.length;
7142
7023
 
7143
- function detectBinding(obj, key, value, m) {
7144
- if (IS_BINDING.test(key)) {
7145
- m.writeBindings(key, value);
7146
- }
7024
+ return length > 7 && key.charCodeAt(length - 7) === 66 && key.indexOf('inding', length - 6) !== -1;
7147
7025
  }
7148
7026
 
7027
+ // warm both paths of above function
7028
+ detectBinding('notbound');
7029
+ detectBinding('fooBinding');
7030
+
7149
7031
  function connectBindings(obj, m) {
7150
7032
  // TODO Mixin.apply(instance) should disconnect binding if exists
7151
7033
  m.forEachBindings(function (key, binding) {
@@ -7173,8 +7055,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7173
7055
 
7174
7056
  function followAlias(obj, desc, m, descs, values) {
7175
7057
  var altKey = desc.methodName;
7176
- var value;
7177
- var possibleDesc;
7058
+ var value = undefined;
7059
+ var possibleDesc = undefined;
7178
7060
  if (descs[altKey] || values[altKey]) {
7179
7061
  value = values[altKey];
7180
7062
  desc = descs[altKey];
@@ -7220,7 +7102,9 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7220
7102
  var values = {};
7221
7103
  var m = _emberMetalMeta.meta(obj);
7222
7104
  var keys = [];
7223
- var key, value, desc;
7105
+ var key = undefined,
7106
+ value = undefined,
7107
+ desc = undefined;
7224
7108
 
7225
7109
  obj._super = ROOT;
7226
7110
 
@@ -7257,7 +7141,11 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7257
7141
  }
7258
7142
 
7259
7143
  replaceObserversAndListeners(obj, key, value);
7260
- detectBinding(obj, key, value, m);
7144
+
7145
+ if (detectBinding(key)) {
7146
+ m.writeBindings(key, value);
7147
+ }
7148
+
7261
7149
  _emberMetalProperties.defineProperty(obj, key, desc, value, m);
7262
7150
  }
7263
7151
 
@@ -7419,7 +7307,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7419
7307
  @private
7420
7308
  */
7421
7309
  MixinPrototype.reopen = function () {
7422
- var currentMixin;
7310
+ var currentMixin = undefined;
7423
7311
 
7424
7312
  if (this.properties) {
7425
7313
  currentMixin = new Mixin(undefined, this.properties);
@@ -7430,7 +7318,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7430
7318
  }
7431
7319
 
7432
7320
  var mixins = this.mixins;
7433
- var idx;
7321
+ var idx = undefined;
7434
7322
 
7435
7323
  for (idx = 0; idx < arguments.length; idx++) {
7436
7324
  currentMixin = arguments[idx];
@@ -7563,7 +7451,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7563
7451
  return ret;
7564
7452
  };
7565
7453
 
7566
- exports.REQUIRED = REQUIRED = new _emberMetalProperties.Descriptor();
7454
+ var REQUIRED = new _emberMetalProperties.Descriptor();
7567
7455
  REQUIRED.toString = function () {
7568
7456
  return '(Required Property)';
7569
7457
  };
@@ -7599,7 +7487,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7599
7487
  moniker: Ember.aliasMethod('name')
7600
7488
  });
7601
7489
 
7602
- var goodGuy = App.Person.create();
7490
+ let goodGuy = App.Person.create();
7603
7491
 
7604
7492
  goodGuy.name(); // 'Tomhuda Katzdale'
7605
7493
  goodGuy.moniker(); // 'Tomhuda Katzdale'
@@ -7647,7 +7535,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7647
7535
  }
7648
7536
 
7649
7537
  var func = args.slice(-1)[0];
7650
- var paths;
7538
+ var paths = undefined;
7651
7539
 
7652
7540
  var addWatchedProperty = function (path) {
7653
7541
  paths.push(path);
@@ -7730,7 +7618,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7730
7618
  valueDidChange: Ember.observer('content.value', function(obj, keyName) {
7731
7619
  // only run if updating a value already in the DOM
7732
7620
  if (this.get('state') === 'inDOM') {
7733
- var color = obj.get(keyName) > this.changingFrom ? 'green' : 'red';
7621
+ let color = obj.get(keyName) > this.changingFrom ? 'green' : 'red';
7734
7622
  // logic
7735
7623
  }
7736
7624
  }),
@@ -7760,7 +7648,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7760
7648
  }
7761
7649
 
7762
7650
  var func = args.slice(-1)[0];
7763
- var paths;
7651
+ var paths = undefined;
7764
7652
 
7765
7653
  var addWatchedProperty = function (path) {
7766
7654
  paths.push(path);
@@ -7789,7 +7677,6 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
7789
7677
  return func;
7790
7678
  }
7791
7679
 
7792
- exports.IS_BINDING = IS_BINDING;
7793
7680
  exports.Mixin = Mixin;
7794
7681
  exports.required = required;
7795
7682
  exports.REQUIRED = REQUIRED;
@@ -7911,6 +7798,8 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
7911
7798
  enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal/events'], function (exports, _emberMetalUtils, _emberMetalEvents) {
7912
7799
  'use strict';
7913
7800
 
7801
+ exports.default = ObserverSet;
7802
+
7914
7803
  /*
7915
7804
  this.observerSet = {
7916
7805
  [senderGuid]: { // variable name: `keySet`
@@ -7929,7 +7818,6 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
7929
7818
  ...
7930
7819
  ]
7931
7820
  */
7932
- exports.default = ObserverSet;
7933
7821
 
7934
7822
  function ObserverSet() {
7935
7823
  this.clear();
@@ -7940,7 +7828,7 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
7940
7828
  var observers = this.observers;
7941
7829
  var senderGuid = _emberMetalUtils.guidFor(sender);
7942
7830
  var keySet = observerSet[senderGuid];
7943
- var index;
7831
+ var index = undefined;
7944
7832
 
7945
7833
  if (!keySet) {
7946
7834
  observerSet[senderGuid] = keySet = {};
@@ -7960,7 +7848,9 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
7960
7848
 
7961
7849
  ObserverSet.prototype.flush = function () {
7962
7850
  var observers = this.observers;
7963
- var i, observer, sender;
7851
+ var i = undefined,
7852
+ observer = undefined,
7853
+ sender = undefined;
7964
7854
  this.clear();
7965
7855
  for (i = 0; i < observers.length; ++i) {
7966
7856
  observer = observers[i];
@@ -7994,15 +7884,12 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
7994
7884
  var isGlobalCache = new _emberMetalCache.default(1000, function (key) {
7995
7885
  return IS_GLOBAL.test(key);
7996
7886
  });
7997
-
7998
7887
  var isGlobalPathCache = new _emberMetalCache.default(1000, function (key) {
7999
7888
  return IS_GLOBAL_PATH.test(key);
8000
7889
  });
8001
-
8002
7890
  var hasThisCache = new _emberMetalCache.default(1000, function (key) {
8003
7891
  return key.lastIndexOf(HAS_THIS, 0) === 0;
8004
7892
  });
8005
-
8006
7893
  var firstDotIndexCache = new _emberMetalCache.default(1000, function (key) {
8007
7894
  return key.indexOf('.');
8008
7895
  });
@@ -8192,7 +8079,10 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8192
8079
  */
8193
8080
 
8194
8081
  function defineProperty(obj, keyName, desc, data, meta) {
8195
- var possibleDesc, existingDesc, watching, value;
8082
+ var possibleDesc = undefined,
8083
+ existingDesc = undefined,
8084
+ watching = undefined,
8085
+ value = undefined;
8196
8086
 
8197
8087
  if (!meta) {
8198
8088
  meta = _emberMetalMeta.meta(obj);
@@ -8381,7 +8271,8 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8381
8271
  _emberMetalTags.markObjectAsDirty(m);
8382
8272
  }
8383
8273
 
8384
- var WILL_SEEN, DID_SEEN;
8274
+ var WILL_SEEN = undefined,
8275
+ DID_SEEN = undefined;
8385
8276
  // called whenever a property is about to change to clear the cache of any dependent keys (and notify those properties of changes, etc...)
8386
8277
  function dependentKeysWillChange(obj, depKey, meta) {
8387
8278
  if (obj.isDestroying) {
@@ -8390,15 +8281,15 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8390
8281
 
8391
8282
  if (meta && meta.hasDeps(depKey)) {
8392
8283
  var seen = WILL_SEEN;
8393
- var top = !seen;
8284
+ var _top = !seen;
8394
8285
 
8395
- if (top) {
8286
+ if (_top) {
8396
8287
  seen = WILL_SEEN = {};
8397
8288
  }
8398
8289
 
8399
8290
  iterDeps(propertyWillChange, obj, depKey, seen, meta);
8400
8291
 
8401
- if (top) {
8292
+ if (_top) {
8402
8293
  WILL_SEEN = null;
8403
8294
  }
8404
8295
  }
@@ -8412,22 +8303,23 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8412
8303
 
8413
8304
  if (meta && meta.hasDeps(depKey)) {
8414
8305
  var seen = DID_SEEN;
8415
- var top = !seen;
8306
+ var _top2 = !seen;
8416
8307
 
8417
- if (top) {
8308
+ if (_top2) {
8418
8309
  seen = DID_SEEN = {};
8419
8310
  }
8420
8311
 
8421
8312
  iterDeps(propertyDidChange, obj, depKey, seen, meta);
8422
8313
 
8423
- if (top) {
8314
+ if (_top2) {
8424
8315
  DID_SEEN = null;
8425
8316
  }
8426
8317
  }
8427
8318
  }
8428
8319
 
8429
8320
  function iterDeps(method, obj, depKey, seen, meta) {
8430
- var possibleDesc, desc;
8321
+ var possibleDesc = undefined,
8322
+ desc = undefined;
8431
8323
  var guid = _emberMetalUtils.guidFor(obj);
8432
8324
  var current = seen[guid];
8433
8325
 
@@ -8530,7 +8422,8 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8530
8422
  }
8531
8423
 
8532
8424
  var eventName = keyName + ':before';
8533
- var listeners, added;
8425
+ var listeners = undefined,
8426
+ added = undefined;
8534
8427
  if (deferred) {
8535
8428
  listeners = beforeObserverSet.add(obj, keyName, eventName);
8536
8429
  added = _emberMetalEvents.accumulateListeners(obj, eventName, listeners);
@@ -8546,7 +8439,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8546
8439
  }
8547
8440
 
8548
8441
  var eventName = keyName + ':change';
8549
- var listeners;
8442
+ var listeners = undefined;
8550
8443
  if (deferred) {
8551
8444
  listeners = observerSet.add(obj, keyName, eventName);
8552
8445
  _emberMetalEvents.accumulateListeners(obj, eventName, listeners);
@@ -8625,7 +8518,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
8625
8518
 
8626
8519
  var value = obj[keyName];
8627
8520
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
8628
- var ret;
8521
+ var ret = undefined;
8629
8522
 
8630
8523
  if (desc === undefined && _emberMetalPath_cache.isPath(keyName)) {
8631
8524
  return _getPath(obj, keyName);
@@ -8788,10 +8681,8 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
8788
8681
  }
8789
8682
 
8790
8683
  function setPath(root, path, value, tolerant) {
8791
- var keyName;
8792
-
8793
8684
  // get the last part of the path
8794
- keyName = path.slice(path.lastIndexOf('.') + 1);
8685
+ var keyName = path.slice(path.lastIndexOf('.') + 1);
8795
8686
 
8796
8687
  // get the first part of the part
8797
8688
  path = path === keyName ? keyName : path.slice(0, path.length - (keyName.length + 1));
@@ -8849,7 +8740,8 @@ enifed("ember-metal/replace", ["exports"], function (exports) {
8849
8740
  var size = 60000;
8850
8741
  var start = idx;
8851
8742
  var ends = amt;
8852
- var count, chunk;
8743
+ var count = undefined,
8744
+ chunk = undefined;
8853
8745
 
8854
8746
  while (args.length) {
8855
8747
  count = ends > size ? size : ends;
@@ -9365,43 +9257,43 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
9365
9257
  `run.throttle()`.
9366
9258
 
9367
9259
  ```javascript
9368
- var runNext = run.next(myContext, function() {
9260
+ let runNext = run.next(myContext, function() {
9369
9261
  // will not be executed
9370
9262
  });
9371
9263
 
9372
9264
  run.cancel(runNext);
9373
9265
 
9374
- var runLater = run.later(myContext, function() {
9266
+ let runLater = run.later(myContext, function() {
9375
9267
  // will not be executed
9376
9268
  }, 500);
9377
9269
 
9378
9270
  run.cancel(runLater);
9379
9271
 
9380
- var runScheduleOnce = run.scheduleOnce('afterRender', myContext, function() {
9272
+ let runScheduleOnce = run.scheduleOnce('afterRender', myContext, function() {
9381
9273
  // will not be executed
9382
9274
  });
9383
9275
 
9384
9276
  run.cancel(runScheduleOnce);
9385
9277
 
9386
- var runOnce = run.once(myContext, function() {
9278
+ let runOnce = run.once(myContext, function() {
9387
9279
  // will not be executed
9388
9280
  });
9389
9281
 
9390
9282
  run.cancel(runOnce);
9391
9283
 
9392
- var throttle = run.throttle(myContext, function() {
9284
+ let throttle = run.throttle(myContext, function() {
9393
9285
  // will not be executed
9394
9286
  }, 1, false);
9395
9287
 
9396
9288
  run.cancel(throttle);
9397
9289
 
9398
- var debounce = run.debounce(myContext, function() {
9290
+ let debounce = run.debounce(myContext, function() {
9399
9291
  // will not be executed
9400
9292
  }, 1);
9401
9293
 
9402
9294
  run.cancel(debounce);
9403
9295
 
9404
- var debounceImmediate = run.debounce(myContext, function() {
9296
+ let debounceImmediate = run.debounce(myContext, function() {
9405
9297
  // will be executed since we passed in true (immediate)
9406
9298
  }, 100, true);
9407
9299
 
@@ -9434,7 +9326,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
9434
9326
  console.log(this.name + ' ran.');
9435
9327
  }
9436
9328
 
9437
- var myContext = { name: 'debounce' };
9329
+ let myContext = { name: 'debounce' };
9438
9330
 
9439
9331
  run.debounce(myContext, whoRan, 150);
9440
9332
 
@@ -9457,7 +9349,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
9457
9349
  console.log(this.name + ' ran.');
9458
9350
  }
9459
9351
 
9460
- var myContext = { name: 'debounce' };
9352
+ let myContext = { name: 'debounce' };
9461
9353
 
9462
9354
  run.debounce(myContext, whoRan, 150, true);
9463
9355
 
@@ -9500,7 +9392,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
9500
9392
  console.log(this.name + ' ran.');
9501
9393
  }
9502
9394
 
9503
- var myContext = { name: 'throttle' };
9395
+ let myContext = { name: 'throttle' };
9504
9396
 
9505
9397
  run.throttle(myContext, whoRan, 150);
9506
9398
  // whoRan is invoked with context myContext
@@ -9561,7 +9453,7 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
9561
9453
  observers will be buffered.
9562
9454
 
9563
9455
  ```javascript
9564
- var anObject = Ember.Object.create();
9456
+ let anObject = Ember.Object.create();
9565
9457
 
9566
9458
  anObject.setProperties({
9567
9459
  firstName: 'Stanley',
@@ -9583,7 +9475,7 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
9583
9475
  }
9584
9476
  _emberMetalProperty_events.changeProperties(function () {
9585
9477
  var props = Object.keys(properties);
9586
- var propertyName;
9478
+ var propertyName = undefined;
9587
9479
 
9588
9480
  for (var i = 0; i < props.length; i++) {
9589
9481
  propertyName = props[i];
@@ -9903,7 +9795,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
9903
9795
  return '(null)';
9904
9796
  }
9905
9797
 
9906
- var ret;
9798
+ var ret = undefined;
9907
9799
  var type = typeof obj;
9908
9800
 
9909
9801
  // Don't allow prototype changes to String etc. to change the guidFor
@@ -10030,7 +9922,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
10030
9922
  Checks to see if the `methodName` exists on the `obj`.
10031
9923
 
10032
9924
  ```javascript
10033
- var foo = { bar: function() { return 'bar'; }, baz: null };
9925
+ let foo = { bar: function() { return 'bar'; }, baz: null };
10034
9926
 
10035
9927
  Ember.canInvoke(foo, 'bar'); // true
10036
9928
  Ember.canInvoke(foo, 'baz'); // false
@@ -10053,7 +9945,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
10053
9945
  and if it does, invokes it with the arguments passed.
10054
9946
 
10055
9947
  ```javascript
10056
- var d = new Date('03/15/2013');
9948
+ let d = new Date('03/15/2013');
10057
9949
 
10058
9950
  Ember.tryInvoke(d, 'getTime'); // 1363320000000
10059
9951
  Ember.tryInvoke(d, 'setFullYear', [2014]); // 1394856000000
@@ -10093,7 +9985,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
10093
9985
  Ember.makeArray('lindsay'); // ['lindsay']
10094
9986
  Ember.makeArray([1, 2, 42]); // [1, 2, 42]
10095
9987
 
10096
- var controller = Ember.ArrayProxy.create({ content: [] });
9988
+ let controller = Ember.ArrayProxy.create({ content: [] });
10097
9989
 
10098
9990
  Ember.makeArray(controller) === controller; // true
10099
9991
  ```
@@ -10148,7 +10040,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
10148
10040
  }
10149
10041
 
10150
10042
  // Object.prototype.toString === {}.toString
10151
- var v;
10043
+ var v = undefined;
10152
10044
  var ret = [];
10153
10045
  for (var key in obj) {
10154
10046
  if (obj.hasOwnProperty(key)) {
@@ -10472,7 +10364,10 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
10472
10364
 
10473
10365
  function destroy(obj) {
10474
10366
  var meta = _emberMetalMeta.peekMeta(obj);
10475
- var node, nodes, key, nodeObject;
10367
+ var node = undefined,
10368
+ nodes = undefined,
10369
+ key = undefined,
10370
+ nodeObject = undefined;
10476
10371
 
10477
10372
  if (meta) {
10478
10373
  _emberMetalMeta.deleteMeta(obj);
@@ -10504,7 +10399,7 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
10504
10399
  }
10505
10400
  }
10506
10401
  });
10507
- enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/utils', 'ember-metal/meta'], function (exports, _emberMetalDebug, _emberMetalUtils, _emberMetalMeta) {
10402
+ enifed('ember-metal/weak_map', ['exports', 'ember-metal/utils', 'ember-metal/meta'], function (exports, _emberMetalUtils, _emberMetalMeta) {
10508
10403
  'use strict';
10509
10404
 
10510
10405
  exports.default = WeakMap;
@@ -10512,9 +10407,15 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10512
10407
  var id = 0;
10513
10408
  function UNDEFINED() {}
10514
10409
 
10410
+ // Returns whether Type(value) is Object according to the terminology in the spec
10411
+ function isObject(value) {
10412
+ return typeof value === 'object' && value !== null || typeof value === 'function';
10413
+ }
10414
+
10515
10415
  /*
10516
- * @private
10517
10416
  * @class Ember.WeakMap
10417
+ * @public
10418
+ * @category ember-metal-weakmap
10518
10419
  *
10519
10420
  * A partial polyfill for [WeakMap](http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects).
10520
10421
  *
@@ -10525,10 +10426,26 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10525
10426
  * in ember-metal.
10526
10427
  */
10527
10428
 
10528
- function WeakMap() {
10529
- _emberMetalDebug.assert('Invoking the WeakMap constructor with arguments is not supported at this time', arguments.length === 0);
10429
+ function WeakMap(iterable) {
10430
+ if (!(this instanceof WeakMap)) {
10431
+ throw new TypeError('Constructor WeakMap requires \'new\'');
10432
+ }
10530
10433
 
10531
10434
  this._id = _emberMetalUtils.GUID_KEY + id++;
10435
+
10436
+ if (iterable === null || iterable === undefined) {
10437
+ return;
10438
+ } else if (Array.isArray(iterable)) {
10439
+ for (var i = 0; i < iterable.length; i++) {
10440
+ var _iterable$i = iterable[i];
10441
+ var key = _iterable$i[0];
10442
+ var value = _iterable$i[1];
10443
+
10444
+ this.set(key, value);
10445
+ }
10446
+ } else {
10447
+ throw new TypeError('The weak map constructor polyfill only supports an array argument');
10448
+ }
10532
10449
  }
10533
10450
 
10534
10451
  /*
@@ -10537,6 +10454,10 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10537
10454
  * @return {Any} stored value
10538
10455
  */
10539
10456
  WeakMap.prototype.get = function (obj) {
10457
+ if (!isObject(obj)) {
10458
+ return undefined;
10459
+ }
10460
+
10540
10461
  var meta = _emberMetalMeta.peekMeta(obj);
10541
10462
  if (meta) {
10542
10463
  var map = meta.readableWeak();
@@ -10557,7 +10478,9 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10557
10478
  * @return {WeakMap} the weak map
10558
10479
  */
10559
10480
  WeakMap.prototype.set = function (obj, value) {
10560
- _emberMetalDebug.assert('Uncaught TypeError: Invalid value used as weak map key', obj && (typeof obj === 'object' || typeof obj === 'function'));
10481
+ if (!isObject(obj)) {
10482
+ throw new TypeError('Invalid value used as weak map key');
10483
+ }
10561
10484
 
10562
10485
  if (value === undefined) {
10563
10486
  value = UNDEFINED;
@@ -10574,6 +10497,10 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10574
10497
  * @return {boolean} if the key exists
10575
10498
  */
10576
10499
  WeakMap.prototype.has = function (obj) {
10500
+ if (!isObject(obj)) {
10501
+ return false;
10502
+ }
10503
+
10577
10504
  var meta = _emberMetalMeta.peekMeta(obj);
10578
10505
  if (meta) {
10579
10506
  var map = meta.readableWeak();
@@ -10598,6 +10525,14 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
10598
10525
  return false;
10599
10526
  }
10600
10527
  };
10528
+
10529
+ /*
10530
+ * @method toString
10531
+ * @return {String}
10532
+ */
10533
+ WeakMap.prototype.toString = function () {
10534
+ return '[object WeakMap]';
10535
+ };
10601
10536
  });
10602
10537
  enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-template-compiler/compiler'], function (exports, _emberMetalCore, _emberTemplateCompilerCompiler) {
10603
10538
  'use strict';
@@ -10609,12 +10544,10 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
10609
10544
 
10610
10545
  var precompile = _compiler.precompile;
10611
10546
  var compile = _compiler.compile;
10612
- var template = _compiler.template;
10613
10547
  var registerPlugin = _compiler.registerPlugin;
10614
10548
 
10615
10549
  EmberHTMLBars.precompile = EmberHandlebars.precompile = precompile;
10616
10550
  EmberHTMLBars.compile = EmberHandlebars.compile = compile;
10617
- EmberHTMLBars.template = EmberHandlebars.template = template;
10618
10551
  EmberHTMLBars.registerPlugin = registerPlugin;
10619
10552
  });
10620
10553
  // reexports
@@ -10625,7 +10558,9 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'embe
10625
10558
  */
10626
10559
  'use strict';
10627
10560
 
10628
- var compile, compileSpec, compileOptions;
10561
+ var compile = undefined,
10562
+ compileSpec = undefined,
10563
+ compileOptions = undefined;
10629
10564
 
10630
10565
  // Note we don't really want to expose this from main file
10631
10566
  if (false) {
@@ -10668,7 +10603,7 @@ enifed('ember-template-compiler/compiler', ['exports', 'ember-metal/features', '
10668
10603
  return compiler;
10669
10604
  }
10670
10605
  });
10671
- enifed('ember-template-compiler/index', ['exports', 'ember-template-compiler/compat', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/register-plugin', 'ember-template-compiler/system/compile-options', 'ember-template-compiler/system/template'], function (exports, _emberTemplateCompilerCompat, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemRegisterPlugin, _emberTemplateCompilerSystemCompileOptions, _emberTemplateCompilerSystemTemplate) {
10606
+ enifed('ember-template-compiler/index', ['exports', 'ember-template-compiler/compat', 'ember-template-compiler/system/bootstrap', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/register-plugin', 'ember-template-compiler/system/compile-options'], function (exports, _emberTemplateCompilerCompat, _emberTemplateCompilerSystemBootstrap, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemRegisterPlugin, _emberTemplateCompilerSystemCompileOptions) {
10672
10607
  'use strict';
10673
10608
 
10674
10609
  exports._Ember = _emberMetal.default;
@@ -10677,10 +10612,11 @@ enifed('ember-template-compiler/index', ['exports', 'ember-template-compiler/com
10677
10612
  exports.compile = _emberTemplateCompilerSystemCompile.default;
10678
10613
  exports.registerPlugin = _emberTemplateCompilerSystemRegisterPlugin.default;
10679
10614
  exports.defaultCompileOptions = _emberTemplateCompilerSystemCompileOptions.default;
10680
- exports.template = _emberTemplateCompilerSystemTemplate.default;
10681
10615
 
10682
10616
  // used for adding Ember.Handlebars.compile for backwards compat
10683
10617
  });
10618
+
10619
+ // used to bootstrap templates
10684
10620
  enifed('ember-template-compiler/plugins/deprecate-render-model', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
10685
10621
  'use strict';
10686
10622
 
@@ -10736,14 +10672,16 @@ enifed('ember-template-compiler/plugins/deprecate-render-model', ['exports', 'em
10736
10672
  return 'Please refactor `' + original + '` to a component and invoke via' + (' `' + preferred + '`. ' + sourceInformation);
10737
10673
  }
10738
10674
  });
10739
- enifed('ember-template-compiler/plugins/index', ['exports', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/deprecate-render-model', 'ember-template-compiler/plugins/transform-inline-link-to'], function (exports, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsDeprecateRenderModel, _emberTemplateCompilerPluginsTransformInlineLinkTo) {
10675
+ enifed('ember-template-compiler/plugins/index', ['exports', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/deprecate-render-model', 'ember-template-compiler/plugins/transform-inline-link-to', 'ember-template-compiler/plugins/transform-old-class-binding-syntax'], function (exports, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsDeprecateRenderModel, _emberTemplateCompilerPluginsTransformInlineLinkTo, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax) {
10740
10676
  'use strict';
10741
10677
 
10742
- exports.default = Object.freeze([_emberTemplateCompilerPluginsTransformOldBindingSyntax.default, _emberTemplateCompilerPluginsTransformItemClass.default, _emberTemplateCompilerPluginsTransformAngleBracketComponents.default, _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default, _emberTemplateCompilerPluginsTransformTopLevelComponents.default, _emberTemplateCompilerPluginsDeprecateRenderModel.default, _emberTemplateCompilerPluginsTransformInlineLinkTo.default]);
10678
+ exports.default = Object.freeze([_emberTemplateCompilerPluginsTransformOldBindingSyntax.default, _emberTemplateCompilerPluginsTransformItemClass.default, _emberTemplateCompilerPluginsTransformAngleBracketComponents.default, _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default, _emberTemplateCompilerPluginsTransformTopLevelComponents.default, _emberTemplateCompilerPluginsDeprecateRenderModel.default, _emberTemplateCompilerPluginsTransformInlineLinkTo.default, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default]);
10743
10679
  });
10744
10680
  enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) {
10745
10681
  'use strict';
10746
10682
 
10683
+ exports.default = TransformAngleBracketComponents;
10684
+
10747
10685
  function TransformAngleBracketComponents() {
10748
10686
  // set later within HTMLBars to the syntax package
10749
10687
  this.syntax = null;
@@ -10771,8 +10709,6 @@ enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['e
10771
10709
  function validate(node) {
10772
10710
  return node.type === 'ComponentNode';
10773
10711
  }
10774
-
10775
- exports.default = TransformAngleBracketComponents;
10776
10712
  });
10777
10713
  enifed('ember-template-compiler/plugins/transform-inline-link-to', ['exports'], function (exports) {
10778
10714
  'use strict';
@@ -10826,6 +10762,8 @@ enifed('ember-template-compiler/plugins/transform-inline-link-to', ['exports'],
10826
10762
  enifed('ember-template-compiler/plugins/transform-input-on-to-onEvent', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
10827
10763
  'use strict';
10828
10764
 
10765
+ exports.default = TransformInputOnToOnEvent;
10766
+
10829
10767
  /**
10830
10768
  @module ember
10831
10769
  @submodule ember-htmlbars
@@ -10849,6 +10787,7 @@ enifed('ember-template-compiler/plugins/transform-input-on-to-onEvent', ['export
10849
10787
  @private
10850
10788
  @class TransformInputOnToOnEvent
10851
10789
  */
10790
+
10852
10791
  function TransformInputOnToOnEvent() {
10853
10792
  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
10854
10793
 
@@ -10940,8 +10879,6 @@ enifed('ember-template-compiler/plugins/transform-input-on-to-onEvent', ['export
10940
10879
 
10941
10880
  hash.pairs = newPairs;
10942
10881
  }
10943
-
10944
- exports.default = TransformInputOnToOnEvent;
10945
10882
  });
10946
10883
  enifed('ember-template-compiler/plugins/transform-item-class', ['exports'], function (exports) {
10947
10884
  'use strict';
@@ -10961,7 +10898,8 @@ enifed('ember-template-compiler/plugins/transform-item-class', ['exports'], func
10961
10898
  return;
10962
10899
  }
10963
10900
 
10964
- each(node.hash.pairs, function (pair) {
10901
+ for (var i = 0; i < node.hash.pairs.length; i++) {
10902
+ var pair = node.hash.pairs[i];
10965
10903
  var key = pair.key;
10966
10904
  var value = pair.value;
10967
10905
 
@@ -10980,7 +10918,7 @@ enifed('ember-template-compiler/plugins/transform-item-class', ['exports'], func
10980
10918
  var sexpr = b.sexpr(b.string('if'), params);
10981
10919
 
10982
10920
  pair.value = sexpr;
10983
- });
10921
+ }
10984
10922
  });
10985
10923
 
10986
10924
  return ast;
@@ -10989,12 +10927,6 @@ enifed('ember-template-compiler/plugins/transform-item-class', ['exports'], func
10989
10927
  function validate(node) {
10990
10928
  return (node.type === 'BlockStatement' || node.type === 'MustacheStatement') && node.path.original === 'collection';
10991
10929
  }
10992
-
10993
- function each(list, callback) {
10994
- for (var i = 0; i < list.length; i++) {
10995
- callback(list[i]);
10996
- }
10997
- }
10998
10930
  });
10999
10931
  enifed('ember-template-compiler/plugins/transform-old-binding-syntax', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
11000
10932
  'use strict';
@@ -11016,7 +10948,8 @@ enifed('ember-template-compiler/plugins/transform-old-binding-syntax', ['exports
11016
10948
  return;
11017
10949
  }
11018
10950
 
11019
- each(node.hash.pairs, function (pair) {
10951
+ for (var i = 0; i < node.hash.pairs.length; i++) {
10952
+ var pair = node.hash.pairs[i];
11020
10953
  var key = pair.key;
11021
10954
  var value = pair.value;
11022
10955
 
@@ -11038,7 +10971,7 @@ enifed('ember-template-compiler/plugins/transform-old-binding-syntax', ['exports
11038
10971
  pair.value = b.path(value.original);
11039
10972
  }
11040
10973
  }
11041
- });
10974
+ }
11042
10975
  });
11043
10976
 
11044
10977
  return ast;
@@ -11048,12 +10981,6 @@ enifed('ember-template-compiler/plugins/transform-old-binding-syntax', ['exports
11048
10981
  return node.type === 'BlockStatement' || node.type === 'MustacheStatement';
11049
10982
  }
11050
10983
 
11051
- function each(list, callback) {
11052
- for (var i = 0; i < list.length; i++) {
11053
- callback(list[i]);
11054
- }
11055
- }
11056
-
11057
10984
  function exprToString(expr) {
11058
10985
  switch (expr.type) {
11059
10986
  case 'StringLiteral':
@@ -11063,9 +10990,151 @@ enifed('ember-template-compiler/plugins/transform-old-binding-syntax', ['exports
11063
10990
  }
11064
10991
  }
11065
10992
  });
10993
+ enifed('ember-template-compiler/plugins/transform-old-class-binding-syntax', ['exports'], function (exports) {
10994
+ 'use strict';
10995
+
10996
+ exports.default = TransformOldClassBindingSyntax;
10997
+
10998
+ function TransformOldClassBindingSyntax(options) {
10999
+ this.syntax = null;
11000
+ this.options = options;
11001
+ }
11002
+
11003
+ TransformOldClassBindingSyntax.prototype.transform = function TransformOldClassBindingSyntax_transform(ast) {
11004
+ var b = this.syntax.builders;
11005
+ var walker = new this.syntax.Walker();
11006
+
11007
+ walker.visit(ast, function (node) {
11008
+ if (!validate(node)) {
11009
+ return;
11010
+ }
11011
+
11012
+ var allOfTheMicrosyntaxes = [];
11013
+ var allOfTheMicrosyntaxIndexes = [];
11014
+ var classPair = undefined;
11015
+
11016
+ each(node.hash.pairs, function (pair, index) {
11017
+ var key = pair.key;
11018
+
11019
+ if (key === 'classBinding' || key === 'classNameBindings') {
11020
+ allOfTheMicrosyntaxIndexes.push(index);
11021
+ allOfTheMicrosyntaxes.push(pair);
11022
+ } else if (key === 'class') {
11023
+ classPair = pair;
11024
+ }
11025
+ });
11026
+
11027
+ if (allOfTheMicrosyntaxes.length === 0) {
11028
+ return;
11029
+ }
11030
+
11031
+ var classValue = [];
11032
+
11033
+ if (classPair) {
11034
+ classValue.push(classPair.value);
11035
+ classValue.push(b.string(' '));
11036
+ } else {
11037
+ classPair = b.pair('class', null);
11038
+ node.hash.pairs.push(classPair);
11039
+ }
11040
+
11041
+ each(allOfTheMicrosyntaxIndexes, function (index) {
11042
+ node.hash.pairs.splice(index, 1);
11043
+ });
11044
+
11045
+ each(allOfTheMicrosyntaxes, function (_ref) {
11046
+ var value = _ref.value;
11047
+ var loc = _ref.loc;
11048
+
11049
+ var sexprs = [];
11050
+ // TODO: add helpful deprecation when both `classNames` and `classNameBindings` can
11051
+ // be removed.
11052
+
11053
+ if (value.type === 'StringLiteral') {
11054
+ var microsyntax = parseMicrosyntax(value.original);
11055
+
11056
+ buildSexprs(microsyntax, sexprs, b);
11057
+
11058
+ classValue.push.apply(classValue, sexprs);
11059
+ }
11060
+ });
11061
+
11062
+ var hash = b.hash();
11063
+ classPair.value = b.sexpr(b.path('concat'), classValue, hash);
11064
+ });
11065
+
11066
+ return ast;
11067
+ };
11068
+
11069
+ function buildSexprs(microsyntax, sexprs, b) {
11070
+ for (var i = 0; i < microsyntax.length; i++) {
11071
+ var _microsyntax$i = microsyntax[i];
11072
+ var propName = _microsyntax$i[0];
11073
+ var activeClass = _microsyntax$i[1];
11074
+ var inactiveClass = _microsyntax$i[2];
11075
+
11076
+ var sexpr = undefined;
11077
+
11078
+ // :my-class-name microsyntax for static values
11079
+ if (propName === '') {
11080
+ sexpr = b.string(activeClass);
11081
+ } else {
11082
+ var params = [b.path(propName)];
11083
+
11084
+ if (activeClass || activeClass === '') {
11085
+ params.push(b.string(activeClass));
11086
+ } else {
11087
+ var sexprParams = [b.string(propName), b.path(propName)];
11088
+
11089
+ var hash = b.hash();
11090
+ if (activeClass !== undefined) {
11091
+ hash.pairs.push(b.pair('activeClass', b.string(activeClass)));
11092
+ }
11093
+
11094
+ if (inactiveClass !== undefined) {
11095
+ hash.pairs.push(b.pair('inactiveClass', b.string(inactiveClass)));
11096
+ }
11097
+
11098
+ params.push(b.sexpr(b.string('-normalize-class'), sexprParams, hash));
11099
+ }
11100
+
11101
+ if (inactiveClass || inactiveClass === '') {
11102
+ params.push(b.string(inactiveClass));
11103
+ }
11104
+
11105
+ sexpr = b.sexpr(b.path('if'), params);
11106
+ }
11107
+
11108
+ sexprs.push(sexpr);
11109
+ sexprs.push(b.string(' '));
11110
+ }
11111
+ }
11112
+
11113
+ function validate(node) {
11114
+ return node.type === 'BlockStatement' || node.type === 'MustacheStatement';
11115
+ }
11116
+
11117
+ function each(list, callback) {
11118
+ for (var i = 0; i < list.length; i++) {
11119
+ callback(list[i], i);
11120
+ }
11121
+ }
11122
+
11123
+ function parseMicrosyntax(string) {
11124
+ var segments = string.split(' ');
11125
+
11126
+ for (var i = 0; i < segments.length; i++) {
11127
+ segments[i] = segments[i].split(':');
11128
+ }
11129
+
11130
+ return segments;
11131
+ }
11132
+ });
11066
11133
  enifed('ember-template-compiler/plugins/transform-top-level-components', ['exports'], function (exports) {
11067
11134
  'use strict';
11068
11135
 
11136
+ exports.default = TransformTopLevelComponents;
11137
+
11069
11138
  function TransformTopLevelComponents() {
11070
11139
  // set later within HTMLBars to the syntax package
11071
11140
  this.syntax = null;
@@ -11124,8 +11193,67 @@ enifed('ember-template-compiler/plugins/transform-top-level-components', ['expor
11124
11193
  componentCallback(lastComponentNode);
11125
11194
  }
11126
11195
  }
11196
+ });
11197
+ enifed('ember-template-compiler/system/bootstrap', ['exports', 'ember-metal/error', 'ember-template-compiler', 'ember-templates/template_registry'], function (exports, _emberMetalError, _emberTemplateCompiler, _emberTemplatesTemplate_registry) {
11198
+ /**
11199
+ @module ember
11200
+ @submodule ember-templates
11201
+ */
11127
11202
 
11128
- exports.default = TransformTopLevelComponents;
11203
+ 'use strict';
11204
+
11205
+ /**
11206
+ @module ember
11207
+ @submodule ember-templates
11208
+ */
11209
+
11210
+ /**
11211
+ Find templates stored in the head tag as script tags and make them available
11212
+ to `Ember.CoreView` in the global `Ember.TEMPLATES` object.
11213
+
11214
+ Script tags with `text/x-handlebars` will be compiled
11215
+ with Ember's template compiler and are suitable for use as a view's template.
11216
+
11217
+ @private
11218
+ @method bootstrap
11219
+ @for Ember.HTMLBars
11220
+ @static
11221
+ @param ctx
11222
+ */
11223
+ function bootstrap() {
11224
+ var context = arguments.length <= 0 || arguments[0] === undefined ? document : arguments[0];
11225
+
11226
+ var selector = 'script[type="text/x-handlebars"]';
11227
+
11228
+ var elements = context.querySelectorAll(selector);
11229
+
11230
+ for (var i = 0; i < elements.length; i++) {
11231
+ var script = elements[i];
11232
+
11233
+ // Get the name of the script
11234
+ // First look for data-template-name attribute, then fall back to its
11235
+ // id if no name is found.
11236
+ var templateName = script.getAttribute('data-template-name') || script.getAttribute('id') || 'application';
11237
+ var template = undefined;
11238
+
11239
+ template = _emberTemplateCompiler.compile(script.innerHTML, {
11240
+ moduleName: templateName
11241
+ });
11242
+
11243
+ // Check if template of same name already exists.
11244
+ if (_emberTemplatesTemplate_registry.has(templateName)) {
11245
+ throw new _emberMetalError.default('Template named "' + templateName + '" already exists.');
11246
+ }
11247
+
11248
+ // For templates which have a name, we save them and then remove them from the DOM.
11249
+ _emberTemplatesTemplate_registry.set(templateName, template);
11250
+
11251
+ // Remove script tag from DOM.
11252
+ script.parentNode.removeChild(script);
11253
+ }
11254
+ }
11255
+
11256
+ exports.default = bootstrap;
11129
11257
  });
11130
11258
  enifed('ember-template-compiler/system/calculate-location-display', ['exports'], function (exports) {
11131
11259
  'use strict';
@@ -11229,14 +11357,258 @@ enifed('ember-template-compiler/system/register-plugin', ['exports', 'ember-temp
11229
11357
  var registerPlugin = _compiler.registerPlugin;
11230
11358
  exports.default = registerPlugin;
11231
11359
  });
11232
- enifed('ember-template-compiler/system/template', ['exports', 'ember-template-compiler/compiler'], function (exports, _emberTemplateCompilerCompiler) {
11360
+ enifed('ember-templates/compat', ['exports', 'ember-metal/core', 'ember-templates/template', 'ember-templates/string', 'ember-runtime/system/string', 'ember-metal/features', 'ember-templates/make-bound-helper'], function (exports, _emberMetalCore, _emberTemplatesTemplate, _emberTemplatesString, _emberRuntimeSystemString, _emberMetalFeatures, _emberTemplatesMakeBoundHelper) {
11233
11361
  'use strict';
11234
11362
 
11235
- var _compiler = _emberTemplateCompilerCompiler.default();
11363
+ var EmberHandlebars = _emberMetalCore.default.Handlebars = _emberMetalCore.default.Handlebars || {};
11364
+ exports.EmberHandlebars = EmberHandlebars;
11365
+ var EmberHTMLBars = _emberMetalCore.default.HTMLBars = _emberMetalCore.default.HTMLBars || {};
11366
+ exports.EmberHTMLBars = EmberHTMLBars;
11367
+ var EmberHandleBarsUtils = EmberHandlebars.Utils = EmberHandlebars.Utils || {};
11368
+
11369
+ exports.EmberHandleBarsUtils = EmberHandleBarsUtils;
11370
+ Object.defineProperty(EmberHandlebars, 'SafeString', {
11371
+ get: _emberTemplatesString.getSafeString
11372
+ });
11373
+
11374
+ EmberHTMLBars.template = EmberHandlebars.template = _emberTemplatesTemplate.default;
11375
+ EmberHandleBarsUtils.escapeExpression = _emberTemplatesString.escapeExpression;
11376
+ _emberRuntimeSystemString.default.htmlSafe = _emberTemplatesString.htmlSafe;
11377
+
11378
+ if (true) {
11379
+ _emberRuntimeSystemString.default.isHTMLSafe = _emberTemplatesString.isHTMLSafe;
11380
+ }
11381
+ EmberHTMLBars.makeBoundHelper = _emberTemplatesMakeBoundHelper.default;
11382
+ });
11383
+ // reexports
11384
+ enifed('ember-templates/component', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11385
+ 'use strict';
11386
+
11387
+ exports.default = (function () {
11388
+ if (false) {
11389
+ return _require.default('ember-glimmer/component').default;
11390
+ } else {
11391
+ return _require.default('ember-htmlbars/component').default;
11392
+ }
11393
+ })();
11394
+ });
11395
+ enifed('ember-templates/components/checkbox', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11396
+ 'use strict';
11397
+
11398
+ exports.default = (function () {
11399
+ if (false) {
11400
+ return _require.default('ember-glimmer/components/checkbox').default;
11401
+ } else {
11402
+ return _require.default('ember-htmlbars/components/checkbox').default;
11403
+ }
11404
+ })();
11405
+ });
11406
+ enifed('ember-templates/components/link-to', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11407
+ 'use strict';
11408
+
11409
+ exports.default = (function () {
11410
+ if (false) {
11411
+ return _require.default('ember-glimmer/components/link-to').default;
11412
+ } else {
11413
+ return _require.default('ember-htmlbars/components/link-to').default;
11414
+ }
11415
+ })();
11416
+ });
11417
+ enifed('ember-templates/components/text_area', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11418
+ 'use strict';
11419
+
11420
+ exports.default = (function () {
11421
+ if (false) {
11422
+ return _require.default('ember-glimmer/components/text_area').default;
11423
+ } else {
11424
+ return _require.default('ember-htmlbars/components/text_area').default;
11425
+ }
11426
+ })();
11427
+ });
11428
+ enifed('ember-templates/components/text_field', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11429
+ 'use strict';
11430
+
11431
+ exports.default = (function () {
11432
+ if (false) {
11433
+ return _require.default('ember-glimmer/components/text_field').default;
11434
+ } else {
11435
+ return _require.default('ember-htmlbars/components/text_field').default;
11436
+ }
11437
+ })();
11438
+ });
11439
+ enifed('ember-templates/helper', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11440
+ 'use strict';
11441
+
11442
+ exports.default = (function () {
11443
+ if (false) {
11444
+ return _require.default('ember-glimmer/helper').default;
11445
+ } else {
11446
+ return _require.default('ember-htmlbars/helper').default;
11447
+ }
11448
+ })();
11449
+
11450
+ var helper = (function () {
11451
+ if (false) {
11452
+ return _require.default('ember-glimmer/helper').helper;
11453
+ } else {
11454
+ return _require.default('ember-htmlbars/helper').helper;
11455
+ }
11456
+ })();
11457
+ exports.helper = helper;
11458
+ });
11459
+ enifed('ember-templates/index', ['exports', 'ember-metal/core', 'ember-templates/template_registry', 'ember-templates/renderer', 'ember-templates/component', 'ember-templates/helper', 'ember-templates/components/checkbox', 'ember-templates/components/text_field', 'ember-templates/components/text_area', 'ember-templates/components/link-to', 'ember-templates/string', 'ember-environment', 'ember-templates/compat'], function (exports, _emberMetalCore, _emberTemplatesTemplate_registry, _emberTemplatesRenderer, _emberTemplatesComponent, _emberTemplatesHelper, _emberTemplatesComponentsCheckbox, _emberTemplatesComponentsText_field, _emberTemplatesComponentsText_area, _emberTemplatesComponentsLinkTo, _emberTemplatesString, _emberEnvironment, _emberTemplatesCompat) {
11460
+ 'use strict';
11461
+
11462
+ _emberMetalCore.default._Renderer = _emberTemplatesRenderer.Renderer;
11463
+ _emberMetalCore.default.Component = _emberTemplatesComponent.default;
11464
+ _emberTemplatesHelper.default.helper = _emberTemplatesHelper.helper;
11465
+ _emberMetalCore.default.Helper = _emberTemplatesHelper.default;
11466
+ _emberMetalCore.default.Checkbox = _emberTemplatesComponentsCheckbox.default;
11467
+ _emberMetalCore.default.TextField = _emberTemplatesComponentsText_field.default;
11468
+ _emberMetalCore.default.TextArea = _emberTemplatesComponentsText_area.default;
11469
+ _emberMetalCore.default.LinkComponent = _emberTemplatesComponentsLinkTo.default;
11470
+
11471
+ if (_emberEnvironment.ENV.EXTEND_PROTOTYPES.String) {
11472
+ String.prototype.htmlSafe = function () {
11473
+ return _emberTemplatesString.htmlSafe(this);
11474
+ };
11475
+ }
11476
+
11477
+ /**
11478
+ Global hash of shared templates. This will automatically be populated
11479
+ by the build tools so that you can store your Handlebars templates in
11480
+ separate files that get loaded into JavaScript at buildtime.
11481
+
11482
+ @property TEMPLATES
11483
+ @for Ember
11484
+ @type Object
11485
+ @private
11486
+ */
11487
+ Object.defineProperty(_emberMetalCore.default, 'TEMPLATES', {
11488
+ get: _emberTemplatesTemplate_registry.getTemplates,
11489
+ set: _emberTemplatesTemplate_registry.setTemplates,
11490
+ configurable: false,
11491
+ enumerable: false
11492
+ });
11493
+
11494
+ exports.default = _emberMetalCore.default;
11495
+ });
11496
+ // reexports
11497
+ enifed('ember-templates/make-bound-helper', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11498
+ 'use strict';
11499
+
11500
+ exports.default = (function () {
11501
+ if (false) {
11502
+ return _require.default('ember-glimmer/make-bound-helper').default;
11503
+ } else {
11504
+ return _require.default('ember-htmlbars/make-bound-helper').default;
11505
+ }
11506
+ })();
11507
+ });
11508
+ enifed('ember-templates/renderer', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11509
+ 'use strict';
11510
+
11511
+ var InteractiveRenderer = (function () {
11512
+ if (false) {
11513
+ return _require.default('ember-glimmer/renderer').InteractiveRenderer;
11514
+ } else {
11515
+ return _require.default('ember-htmlbars/renderer').InteractiveRenderer;
11516
+ }
11517
+ })();
11518
+
11519
+ exports.InteractiveRenderer = InteractiveRenderer;
11520
+ var InertRenderer = (function () {
11521
+ if (false) {
11522
+ return _require.default('ember-glimmer/renderer').InertRenderer;
11523
+ } else {
11524
+ return _require.default('ember-htmlbars/renderer').InertRenderer;
11525
+ }
11526
+ })();
11527
+
11528
+ exports.InertRenderer = InertRenderer;
11529
+ var Renderer = (function () {
11530
+ if (false) {
11531
+ return _require.default('ember-glimmer/renderer').Renderer;
11532
+ } else {
11533
+ return _require.default('ember-htmlbars/renderer').Renderer;
11534
+ }
11535
+ })();
11536
+ exports.Renderer = Renderer;
11537
+ });
11538
+ enifed('ember-templates/string', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11539
+ 'use strict';
11540
+
11541
+ var strings = (function () {
11542
+ if (false) {
11543
+ return _require.default('ember-glimmer/utils/string');
11544
+ } else {
11545
+ return _require.default('ember-htmlbars/utils/string');
11546
+ }
11547
+ })();
11548
+
11549
+ var SafeString = strings.SafeString;
11550
+ exports.SafeString = SafeString;
11551
+ var escapeExpression = strings.escapeExpression;
11552
+ exports.escapeExpression = escapeExpression;
11553
+ var htmlSafe = strings.htmlSafe;
11554
+ exports.htmlSafe = htmlSafe;
11555
+ var isHTMLSafe = strings.isHTMLSafe;
11556
+ exports.isHTMLSafe = isHTMLSafe;
11557
+ var getSafeString = strings.getSafeString;
11558
+ exports.getSafeString = getSafeString;
11559
+ });
11560
+ enifed('ember-templates/template', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require) {
11561
+ 'use strict';
11562
+
11563
+ var htmlbarsTemplate = undefined,
11564
+ glimmerTemplate = undefined;
11565
+ if (_require.has('ember-htmlbars')) {
11566
+ htmlbarsTemplate = _require.default('ember-htmlbars').template;
11567
+ }
11568
+
11569
+ if (_require.has('ember-glimmer')) {
11570
+ glimmerTemplate = _require.default('ember-glimmer').template;
11571
+ }
11572
+
11573
+ var template = false ? glimmerTemplate : htmlbarsTemplate;
11236
11574
 
11237
- var template = _compiler.template;
11238
11575
  exports.default = template;
11239
11576
  });
11577
+ enifed("ember-templates/template_registry", ["exports"], function (exports) {
11578
+ // STATE within a module is frowned apon, this exists
11579
+ // to support Ember.TEMPLATES but shield ember internals from this legacy
11580
+ // global API.
11581
+ "use strict";
11582
+
11583
+ exports.setTemplates = setTemplates;
11584
+ exports.getTemplates = getTemplates;
11585
+ exports.get = get;
11586
+ exports.has = has;
11587
+ exports.set = set;
11588
+ var TEMPLATES = {};
11589
+
11590
+ function setTemplates(templates) {
11591
+ TEMPLATES = templates;
11592
+ }
11593
+
11594
+ function getTemplates() {
11595
+ return TEMPLATES;
11596
+ }
11597
+
11598
+ function get(name) {
11599
+ if (TEMPLATES.hasOwnProperty(name)) {
11600
+ return TEMPLATES[name];
11601
+ }
11602
+ }
11603
+
11604
+ function has(name) {
11605
+ return TEMPLATES.hasOwnProperty(name);
11606
+ }
11607
+
11608
+ function set(name, template) {
11609
+ return TEMPLATES[name] = template;
11610
+ }
11611
+ });
11240
11612
  enifed("ember/features", ["exports"], function (exports) {
11241
11613
  "use strict";
11242
11614
 
@@ -11245,7 +11617,7 @@ enifed("ember/features", ["exports"], function (exports) {
11245
11617
  enifed("ember/version", ["exports"], function (exports) {
11246
11618
  "use strict";
11247
11619
 
11248
- exports.default = "2.7.2";
11620
+ exports.default = "2.8.0-beta.1";
11249
11621
  });
11250
11622
  enifed("htmlbars-compiler", ["exports", "htmlbars-compiler/compiler"], function (exports, _htmlbarsCompilerCompiler) {
11251
11623
  "use strict";