ember-source 2.3.2 → 2.4.0.beta.2

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.3.2
9
+ * @version 2.4.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, requirejs, Ember;
@@ -43,8 +43,14 @@ var mainContext = this;
43
43
  requirejs = require = requireModule = function(name) {
44
44
  return internalRequire(name, null);
45
45
  }
46
+
47
+ // setup `require` module
46
48
  require['default'] = require;
47
49
 
50
+ require.has = function registryHas(moduleName) {
51
+ return !!registry[moduleName] || !!registry[moduleName + '/index'];
52
+ };
53
+
48
54
  function missingModule(name, referrerName) {
49
55
  if (referrerName) {
50
56
  throw new Error('Could not find module ' + name + ' required by: ' + referrerName);
@@ -53,7 +59,15 @@ var mainContext = this;
53
59
  }
54
60
  }
55
61
 
56
- function internalRequire(name, referrerName) {
62
+ function internalRequire(_name, referrerName) {
63
+ var name = _name;
64
+ var mod = registry[name];
65
+
66
+ if (!mod) {
67
+ name = name + '/index';
68
+ mod = registry[name];
69
+ }
70
+
57
71
  var exports = seen[name];
58
72
 
59
73
  if (exports !== undefined) {
@@ -62,11 +76,10 @@ var mainContext = this;
62
76
 
63
77
  exports = seen[name] = {};
64
78
 
65
- if (!registry[name]) {
66
- missingModule(name, referrerName);
79
+ if (!mod) {
80
+ missingModule(_name, referrerName);
67
81
  }
68
82
 
69
- var mod = registry[name];
70
83
  var deps = mod.deps;
71
84
  var callback = mod.callback;
72
85
  var length = deps.length;
@@ -197,19 +210,8 @@ enifed('backburner/deferred-action-queues', ['exports', 'backburner/utils', 'bac
197
210
  };
198
211
  });
199
212
  enifed('backburner/platform', ['exports'], function (exports) {
200
- // In IE 6-8, try/finally doesn't work without a catch.
201
- // Unfortunately, this is impossible to test for since wrapping it in a parent try/catch doesn't trigger the bug.
202
- // This tests for another broken try/catch behavior that only exhibits in the same versions of IE.
203
213
  'use strict';
204
214
 
205
- var needsIETryCatchFix = (function (e, x) {
206
- try {
207
- x();
208
- } catch (e) {} // jshint ignore:line
209
- return !!e;
210
- })();
211
-
212
- exports.needsIETryCatchFix = needsIETryCatchFix;
213
215
  var platform;
214
216
 
215
217
  /* global self */
@@ -537,9 +539,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
537
539
  };
538
540
  }
539
541
 
540
- // ms of delay before we conclude a timeout was lost
541
- var TIMEOUT_STALLED_THRESHOLD = 1000;
542
-
543
542
  Backburner.prototype = {
544
543
  begin: function () {
545
544
  var options = this.options;
@@ -901,8 +900,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
901
900
  return fn;
902
901
  }
903
902
 
904
- this._reinstallStalledTimerTimeout();
905
-
906
903
  // find position to insert
907
904
  var i = _backburnerBinarySearch.default(executeAt, this._timers);
908
905
 
@@ -1099,21 +1096,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
1099
1096
  this._installTimerTimeout();
1100
1097
  },
1101
1098
 
1102
- _reinstallStalledTimerTimeout: function () {
1103
- if (!this._timerTimeoutId) {
1104
- return;
1105
- }
1106
- // if we have a timer we should always have a this._timerTimeoutId
1107
- var minExpiresAt = this._timers[0];
1108
- var delay = _backburnerUtils.now() - minExpiresAt;
1109
- // threshold of a second before we assume that the currently
1110
- // installed timeout will not run, so we don't constantly reinstall
1111
- // timeouts that are delayed but good still
1112
- if (delay < TIMEOUT_STALLED_THRESHOLD) {
1113
- return;
1114
- }
1115
- },
1116
-
1117
1099
  _reinstallTimerTimeout: function () {
1118
1100
  this._clearTimerTimeout();
1119
1101
  this._installTimerTimeout();
@@ -1142,14 +1124,6 @@ enifed('backburner', ['exports', 'backburner/utils', 'backburner/platform', 'bac
1142
1124
  Backburner.prototype.scheduleOnce = Backburner.prototype.deferOnce;
1143
1125
  Backburner.prototype.later = Backburner.prototype.setTimeout;
1144
1126
 
1145
- if (_backburnerPlatform.needsIETryCatchFix) {
1146
- var originalRun = Backburner.prototype.run;
1147
- Backburner.prototype.run = _backburnerUtils.wrapInTryCatch(originalRun);
1148
-
1149
- var originalEnd = Backburner.prototype.end;
1150
- Backburner.prototype.end = _backburnerUtils.wrapInTryCatch(originalEnd);
1151
- }
1152
-
1153
1127
  function getOnError(options) {
1154
1128
  return options.onError || options.onErrorTarget && options.onErrorTarget[options.onErrorMethod];
1155
1129
  }
@@ -1372,80 +1346,7 @@ enifed('ember-debug/handlers', ['exports', 'ember-debug/is-plain-function', 'emb
1372
1346
  }
1373
1347
  }
1374
1348
  });
1375
- enifed('ember-debug/is-plain-function', ['exports'], function (exports) {
1376
- 'use strict';
1377
-
1378
- exports.default = isPlainFunction;
1379
-
1380
- function isPlainFunction(test) {
1381
- return typeof test === 'function' && test.PrototypeMixin === undefined;
1382
- }
1383
- });
1384
- enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) {
1385
- 'use strict';
1386
-
1387
- var _slice = Array.prototype.slice;
1388
- exports.registerHandler = registerHandler;
1389
- exports.default = warn;
1390
-
1391
- function registerHandler(handler) {
1392
- _emberDebugHandlers.registerHandler('warn', handler);
1393
- }
1394
-
1395
- registerHandler(function logWarning(message, options) {
1396
- _emberMetalLogger.default.warn('WARNING: ' + message);
1397
- if ('trace' in _emberMetalLogger.default) {
1398
- _emberMetalLogger.default.trace();
1399
- }
1400
- });
1401
-
1402
- var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.';
1403
- exports.missingOptionsDeprecation = missingOptionsDeprecation;
1404
- var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
1405
-
1406
- exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
1407
- /**
1408
- @module ember
1409
- @submodule ember-debug
1410
- */
1411
-
1412
- /**
1413
- Display a warning with the provided message. Ember build tools will
1414
- remove any calls to `Ember.warn()` when doing a production build.
1415
-
1416
- @method warn
1417
- @param {String} message A warning to display.
1418
- @param {Boolean} test An optional boolean. If falsy, the warning
1419
- will be displayed.
1420
- @param {Object} options An ojbect that can be used to pass a unique
1421
- `id` for this warning. The `id` can be used by Ember debugging tools
1422
- to change the behavior (raise, log, or silence) for that specific warning.
1423
- The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
1424
- @for Ember
1425
- @public
1426
- */
1427
-
1428
- function warn(message, test, options) {
1429
- if (!options) {
1430
- _emberMetalDebug.deprecate(missingOptionsDeprecation, false, {
1431
- id: 'ember-debug.warn-options-missing',
1432
- until: '3.0.0',
1433
- url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
1434
- });
1435
- }
1436
-
1437
- if (options && !options.id) {
1438
- _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, {
1439
- id: 'ember-debug.warn-id-missing',
1440
- until: '3.0.0',
1441
- url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
1442
- });
1443
- }
1444
-
1445
- _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments)));
1446
- }
1447
- });
1448
- enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) {
1349
+ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment', 'ember-debug/deprecate', 'ember-debug/warn', 'ember-debug/is-plain-function', 'ember-debug/handlers'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalLogger, _emberMetalEnvironment, _emberDebugDeprecate, _emberDebugWarn, _emberDebugIsPlainFunction, _emberDebugHandlers) {
1449
1350
  'use strict';
1450
1351
 
1451
1352
  exports._warnIfUsingStrippedFeatureFlags = _warnIfUsingStrippedFeatureFlags;
@@ -1739,6 +1640,79 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'embe
1739
1640
  _emberMetalDebug.warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.');
1740
1641
  }
