ember-source 2.3.2 → 2.4.0.beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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";