ember-source 2.7.2 → 2.8.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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";