1741
1642
  });
1643
+ enifed('ember-debug/is-plain-function', ['exports'], function (exports) {
1644
+ 'use strict';
1645
+
1646
+ exports.default = isPlainFunction;
1647
+
1648
+ function isPlainFunction(test) {
1649
+ return typeof test === 'function' && test.PrototypeMixin === undefined;
1650
+ }
1651
+ });
1652
+ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberMetalLogger, _emberMetalDebug, _emberDebugHandlers) {
1653
+ 'use strict';
1654
+
1655
+ var _slice = Array.prototype.slice;
1656
+ exports.registerHandler = registerHandler;
1657
+ exports.default = warn;
1658
+
1659
+ function registerHandler(handler) {
1660
+ _emberDebugHandlers.registerHandler('warn', handler);
1661
+ }
1662
+
1663
+ registerHandler(function logWarning(message, options) {
1664
+ _emberMetalLogger.default.warn('WARNING: ' + message);
1665
+ if ('trace' in _emberMetalLogger.default) {
1666
+ _emberMetalLogger.default.trace();
1667
+ }
1668
+ });
1669
+
1670
+ var missingOptionsDeprecation = 'When calling `Ember.warn` you ' + 'must provide an `options` hash as the third parameter. ' + '`options` should include an `id` property.';
1671
+ exports.missingOptionsDeprecation = missingOptionsDeprecation;
1672
+ var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
1673
+
1674
+ exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
1675
+ /**
1676
+ @module ember
1677
+ @submodule ember-debug
1678
+ */
1679
+
1680
+ /**
1681
+ Display a warning with the provided message. Ember build tools will
1682
+ remove any calls to `Ember.warn()` when doing a production build.
1683
+
1684
+ @method warn
1685
+ @param {String} message A warning to display.
1686
+ @param {Boolean} test An optional boolean. If falsy, the warning
1687
+ will be displayed.
1688
+ @param {Object} options An ojbect that can be used to pass a unique
1689
+ `id` for this warning. The `id` can be used by Ember debugging tools
1690
+ to change the behavior (raise, log, or silence) for that specific warning.
1691
+ The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
1692
+ @for Ember
1693
+ @public
1694
+ */
1695
+
1696
+ function warn(message, test, options) {
1697
+ if (!options) {
1698
+ _emberMetalDebug.deprecate(missingOptionsDeprecation, false, {
1699
+ id: 'ember-debug.warn-options-missing',
1700
+ until: '3.0.0',
1701
+ url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
1702
+ });
1703
+ }
1704
+
1705
+ if (options && !options.id) {
1706
+ _emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, {
1707
+ id: 'ember-debug.warn-id-missing',
1708
+ until: '3.0.0',
1709
+ url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
1710
+ });
1711
+ }
1712
+
1713
+ _emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments)));
1714
+ }
1715
+ });
1742
1716
  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) {
1743
1717
  'use strict';
1744
1718
 
@@ -2440,9 +2414,9 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
2440
2414
  },
2441
2415
 
2442
2416
  // key: the string key that is part of a path changed
2443
- // revalidate: boolean the chains that are watching this value should revalidate
2444
- // callback: function that will be called with the the object and path that
2445
- // will be/are invalidated by this key change depending on the
2417
+ // revalidate: boolean; the chains that are watching this value should revalidate
2418
+ // callback: function that will be called with the object and path that
2419
+ // will be/are invalidated by this key change, depending on
2446
2420
  // whether the revalidate flag is passed
2447
2421
  notify: function (key, revalidate, callback) {
2448
2422
  var nodes = this.chains[key];
@@ -2799,6 +2773,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
2799
2773
 
2800
2774
  function UNDEFINED() {}
2801
2775
 
2776
+ var DEEP_EACH_REGEX = /\.@each\.[^.]+\./;
2777
+
2802
2778
  // ..........................................................
2803
2779
  // COMPUTED PROPERTY
2804
2780
  //
@@ -3026,6 +3002,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
3026
3002
  var args;
3027
3003
 
3028
3004
  var addArg = function (property) {
3005
+ _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' });
3029
3006
  args.push(property);
3030
3007
  };
3031
3008
 
@@ -4106,9 +4083,11 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
4106
4083
  });
4107
4084
  }
4108
4085
  });
4109
- enifed('ember-metal/core', ['exports'], function (exports) {
4086
+ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require) {
4110
4087
  /*globals Ember:true,ENV,EmberENV */
4111
4088
 
4089
+ 'use strict';
4090
+
4112
4091
  /**
4113
4092
  @module ember
4114
4093
  @submodule ember-metal
@@ -4129,12 +4108,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
4129
4108
 
4130
4109
  @class Ember
4131
4110
  @static
4132
- @version 2.3.2
4111
+ @version 2.4.0-beta.2
4133
4112
  @public
4134
4113
  */
4135
4114
 
4136
- 'use strict';
4137
-
4138
4115
  if ('undefined' === typeof Ember) {
4139
4116
  // Create core object. Make it act like an instance of Ember.Namespace so that
4140
4117
  // objects assigned to it are given a sane string representation.
@@ -4160,7 +4137,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
4160
4137
 
4161
4138
  // The debug functions are exported to globals with `require` to
4162
4139
  // prevent babel-plugin-filter-imports from removing them.
4163
- var debugModule = Ember.__loader.require('ember-metal/debug');
4140
+ var debugModule = _require.default('ember-metal/debug');
4164
4141
  Ember.assert = debugModule.assert;
4165
4142
  Ember.warn = debugModule.warn;
4166
4143
  Ember.debug = debugModule.debug;
@@ -4173,11 +4150,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
4173
4150
 
4174
4151
  @property VERSION
4175
4152
  @type String
4176
- @default '2.3.2'
4153
+ @default '2.4.0-beta.2'
4177
4154
  @static
4178
4155
  @public
4179
4156
  */
4180
- Ember.VERSION = '2.3.2';
4157
+ Ember.VERSION = '2.4.0-beta.2';
4181
4158
 
4182
4159
  /**
4183
4160
  The hash of environment variables used to control various configuration
@@ -4443,18 +4420,24 @@ enifed('ember-metal/deprecate_property', ['exports', 'ember-metal/debug', 'ember
4443
4420
  });
4444
4421
  }
4445
4422
  });
4446
- enifed('ember-metal/dictionary', ['exports'], function (exports) {
4423
+ enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
4424
+ 'use strict';
4425
+
4426
+ exports.default = makeDictionary;
4427
+
4447
4428
  // the delete is meant to hint at runtimes that this object should remain in
4448
4429
  // dictionary mode. This is clearly a runtime specific hack, but currently it
4449
4430
  // appears worthwhile in some usecases. Please note, these deletes do increase
4450
4431
  // the cost of creation dramatically over a plain Object.create. And as this
4451
4432
  // only makes sense for long-lived dictionaries that aren't instantiated often.
4452
- 'use strict';
4453
-
4454
- exports.default = makeDictionary;
4455
4433
 
4456
4434
  function makeDictionary(parent) {
4457
- var dict = Object.create(parent);
4435
+ var dict;
4436
+ if (parent === null) {
4437
+ dict = new _emberMetalEmpty_object.default();
4438
+ } else {
4439
+ dict = Object.create(parent);
4440
+ }
4458
4441
  dict['_dict'] = null;
4459
4442
  delete dict['_dict'];
4460
4443
  return dict;
@@ -5075,48 +5058,260 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
5075
5058
  return ret;
5076
5059
  }
5077
5060
  });
5078
- 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) {
5079
- 'use strict';
5080
-
5061
+ enifed('ember-metal/index', ['exports', 'require', '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-metal/logger', '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/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', '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, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _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, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
5081
5062
  /**
5082
- Read-only property that returns the result of a container lookup.
5083
-
5084
- @class InjectedProperty
5085
- @namespace Ember
5086
- @constructor
5087
- @param {String} type The container type the property will lookup
5088
- @param {String} name (optional) The name the property will lookup, defaults
5089
- to the property's name
5090
- @private
5063
+ @module ember
5064
+ @submodule ember-metal
5091
5065
  */
5092
- function InjectedProperty(type, name) {
5093
- this.type = type;
5094
- this.name = name;
5095
5066
 
5096
- this._super$Constructor(injectedPropertyGet);
5097
- AliasedPropertyPrototype.oneWay.call(this);
5098
- }
5067
+ // BEGIN IMPORTS
5068
+ 'use strict';
5099
5069
 
5100
- function injectedPropertyGet(keyName) {
5101
- var desc = this[keyName];
5102
- var owner = _containerOwner.getOwner(this);
5070
+ _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
5071
+ _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
5072
+ _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
5073
+ _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
5074
+ _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
5075
+ _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
5076
+ _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
5077
+ _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
5078
+ _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
5079
+ _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
5080
+ _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
5081
+ _emberMetalComputed.computed.alias = _emberMetalAlias.default;
5082
+ _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
5083
+ _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
5084
+ _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
5085
+ _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
5086
+ _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
5087
+ _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
5088
+ _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
5089
+ _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
5103
5090
 
5104
- _emberMetalDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
5105
- _emberMetalDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
5091
+ // END IMPORTS
5106
5092
 
5107
- return owner.lookup(desc.type + ':' + (desc.name || keyName));
5108
- }
5093
+ // BEGIN EXPORTS
5094
+ var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
5095
+ EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
5096
+ EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
5097
+ EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
5098
+ EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
5109
5099
 
5110
- InjectedProperty.prototype = Object.create(_emberMetalProperties.Descriptor.prototype);
5100
+ _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
5101
+ _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
5111
5102
 
5112
- var InjectedPropertyPrototype = InjectedProperty.prototype;
5113
- var ComputedPropertyPrototype = _emberMetalComputed.ComputedProperty.prototype;
5114
- var AliasedPropertyPrototype = _emberMetalAlias.AliasedProperty.prototype;
5103
+ _emberMetalCore.default._Cache = _emberMetalCache.default;
5115
5104
 
5116
- InjectedPropertyPrototype._super$Constructor = _emberMetalComputed.ComputedProperty;
5105
+ _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
5106
+ _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
5107
+ _emberMetalCore.default.platform = {
5108
+ defineProperty: true,
5109
+ hasPropertyAccessors: true
5110
+ };
5117
5111
 
5118
- InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
5119
- InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
5112
+ _emberMetalCore.default.Error = _emberMetalError.default;
5113
+ _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
5114
+ _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
5115
+ _emberMetalCore.default.meta = _emberMetalMeta.meta;
5116
+ _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
5117
+
5118
+ _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
5119
+ _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
5120
+ _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
5121
+ _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
5122
+ _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
5123
+ _emberMetalCore.default.apply = _emberMetalUtils.apply;
5124
+ _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
5125
+ _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
5126
+
5127
+ _emberMetalCore.default.Logger = _emberMetalLogger.default;
5128
+
5129
+ _emberMetalCore.default.get = _emberMetalProperty_get.get;
5130
+ _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
5131
+ _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
5132
+ _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
5133
+
5134
+ _emberMetalCore.default.on = _emberMetalEvents.on;
5135
+ _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
5136
+ _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
5137
+ _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
5138
+ _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
5139
+ _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
5140
+ _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
5141
+ _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
5142
+ _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
5143
+ _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
5144
+
5145
+ _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
5146
+
5147
+ _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
5148
+ _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
5149
+ _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
5150
+ _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
5151
+ _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
5152
+ _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
5153
+
5154
+ _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
5155
+
5156
+ _emberMetalCore.default.set = _emberMetalProperty_set.set;
5157
+ _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
5158
+
5159
+ _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
5160
+ _emberMetalCore.default.Map = _emberMetalMap.Map;
5161
+ _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
5162
+
5163
+ _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
5164
+ _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
5165
+
5166
+ _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
5167
+ _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
5168
+
5169
+ _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
5170
+ _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
5171
+ _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
5172
+ _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
5173
+
5174
+ _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
5175
+ _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
5176
+
5177
+ _emberMetalCore.default.watch = _emberMetalWatching.watch;
5178
+ _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
5179
+ _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
5180
+ _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
5181
+ _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
5182
+
5183
+ _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
5184
+
5185
+ _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
5186
+ _emberMetalCore.default.computed = _emberMetalComputed.computed;
5187
+ _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
5188
+
5189
+ _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
5190
+ _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
5191
+ _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
5192
+ _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
5193
+ _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
5194
+
5195
+ _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
5196
+ _emberMetalCore.default.required = _emberMetalMixin.required;
5197
+ _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
5198
+ _emberMetalCore.default.observer = _emberMetalMixin.observer;
5199
+ _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
5200
+ _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
5201
+ _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
5202
+
5203
+ _emberMetalCore.default.bind = _emberMetalBinding.bind;
5204
+ _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
5205
+ _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
5206
+
5207
+ _emberMetalCore.default.run = _emberMetalRun_loop.default;
5208
+
5209
+ /**
5210
+ @class Backburner
5211
+ @for Ember
5212
+ @private
5213
+ */
5214
+ _emberMetalCore.default.Backburner = _backburner.default;
5215
+ // this is the new go forward, once Ember Data updates to using `_Backburner` we
5216
+ // can remove the non-underscored version.
5217
+ _emberMetalCore.default._Backburner = _backburner.default;
5218
+
5219
+ _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
5220
+ _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
5221
+
5222
+ _emberMetalCore.default.isNone = _emberMetalIs_none.default;
5223
+ _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
5224
+ _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
5225
+ _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
5226
+
5227
+ _emberMetalCore.default.merge = _emberMetalMerge.default;
5228
+
5229
+ _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
5230
+ _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
5231
+
5232
+ /**
5233
+ A function may be assigned to `Ember.onerror` to be called when Ember
5234
+ internals encounter an error. This is useful for specialized error handling
5235
+ and reporting code.
5236
+
5237
+ ```javascript
5238
+ Ember.onerror = function(error) {
5239
+ Em.$.ajax('/report-error', 'POST', {
5240
+ stack: error.stack,
5241
+ otherInformation: 'whatever app state you want to provide'
5242
+ });
5243
+ };
5244
+ ```
5245
+
5246
+ Internally, `Ember.onerror` is used as Backburner's error handler.
5247
+
5248
+ @event onerror
5249
+ @for Ember
5250
+ @param {Exception} error the error object
5251
+ @public
5252
+ */
5253
+ _emberMetalCore.default.onerror = null;
5254
+ // END EXPORTS
5255
+
5256
+ // do this for side-effects of updating Ember.assert, warn, etc when
5257
+ // ember-debug is present
5258
+ // This needs to be called before any deprecateFunc
5259
+ if (_require.has('ember-debug')) {
5260
+ _require.default('ember-debug');
5261
+ } else {
5262
+ _emberMetalCore.default.Debug = {};
5263
+
5264
+ _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
5265
+ _emberMetalCore.default.Debug.registerWarnHandler = function () {};
5266
+ }
5267
+
5268
+ _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create);
5269
+ _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys);
5270
+
5271
+ exports.default = _emberMetalCore.default;
5272
+ });
5273
+ 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) {
5274
+ 'use strict';
5275
+
5276
+ /**
5277
+ Read-only property that returns the result of a container lookup.
5278
+
5279
+ @class InjectedProperty
5280
+ @namespace Ember
5281
+ @constructor
5282
+ @param {String} type The container type the property will lookup
5283
+ @param {String} name (optional) The name the property will lookup, defaults
5284
+ to the property's name
5285
+ @private
5286
+ */
5287
+ function InjectedProperty(type, name) {
5288
+ this.type = type;
5289
+ this.name = name;
5290
+
5291
+ this._super$Constructor(injectedPropertyGet);
5292
+ AliasedPropertyPrototype.oneWay.call(this);
5293
+ }
5294
+
5295
+ function injectedPropertyGet(keyName) {
5296
+ var desc = this[keyName];
5297
+ var owner = _containerOwner.getOwner(this);
5298
+
5299
+ _emberMetalDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
5300
+ _emberMetalDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
5301
+
5302
+ return owner.lookup(desc.type + ':' + (desc.name || keyName));
5303
+ }
5304
+
5305
+ InjectedProperty.prototype = Object.create(_emberMetalProperties.Descriptor.prototype);
5306
+
5307
+ var InjectedPropertyPrototype = InjectedProperty.prototype;
5308
+ var ComputedPropertyPrototype = _emberMetalComputed.ComputedProperty.prototype;
5309
+ var AliasedPropertyPrototype = _emberMetalAlias.AliasedProperty.prototype;
5310
+
5311
+ InjectedPropertyPrototype._super$Constructor = _emberMetalComputed.ComputedProperty;
5312
+
5313
+ InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
5314
+ InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
5120
5315
 
5121
5316
  InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
5122
5317
 
@@ -5514,13 +5709,18 @@ enifed('ember-metal/is_present', ['exports', 'ember-metal/is_blank'], function (
5514
5709
  Ember.isPresent(null); // false
5515
5710
  Ember.isPresent(undefined); // false
5516
5711
  Ember.isPresent(''); // false
5517
- Ember.isPresent([]); // false
5518
- Ember.isPresent('\n\t'); // false
5519
5712
  Ember.isPresent(' '); // false
5713
+ Ember.isPresent('\n\t'); // false
5714
+ Ember.isPresent([]); // false
5715
+ Ember.isPresent({ length: 0 }) // false
5716
+ Ember.isPresent(false); // true
5717
+ Ember.isPresent(true); // true
5718
+ Ember.isPresent('string'); // true
5719
+ Ember.isPresent(0); // true
5720
+ Ember.isPresent(function() {}) // true
5520
5721
  Ember.isPresent({}); // true
5521
5722
  Ember.isPresent(false); // true
5522
5723
  Ember.isPresent('\n\t Hello'); // true
5523
- Ember.isPresent('Hello world'); // true
5524
5724
  Ember.isPresent([1,2,3]); // true
5525
5725
  ```
5526
5726
 
@@ -7295,7 +7495,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/error',
7295
7495
  //filters will be created as a separate array during the object's initialization
7296
7496
  App.Filterable = Ember.Mixin.create({
7297
7497
  init: function() {
7298
- this._super.apply(this, arguments);
7498
+ this._super(...arguments);
7299
7499
  this.set("filters", Ember.A());
7300
7500
  }
7301
7501
  });
@@ -8030,6 +8230,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8030
8230
  exports.Descriptor = Descriptor;
8031
8231
  exports.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION;
8032
8232
  exports.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION;
8233
+ exports.INHERITING_GETTER_FUNCTION = INHERITING_GETTER_FUNCTION;
8033
8234
  exports.defineProperty = defineProperty;
8034
8235
 
8035
8236
  // ..........................................................
@@ -8048,14 +8249,33 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8048
8249
  this.isDescriptor = true;
8049
8250
  }
8050
8251
 
8252
+ var REDEFINE_SUPPORTED = (function () {
8253
+ // https://github.com/spalger/kibana/commit/b7e35e6737df585585332857a4c397dc206e7ff9
8254
+ var a = Object.create(Object.prototype, {
8255
+ prop: {
8256
+ configurable: true,
8257
+ value: 1
8258
+ }
8259
+ });
8260
+
8261
+ Object.defineProperty(a, 'prop', {
8262
+ configurable: true,
8263
+ value: 2
8264
+ });
8265
+
8266
+ return a.prop === 2;
8267
+ })();
8051
8268
  // ..........................................................
8052
8269
  // DEFINING PROPERTIES API
8053
8270
  //
8054
8271
 
8055
8272
  function MANDATORY_SETTER_FUNCTION(name) {
8056
- return function SETTER_FUNCTION(value) {
8273
+ function SETTER_FUNCTION(value) {
8057
8274
  _emberMetalDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
8058
- };
8275
+ }
8276
+
8277
+ SETTER_FUNCTION.isMandatorySetter = true;
8278
+ return SETTER_FUNCTION;
8059
8279
  }
8060
8280
 
8061
8281
  function DEFAULT_GETTER_FUNCTION(name) {
@@ -8065,6 +8285,16 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8065
8285
  };
8066
8286
  }
8067
8287
 
8288
+ function INHERITING_GETTER_FUNCTION(name) {
8289
+ function IGETTER_FUNCTION() {
8290
+ var proto = Object.getPrototypeOf(this);
8291
+ return proto && proto[name];
8292
+ }
8293
+
8294
+ IGETTER_FUNCTION.isInheritingGetter = true;
8295
+ return IGETTER_FUNCTION;
8296
+ }
8297
+
8068
8298
  /**
8069
8299
  NOTE: This is a low-level method used by other parts of the API. You almost
8070
8300
  never want to call this method directly. Instead you should use
@@ -8150,12 +8380,19 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8150
8380
 
8151
8381
  if (watching) {
8152
8382
  meta.writeValues(keyName, data);
8153
- Object.defineProperty(obj, keyName, {
8383
+
8384
+ var defaultDescriptor = {
8154
8385
  configurable: true,
8155
8386
  enumerable: true,
8156
8387
  set: MANDATORY_SETTER_FUNCTION(keyName),
8157
8388
  get: DEFAULT_GETTER_FUNCTION(keyName)
8158
- });
8389
+ };
8390
+
8391
+ if (REDEFINE_SUPPORTED) {
8392
+ Object.defineProperty(obj, keyName, defaultDescriptor);
8393
+ } else {
8394
+ handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
8395
+ }
8159
8396
  } else {
8160
8397
  obj[keyName] = data;
8161
8398
  }
@@ -8181,6 +8418,12 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8181
8418
 
8182
8419
  return this;
8183
8420
  }
8421
+
8422
+ function handleBrokenPhantomDefineProperty(obj, keyName, desc) {
8423
+ // https://github.com/ariya/phantomjs/issues/11856
8424
+ Object.defineProperty(obj, keyName, { configurable: true, writable: true, value: 'iCry' });
8425
+ Object.defineProperty(obj, keyName, desc);
8426
+ }
8184
8427
  });
8185
8428
  enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/symbol'], function (exports, _emberMetalUtils, _emberMetalMeta, _emberMetalEvents, _emberMetalObserver_set, _emberMetalSymbol) {
8186
8429
  'use strict';
@@ -8465,7 +8708,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
8465
8708
  exports.endPropertyChanges = endPropertyChanges;
8466
8709
  exports.changeProperties = changeProperties;
8467
8710
  });
8468
- enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) {
8711
+ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/error', 'ember-metal/path_cache'], function (exports, _emberMetalCore, _emberMetalDebug, _emberMetalError, _emberMetalPath_cache) {
8469
8712
  /**
8470
8713
  @module ember-metal
8471
8714
  */
@@ -8523,7 +8766,6 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
8523
8766
  return obj;
8524
8767
  }
8525
8768
 
8526
- var meta = _emberMetalMeta.peekMeta(obj);
8527
8769
  var value = obj[keyName];
8528
8770
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
8529
8771
  var ret;
@@ -8535,11 +8777,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
8535
8777
  if (desc) {
8536
8778
  return desc.get(obj, keyName);
8537
8779
  } else {
8538
- if (meta && meta.peekWatching(keyName) > 0) {
8539
- ret = meta.peekValues(keyName);
8540
- } else {
8541
- ret = value;
8542
- }
8780
+ ret = value;
8543
8781
 
8544
8782
  if (ret === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
8545
8783
  return obj.unknownProperty(keyName);
@@ -8650,7 +8888,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
8650
8888
 
8651
8889
  exports.default = get;
8652
8890
  });
8653
- enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) {
8891
+ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta', 'ember-metal/utils'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta, _emberMetalUtils) {
8654
8892
  'use strict';
8655
8893
 
8656
8894
  exports.set = set;
@@ -8707,7 +8945,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
8707
8945
  obj.setUnknownProperty(keyName, value);
8708
8946
  } else if (meta && meta.peekWatching(keyName) > 0) {
8709
8947
  if (meta.proto !== obj) {
8710
- currentValue = meta.peekValues(keyName);
8948
+ currentValue = obj[keyName];
8711
8949
  }
8712
8950
  // only trigger a change if the value has changed
8713
8951
  if (value !== currentValue) {
@@ -8716,7 +8954,13 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
8716
8954
  if (currentValue === undefined && !(keyName in obj) || !Object.prototype.propertyIsEnumerable.call(obj, keyName)) {
8717
8955
  _emberMetalProperties.defineProperty(obj, keyName, null, value); // setup mandatory setter
8718
8956
  } else {
8719
- meta.writeValues(keyName, value);
8957
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
8958
+ var isMandatorySetter = descriptor && descriptor.set && descriptor.set.isMandatorySetter;
8959
+ if (isMandatorySetter) {
8960
+ meta.writeValues(keyName, value);
8961
+ } else {
8962
+ obj[keyName] = value;
8963
+ }
8720
8964
  }
8721
8965
 
8722
8966
  _emberMetalProperty_events.propertyDidChange(obj, keyName);
@@ -10578,6 +10822,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
10578
10822
  exports.inspect = inspect;
10579
10823
  exports.apply = apply;
10580
10824
  exports.applyStr = applyStr;
10825
+ exports.lookupDescriptor = lookupDescriptor;
10581
10826
  var _uuid = 0;
10582
10827
 
10583
10828
  /**
@@ -11111,18 +11356,32 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
11111
11356
  }
11112
11357
  }
11113
11358
 
11359
+ function lookupDescriptor(obj, keyName) {
11360
+ var current = obj;
11361
+ while (current) {
11362
+ var descriptor = Object.getOwnPropertyDescriptor(current, keyName);
11363
+
11364
+ if (descriptor) {
11365
+ return descriptor;
11366
+ }
11367
+
11368
+ current = Object.getPrototypeOf(current);
11369
+ }
11370
+
11371
+ return null;
11372
+ }
11373
+
11114
11374
  exports.GUID_KEY = GUID_KEY;
11115
11375
  exports.makeArray = makeArray;
11116
11376
  exports.canInvoke = canInvoke;
11117
11377
  });
11118
- enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties) {
11378
+ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties', 'ember-metal/utils'], function (exports, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties, _emberMetalUtils) {
11119
11379
  'use strict';
11120
11380
 
11121
11381
  exports.watchKey = watchKey;
11122
11382
  exports.unwatchKey = unwatchKey;
11123
11383
 
11124
- var handleMandatorySetter = undefined,
11125
- lookupDescriptor = undefined;
11384
+ var handleMandatorySetter = undefined;
11126
11385
 
11127
11386
  function watchKey(obj, keyName, meta) {
11128
11387
  // can't watch length on Array - it is special...
@@ -11146,29 +11405,18 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
11146
11405
  obj.willWatchProperty(keyName);
11147
11406
  }
11148
11407
 
11408
+ // NOTE: this is dropped for prod + minified builds
11149
11409
  handleMandatorySetter(m, obj, keyName);
11150
11410
  } else {
11151
11411
  m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1);
11152
11412
  }
11153
11413
  }
11154
11414
 
11155
- lookupDescriptor = function lookupDescriptor(obj, keyName) {
11156
- var current = obj;
11157
- while (current) {
11158
- var descriptor = Object.getOwnPropertyDescriptor(current, keyName);
11159
-
11160
- if (descriptor) {
11161
- return descriptor;
11162
- }
11163
-
11164
- current = Object.getPrototypeOf(current);
11165
- }
11166
-
11167
- return null;
11168
- };
11169
-
11415
+ // Future traveler, although this code looks scary. It merely exists in
11416
+ // development to aid in development asertions. Production builds of
11417
+ // ember strip this entire block out
11170
11418
  handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
11171
- var descriptor = lookupDescriptor(obj, keyName);
11419
+ var descriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
11172
11420
  var configurable = descriptor ? descriptor.configurable : true;
11173
11421
  var isWritable = descriptor ? descriptor.writable : true;
11174
11422
  var hasValue = descriptor ? 'value' in descriptor : true;
@@ -11181,13 +11429,21 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
11181
11429
 
11182
11430
  // this x in Y deopts, so keeping it in this function is better;
11183
11431
  if (configurable && isWritable && hasValue && keyName in obj) {
11184
- m.writeValues(keyName, obj[keyName]);
11185
- Object.defineProperty(obj, keyName, {
11432
+ var desc = {
11186
11433
  configurable: true,
11187
11434
  enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
11188
11435
  set: _emberMetalProperties.MANDATORY_SETTER_FUNCTION(keyName),
11189
- get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName)
11190
- });
11436
+ get: undefined
11437
+ };
11438
+
11439
+ if (Object.prototype.hasOwnProperty.call(obj, keyName)) {
11440
+ m.writeValues(keyName, obj[keyName]);
11441
+ desc.get = _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName);
11442
+ } else {
11443
+ desc.get = _emberMetalProperties.INHERITING_GETTER_FUNCTION(keyName);
11444
+ }
11445
+
11446
+ Object.defineProperty(obj, keyName, desc);
11191
11447
  }
11192
11448
  };
11193
11449
 
@@ -11199,6 +11455,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
11199
11455
 
11200
11456
  var possibleDesc = obj[keyName];
11201
11457
  var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
11458
+
11202
11459
  if (desc && desc.didUnwatch) {
11203
11460
  desc.didUnwatch(obj, keyName);
11204
11461
  }
@@ -11207,22 +11464,30 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/features', 'ember-metal
11207
11464
  obj.didUnwatchProperty(keyName);
11208
11465
  }
11209
11466
 
11467
+ // It is true, the following code looks quite WAT. But have no fear, It
11468
+ // exists purely to improve development ergonomics and is removed from
11469
+ // ember.min.js and ember.prod.js builds.
11470
+ //
11471
+ // Some further context: Once a property is watched by ember, bypassing `set`
11472
+ // for mutation, will bypass observation. This code exists to assert when
11473
+ // that occurs, and attempt to provide more helpful feedback. The alternative
11474
+ // is tricky to debug partially observable properties.
11210
11475
  if (!desc && keyName in obj) {
11211
- Object.defineProperty(obj, keyName, {
11212
- configurable: true,
11213
- enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
11214
- set: function (val) {
11215
- // redefine to set as enumerable
11476
+ var maybeMandatoryDescriptor = _emberMetalUtils.lookupDescriptor(obj, keyName);
11477
+
11478
+ if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
11479
+ if (maybeMandatoryDescriptor.get && maybeMandatoryDescriptor.get.isInheritingGetter) {
11480
+ delete obj[keyName];
11481
+ } else {
11216
11482
  Object.defineProperty(obj, keyName, {
11217
11483
  configurable: true,
11484
+ enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
11218
11485
  writable: true,
11219
- enumerable: true,
11220
- value: val
11486
+ value: m.peekValues(keyName)
11221
11487
  });
11222
11488
  m.deleteFromValues(keyName);
11223
- },
11224
- get: _emberMetalProperties.DEFAULT_GETTER_FUNCTION(keyName)
11225
- });
11489
+ }
11490
+ }
11226
11491
  }
11227
11492
  } else if (count > 1) {
11228
11493
  m.writeWatching(keyName, count - 1);
@@ -11387,219 +11652,7 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
11387
11652
  }
11388
11653
  }
11389
11654
  });
11390
- enifed('ember-metal', ['exports', '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-metal/logger', '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/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', '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, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _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, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
11391
- /**
11392
- @module ember
11393
- @submodule ember-metal
11394
- */
11395
-
11396
- // BEGIN IMPORTS
11397
- 'use strict';
11398
-
11399
- _emberMetalComputed.computed.empty = _emberMetalComputed_macros.empty;
11400
- _emberMetalComputed.computed.notEmpty = _emberMetalComputed_macros.notEmpty;
11401
- _emberMetalComputed.computed.none = _emberMetalComputed_macros.none;
11402
- _emberMetalComputed.computed.not = _emberMetalComputed_macros.not;
11403
- _emberMetalComputed.computed.bool = _emberMetalComputed_macros.bool;
11404
- _emberMetalComputed.computed.match = _emberMetalComputed_macros.match;
11405
- _emberMetalComputed.computed.equal = _emberMetalComputed_macros.equal;
11406
- _emberMetalComputed.computed.gt = _emberMetalComputed_macros.gt;
11407
- _emberMetalComputed.computed.gte = _emberMetalComputed_macros.gte;
11408
- _emberMetalComputed.computed.lt = _emberMetalComputed_macros.lt;
11409
- _emberMetalComputed.computed.lte = _emberMetalComputed_macros.lte;
11410
- _emberMetalComputed.computed.alias = _emberMetalAlias.default;
11411
- _emberMetalComputed.computed.oneWay = _emberMetalComputed_macros.oneWay;
11412
- _emberMetalComputed.computed.reads = _emberMetalComputed_macros.oneWay;
11413
- _emberMetalComputed.computed.readOnly = _emberMetalComputed_macros.readOnly;
11414
- _emberMetalComputed.computed.defaultTo = _emberMetalComputed_macros.defaultTo;
11415
- _emberMetalComputed.computed.deprecatingAlias = _emberMetalComputed_macros.deprecatingAlias;
11416
- _emberMetalComputed.computed.and = _emberMetalComputed_macros.and;
11417
- _emberMetalComputed.computed.or = _emberMetalComputed_macros.or;
11418
- _emberMetalComputed.computed.any = _emberMetalComputed_macros.any;
11419
-
11420
- // END IMPORTS
11421
-
11422
- // BEGIN EXPORTS
11423
- var EmberInstrumentation = _emberMetalCore.default.Instrumentation = {};
11424
- EmberInstrumentation.instrument = _emberMetalInstrumentation.instrument;
11425
- EmberInstrumentation.subscribe = _emberMetalInstrumentation.subscribe;
11426
- EmberInstrumentation.unsubscribe = _emberMetalInstrumentation.unsubscribe;
11427
- EmberInstrumentation.reset = _emberMetalInstrumentation.reset;
11428
-
11429
- _emberMetalCore.default.instrument = _emberMetalInstrumentation.instrument;
11430
- _emberMetalCore.default.subscribe = _emberMetalInstrumentation.subscribe;
11431
-
11432
- _emberMetalCore.default._Cache = _emberMetalCache.default;
11433
-
11434
- _emberMetalCore.default.generateGuid = _emberMetalUtils.generateGuid;
11435
- _emberMetalCore.default.GUID_KEY = _emberMetalUtils.GUID_KEY;
11436
- _emberMetalCore.default.platform = {
11437
- defineProperty: true,
11438
- hasPropertyAccessors: true
11439
- };
11440
-
11441
- _emberMetalCore.default.Error = _emberMetalError.default;
11442
- _emberMetalCore.default.guidFor = _emberMetalUtils.guidFor;
11443
- _emberMetalCore.default.META_DESC = _emberMetalMeta.META_DESC;
11444
- _emberMetalCore.default.meta = _emberMetalMeta.meta;
11445
- _emberMetalCore.default.inspect = _emberMetalUtils.inspect;
11446
-
11447
- _emberMetalCore.default.tryCatchFinally = _emberMetalUtils.deprecatedTryCatchFinally;
11448
- _emberMetalCore.default.makeArray = _emberMetalUtils.makeArray;
11449
- _emberMetalCore.default.canInvoke = _emberMetalUtils.canInvoke;
11450
- _emberMetalCore.default.tryInvoke = _emberMetalUtils.tryInvoke;
11451
- _emberMetalCore.default.wrap = _emberMetalUtils.wrap;
11452
- _emberMetalCore.default.apply = _emberMetalUtils.apply;
11453
- _emberMetalCore.default.applyStr = _emberMetalUtils.applyStr;
11454
- _emberMetalCore.default.uuid = _emberMetalUtils.uuid;
11455
-
11456
- _emberMetalCore.default.Logger = _emberMetalLogger.default;
11457
-
11458
- _emberMetalCore.default.get = _emberMetalProperty_get.get;
11459
- _emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
11460
- _emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
11461
- _emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
11462
-
11463
- _emberMetalCore.default.on = _emberMetalEvents.on;
11464
- _emberMetalCore.default.addListener = _emberMetalEvents.addListener;
11465
- _emberMetalCore.default.removeListener = _emberMetalEvents.removeListener;
11466
- _emberMetalCore.default._suspendListener = _emberMetalEvents.suspendListener;
11467
- _emberMetalCore.default._suspendListeners = _emberMetalEvents.suspendListeners;
11468
- _emberMetalCore.default.sendEvent = _emberMetalEvents.sendEvent;
11469
- _emberMetalCore.default.hasListeners = _emberMetalEvents.hasListeners;
11470
- _emberMetalCore.default.watchedEvents = _emberMetalEvents.watchedEvents;
11471
- _emberMetalCore.default.listenersFor = _emberMetalEvents.listenersFor;
11472
- _emberMetalCore.default.accumulateListeners = _emberMetalEvents.accumulateListeners;
11473
-
11474
- _emberMetalCore.default._ObserverSet = _emberMetalObserver_set.default;
11475
-
11476
- _emberMetalCore.default.propertyWillChange = _emberMetalProperty_events.propertyWillChange;
11477
- _emberMetalCore.default.propertyDidChange = _emberMetalProperty_events.propertyDidChange;
11478
- _emberMetalCore.default.overrideChains = _emberMetalProperty_events.overrideChains;
11479
- _emberMetalCore.default.beginPropertyChanges = _emberMetalProperty_events.beginPropertyChanges;
11480
- _emberMetalCore.default.endPropertyChanges = _emberMetalProperty_events.endPropertyChanges;
11481
- _emberMetalCore.default.changeProperties = _emberMetalProperty_events.changeProperties;
11482
-
11483
- _emberMetalCore.default.defineProperty = _emberMetalProperties.defineProperty;
11484
-
11485
- _emberMetalCore.default.set = _emberMetalProperty_set.set;
11486
- _emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
11487
-
11488
- _emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
11489
- _emberMetalCore.default.Map = _emberMetalMap.Map;
11490
- _emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
11491
-
11492
- _emberMetalCore.default.getProperties = _emberMetalGet_properties.default;
11493
- _emberMetalCore.default.setProperties = _emberMetalSet_properties.default;
11494
-
11495
- _emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
11496
- _emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
11497
-
11498
- _emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
11499
- _emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
11500
- _emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
11501
- _emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
11502
-
11503
- _emberMetalCore.default.watchPath = _emberMetalWatch_path.watchPath;
11504
- _emberMetalCore.default.unwatchPath = _emberMetalWatch_path.unwatchPath;
11505
-
11506
- _emberMetalCore.default.watch = _emberMetalWatching.watch;
11507
- _emberMetalCore.default.isWatching = _emberMetalWatching.isWatching;
11508
- _emberMetalCore.default.unwatch = _emberMetalWatching.unwatch;
11509
- _emberMetalCore.default.rewatch = _emberMetalWatching.rewatch;
11510
- _emberMetalCore.default.destroy = _emberMetalWatching.destroy;
11511
-
11512
- _emberMetalCore.default.expandProperties = _emberMetalExpand_properties.default;
11513
-
11514
- _emberMetalCore.default.ComputedProperty = _emberMetalComputed.ComputedProperty;
11515
- _emberMetalCore.default.computed = _emberMetalComputed.computed;
11516
- _emberMetalCore.default.cacheFor = _emberMetalComputed.cacheFor;
11517
-
11518
- _emberMetalCore.default.addObserver = _emberMetalObserver.addObserver;
11519
- _emberMetalCore.default.observersFor = _emberMetalObserver.observersFor;
11520
- _emberMetalCore.default.removeObserver = _emberMetalObserver.removeObserver;
11521
- _emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
11522
- _emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
11523
-
11524
- _emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
11525
- _emberMetalCore.default.required = _emberMetalMixin.required;
11526
- _emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
11527
- _emberMetalCore.default.observer = _emberMetalMixin.observer;
11528
- _emberMetalCore.default.immediateObserver = _emberMetalMixin._immediateObserver;
11529
- _emberMetalCore.default.mixin = _emberMetalMixin.mixin;
11530
- _emberMetalCore.default.Mixin = _emberMetalMixin.Mixin;
11531
-
11532
- _emberMetalCore.default.bind = _emberMetalBinding.bind;
11533
- _emberMetalCore.default.Binding = _emberMetalBinding.Binding;
11534
- _emberMetalCore.default.isGlobalPath = _emberMetalBinding.isGlobalPath;
11535
-
11536
- _emberMetalCore.default.run = _emberMetalRun_loop.default;
11537
-
11538
- /**
11539
- @class Backburner
11540
- @for Ember
11541
- @private
11542
- */
11543
- _emberMetalCore.default.Backburner = _backburner.default;
11544
- // this is the new go forward, once Ember Data updates to using `_Backburner` we
11545
- // can remove the non-underscored version.
11546
- _emberMetalCore.default._Backburner = _backburner.default;
11547
-
11548
- _emberMetalCore.default.libraries = new _emberMetalLibraries.default();
11549
- _emberMetalCore.default.libraries.registerCoreLibrary('Ember', _emberMetalCore.default.VERSION);
11550
-
11551
- _emberMetalCore.default.isNone = _emberMetalIs_none.default;
11552
- _emberMetalCore.default.isEmpty = _emberMetalIs_empty.default;
11553
- _emberMetalCore.default.isBlank = _emberMetalIs_blank.default;
11554
- _emberMetalCore.default.isPresent = _emberMetalIs_present.default;
11555
-
11556
- _emberMetalCore.default.merge = _emberMetalMerge.default;
11557
-
11558
- _emberMetalCore.default.FEATURES = _emberMetalFeatures.FEATURES;
11559
- _emberMetalCore.default.FEATURES.isEnabled = _emberMetalFeatures.default;
11560
-
11561
- /**
11562
- A function may be assigned to `Ember.onerror` to be called when Ember
11563
- internals encounter an error. This is useful for specialized error handling
11564
- and reporting code.
11565
-
11566
- ```javascript
11567
- Ember.onerror = function(error) {
11568
- Em.$.ajax('/report-error', 'POST', {
11569
- stack: error.stack,
11570
- otherInformation: 'whatever app state you want to provide'
11571
- });
11572
- };
11573
- ```
11574
-
11575
- Internally, `Ember.onerror` is used as Backburner's error handler.
11576
-
11577
- @event onerror
11578
- @for Ember
11579
- @param {Exception} error the error object
11580
- @public
11581
- */
11582
- _emberMetalCore.default.onerror = null;
11583
- // END EXPORTS
11584
-
11585
- // do this for side-effects of updating Ember.assert, warn, etc when
11586
- // ember-debug is present
11587
- // This needs to be called before any deprecateFunc
11588
- if (_emberMetalCore.default.__loader.registry['ember-debug']) {
11589
- requireModule('ember-debug');
11590
- } else {
11591
- _emberMetalCore.default.Debug = {};
11592
-
11593
- _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
11594
- _emberMetalCore.default.Debug.registerWarnHandler = function () {};
11595
- }
11596
-
11597
- _emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create);
11598
- _emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys);
11599
-
11600
- exports.default = _emberMetalCore.default;
11601
- });
11602
- enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
11655
+ enifed('ember-template-compiler/compat/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
11603
11656
  /**
11604
11657
  @module ember
11605
11658
  @submodule ember-template-compiler
@@ -11609,8 +11662,8 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-metal/cor
11609
11662
  var compile, compileSpec;
11610
11663
 
11611
11664
  exports.default = function (string) {
11612
- if ((!compile || !compileSpec) && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
11613
- var Compiler = requireModule('htmlbars-compiler/compiler');
11665
+ if ((!compile || !compileSpec) && _require.has('htmlbars-compiler/compiler')) {
11666
+ var Compiler = _require.default('htmlbars-compiler/compiler');
11614
11667
 
11615
11668
  compile = Compiler.compile;
11616
11669
  compileSpec = Compiler.compileSpec;
@@ -11635,6 +11688,34 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
11635
11688
  EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default;
11636
11689
  EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default;
11637
11690
  });
11691
+ enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', '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/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
11692
+ 'use strict';
11693
+
11694
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
11695
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
11696
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
11697
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
11698
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
11699
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
11700
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
11701
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
11702
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
11703
+
11704
+ if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
11705
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
11706
+ } else {
11707
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
11708
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
11709
+ }
11710
+
11711
+ exports._Ember = _emberMetal.default;
11712
+ exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
11713
+ exports.compile = _emberTemplateCompilerSystemCompile.default;
11714
+ exports.template = _emberTemplateCompilerSystemTemplate.default;
11715
+ exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
11716
+ });
11717
+
11718
+ // used for adding Ember.Handlebars.compile for backwards compat
11638
11719
  enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
11639
11720
  'use strict';
11640
11721
 
@@ -12578,7 +12659,7 @@ enifed('ember-template-compiler/system/calculate-location-display', ['exports'],
12578
12659
  return moduleInfo;
12579
12660
  }
12580
12661
  });
12581
- enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
12662
+ enifed('ember-template-compiler/system/compile', ['exports', 'require', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _require, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
12582
12663
  /**
12583
12664
  @module ember
12584
12665
  @submodule ember-template-compiler
@@ -12600,8 +12681,8 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/core',
12600
12681
  */
12601
12682
 
12602
12683
  exports.default = function (templateString, options) {
12603
- if (!compile && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
12604
- compile = requireModule('htmlbars-compiler/compiler').compile;
12684
+ if (!compile && _require.has('htmlbars-compiler/compiler')) {
12685
+ compile = _require.default('htmlbars-compiler/compiler').compile;
12605
12686
  }
12606
12687
 
12607
12688
  if (!compile) {
@@ -12653,7 +12734,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12653
12734
  options.buildMeta = function buildMeta(program) {
12654
12735
  return {
12655
12736
  fragmentReason: fragmentReason(program),
12656
- revision: 'Ember@2.3.2',
12737
+ revision: 'Ember@2.4.0-beta.2',
12657
12738
  loc: program.loc,
12658
12739
  moduleName: options.moduleName
12659
12740
  };
@@ -12719,7 +12800,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12719
12800
  }
12720
12801
  }
12721
12802
  });
12722
- enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/core', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCompile_options) {
12803
+ enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
12723
12804
  /**
12724
12805
  @module ember
12725
12806
  @submodule ember-template-compiler
@@ -12740,8 +12821,8 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/cor
12740
12821
  */
12741
12822
 
12742
12823
  exports.default = function (templateString, options) {
12743
- if (!compileSpec && _emberMetalCore.default.__loader.registry['htmlbars-compiler/compiler']) {
12744
- compileSpec = requireModule('htmlbars-compiler/compiler').compileSpec;
12824
+ if (!compileSpec && _require.has('htmlbars-compiler/compiler')) {
12825
+ compileSpec = _require.default('htmlbars-compiler/compiler').compileSpec;
12745
12826
  }
12746
12827
 
12747
12828
  if (!compileSpec) {
@@ -12779,34 +12860,6 @@ enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/
12779
12860
  return templateSpec;
12780
12861
  };
12781
12862
  });
12782
- enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', '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/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
12783
- 'use strict';
12784
-
12785
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
12786
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldClassBindingSyntax.default);
12787
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformItemClass.default);
12788
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut.default);
12789
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly.default);
12790
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
12791
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
12792
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
12793
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
12794
-
12795
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
12796
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
12797
- } else {
12798
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
12799
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
12800
- }
12801
-
12802
- exports._Ember = _emberMetal.default;
12803
- exports.precompile = _emberTemplateCompilerSystemPrecompile.default;
12804
- exports.compile = _emberTemplateCompilerSystemCompile.default;
12805
- exports.template = _emberTemplateCompilerSystemTemplate.default;
12806
- exports.registerPlugin = _emberTemplateCompilerPlugins.registerPlugin;
12807
- });
12808
-
12809
- // used for adding Ember.Handlebars.compile for backwards compat
12810
12863
  enifed("htmlbars-compiler/compiler", ["exports", "htmlbars-syntax/parser", "htmlbars-compiler/template-compiler", "htmlbars-runtime/hooks", "htmlbars-runtime/render"], function (exports, _htmlbarsSyntaxParser, _htmlbarsCompilerTemplateCompiler, _htmlbarsRuntimeHooks, _htmlbarsRuntimeRender) {
12811
12864
  /*jshint evil:true*/
12812
12865
  "use strict";