ember-source 1.12.1 → 1.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 967fd4c0b9e67fc707dd08717957b0ef85fdc337
4
- data.tar.gz: fead0d0c2d4858e255363e83994dd0792aafa1b2
3
+ metadata.gz: f1a5bce6a8a2adeeaa35748e7d5e2c409b5d6bfd
4
+ data.tar.gz: fa34f6ff3263361e98d39b8fcfec11711d31e48d
5
5
  SHA512:
6
- metadata.gz: 32711abf178f804836fc13536223bc2a324c296ad0c92f9fb188bb91b42c0d894aa45de1cd8f57a724165b4c0cc26a6223686f1cddfcdd47d4ae3df42ad38cea
7
- data.tar.gz: bb445a1a8581528f56aac8a0a512c3e4967486a7eb08ca9214f96618c891e0a63b58428b62a1b4f304aa7b092870bba15ac57b51f3be7badd56faa2e0f0e6b37
6
+ metadata.gz: 781f968b7b92dcc039a16303b333b523592d03b5a511a3f47433f6e68c4320056f989e09259f8cb1a6e515982be8af7da9218d7790349034642798a9e55b6171
7
+ data.tar.gz: e1e6b89d953ba43930f926f23fc77ff6d0cb1ce86f249c4934193481a13baa86b2db21d89f33976fefa23c9d115319d3e0406e1f230de66708c14ac08db4a619
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.12.1
1
+ 1.12.2
@@ -5,7 +5,7 @@
5
5
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
6
6
  * @license Licensed under MIT license
7
7
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
8
- * @version 1.12.1
8
+ * @version 1.12.2
9
9
  */
10
10
 
11
11
  (function() {
@@ -119,7 +119,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
119
119
  Ember['default'].assert = function (desc, test) {
120
120
  var throwAssertion;
121
121
 
122
- if (utils.typeOf(test) === "function") {
122
+ if (utils.typeOf(test) === 'function') {
123
123
  throwAssertion = !test();
124
124
  } else {
125
125
  throwAssertion = !test;
@@ -142,7 +142,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
142
142
  Ember['default'].warn = function (message, test) {
143
143
  if (!test) {
144
144
  Logger['default'].warn("WARNING: " + message);
145
- if ("trace" in Logger['default']) {
145
+ if ('trace' in Logger['default']) {
146
146
  Logger['default'].trace();
147
147
  }
148
148
  }
@@ -179,7 +179,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
179
179
  Ember['default'].deprecate = function (message, test, options) {
180
180
  var noDeprecation;
181
181
 
182
- if (typeof test === "function") {
182
+ if (typeof test === 'function') {
183
183
  noDeprecation = test();
184
184
  } else {
185
185
  noDeprecation = test;
@@ -203,23 +203,23 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
203
203
  }
204
204
 
205
205
  if (arguments.length === 3) {
206
- Ember['default'].assert("options argument to Ember.deprecate should be an object", options && typeof options === "object");
206
+ Ember['default'].assert('options argument to Ember.deprecate should be an object', options && typeof options === 'object');
207
207
  if (options.url) {
208
- message += " See " + options.url + " for more details.";
208
+ message += ' See ' + options.url + ' for more details.';
209
209
  }
210
210
  }
211
211
 
212
212
  if (Ember['default'].LOG_STACKTRACE_ON_DEPRECATION && error.stack) {
213
213
  var stack;
214
- var stackStr = "";
214
+ var stackStr = '';
215
215
 
216
- if (error["arguments"]) {
216
+ if (error['arguments']) {
217
217
  // Chrome
218
- stack = error.stack.replace(/^\s+at\s+/gm, "").replace(/^([^\(]+?)([\n$])/gm, "{anonymous}($1)$2").replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, "{anonymous}($1)").split("\n");
218
+ stack = error.stack.replace(/^\s+at\s+/gm, '').replace(/^([^\(]+?)([\n$])/gm, '{anonymous}($1)$2').replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, '{anonymous}($1)').split('\n');
219
219
  stack.shift();
220
220
  } else {
221
221
  // Firefox
222
- stack = error.stack.replace(/(?:\n@:0)?\s+$/m, "").replace(/^\(/gm, "{anonymous}(").split("\n");
222
+ stack = error.stack.replace(/(?:\n@:0)?\s+$/m, '').replace(/^\(/gm, '{anonymous}(').split('\n');
223
223
  }
224
224
 
225
225
  stackStr = "\n " + stack.slice(2).join("\n ");
@@ -286,14 +286,15 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
286
286
  @method _warnIfUsingStrippedFeatureFlags
287
287
  @return {void}
288
288
  */
289
+
289
290
  function _warnIfUsingStrippedFeatureFlags(FEATURES, featuresWereStripped) {
290
291
  if (featuresWereStripped) {
291
- Ember['default'].warn("Ember.ENV.ENABLE_ALL_FEATURES is only available in canary builds.", !Ember['default'].ENV.ENABLE_ALL_FEATURES);
292
- Ember['default'].warn("Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.", !Ember['default'].ENV.ENABLE_OPTIONAL_FEATURES);
292
+ Ember['default'].warn('Ember.ENV.ENABLE_ALL_FEATURES is only available in canary builds.', !Ember['default'].ENV.ENABLE_ALL_FEATURES);
293
+ Ember['default'].warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !Ember['default'].ENV.ENABLE_OPTIONAL_FEATURES);
293
294
 
294
295
  for (var key in FEATURES) {
295
- if (FEATURES.hasOwnProperty(key) && key !== "isEnabled") {
296
- Ember['default'].warn("FEATURE[\"" + key + "\"] is set as enabled, but FEATURE flags are only available in canary builds.", !FEATURES[key]);
296
+ if (FEATURES.hasOwnProperty(key) && key !== 'isEnabled') {
297
+ Ember['default'].warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key]);
297
298
  }
298
299
  }
299
300
  }
@@ -301,29 +302,29 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
301
302
 
302
303
  if (!Ember['default'].testing) {
303
304
  // Complain if they're using FEATURE flags in builds other than canary
304
- Ember['default'].FEATURES["features-stripped-test"] = true;
305
+ Ember['default'].FEATURES['features-stripped-test'] = true;
305
306
  var featuresWereStripped = true;
306
307
 
307
308
 
308
- delete Ember['default'].FEATURES["features-stripped-test"];
309
+ delete Ember['default'].FEATURES['features-stripped-test'];
309
310
  _warnIfUsingStrippedFeatureFlags(Ember['default'].ENV.FEATURES, featuresWereStripped);
310
311
 
311
312
  // Inform the developer about the Ember Inspector if not installed.
312
- var isFirefox = typeof InstallTrigger !== "undefined";
313
+ var isFirefox = typeof InstallTrigger !== 'undefined';
313
314
  var isChrome = environment['default'].isChrome;
314
315
 
315
- if (typeof window !== "undefined" && (isFirefox || isChrome) && window.addEventListener) {
316
+ if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) {
316
317
  window.addEventListener("load", function () {
317
318
  if (document.documentElement && document.documentElement.dataset && !document.documentElement.dataset.emberExtension) {
318
319
  var downloadURL;
319
320
 
320
321
  if (isChrome) {
321
- downloadURL = "https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi";
322
+ downloadURL = 'https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi';
322
323
  } else if (isFirefox) {
323
- downloadURL = "https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/";
324
+ downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/';
324
325
  }
325
326
 
326
- Ember['default'].debug("For more advanced debugging, install the Ember Inspector from " + downloadURL);
327
+ Ember['default'].debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL);
327
328
  }
328
329
  }, false);
329
330
  }
@@ -339,7 +340,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'embe
339
340
  */
340
341
  var runningNonEmberDebugJS = false;
341
342
  if (runningNonEmberDebugJS) {
342
- Ember['default'].warn("Please use `ember.debug.js` instead of `ember.js` for development and debugging.");
343
+ Ember['default'].warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.');
343
344
  }
344
345
 
345
346
  exports.runningNonEmberDebugJS = runningNonEmberDebugJS;
@@ -377,10 +378,7 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe
377
378
  computed.computed.and = computed_macros.and;
378
379
  computed.computed.or = computed_macros.or;
379
380
  computed.computed.any = computed_macros.any;
380
- computed.computed.collect = computed_macros.collect; // END IMPORTS
381
-
382
- // BEGIN EXPORTS
383
- var EmberInstrumentation = Ember['default'].Instrumentation = {};
381
+ computed.computed.collect = computed_macros.collect;var EmberInstrumentation = Ember['default'].Instrumentation = {};
384
382
  EmberInstrumentation.instrument = instrumentation.instrument;
385
383
  EmberInstrumentation.subscribe = instrumentation.subscribe;
386
384
  EmberInstrumentation.unsubscribe = instrumentation.unsubscribe;
@@ -527,7 +525,7 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe
527
525
  Ember['default'].Backburner = Backburner['default'];
528
526
 
529
527
  Ember['default'].libraries = new Libraries['default']();
530
- Ember['default'].libraries.registerCoreLibrary("Ember", Ember['default'].VERSION);
528
+ Ember['default'].libraries.registerCoreLibrary('Ember', Ember['default'].VERSION);
531
529
 
532
530
  Ember['default'].isNone = isNone['default'];
533
531
  Ember['default'].isEmpty = isEmpty['default'];
@@ -562,8 +560,8 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe
562
560
 
563
561
  // do this for side-effects of updating Ember.assert, warn, etc when
564
562
  // ember-debug is present
565
- if (Ember['default'].__loader.registry["ember-debug"]) {
566
- requireModule("ember-debug");
563
+ if (Ember['default'].__loader.registry['ember-debug']) {
564
+ requireModule('ember-debug');
567
565
  }
568
566
 
569
567
  exports['default'] = Ember['default'];
@@ -658,7 +656,7 @@ enifed('ember-metal/array', ['exports'], function (exports) {
658
656
  // if available, but not to use versions created by libraries like Prototype
659
657
  var isNativeFunc = function (func) {
660
658
  // This should probably work in all browsers likely to have ES5 array methods
661
- return func && Function.prototype.toString.call(func).indexOf("[native code]") > -1;
659
+ return func && Function.prototype.toString.call(func).indexOf('[native code]') > -1;
662
660
  };
663
661
 
664
662
  var defineNativeShim = function (nativeFunc, shim) {
@@ -892,7 +890,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
892
890
  @return {String} string representation of binding
893
891
  */
894
892
  toString: function () {
895
- var oneWay = this._oneWay ? "[oneWay]" : "";
893
+ var oneWay = this._oneWay ? '[oneWay]' : '';
896
894
  return "Ember.Binding<" + utils.guidFor(this) + ">(" + this._from + " -> " + this._to + ")" + oneWay;
897
895
  },
898
896
 
@@ -909,7 +907,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
909
907
  @return {Ember.Binding} `this`
910
908
  */
911
909
  connect: function (obj) {
912
- Ember['default'].assert("Must pass a valid object to Ember.Binding.connect()", !!obj);
910
+ Ember['default'].assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
913
911
 
914
912
  var fromPath = this._from;
915
913
  var toPath = this._to;
@@ -936,7 +934,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
936
934
  @return {Ember.Binding} `this`
937
935
  */
938
936
  disconnect: function (obj) {
939
- Ember['default'].assert("Must pass a valid object to Ember.Binding.disconnect()", !!obj);
937
+ Ember['default'].assert('Must pass a valid object to Ember.Binding.disconnect()', !!obj);
940
938
 
941
939
  var twoWay = !this._oneWay;
942
940
 
@@ -959,12 +957,12 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
959
957
 
960
958
  /* called when the from side changes */
961
959
  fromDidChange: function (target) {
962
- this._scheduleSync(target, "fwd");
960
+ this._scheduleSync(target, 'fwd');
963
961
  },
964
962
 
965
963
  /* called when the to side changes */
966
964
  toDidChange: function (target) {
967
- this._scheduleSync(target, "back");
965
+ this._scheduleSync(target, 'back');
968
966
  },
969
967
 
970
968
  _scheduleSync: function (obj, dir) {
@@ -972,14 +970,14 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
972
970
 
973
971
  // if we haven't scheduled the binding yet, schedule it
974
972
  if (existingDir === undefined) {
975
- run['default'].schedule("sync", this, this._sync, obj);
973
+ run['default'].schedule('sync', this, this._sync, obj);
976
974
  this._direction = dir;
977
975
  }
978
976
 
979
977
  // If both a 'back' and 'fwd' sync have been scheduled on the same object,
980
978
  // default to a 'fwd' sync so that it remains deterministic.
981
- if (existingDir === "back" && dir === "fwd") {
982
- this._direction = "fwd";
979
+ if (existingDir === 'back' && dir === 'fwd') {
980
+ this._direction = 'fwd';
983
981
  }
984
982
  },
985
983
 
@@ -1001,10 +999,10 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
1001
999
  this._direction = undefined;
1002
1000
 
1003
1001
  // if we're synchronizing from the remote object...
1004
- if (direction === "fwd") {
1002
+ if (direction === 'fwd') {
1005
1003
  var fromValue = getWithGlobals(obj, this._from);
1006
1004
  if (log) {
1007
- Ember['default'].Logger.log(" ", this.toString(), "->", fromValue, obj);
1005
+ Ember['default'].Logger.log(' ', this.toString(), '->', fromValue, obj);
1008
1006
  }
1009
1007
  if (this._oneWay) {
1010
1008
  property_set.trySet(obj, toPath, fromValue);
@@ -1014,15 +1012,15 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
1014
1012
  });
1015
1013
  }
1016
1014
  // if we're synchronizing *to* the remote object
1017
- } else if (direction === "back") {
1018
- var toValue = property_get.get(obj, this._to);
1019
- if (log) {
1020
- Ember['default'].Logger.log(" ", this.toString(), "<-", toValue, obj);
1015
+ } else if (direction === 'back') {
1016
+ var toValue = property_get.get(obj, this._to);
1017
+ if (log) {
1018
+ Ember['default'].Logger.log(' ', this.toString(), '<-', toValue, obj);
1019
+ }
1020
+ observer._suspendObserver(obj, fromPath, this, this.fromDidChange, function () {
1021
+ property_set.trySet(path_cache.isGlobal(fromPath) ? Ember['default'].lookup : obj, fromPath, toValue);
1022
+ });
1021
1023
  }
1022
- observer._suspendObserver(obj, fromPath, this, this.fromDidChange, function () {
1023
- property_set.trySet(path_cache.isGlobal(fromPath) ? Ember['default'].lookup : obj, fromPath, toValue);
1024
- });
1025
- }
1026
1024
  }
1027
1025
 
1028
1026
  };
@@ -1221,6 +1219,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
1221
1219
  Must be relative to obj or a global path.
1222
1220
  @return {Ember.Binding} binding instance
1223
1221
  */
1222
+
1224
1223
  function bind(obj, to, from) {
1225
1224
  return new Binding(to, from).connect(obj);
1226
1225
  }
@@ -1235,6 +1234,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/prope
1235
1234
  Must be relative to obj or a global path.
1236
1235
  @return {Ember.Binding} binding instance
1237
1236
  */
1237
+
1238
1238
  function oneWay(obj, to, from) {
1239
1239
  return new Binding(to, from).oneWay().connect(obj);
1240
1240
  }
@@ -1316,7 +1316,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1316
1316
  }
1317
1317
 
1318
1318
  function isObject(obj) {
1319
- return obj && typeof obj === "object";
1319
+ return obj && typeof obj === 'object';
1320
1320
  }
1321
1321
 
1322
1322
  var pendingQueue = [];
@@ -1337,7 +1337,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1337
1337
  q[0].add(q[1]);
1338
1338
  });
1339
1339
 
1340
- warn("Watching an undefined global, Ember expects watched globals to be" + " setup by the time the run loop is flushed, check for typos", pendingQueue.length === 0);
1340
+ warn('Watching an undefined global, Ember expects watched globals to be' + ' setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0);
1341
1341
  }
1342
1342
 
1343
1343
  function addChainWatcher(obj, keyName, node) {
@@ -1348,7 +1348,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1348
1348
  var m = utils.meta(obj);
1349
1349
  var nodes = m.chainWatchers;
1350
1350
 
1351
- if (!m.hasOwnProperty("chainWatchers")) {
1351
+ if (!m.hasOwnProperty('chainWatchers')) {
1352
1352
  // FIXME?!
1353
1353
  nodes = m.chainWatchers = {};
1354
1354
  }
@@ -1365,8 +1365,8 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1365
1365
  return;
1366
1366
  }
1367
1367
 
1368
- var m = obj["__ember_meta__"];
1369
- if (m && !m.hasOwnProperty("chainWatchers")) {
1368
+ var m = obj['__ember_meta__'];
1369
+ if (m && !m.hasOwnProperty('chainWatchers')) {
1370
1370
  return;
1371
1371
  }
1372
1372
 
@@ -1413,7 +1413,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1413
1413
  //
1414
1414
  // TODO: Replace this with an efficient callback that the EachProxy
1415
1415
  // can implement.
1416
- if (this._parent && this._parent._key === "@each") {
1416
+ if (this._parent && this._parent._key === '@each') {
1417
1417
  this.value();
1418
1418
  }
1419
1419
  }
@@ -1423,7 +1423,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1423
1423
  return;
1424
1424
  }
1425
1425
 
1426
- var meta = obj["__ember_meta__"];
1426
+ var meta = obj['__ember_meta__'];
1427
1427
  // check if object meant only to be a prototype
1428
1428
  if (meta && meta.proto === obj) {
1429
1429
  return;
@@ -1435,7 +1435,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1435
1435
 
1436
1436
  // if a CP only return cached value
1437
1437
  var possibleDesc = obj[key];
1438
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
1438
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
1439
1439
  if (desc && desc._cacheable) {
1440
1440
  if (meta.cache && key in meta.cache) {
1441
1441
  return meta.cache[key];
@@ -1502,16 +1502,16 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1502
1502
  // global path, but object does not exist yet.
1503
1503
  // put into a queue and try to connect later.
1504
1504
  } else if (!tuple[0]) {
1505
- pendingQueue.push([this, path]);
1506
- tuple.length = 0;
1507
- return;
1505
+ pendingQueue.push([this, path]);
1506
+ tuple.length = 0;
1507
+ return;
1508
1508
 
1509
- // global path, and object already exists
1510
- } else {
1511
- src = tuple[0];
1512
- key = path.slice(0, 0 - (tuple[1].length + 1));
1513
- path = tuple[1];
1514
- }
1509
+ // global path, and object already exists
1510
+ } else {
1511
+ src = tuple[0];
1512
+ key = path.slice(0, 0 - (tuple[1].length + 1));
1513
+ path = tuple[1];
1514
+ }
1515
1515
 
1516
1516
  tuple.length = 0;
1517
1517
  this.chain(key, path, src);
@@ -1603,7 +1603,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1603
1603
 
1604
1604
  chainWillChange: function (chain, path, depth, events) {
1605
1605
  if (this._key) {
1606
- path = this._key + "." + path;
1606
+ path = this._key + '.' + path;
1607
1607
  }
1608
1608
 
1609
1609
  if (this._parent) {
@@ -1612,7 +1612,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1612
1612
  if (depth > 1) {
1613
1613
  events.push(this.value(), path);
1614
1614
  }
1615
- path = "this." + path;
1615
+ path = 'this.' + path;
1616
1616
  if (this._paths[path] > 0) {
1617
1617
  events.push(this.value(), path);
1618
1618
  }
@@ -1621,7 +1621,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1621
1621
 
1622
1622
  chainDidChange: function (chain, path, depth, events) {
1623
1623
  if (this._key) {
1624
- path = this._key + "." + path;
1624
+ path = this._key + '.' + path;
1625
1625
  }
1626
1626
 
1627
1627
  if (this._parent) {
@@ -1630,7 +1630,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1630
1630
  if (depth > 1) {
1631
1631
  events.push(this.value(), path);
1632
1632
  }
1633
- path = "this." + path;
1633
+ path = 'this.' + path;
1634
1634
  if (this._paths[path] > 0) {
1635
1635
  events.push(this.value(), path);
1636
1636
  }
@@ -1650,7 +1650,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1650
1650
 
1651
1651
  // Special-case: the EachProxy relies on immediate evaluation to
1652
1652
  // establish its observers.
1653
- if (this._parent && this._parent._key === "@each") {
1653
+ if (this._parent && this._parent._key === '@each') {
1654
1654
  this.value();
1655
1655
  }
1656
1656
  }
@@ -1677,9 +1677,10 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
1677
1677
  }
1678
1678
  }
1679
1679
  };
1680
+
1680
1681
  function finishChains(obj) {
1681
1682
  // We only create meta if we really have to
1682
- var m = obj["__ember_meta__"];
1683
+ var m = obj['__ember_meta__'];
1683
1684
  var chains, chainWatchers, chainNodes;
1684
1685
 
1685
1686
  if (m) {
@@ -1828,10 +1829,10 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
1828
1829
  this._suspended = undefined;
1829
1830
  this._meta = undefined;
1830
1831
 
1831
- Ember.deprecate("Passing opts.cacheable to the CP constructor is deprecated. Invoke `volatile()` on the CP instead.", !opts || !opts.hasOwnProperty("cacheable"));
1832
+ Ember.deprecate("Passing opts.cacheable to the CP constructor is deprecated. Invoke `volatile()` on the CP instead.", !opts || !opts.hasOwnProperty('cacheable'));
1832
1833
  this._cacheable = opts && opts.cacheable !== undefined ? opts.cacheable : true; // TODO: Set always to `true` once this deprecation is gone.
1833
1834
  this._dependentKeys = opts && opts.dependentKeys;
1834
- Ember.deprecate("Passing opts.readOnly to the CP constructor is deprecated. All CPs are writable by default. You can invoke `readOnly()` on the CP to change this.", !opts || !opts.hasOwnProperty("readOnly"));
1835
+ Ember.deprecate("Passing opts.readOnly to the CP constructor is deprecated. All CPs are writable by default. You can invoke `readOnly()` on the CP to change this.", !opts || !opts.hasOwnProperty('readOnly'));
1835
1836
  this._readOnly = opts && (opts.readOnly !== undefined || !!opts.readOnly) || false; // TODO: Set always to `false` once this deprecation is gone.
1836
1837
  }
1837
1838
 
@@ -1856,7 +1857,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
1856
1857
  @deprecated All computed properties are cacheble by default. Use `volatile()` instead to opt-out to caching.
1857
1858
  */
1858
1859
  ComputedPropertyPrototype.cacheable = function (aFlag) {
1859
- Ember.deprecate("ComputedProperty.cacheable() is deprecated. All computed properties are cacheable by default.");
1860
+ Ember.deprecate('ComputedProperty.cacheable() is deprecated. All computed properties are cacheable by default.');
1860
1861
  this._cacheable = aFlag !== false;
1861
1862
  return this;
1862
1863
  };
@@ -1903,7 +1904,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
1903
1904
  @chainable
1904
1905
  */
1905
1906
  ComputedPropertyPrototype.readOnly = function (readOnly) {
1906
- Ember.deprecate("Passing arguments to ComputedProperty.readOnly() is deprecated.", arguments.length === 0);
1907
+ Ember.deprecate('Passing arguments to ComputedProperty.readOnly() is deprecated.', arguments.length === 0);
1907
1908
  this._readOnly = readOnly === undefined || !!readOnly; // Force to true once this deprecation is gone
1908
1909
  Ember.assert("Computed properties that define a setter using the new syntax cannot be read-only", !(this._readOnly && this._setter && this._setter !== this._getter));
1909
1910
 
@@ -2276,6 +2277,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
2276
2277
  var cp = new ComputedProperty(func);
2277
2278
  // jscs:disable
2278
2279
 
2280
+ // Empty block on purpose
2281
+
2279
2282
  if (args) {
2280
2283
  cp.property.apply(cp, args);
2281
2284
  }
@@ -2297,7 +2300,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
2297
2300
  @return {Object} the cached value
2298
2301
  */
2299
2302
  function cacheFor(obj, key) {
2300
- var meta = obj["__ember_meta__"];
2303
+ var meta = obj['__ember_meta__'];
2301
2304
  var cache = meta && meta.cache;
2302
2305
  var ret = cache && cache[key];
2303
2306
 
@@ -2397,8 +2400,9 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2397
2400
  @return {Ember.ComputedProperty} computed property which negate
2398
2401
  the original value for property
2399
2402
  */
2403
+
2400
2404
  function empty(dependentKey) {
2401
- return computed.computed(dependentKey + ".length", function () {
2405
+ return computed.computed(dependentKey + '.length', function () {
2402
2406
  return isEmpty['default'](property_get.get(this, dependentKey));
2403
2407
  });
2404
2408
  }
@@ -2427,8 +2431,9 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2427
2431
  @return {Ember.ComputedProperty} computed property which returns true if
2428
2432
  original value for property is not empty.
2429
2433
  */
2434
+
2430
2435
  function notEmpty(dependentKey) {
2431
- return computed.computed(dependentKey + ".length", function () {
2436
+ return computed.computed(dependentKey + '.length', function () {
2432
2437
  return !isEmpty['default'](property_get.get(this, dependentKey));
2433
2438
  });
2434
2439
  }
@@ -2460,6 +2465,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2460
2465
  @return {Ember.ComputedProperty} computed property which
2461
2466
  returns true if original value for property is null or undefined.
2462
2467
  */
2468
+
2463
2469
  function none(dependentKey) {
2464
2470
  return computed.computed(dependentKey, function () {
2465
2471
  return isNone['default'](property_get.get(this, dependentKey));
@@ -2490,6 +2496,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2490
2496
  @return {Ember.ComputedProperty} computed property which returns
2491
2497
  inverse of the original value for property
2492
2498
  */
2499
+
2493
2500
  function not(dependentKey) {
2494
2501
  return computed.computed(dependentKey, function () {
2495
2502
  return !property_get.get(this, dependentKey);
@@ -2522,6 +2529,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2522
2529
  @return {Ember.ComputedProperty} computed property which converts
2523
2530
  to boolean the original value for property
2524
2531
  */
2532
+
2525
2533
  function bool(dependentKey) {
2526
2534
  return computed.computed(dependentKey, function () {
2527
2535
  return !!property_get.get(this, dependentKey);
@@ -2556,11 +2564,12 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2556
2564
  @return {Ember.ComputedProperty} computed property which match
2557
2565
  the original value for property against a given RegExp
2558
2566
  */
2567
+
2559
2568
  function match(dependentKey, regexp) {
2560
2569
  return computed.computed(dependentKey, function () {
2561
2570
  var value = property_get.get(this, dependentKey);
2562
2571
 
2563
- return typeof value === "string" ? regexp.test(value) : false;
2572
+ return typeof value === 'string' ? regexp.test(value) : false;
2564
2573
  });
2565
2574
  }
2566
2575
 
@@ -2591,6 +2600,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2591
2600
  @return {Ember.ComputedProperty} computed property which returns true if
2592
2601
  the original value for property is equal to the given value.
2593
2602
  */
2603
+
2594
2604
  function equal(dependentKey, value) {
2595
2605
  return computed.computed(dependentKey, function () {
2596
2606
  return property_get.get(this, dependentKey) === value;
@@ -2624,6 +2634,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2624
2634
  @return {Ember.ComputedProperty} computed property which returns true if
2625
2635
  the original value for property is greater than given value.
2626
2636
  */
2637
+
2627
2638
  function gt(dependentKey, value) {
2628
2639
  return computed.computed(dependentKey, function () {
2629
2640
  return property_get.get(this, dependentKey) > value;
@@ -2657,6 +2668,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2657
2668
  @return {Ember.ComputedProperty} computed property which returns true if
2658
2669
  the original value for property is greater or equal then given value.
2659
2670
  */
2671
+
2660
2672
  function gte(dependentKey, value) {
2661
2673
  return computed.computed(dependentKey, function () {
2662
2674
  return property_get.get(this, dependentKey) >= value;
@@ -2690,6 +2702,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2690
2702
  @return {Ember.ComputedProperty} computed property which returns true if
2691
2703
  the original value for property is less then given value.
2692
2704
  */
2705
+
2693
2706
  function lt(dependentKey, value) {
2694
2707
  return computed.computed(dependentKey, function () {
2695
2708
  return property_get.get(this, dependentKey) < value;
@@ -2723,6 +2736,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2723
2736
  @return {Ember.ComputedProperty} computed property which returns true if
2724
2737
  the original value for property is less or equal than given value.
2725
2738
  */
2739
+
2726
2740
  function lte(dependentKey, value) {
2727
2741
  return computed.computed(dependentKey, function () {
2728
2742
  return property_get.get(this, dependentKey) <= value;
@@ -2849,6 +2863,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2849
2863
  one way computed property to the original value for property.
2850
2864
  @since 1.5.0
2851
2865
  */
2866
+
2852
2867
  function readOnly(dependentKey) {
2853
2868
  return alias['default'](dependentKey).readOnly();
2854
2869
  }
@@ -2880,15 +2895,16 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2880
2895
  a standard getter and setter, but defaults to the value from `defaultPath`.
2881
2896
  @deprecated Use `Ember.computed.oneWay` or custom CP with default instead.
2882
2897
  */
2898
+
2883
2899
  function defaultTo(defaultPath) {
2884
2900
  return computed.computed({
2885
2901
  get: function (key) {
2886
- Ember['default'].deprecate("Usage of Ember.computed.defaultTo is deprecated, use `Ember.computed.oneWay` instead.");
2902
+ Ember['default'].deprecate('Usage of Ember.computed.defaultTo is deprecated, use `Ember.computed.oneWay` instead.');
2887
2903
  return property_get.get(this, defaultPath);
2888
2904
  },
2889
2905
 
2890
2906
  set: function (key, newValue, cachedValue) {
2891
- Ember['default'].deprecate("Usage of Ember.computed.defaultTo is deprecated, use `Ember.computed.oneWay` instead.");
2907
+ Ember['default'].deprecate('Usage of Ember.computed.defaultTo is deprecated, use `Ember.computed.oneWay` instead.');
2892
2908
  return newValue != null ? newValue : property_get.get(this, defaultPath);
2893
2909
  }
2894
2910
  });
@@ -2907,6 +2923,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
2907
2923
  alias with a deprecation to the original value for property.
2908
2924
  @since 1.7.0
2909
2925
  */
2926
+
2910
2927
  function deprecatingAlias(dependentKey) {
2911
2928
  return computed.computed(dependentKey, {
2912
2929
  get: function (key) {
@@ -2957,7 +2974,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
2957
2974
 
2958
2975
  @class Ember
2959
2976
  @static
2960
- @version 1.12.1
2977
+ @version 1.12.2
2961
2978
  */
2962
2979
 
2963
2980
  if ('undefined' === typeof Ember) {
@@ -2986,10 +3003,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
2986
3003
  /**
2987
3004
  @property VERSION
2988
3005
  @type String
2989
- @default '1.12.1'
3006
+ @default '1.12.2'
2990
3007
  @static
2991
3008
  */
2992
- Ember.VERSION = '1.12.1';
3009
+ Ember.VERSION = '1.12.2';
2993
3010
 
2994
3011
  /**
2995
3012
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -3030,7 +3047,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
3030
3047
  @static
3031
3048
  @since 1.1.0
3032
3049
  */
3033
- Ember.FEATURES = { 'features-stripped-test': false, 'ember-routing-named-substates': true, 'mandatory-setter': true, 'ember-htmlbars-component-generation': false, 'ember-htmlbars-component-helper': true, 'ember-htmlbars-inline-if-helper': true, 'ember-htmlbars-attribute-syntax': true, 'ember-routing-transitioning-classes': true, 'new-computed-syntax': true, 'ember-testing-checkbox-helpers': false, 'ember-metal-stream': false, 'ember-application-instance-initializers': true, 'ember-application-initializer-context': true, 'ember-router-willtransition': true, 'ember-application-visit': false, 'ember-views-component-block-info': false, 'ember-routing-core-outlet': false, 'ember-libraries-isregistered': false }; //jshint ignore:line
3050
+ Ember.FEATURES = { "features-stripped-test": false, "ember-routing-named-substates": true, "mandatory-setter": true, "ember-htmlbars-component-generation": false, "ember-htmlbars-component-helper": true, "ember-htmlbars-inline-if-helper": true, "ember-htmlbars-attribute-syntax": true, "ember-routing-transitioning-classes": true, "new-computed-syntax": true, "ember-testing-checkbox-helpers": false, "ember-metal-stream": false, "ember-application-instance-initializers": true, "ember-application-initializer-context": true, "ember-router-willtransition": true, "ember-application-visit": false, "ember-views-component-block-info": false, "ember-routing-core-outlet": false, "ember-libraries-isregistered": false }; //jshint ignore:line
3034
3051
 
3035
3052
  if (Ember.ENV.FEATURES) {
3036
3053
  for (var feature in Ember.ENV.FEATURES) {
@@ -3168,26 +3185,7 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/platform/create',
3168
3185
  exports.addDependentKeys = addDependentKeys;
3169
3186
  exports.removeDependentKeys = removeDependentKeys;
3170
3187
 
3171
- "REMOVE_USE_STRICT: true"; /**
3172
- @module ember-metal
3173
- */
3174
-
3175
- // ..........................................................
3176
- // DEPENDENT KEYS
3177
- //
3178
-
3179
- // data structure:
3180
- // meta.deps = {
3181
- // 'depKey': {
3182
- // 'keyName': count,
3183
- // }
3184
- // }
3185
-
3186
- /*
3187
- This function returns a map of unique dependencies for a
3188
- given object and key.
3189
- */
3190
- function keysForDep(depsMeta, depKey) {
3188
+ "REMOVE_USE_STRICT: true";function keysForDep(depsMeta, depKey) {
3191
3189
  var keys = depsMeta[depKey];
3192
3190
  if (!keys) {
3193
3191
  // if there are no dependencies yet for a the given key
@@ -3202,8 +3200,9 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/platform/create',
3202
3200
  }
3203
3201
 
3204
3202
  function metaForDeps(meta) {
3205
- return keysForDep(meta, "deps");
3203
+ return keysForDep(meta, 'deps');
3206
3204
  }
3205
+
3207
3206
  function addDependentKeys(desc, obj, keyName, meta) {
3208
3207
  // the descriptor has a list of dependent keys, so
3209
3208
  // add all of its dependent keys.
@@ -3328,6 +3327,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3328
3327
  *
3329
3328
  * @return {Array} An array of mapped values.
3330
3329
  */
3330
+
3331
3331
  function map(obj, callback, thisArg) {
3332
3332
  return obj.map ? obj.map(callback, thisArg) : ember_metal__array.map.call(obj, callback, thisArg);
3333
3333
  }
@@ -3342,6 +3342,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3342
3342
  * @param {Object} thisArg Value to use as this when executing *callback*
3343
3343
  *
3344
3344
  */
3345
+
3345
3346
  function forEach(obj, callback, thisArg) {
3346
3347
  return obj.forEach ? obj.forEach(callback, thisArg) : ember_metal__array.forEach.call(obj, callback, thisArg);
3347
3348
  }
@@ -3358,6 +3359,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3358
3359
  * @return {Array} An array containing the filtered values
3359
3360
  * @since 1.4.0
3360
3361
  */
3362
+
3361
3363
  function filter(obj, callback, thisArg) {
3362
3364
  return obj.filter ? obj.filter(callback, thisArg) : ember_metal__array.filter.call(obj, callback, thisArg);
3363
3365
  }
@@ -3372,6 +3374,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3372
3374
  * @param {Object} index The index to start searching from
3373
3375
  *
3374
3376
  */
3377
+
3375
3378
  function indexOf(obj, element, index) {
3376
3379
  return obj.indexOf ? obj.indexOf(element, index) : ember_metal__array.indexOf.call(obj, element, index);
3377
3380
  }
@@ -3395,6 +3398,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3395
3398
  * @return {Array} An array of indexes.
3396
3399
  *
3397
3400
  */
3401
+
3398
3402
  function indexesOf(obj, elements) {
3399
3403
  return elements === undefined ? [] : map(elements, function (item) {
3400
3404
  return indexOf(obj, item);
@@ -3411,6 +3415,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3411
3415
  *
3412
3416
  * @return 'undefined'
3413
3417
  */
3418
+
3414
3419
  function addObject(array, item) {
3415
3420
  var index = indexOf(array, item);
3416
3421
  if (index === -1) {
@@ -3428,6 +3433,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3428
3433
  *
3429
3434
  * @return 'undefined'
3430
3435
  */
3436
+
3431
3437
  function removeObject(array, item) {
3432
3438
  var index = indexOf(array, item);
3433
3439
  if (index !== -1) {
@@ -3486,6 +3492,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3486
3492
  *
3487
3493
  * @return {Array} The modified array.
3488
3494
  */
3495
+
3489
3496
  function replace(array, idx, amt, objects) {
3490
3497
  if (array.replace) {
3491
3498
  return array.replace(idx, amt, objects);
@@ -3517,6 +3524,7 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
3517
3524
  *
3518
3525
  * @return {Array} The intersection of the two passed arrays.
3519
3526
  */
3527
+
3520
3528
  function intersection(array1, array2) {
3521
3529
  var result = [];
3522
3530
  forEach(array1, function (element) {
@@ -3571,7 +3579,7 @@ enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exp
3571
3579
  isChrome: false,
3572
3580
  location: null,
3573
3581
  history: null,
3574
- userAgent: 'Lynx (textmode)',
3582
+ userAgent: "Lynx (textmode)",
3575
3583
  global: null
3576
3584
  };
3577
3585
  }
@@ -3631,8 +3639,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3631
3639
  exports.on = on;
3632
3640
  exports.removeListener = removeListener;
3633
3641
 
3634
- "REMOVE_USE_STRICT: true"; /* listener flags */
3635
- var ONCE = 1;
3642
+ "REMOVE_USE_STRICT: true";var ONCE = 1;
3636
3643
  var SUSPENDED = 2;
3637
3644
 
3638
3645
  /*
@@ -3694,8 +3701,9 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3694
3701
 
3695
3702
  return actions;
3696
3703
  }
3704
+
3697
3705
  function accumulateListeners(obj, eventName, otherActions) {
3698
- var meta = obj["__ember_meta__"];
3706
+ var meta = obj['__ember_meta__'];
3699
3707
  var actions = meta && meta.listeners && meta.listeners[eventName];
3700
3708
 
3701
3709
  if (!actions) {
@@ -3730,10 +3738,11 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3730
3738
  @param {Function|String} method A function or the name of a function to be called on `target`
3731
3739
  @param {Boolean} once A flag whether a function should only be called once
3732
3740
  */
3741
+
3733
3742
  function addListener(obj, eventName, target, method, once) {
3734
3743
  Ember['default'].assert("You must pass at least an object and event name to Ember.addListener", !!obj && !!eventName);
3735
3744
 
3736
- if (!method && "function" === typeof target) {
3745
+ if (!method && 'function' === typeof target) {
3737
3746
  method = target;
3738
3747
  target = null;
3739
3748
  }
@@ -3752,7 +3761,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3752
3761
 
3753
3762
  actions.push(target, method, flags);
3754
3763
 
3755
- if ("function" === typeof obj.didAddListener) {
3764
+ if ('function' === typeof obj.didAddListener) {
3756
3765
  obj.didAddListener(eventName, target, method);
3757
3766
  }
3758
3767
  }
@@ -3772,7 +3781,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3772
3781
  function removeListener(obj, eventName, target, method) {
3773
3782
  Ember['default'].assert("You must pass at least an object and event name to Ember.removeListener", !!obj && !!eventName);
3774
3783
 
3775
- if (!method && "function" === typeof target) {
3784
+ if (!method && 'function' === typeof target) {
3776
3785
  method = target;
3777
3786
  target = null;
3778
3787
  }
@@ -3788,7 +3797,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3788
3797
 
3789
3798
  actions.splice(actionIndex, 3);
3790
3799
 
3791
- if ("function" === typeof obj.didRemoveListener) {
3800
+ if ('function' === typeof obj.didRemoveListener) {
3792
3801
  obj.didRemoveListener(eventName, target, method);
3793
3802
  }
3794
3803
  }
@@ -3796,7 +3805,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3796
3805
  if (method) {
3797
3806
  _removeListener(target, method);
3798
3807
  } else {
3799
- var meta = obj["__ember_meta__"];
3808
+ var meta = obj['__ember_meta__'];
3800
3809
  var actions = meta && meta.listeners && meta.listeners[eventName];
3801
3810
 
3802
3811
  if (!actions) {
@@ -3826,8 +3835,9 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3826
3835
  @param {Function|String} method A function or the name of a function to be called on `target`
3827
3836
  @param {Function} callback
3828
3837
  */
3838
+
3829
3839
  function suspendListener(obj, eventName, target, method, callback) {
3830
- if (!method && "function" === typeof target) {
3840
+ if (!method && 'function' === typeof target) {
3831
3841
  method = target;
3832
3842
  target = null;
3833
3843
  }
@@ -3864,8 +3874,9 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3864
3874
  @param {Function|String} method A function or the name of a function to be called on `target`
3865
3875
  @param {Function} callback
3866
3876
  */
3877
+
3867
3878
  function suspendListeners(obj, eventNames, target, method, callback) {
3868
- if (!method && "function" === typeof target) {
3879
+ if (!method && 'function' === typeof target) {
3869
3880
  method = target;
3870
3881
  target = null;
3871
3882
  }
@@ -3908,13 +3919,14 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3908
3919
  @for Ember
3909
3920
  @param obj
3910
3921
  */
3922
+
3911
3923
  function watchedEvents(obj) {
3912
- var listeners = obj["__ember_meta__"].listeners;
3924
+ var listeners = obj['__ember_meta__'].listeners;
3913
3925
  var ret = [];
3914
3926
 
3915
3927
  if (listeners) {
3916
3928
  for (var eventName in listeners) {
3917
- if (eventName !== "__source__" && listeners[eventName]) {
3929
+ if (eventName !== '__source__' && listeners[eventName]) {
3918
3930
  ret.push(eventName);
3919
3931
  }
3920
3932
  }
@@ -3936,14 +3948,15 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3936
3948
  @param {Array} actions Optional array of actions (listeners).
3937
3949
  @return true
3938
3950
  */
3951
+
3939
3952
  function sendEvent(obj, eventName, params, actions) {
3940
3953
  // first give object a chance to handle it
3941
- if (obj !== Ember['default'] && "function" === typeof obj.sendEvent) {
3954
+ if (obj !== Ember['default'] && 'function' === typeof obj.sendEvent) {
3942
3955
  obj.sendEvent(eventName, params);
3943
3956
  }
3944
3957
 
3945
3958
  if (!actions) {
3946
- var meta = obj["__ember_meta__"];
3959
+ var meta = obj['__ember_meta__'];
3947
3960
  actions = meta && meta.listeners && meta.listeners[eventName];
3948
3961
  }
3949
3962
 
@@ -3969,7 +3982,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3969
3982
  if (!target) {
3970
3983
  target = obj;
3971
3984
  }
3972
- if ("string" === typeof method) {
3985
+ if ('string' === typeof method) {
3973
3986
  if (params) {
3974
3987
  utils.applyStr(target, method, params);
3975
3988
  } else {
@@ -3993,8 +4006,9 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
3993
4006
  @param obj
3994
4007
  @param {String} eventName
3995
4008
  */
4009
+
3996
4010
  function hasListeners(obj, eventName) {
3997
- var meta = obj["__ember_meta__"];
4011
+ var meta = obj['__ember_meta__'];
3998
4012
  var actions = meta && meta.listeners && meta.listeners[eventName];
3999
4013
 
4000
4014
  return !!(actions && actions.length);
@@ -4007,9 +4021,10 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
4007
4021
  @param obj
4008
4022
  @param {String} eventName
4009
4023
  */
4024
+
4010
4025
  function listenersFor(obj, eventName) {
4011
4026
  var ret = [];
4012
- var meta = obj["__ember_meta__"];
4027
+ var meta = obj['__ember_meta__'];
4013
4028
  var actions = meta && meta.listeners && meta.listeners[eventName];
4014
4029
 
4015
4030
  if (!actions) {
@@ -4048,6 +4063,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
4048
4063
  @param {Function} func
4049
4064
  @return func
4050
4065
  */
4066
+
4051
4067
  function on() {
4052
4068
  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
4053
4069
  args[_key] = arguments[_key];
@@ -4144,7 +4160,7 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get', 'em
4144
4160
  var propertyNames = arguments;
4145
4161
  var i = 1;
4146
4162
 
4147
- if (arguments.length === 2 && utils.typeOf(arguments[1]) === "array") {
4163
+ if (arguments.length === 2 && utils.typeOf(arguments[1]) === 'array') {
4148
4164
  i = 0;
4149
4165
  propertyNames = arguments[1];
4150
4166
  }
@@ -4169,11 +4185,11 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/core', 'ember-m
4169
4185
 
4170
4186
  function injectedPropertyGet(keyName) {
4171
4187
  var possibleDesc = this[keyName];
4172
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
4188
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
4173
4189
 
4174
4190
  Ember['default'].assert("Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.", this.container);
4175
4191
 
4176
- return this.container.lookup(desc.type + ":" + (desc.name || keyName));
4192
+ return this.container.lookup(desc.type + ':' + (desc.name || keyName));
4177
4193
  }
4178
4194
 
4179
4195
  InjectedProperty.prototype = create['default'](properties.Descriptor.prototype);
@@ -4221,7 +4237,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-met
4221
4237
  };
4222
4238
 
4223
4239
  var time = (function () {
4224
- var perf = "undefined" !== typeof window ? window.performance || {} : {};
4240
+ var perf = 'undefined' !== typeof window ? window.performance || {} : {};
4225
4241
  var fn = perf.now || perf.mozNow || perf.webkitNow || perf.msNow || perf.oNow;
4226
4242
  // fn.bind will be available in all the browsers that support the advanced window.performance... ;-)
4227
4243
  return fn ? fn.bind(perf) : function () {
@@ -4240,8 +4256,9 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-met
4240
4256
  @param {Function} callback Function that you're instrumenting.
4241
4257
  @param {Object} binding Context that instrument function is called with.
4242
4258
  */
4259
+
4243
4260
  function instrument(name, _payload, callback, binding) {
4244
- if (arguments.length <= 3 && typeof _payload === "function") {
4261
+ if (arguments.length <= 3 && typeof _payload === 'function') {
4245
4262
  binding = callback;
4246
4263
  callback = _payload;
4247
4264
  _payload = undefined;
@@ -4322,6 +4339,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-met
4322
4339
 
4323
4340
  @return {Subscriber}
4324
4341
  */
4342
+
4325
4343
  function subscribe(pattern, object) {
4326
4344
  var paths = pattern.split(".");
4327
4345
  var path;
@@ -4359,6 +4377,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-met
4359
4377
 
4360
4378
  @param {Object} [subscriber]
4361
4379
  */
4380
+
4362
4381
  function unsubscribe(subscriber) {
4363
4382
  var index;
4364
4383
 
@@ -4378,6 +4397,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-met
4378
4397
  @method reset
4379
4398
  @namespace Ember.Instrumentation
4380
4399
  */
4400
+
4381
4401
  function reset() {
4382
4402
  subscribers.length = 0;
4383
4403
  cache = {};
@@ -4573,7 +4593,7 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/core', 'ember-metal/enu
4573
4593
  },
4574
4594
 
4575
4595
  each: function (callback) {
4576
- Ember['default'].deprecate("Using Ember.libraries.each() is deprecated. Access to a list of registered libraries is currently a private API. If you are not knowingly accessing this method, your out-of-date Ember Inspector may be doing so.");
4596
+ Ember['default'].deprecate('Using Ember.libraries.each() is deprecated. Access to a list of registered libraries is currently a private API. If you are not knowingly accessing this method, your out-of-date Ember Inspector may be doing so.');
4577
4597
  enumerable_utils.forEach(this._registry, function (lib) {
4578
4598
  callback(lib.name, lib.version);
4579
4599
  });
@@ -4596,27 +4616,27 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4596
4616
  var consoleObj, logToConsole;
4597
4617
  if (Ember['default'].imports.console) {
4598
4618
  consoleObj = Ember['default'].imports.console;
4599
- } else if (typeof console !== "undefined") {
4619
+ } else if (typeof console !== 'undefined') {
4600
4620
  consoleObj = console;
4601
4621
  }
4602
4622
 
4603
- var method = typeof consoleObj === "object" ? consoleObj[name] : null;
4623
+ var method = typeof consoleObj === 'object' ? consoleObj[name] : null;
4604
4624
 
4605
4625
  if (method) {
4606
4626
  // Older IE doesn't support bind, but Chrome needs it
4607
- if (typeof method.bind === "function") {
4627
+ if (typeof method.bind === 'function') {
4608
4628
  logToConsole = method.bind(consoleObj);
4609
- logToConsole.displayName = "console." + name;
4629
+ logToConsole.displayName = 'console.' + name;
4610
4630
  return logToConsole;
4611
- } else if (typeof method.apply === "function") {
4631
+ } else if (typeof method.apply === 'function') {
4612
4632
  logToConsole = function () {
4613
4633
  method.apply(consoleObj, arguments);
4614
4634
  };
4615
- logToConsole.displayName = "console." + name;
4635
+ logToConsole.displayName = 'console.' + name;
4616
4636
  return logToConsole;
4617
4637
  } else {
4618
4638
  return function () {
4619
- var message = Array.prototype.join.call(arguments, ", ");
4639
+ var message = Array.prototype.join.call(arguments, ', ');
4620
4640
  method(message);
4621
4641
  };
4622
4642
  }
@@ -4656,7 +4676,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4656
4676
  @for Ember.Logger
4657
4677
  @param {*} arguments
4658
4678
  */
4659
- log: consoleMethod("log") || K,
4679
+ log: consoleMethod('log') || K,
4660
4680
 
4661
4681
  /**
4662
4682
  Prints the arguments to the console with a warning icon.
@@ -4669,7 +4689,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4669
4689
  @for Ember.Logger
4670
4690
  @param {*} arguments
4671
4691
  */
4672
- warn: consoleMethod("warn") || K,
4692
+ warn: consoleMethod('warn') || K,
4673
4693
 
4674
4694
  /**
4675
4695
  Prints the arguments to the console with an error icon, red text and a stack trace.
@@ -4682,7 +4702,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4682
4702
  @for Ember.Logger
4683
4703
  @param {*} arguments
4684
4704
  */
4685
- error: consoleMethod("error") || K,
4705
+ error: consoleMethod('error') || K,
4686
4706
 
4687
4707
  /**
4688
4708
  Logs the arguments to the console.
@@ -4696,7 +4716,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4696
4716
  @for Ember.Logger
4697
4717
  @param {*} arguments
4698
4718
  */
4699
- info: consoleMethod("info") || K,
4719
+ info: consoleMethod('info') || K,
4700
4720
 
4701
4721
  /**
4702
4722
  Logs the arguments to the console in blue text.
@@ -4710,7 +4730,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4710
4730
  @for Ember.Logger
4711
4731
  @param {*} arguments
4712
4732
  */
4713
- debug: consoleMethod("debug") || consoleMethod("info") || K,
4733
+ debug: consoleMethod('debug') || consoleMethod('info') || K,
4714
4734
 
4715
4735
  /**
4716
4736
  If the value passed into `Ember.Logger.assert` is not truthy it will throw an error with a stack trace.
@@ -4722,7 +4742,7 @@ enifed('ember-metal/logger', ['exports', 'ember-metal/core', 'ember-metal/error'
4722
4742
  @for Ember.Logger
4723
4743
  @param {Boolean} bool Value to test
4724
4744
  */
4725
- assert: consoleMethod("assert") || assertPolyfill
4745
+ assert: consoleMethod('assert') || assertPolyfill
4726
4746
  };
4727
4747
 
4728
4748
  });
@@ -4757,7 +4777,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
4757
4777
  */
4758
4778
 
4759
4779
  function missingFunction(fn) {
4760
- throw new TypeError("" + Object.prototype.toString.call(fn) + " is not a function");
4780
+ throw new TypeError(Object.prototype.toString.call(fn) + " is not a function");
4761
4781
  }
4762
4782
 
4763
4783
  function missingNew(name) {
@@ -4855,7 +4875,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
4855
4875
  @return {Boolean}
4856
4876
  */
4857
4877
  remove: function (obj, _guid) {
4858
- Ember.deprecate("Calling `OrderedSet.prototype.remove` has been deprecated, please use `OrderedSet.prototype.delete` instead.", this._silenceRemoveDeprecation);
4878
+ Ember.deprecate('Calling `OrderedSet.prototype.remove` has been deprecated, please use `OrderedSet.prototype.delete` instead.', this._silenceRemoveDeprecation);
4859
4879
 
4860
4880
  return this["delete"](obj, _guid);
4861
4881
  },
@@ -4915,7 +4935,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
4915
4935
  @param self
4916
4936
  */
4917
4937
  forEach: function (fn /*, ...thisArg*/) {
4918
- if (typeof fn !== "function") {
4938
+ if (typeof fn !== 'function') {
4919
4939
  missingFunction(fn);
4920
4940
  }
4921
4941
 
@@ -4963,7 +4983,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
4963
4983
  }
4964
4984
  };
4965
4985
 
4966
- deprecate_property.deprecateProperty(OrderedSet.prototype, "length", "size");
4986
+ deprecate_property.deprecateProperty(OrderedSet.prototype, 'length', 'size');
4967
4987
 
4968
4988
  /**
4969
4989
  A Map stores values indexed by keys. Unlike JavaScript's
@@ -5069,7 +5089,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
5069
5089
  @return {Boolean} true if an item was removed, false otherwise
5070
5090
  */
5071
5091
  remove: function (key) {
5072
- Ember.deprecate("Calling `Map.prototype.remove` has been deprecated, please use `Map.prototype.delete` instead.");
5092
+ Ember.deprecate('Calling `Map.prototype.remove` has been deprecated, please use `Map.prototype.delete` instead.');
5073
5093
 
5074
5094
  return this["delete"](key);
5075
5095
  },
@@ -5121,7 +5141,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
5121
5141
  callback. By default, `this` is the map.
5122
5142
  */
5123
5143
  forEach: function (callback /*, ...thisArg*/) {
5124
- if (typeof callback !== "function") {
5144
+ if (typeof callback !== 'function') {
5125
5145
  missingFunction(callback);
5126
5146
  }
5127
5147
 
@@ -5165,7 +5185,7 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
5165
5185
  }
5166
5186
  };
5167
5187
 
5168
- deprecate_property.deprecateProperty(Map.prototype, "length", "size");
5188
+ deprecate_property.deprecateProperty(Map.prototype, 'length', 'size');
5169
5189
 
5170
5190
  /**
5171
5191
  @class MapWithDefault
@@ -5310,14 +5330,14 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5310
5330
  var ret = m.mixins;
5311
5331
  if (!ret) {
5312
5332
  ret = m.mixins = {};
5313
- } else if (!m.hasOwnProperty("mixins")) {
5333
+ } else if (!m.hasOwnProperty('mixins')) {
5314
5334
  ret = m.mixins = o_create['default'](ret);
5315
5335
  }
5316
5336
  return ret;
5317
5337
  }
5318
5338
 
5319
5339
  function isMethod(obj) {
5320
- return "function" === typeof obj && obj.isMethod !== false && obj !== Boolean && obj !== Object && obj !== Number && obj !== Array && obj !== Date && obj !== String;
5340
+ return 'function' === typeof obj && obj.isMethod !== false && obj !== Boolean && obj !== Object && obj !== Number && obj !== Array && obj !== Date && obj !== String;
5321
5341
  }
5322
5342
 
5323
5343
  var CONTINUE = {};
@@ -5362,7 +5382,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5362
5382
  // it on the original object.
5363
5383
  if (!superProperty) {
5364
5384
  var possibleDesc = base[key];
5365
- var superDesc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
5385
+ var superDesc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
5366
5386
 
5367
5387
  superProperty = superDesc;
5368
5388
  }
@@ -5389,7 +5409,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5389
5409
 
5390
5410
  var sourceAvailable = (function () {
5391
5411
  return this;
5392
- }).toString().indexOf("return this;") > -1;
5412
+ }).toString().indexOf('return this;') > -1;
5393
5413
 
5394
5414
  function giveMethodSuper(obj, key, method, values, descs) {
5395
5415
  var superMethod;
@@ -5405,7 +5425,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5405
5425
  superMethod = superMethod || obj[key];
5406
5426
 
5407
5427
  // Only wrap the new method if the original method was a function
5408
- if (superMethod === undefined || "function" !== typeof superMethod) {
5428
+ if (superMethod === undefined || 'function' !== typeof superMethod) {
5409
5429
  return method;
5410
5430
  }
5411
5431
 
@@ -5414,7 +5434,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5414
5434
  hasSuper = method.__hasSuper;
5415
5435
 
5416
5436
  if (hasSuper === undefined) {
5417
- hasSuper = method.toString().indexOf("_super") > -1;
5437
+ hasSuper = method.toString().indexOf('_super') > -1;
5418
5438
  method.__hasSuper = hasSuper;
5419
5439
  }
5420
5440
  }
@@ -5430,7 +5450,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5430
5450
  var baseValue = values[key] || obj[key];
5431
5451
 
5432
5452
  if (baseValue) {
5433
- if ("function" === typeof baseValue.concat) {
5453
+ if ('function' === typeof baseValue.concat) {
5434
5454
  if (value === null || value === undefined) {
5435
5455
  return baseValue;
5436
5456
  } else {
@@ -5493,7 +5513,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5493
5513
  descs[key] = value;
5494
5514
  values[key] = undefined;
5495
5515
  } else {
5496
- if (concats && array.indexOf.call(concats, key) >= 0 || key === "concatenatedProperties" || key === "mergedProperties") {
5516
+ if (concats && array.indexOf.call(concats, key) >= 0 || key === 'concatenatedProperties' || key === 'mergedProperties') {
5497
5517
  value = applyConcatenatedProperties(base, key, value, values);
5498
5518
  } else if (mergings && array.indexOf.call(mergings, key) >= 0) {
5499
5519
  value = applyMergedProperties(base, key, value, values);
@@ -5516,7 +5536,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5516
5536
 
5517
5537
  for (var i = 0, l = mixins.length; i < l; i++) {
5518
5538
  currentMixin = mixins[i];
5519
- Ember['default'].assert("Expected hash or Mixin instance, got " + Object.prototype.toString.call(currentMixin), typeof currentMixin === "object" && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== "[object Array]");
5539
+ Ember['default'].assert("Expected hash or Mixin instance, got " + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
5520
5540
 
5521
5541
  props = mixinProperties(m, currentMixin);
5522
5542
  if (props === CONTINUE) {
@@ -5528,8 +5548,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5528
5548
  if (base.willMergeMixin) {
5529
5549
  base.willMergeMixin(props);
5530
5550
  }
5531
- concats = concatenatedMixinProperties("concatenatedProperties", props, values, base);
5532
- mergings = concatenatedMixinProperties("mergedProperties", props, values, base);
5551
+ concats = concatenatedMixinProperties('concatenatedProperties', props, values, base);
5552
+ mergings = concatenatedMixinProperties('mergedProperties', props, values, base);
5533
5553
 
5534
5554
  for (key in props) {
5535
5555
  if (!props.hasOwnProperty(key)) {
@@ -5540,7 +5560,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5540
5560
  }
5541
5561
 
5542
5562
  // manually copy toString() because some JS engines do not enumerate it
5543
- if (props.hasOwnProperty("toString")) {
5563
+ if (props.hasOwnProperty('toString')) {
5544
5564
  base.toString = props.toString;
5545
5565
  }
5546
5566
  } else if (currentMixin.mixins) {
@@ -5559,7 +5579,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5559
5579
  var bindings = m.bindings;
5560
5580
  if (!bindings) {
5561
5581
  bindings = m.bindings = {};
5562
- } else if (!m.hasOwnProperty("bindings")) {
5582
+ } else if (!m.hasOwnProperty('bindings')) {
5563
5583
  bindings = m.bindings = o_create['default'](m.bindings);
5564
5584
  }
5565
5585
  bindings[key] = value;
@@ -5631,7 +5651,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5631
5651
  if (descs[altKey] || values[altKey]) {
5632
5652
  value = values[altKey];
5633
5653
  desc = descs[altKey];
5634
- } else if ((possibleDesc = obj[altKey]) && possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor) {
5654
+ } else if ((possibleDesc = obj[altKey]) && possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor) {
5635
5655
  desc = possibleDesc;
5636
5656
  value = undefined;
5637
5657
  } else {
@@ -5655,16 +5675,16 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5655
5675
  function replaceObserversAndListeners(obj, key, observerOrListener) {
5656
5676
  var prev = obj[key];
5657
5677
 
5658
- if ("function" === typeof prev) {
5659
- updateObserversAndListeners(obj, key, prev, "__ember_observesBefore__", ember_metal__observer.removeBeforeObserver);
5660
- updateObserversAndListeners(obj, key, prev, "__ember_observes__", ember_metal__observer.removeObserver);
5661
- updateObserversAndListeners(obj, key, prev, "__ember_listens__", events.removeListener);
5678
+ if ('function' === typeof prev) {
5679
+ updateObserversAndListeners(obj, key, prev, '__ember_observesBefore__', ember_metal__observer.removeBeforeObserver);
5680
+ updateObserversAndListeners(obj, key, prev, '__ember_observes__', ember_metal__observer.removeObserver);
5681
+ updateObserversAndListeners(obj, key, prev, '__ember_listens__', events.removeListener);
5662
5682
  }
5663
5683
 
5664
- if ("function" === typeof observerOrListener) {
5665
- updateObserversAndListeners(obj, key, observerOrListener, "__ember_observesBefore__", ember_metal__observer.addBeforeObserver);
5666
- updateObserversAndListeners(obj, key, observerOrListener, "__ember_observes__", ember_metal__observer.addObserver);
5667
- updateObserversAndListeners(obj, key, observerOrListener, "__ember_listens__", events.addListener);
5684
+ if ('function' === typeof observerOrListener) {
5685
+ updateObserversAndListeners(obj, key, observerOrListener, '__ember_observesBefore__', ember_metal__observer.addBeforeObserver);
5686
+ updateObserversAndListeners(obj, key, observerOrListener, '__ember_observes__', ember_metal__observer.addObserver);
5687
+ updateObserversAndListeners(obj, key, observerOrListener, '__ember_listens__', events.addListener);
5668
5688
  }
5669
5689
  }
5670
5690
 
@@ -5688,7 +5708,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5688
5708
 
5689
5709
  for (var i = 0, l = keys.length; i < l; i++) {
5690
5710
  key = keys[i];
5691
- if (key === "constructor" || !values.hasOwnProperty(key)) {
5711
+ if (key === 'constructor' || !values.hasOwnProperty(key)) {
5692
5712
  continue;
5693
5713
  }
5694
5714
 
@@ -5729,6 +5749,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5729
5749
  @param mixins*
5730
5750
  @return obj
5731
5751
  */
5752
+
5732
5753
  function mixin(obj) {
5733
5754
  for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
5734
5755
  args[_key - 1] = arguments[_key];
@@ -5835,13 +5856,14 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5835
5856
  @param arguments*
5836
5857
  */
5837
5858
  Mixin.create = function () {
5859
+ // ES6TODO: this relies on a global state?
5860
+ Ember['default'].anyUnprocessedMixins = true;
5861
+ var M = this;
5862
+
5838
5863
  for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
5839
5864
  args[_key2] = arguments[_key2];
5840
5865
  }
5841
5866
 
5842
- // ES6TODO: this relies on a global state?
5843
- Ember['default'].anyUnprocessedMixins = true;
5844
- var M = this;
5845
5867
  return new M(args, undefined);
5846
5868
  };
5847
5869
 
@@ -5868,7 +5890,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5868
5890
 
5869
5891
  for (idx = 0; idx < len; idx++) {
5870
5892
  currentMixin = arguments[idx];
5871
- Ember['default'].assert("Expected hash or Mixin instance, got " + Object.prototype.toString.call(currentMixin), typeof currentMixin === "object" && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== "[object Array]");
5893
+ Ember['default'].assert("Expected hash or Mixin instance, got " + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
5872
5894
 
5873
5895
  if (currentMixin instanceof Mixin) {
5874
5896
  mixins.push(currentMixin);
@@ -5926,7 +5948,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5926
5948
  if (obj instanceof Mixin) {
5927
5949
  return _detect(obj, this, {});
5928
5950
  }
5929
- var m = obj["__ember_meta__"];
5951
+ var m = obj['__ember_meta__'];
5930
5952
  var mixins = m && m.mixins;
5931
5953
  if (mixins) {
5932
5954
  return !!mixins[utils.guidFor(this)];
@@ -5935,11 +5957,12 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5935
5957
  };
5936
5958
 
5937
5959
  MixinPrototype.without = function () {
5960
+ var ret = new Mixin([this]);
5961
+
5938
5962
  for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
5939
5963
  args[_key3] = arguments[_key3];
5940
5964
  }
5941
5965
 
5942
- var ret = new Mixin([this]);
5943
5966
  ret._without = args;
5944
5967
  return ret;
5945
5968
  };
@@ -5980,7 +6003,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
5980
6003
  // returns the mixins currently applied to the specified object
5981
6004
  // TODO: Make Ember.mixin
5982
6005
  Mixin.mixins = function (obj) {
5983
- var m = obj["__ember_meta__"];
6006
+ var m = obj['__ember_meta__'];
5984
6007
  var mixins = m && m.mixins;
5985
6008
  var ret = [];
5986
6009
 
@@ -6002,7 +6025,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6002
6025
 
6003
6026
  REQUIRED = new ember_metal__properties.Descriptor();
6004
6027
  REQUIRED.toString = function () {
6005
- return "(Required Property)";
6028
+ return '(Required Property)';
6006
6029
  };
6007
6030
 
6008
6031
  /**
@@ -6011,8 +6034,9 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6011
6034
  @method required
6012
6035
  @for Ember
6013
6036
  */
6037
+
6014
6038
  function required() {
6015
- Ember['default'].deprecate("Ember.required is deprecated as its behavior is inconsistent and unreliable.", false);
6039
+ Ember['default'].deprecate('Ember.required is deprecated as its behavior is inconsistent and unreliable.', false);
6016
6040
  return REQUIRED;
6017
6041
  }
6018
6042
 
@@ -6044,6 +6068,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6044
6068
  @for Ember
6045
6069
  @param {String} methodName name of the method to alias
6046
6070
  */
6071
+
6047
6072
  function aliasMethod(methodName) {
6048
6073
  return new Alias(methodName);
6049
6074
  }
@@ -6075,6 +6100,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6075
6100
  @param {Function} func
6076
6101
  @return func
6077
6102
  */
6103
+
6078
6104
  function observer() {
6079
6105
  for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
6080
6106
  args[_key4] = arguments[_key4];
@@ -6132,10 +6158,11 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6132
6158
  @param {Function} func
6133
6159
  @return func
6134
6160
  */
6161
+
6135
6162
  function immediateObserver() {
6136
6163
  for (var i = 0, l = arguments.length; i < l; i++) {
6137
6164
  var arg = arguments[i];
6138
- Ember['default'].assert("Immediate observers must observe internal properties only, not properties on other objects.", typeof arg !== "string" || arg.indexOf(".") === -1);
6165
+ Ember['default'].assert("Immediate observers must observe internal properties only, not properties on other objects.", typeof arg !== "string" || arg.indexOf('.') === -1);
6139
6166
  }
6140
6167
 
6141
6168
  return observer.apply(this, arguments);
@@ -6183,6 +6210,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
6183
6210
  @param {Function} func
6184
6211
  @return func
6185
6212
  */
6213
+
6186
6214
  function beforeObserver() {
6187
6215
  for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
6188
6216
  args[_key5] = arguments[_key5];
@@ -6237,8 +6265,8 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
6237
6265
  exports.beforeObserversFor = beforeObserversFor;
6238
6266
  exports.removeBeforeObserver = removeBeforeObserver;
6239
6267
 
6240
- var AFTER_OBSERVERS = ":change";
6241
- var BEFORE_OBSERVERS = ":before";
6268
+ var AFTER_OBSERVERS = ':change';
6269
+ var BEFORE_OBSERVERS = ':before';
6242
6270
 
6243
6271
  function changeEvent(keyName) {
6244
6272
  return keyName + AFTER_OBSERVERS;
@@ -6256,6 +6284,7 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
6256
6284
  @param {Object|Function} targetOrMethod
6257
6285
  @param {Function|String} [method]
6258
6286
  */
6287
+
6259
6288
  function addObserver(obj, _path, target, method) {
6260
6289
  ember_metal__events.addListener(obj, changeEvent(_path), target, method);
6261
6290
  watching.watch(obj, _path);
@@ -6275,6 +6304,7 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
6275
6304
  @param {Object|Function} target
6276
6305
  @param {Function|String} [method]
6277
6306
  */
6307
+
6278
6308
  function removeObserver(obj, path, target, method) {
6279
6309
  watching.unwatch(obj, path);
6280
6310
  ember_metal__events.removeListener(obj, changeEvent(path), target, method);
@@ -6290,6 +6320,7 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
6290
6320
  @param {Object|Function} target
6291
6321
  @param {Function|String} [method]
6292
6322
  */
6323
+
6293
6324
  function addBeforeObserver(obj, path, target, method) {
6294
6325
  ember_metal__events.addListener(obj, beforeEvent(path), target, method);
6295
6326
  watching.watch(obj, path);
@@ -6332,6 +6363,7 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
6332
6363
  @param {Object|Function} target
6333
6364
  @param {Function|String} [method]
6334
6365
  */
6366
+
6335
6367
  function removeBeforeObserver(obj, path, target, method) {
6336
6368
  watching.unwatch(obj, path);
6337
6369
  ember_metal__events.removeListener(obj, beforeEvent(path), target, method);
@@ -6446,7 +6478,9 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
6446
6478
  firstDotIndexCache: firstDotIndexCache,
6447
6479
  firstKeyCache: firstKeyCache,
6448
6480
  tailPathCache: tailPathCache
6449
- };function isGlobal(path) {
6481
+ };
6482
+
6483
+ function isGlobal(path) {
6450
6484
  return isGlobalCache.get(path);
6451
6485
  }
6452
6486
 
@@ -6478,20 +6512,7 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
6478
6512
 
6479
6513
 
6480
6514
 
6481
- 'REMOVE_USE_STRICT: true'; /**
6482
- @class platform
6483
- @namespace Ember
6484
- @static
6485
- */
6486
-
6487
- /**
6488
- Identical to `Object.create()`. Implements if not available natively.
6489
-
6490
- @since 1.8.0
6491
- @method create
6492
- @for Ember
6493
- */
6494
- var create;
6515
+ "REMOVE_USE_STRICT: true";var create;
6495
6516
  // ES5 15.2.3.5
6496
6517
  // http://es5.github.com/#x15.2.3.5
6497
6518
  if (!(Object.create && !Object.create(null).hasOwnProperty)) {
@@ -6504,7 +6525,7 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
6504
6525
  // Object.prototype.__proto__ === null
6505
6526
  if (supportsProto || typeof document === 'undefined') {
6506
6527
  createEmpty = function () {
6507
- return { '__proto__': null };
6528
+ return { "__proto__": null };
6508
6529
  };
6509
6530
  } else {
6510
6531
  // In old IE __proto__ can't be used to manually set `null`, nor does
@@ -6547,13 +6568,13 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
6547
6568
  if (prototype === null) {
6548
6569
  object = createEmpty();
6549
6570
  } else {
6550
- if (typeof prototype !== 'object' && typeof prototype !== 'function') {
6571
+ if (typeof prototype !== "object" && typeof prototype !== "function") {
6551
6572
  // In the native implementation `parent` can be `null`
6552
6573
  // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)
6553
6574
  // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`
6554
6575
  // like they are in modern browsers. Using `Object.create` on DOM elements
6555
6576
  // is...err...probably inappropriate, but the native version allows for it.
6556
- throw new TypeError('Object prototype may only be an Object or null'); // same msg as Chrome
6577
+ throw new TypeError("Object prototype may only be an Object or null"); // same msg as Chrome
6557
6578
  }
6558
6579
 
6559
6580
  Type.prototype = prototype;
@@ -6708,10 +6729,10 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
6708
6729
  defineProperty = function (obj, keyName, desc) {
6709
6730
  var isNode;
6710
6731
 
6711
- if (typeof Node === 'object') {
6732
+ if (typeof Node === "object") {
6712
6733
  isNode = obj instanceof Node;
6713
6734
  } else {
6714
- isNode = typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';
6735
+ isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
6715
6736
  }
6716
6737
 
6717
6738
  if (isNode) {
@@ -6766,7 +6787,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/core', 'ember-metal/ut
6766
6787
 
6767
6788
  function DEFAULT_GETTER_FUNCTION(name) {
6768
6789
  return function GETTER_FUNCTION() {
6769
- var meta = this["__ember_meta__"];
6790
+ var meta = this['__ember_meta__'];
6770
6791
  return meta && meta.values[name];
6771
6792
  };
6772
6793
  }
@@ -6816,6 +6837,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/core', 'ember-metal/ut
6816
6837
  @param {*} [data] something other than a descriptor, that will
6817
6838
  become the explicit value of this property.
6818
6839
  */
6840
+
6819
6841
  function defineProperty(obj, keyName, desc, data, meta) {
6820
6842
  var possibleDesc, existingDesc, watching, value;
6821
6843
 
@@ -6824,7 +6846,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/core', 'ember-metal/ut
6824
6846
  }
6825
6847
  var watchEntry = meta.watching[keyName];
6826
6848
  possibleDesc = obj[keyName];
6827
- existingDesc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
6849
+ existingDesc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
6828
6850
 
6829
6851
  watching = watchEntry !== undefined && watchEntry > 0;
6830
6852
 
@@ -6924,11 +6946,11 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
6924
6946
  @return {void}
6925
6947
  */
6926
6948
  function propertyWillChange(obj, keyName) {
6927
- var m = obj["__ember_meta__"];
6928
- var watching = m && m.watching[keyName] > 0 || keyName === "length";
6949
+ var m = obj['__ember_meta__'];
6950
+ var watching = m && m.watching[keyName] > 0 || keyName === 'length';
6929
6951
  var proto = m && m.proto;
6930
6952
  var possibleDesc = obj[keyName];
6931
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
6953
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
6932
6954
 
6933
6955
  if (!watching) {
6934
6956
  return;
@@ -6963,11 +6985,11 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
6963
6985
  @return {void}
6964
6986
  */
6965
6987
  function propertyDidChange(obj, keyName) {
6966
- var m = obj["__ember_meta__"];
6967
- var watching = m && m.watching[keyName] > 0 || keyName === "length";
6988
+ var m = obj['__ember_meta__'];
6989
+ var watching = m && m.watching[keyName] > 0 || keyName === 'length';
6968
6990
  var proto = m && m.proto;
6969
6991
  var possibleDesc = obj[keyName];
6970
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
6992
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
6971
6993
 
6972
6994
  if (proto === obj) {
6973
6995
  return;
@@ -6978,7 +7000,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
6978
7000
  desc.didChange(obj, keyName);
6979
7001
  }
6980
7002
 
6981
- if (!watching && keyName !== "length") {
7003
+ if (!watching && keyName !== 'length') {
6982
7004
  return;
6983
7005
  }
6984
7006
 
@@ -7067,7 +7089,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
7067
7089
  for (i = 0; i < keys.length; i++) {
7068
7090
  key = keys[i];
7069
7091
  possibleDesc = obj[key];
7070
- desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
7092
+ desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
7071
7093
 
7072
7094
  if (desc && desc._suspended === obj) {
7073
7095
  continue;
@@ -7079,7 +7101,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
7079
7101
  }
7080
7102
 
7081
7103
  function chainsWillChange(obj, keyName, m) {
7082
- if (!(m.hasOwnProperty("chainWatchers") && m.chainWatchers[keyName])) {
7104
+ if (!(m.hasOwnProperty('chainWatchers') && m.chainWatchers[keyName])) {
7083
7105
  return;
7084
7106
  }
7085
7107
 
@@ -7097,7 +7119,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
7097
7119
  }
7098
7120
 
7099
7121
  function chainsDidChange(obj, keyName, m, suppressEvents) {
7100
- if (!(m && m.hasOwnProperty("chainWatchers") && m.chainWatchers[keyName])) {
7122
+ if (!(m && m.hasOwnProperty('chainWatchers') && m.chainWatchers[keyName])) {
7101
7123
  return;
7102
7124
  }
7103
7125
 
@@ -7168,7 +7190,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
7168
7190
  return;
7169
7191
  }
7170
7192
 
7171
- var eventName = keyName + ":before";
7193
+ var eventName = keyName + ':before';
7172
7194
  var listeners, added;
7173
7195
  if (deferred) {
7174
7196
  listeners = beforeObserverSet.add(obj, keyName, eventName);
@@ -7184,7 +7206,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
7184
7206
  return;
7185
7207
  }
7186
7208
 
7187
- var eventName = keyName + ":change";
7209
+ var eventName = keyName + ':change';
7188
7210
  var listeners;
7189
7211
  if (deferred) {
7190
7212
  listeners = observerSet.add(obj, keyName, eventName);
@@ -7237,13 +7259,14 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
7237
7259
  @param {String} keyName The property key to retrieve
7238
7260
  @return {Object} the property value or `null`.
7239
7261
  */
7262
+
7240
7263
  function get(obj, keyName) {
7241
7264
  // Helpers that operate with 'this' within an #each
7242
- if (keyName === "") {
7265
+ if (keyName === '') {
7243
7266
  return obj;
7244
7267
  }
7245
7268
 
7246
- if (!keyName && "string" === typeof obj) {
7269
+ if (!keyName && 'string' === typeof obj) {
7247
7270
  keyName = obj;
7248
7271
  obj = Ember['default'].lookup;
7249
7272
  }
@@ -7255,9 +7278,9 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
7255
7278
  return _getPath(obj, keyName);
7256
7279
  }
7257
7280
 
7258
- var meta = obj["__ember_meta__"];
7281
+ var meta = obj['__ember_meta__'];
7259
7282
  var possibleDesc = obj[keyName];
7260
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
7283
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
7261
7284
  var ret;
7262
7285
 
7263
7286
  if (desc === undefined && path_cache.isPath(keyName)) {
@@ -7274,7 +7297,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
7274
7297
  ret = obj[keyName];
7275
7298
  }
7276
7299
 
7277
- if (ret === undefined && "object" === typeof obj && !(keyName in obj) && "function" === typeof obj.unknownProperty) {
7300
+ if (ret === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
7278
7301
  return obj.unknownProperty(keyName);
7279
7302
  }
7280
7303
 
@@ -7295,13 +7318,14 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
7295
7318
  @param {String} path A path on the target or a global property path.
7296
7319
  @return {Array} a temporary array with the normalized target/path pair.
7297
7320
  */
7321
+
7298
7322
  function normalizeTuple(target, path) {
7299
7323
  var hasThis = path_cache.hasThis(path);
7300
7324
  var isGlobal = !hasThis && path_cache.isGlobal(path);
7301
7325
  var key;
7302
7326
 
7303
7327
  if (!target && !isGlobal) {
7304
- return [undefined, ""];
7328
+ return [undefined, ''];
7305
7329
  }
7306
7330
 
7307
7331
  if (hasThis) {
@@ -7329,6 +7353,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
7329
7353
  throw new EmberError['default']("Object in path " + path + " could not be found or was destroyed.");
7330
7354
  }
7331
7355
  }
7356
+
7332
7357
  function _getPath(root, path) {
7333
7358
  var hasThis, parts, tuple, idx, len;
7334
7359
 
@@ -7373,7 +7398,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7373
7398
  exports.trySet = trySet;
7374
7399
 
7375
7400
  function set(obj, keyName, value, tolerant) {
7376
- if (typeof obj === "string") {
7401
+ if (typeof obj === 'string') {
7377
7402
  Ember['default'].assert("Path '" + obj + "' must be global if no obj is given.", path_cache.isGlobalPath(obj));
7378
7403
  value = keyName;
7379
7404
  keyName = obj;
@@ -7388,9 +7413,9 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7388
7413
 
7389
7414
  var meta, possibleDesc, desc;
7390
7415
  if (obj) {
7391
- meta = obj["__ember_meta__"];
7416
+ meta = obj['__ember_meta__'];
7392
7417
  possibleDesc = obj[keyName];
7393
- desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
7418
+ desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
7394
7419
  }
7395
7420
 
7396
7421
  var isUnknown, currentValue;
@@ -7399,22 +7424,22 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7399
7424
  }
7400
7425
 
7401
7426
  Ember['default'].assert("You need to provide an object and key to `set`.", !!obj && keyName !== undefined);
7402
- Ember['default'].assert("calling set on destroyed object", !obj.isDestroyed);
7427
+ Ember['default'].assert('calling set on destroyed object', !obj.isDestroyed);
7403
7428
 
7404
7429
  if (desc) {
7405
7430
  desc.set(obj, keyName, value);
7406
7431
  } else {
7407
7432
 
7408
- if (obj !== null && value !== undefined && typeof obj === "object" && obj[keyName] === value) {
7433
+ if (obj !== null && value !== undefined && typeof obj === 'object' && obj[keyName] === value) {
7409
7434
  return value;
7410
7435
  }
7411
7436
 
7412
- isUnknown = "object" === typeof obj && !(keyName in obj);
7437
+ isUnknown = 'object' === typeof obj && !(keyName in obj);
7413
7438
 
7414
7439
  // setUnknownProperty is called if `obj` is an object,
7415
7440
  // the property does not already exist, and the
7416
7441
  // `setUnknownProperty` method exists on the object
7417
- if (isUnknown && "function" === typeof obj.setUnknownProperty) {
7442
+ if (isUnknown && 'function' === typeof obj.setUnknownProperty) {
7418
7443
  obj.setUnknownProperty(keyName, value);
7419
7444
  } else if (meta && meta.watching[keyName] > 0) {
7420
7445
  if (meta.proto !== obj) {
@@ -7433,8 +7458,8 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7433
7458
  if (currentValue === undefined && !(keyName in obj) || !Object.prototype.propertyIsEnumerable.call(obj, keyName)) {
7434
7459
  properties.defineProperty(obj, keyName, null, value); // setup mandatory setter
7435
7460
  } else {
7436
- meta.values[keyName] = value;
7437
- }
7461
+ meta.values[keyName] = value;
7462
+ }
7438
7463
  } else {
7439
7464
  obj[keyName] = value;
7440
7465
  }
@@ -7451,26 +7476,26 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7451
7476
  var keyName;
7452
7477
 
7453
7478
  // get the last part of the path
7454
- keyName = path.slice(path.lastIndexOf(".") + 1);
7479
+ keyName = path.slice(path.lastIndexOf('.') + 1);
7455
7480
 
7456
7481
  // get the first part of the part
7457
7482
  path = path === keyName ? keyName : path.slice(0, path.length - (keyName.length + 1));
7458
7483
 
7459
7484
  // unless the path is this, look up the first part to
7460
7485
  // get the root
7461
- if (path !== "this") {
7486
+ if (path !== 'this') {
7462
7487
  root = property_get._getPath(root, path);
7463
7488
  }
7464
7489
 
7465
7490
  if (!keyName || keyName.length === 0) {
7466
- throw new EmberError['default']("Property set failed: You passed an empty path");
7491
+ throw new EmberError['default']('Property set failed: You passed an empty path');
7467
7492
  }
7468
7493
 
7469
7494
  if (!root) {
7470
7495
  if (tolerant) {
7471
7496
  return;
7472
7497
  } else {
7473
- throw new EmberError['default']("Property set failed: object in path \"" + path + "\" could not be found or was destroyed.");
7498
+ throw new EmberError['default']('Property set failed: object in path "' + path + '" could not be found or was destroyed.');
7474
7499
  }
7475
7500
  }
7476
7501
 
@@ -7490,6 +7515,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/core', 'ember-metal/
7490
7515
  @param {String} path The property path to set
7491
7516
  @param {Object} value The value to set
7492
7517
  */
7518
+
7493
7519
  function trySet(root, path, value) {
7494
7520
  return set(root, path, value, true);
7495
7521
  }
@@ -7749,7 +7775,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
7749
7775
  @param {Object} [arguments*] Optional arguments to be passed to the queued method.
7750
7776
  @return {void}
7751
7777
  */
7752
- run.schedule = function () {
7778
+ run.schedule = function () /* queue, target, method */{
7753
7779
  checkAutoRun();
7754
7780
  backburner.schedule.apply(backburner, arguments);
7755
7781
  };
@@ -7811,7 +7837,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
7811
7837
  @param {Number} wait Number of milliseconds to wait.
7812
7838
  @return {*} Timer information for use in cancelling, see `run.cancel`.
7813
7839
  */
7814
- run.later = function () {
7840
+ run.later = function () /*target, method*/{
7815
7841
  return backburner.later.apply(backburner, arguments);
7816
7842
  };
7817
7843
 
@@ -7828,11 +7854,12 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
7828
7854
  @return {Object} Timer information for use in cancelling, see `run.cancel`.
7829
7855
  */
7830
7856
  run.once = function () {
7857
+ checkAutoRun();
7858
+
7831
7859
  for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
7832
7860
  args[_key3] = arguments[_key3];
7833
7861
  }
7834
7862
 
7835
- checkAutoRun();
7836
7863
  args.unshift('actions');
7837
7864
  return backburner.scheduleOnce.apply(backburner, args);
7838
7865
  };
@@ -7888,7 +7915,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
7888
7915
  @param {Object} [args*] Optional arguments to pass to the timeout.
7889
7916
  @return {Object} Timer information for use in cancelling, see `run.cancel`.
7890
7917
  */
7891
- run.scheduleOnce = function () {
7918
+ run.scheduleOnce = function () /*queue, target, method*/{
7892
7919
  checkAutoRun();
7893
7920
  return backburner.scheduleOnce.apply(backburner, arguments);
7894
7921
  };
@@ -8148,7 +8175,6 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
8148
8175
  run.queues.splice(array.indexOf.call(run.queues, after) + 1, 0, name);
8149
8176
  }
8150
8177
  };
8151
- /* queue, target, method */ /*target, method*/ /*queue, target, method*/
8152
8178
 
8153
8179
  });
8154
8180
  enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events', 'ember-metal/property_set', 'ember-metal/keys'], function (exports, property_events, property_set, keys) {
@@ -8341,7 +8367,7 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/platform/create',
8341
8367
  isStream: true,
8342
8368
 
8343
8369
  init: function () {
8344
- this.state = "dirty";
8370
+ this.state = 'dirty';
8345
8371
  this.cache = undefined;
8346
8372
  this.subscriberHead = null;
8347
8373
  this.subscriberTail = null;
@@ -8372,10 +8398,10 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/platform/create',
8372
8398
  },
8373
8399
 
8374
8400
  value: function () {
8375
- if (this.state === "clean") {
8401
+ if (this.state === 'clean') {
8376
8402
  return this.cache;
8377
- } else if (this.state === "dirty") {
8378
- this.state = "clean";
8403
+ } else if (this.state === 'dirty') {
8404
+ this.state = 'clean';
8379
8405
  return this.cache = this.valueFn();
8380
8406
  }
8381
8407
  // TODO: Ensure value is never called on a destroyed stream
@@ -8397,8 +8423,8 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/platform/create',
8397
8423
  },
8398
8424
 
8399
8425
  notifyExcept: function (callbackToSkip, contextToSkip) {
8400
- if (this.state === "clean") {
8401
- this.state = "dirty";
8426
+ if (this.state === 'clean') {
8427
+ this.state = 'dirty';
8402
8428
  this._notifySubscribers(callbackToSkip, contextToSkip);
8403
8429
  }
8404
8430
  },
@@ -8456,8 +8482,8 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/platform/create',
8456
8482
  },
8457
8483
 
8458
8484
  destroy: function () {
8459
- if (this.state !== "destroyed") {
8460
- this.state = "destroyed";
8485
+ if (this.state !== 'destroyed') {
8486
+ this.state = 'destroyed';
8461
8487
 
8462
8488
  var children = this.children;
8463
8489
  for (var key in children) {
@@ -8520,7 +8546,7 @@ enifed('ember-metal/streams/stream_binding', ['exports', 'ember-metal/platform/c
8520
8546
  this.senderCallback = callback;
8521
8547
  this.senderContext = context;
8522
8548
  this.senderValue = value;
8523
- run['default'].schedule("sync", this, this._sync);
8549
+ run['default'].schedule('sync', this, this._sync);
8524
8550
  } else if (this.senderContext !== this) {
8525
8551
  this.senderCallback = callback;
8526
8552
  this.senderContext = context;
@@ -8529,7 +8555,7 @@ enifed('ember-metal/streams/stream_binding', ['exports', 'ember-metal/platform/c
8529
8555
  },
8530
8556
 
8531
8557
  _sync: function () {
8532
- if (this.state === "destroyed") {
8558
+ if (this.state === 'destroyed') {
8533
8559
  return;
8534
8560
  }
8535
8561
 
@@ -8544,7 +8570,7 @@ enifed('ember-metal/streams/stream_binding', ['exports', 'ember-metal/platform/c
8544
8570
  this.senderValue = undefined;
8545
8571
 
8546
8572
  // Force StreamBindings to always notify
8547
- this.state = "clean";
8573
+ this.state = 'clean';
8548
8574
 
8549
8575
  this.notifyExcept(senderCallback, senderContext);
8550
8576
  },
@@ -8593,6 +8619,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8593
8619
  @param {Object} [context] the callback will be executed with this context if it
8594
8620
  is provided
8595
8621
  */
8622
+
8596
8623
  function subscribe(object, callback, context) {
8597
8624
  if (object && object.isStream) {
8598
8625
  object.subscribe(callback, context);
@@ -8610,6 +8637,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8610
8637
  @param {Function} callback function originally passed to `subscribe()`
8611
8638
  @param {Object} [context] object originally passed to `subscribe()`
8612
8639
  */
8640
+
8613
8641
  function unsubscribe(object, callback, context) {
8614
8642
  if (object && object.isStream) {
8615
8643
  object.unsubscribe(callback, context);
@@ -8626,6 +8654,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8626
8654
  @param {Object|Stream} object object to return the value of
8627
8655
  @return the stream's current value, or the non-stream object itself
8628
8656
  */
8657
+
8629
8658
  function read(object) {
8630
8659
  if (object && object.isStream) {
8631
8660
  return object.value();
@@ -8646,6 +8675,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8646
8675
  the values of stream objects retaining their original position
8647
8676
  and replaced with the stream's current value.
8648
8677
  */
8678
+
8649
8679
  function readArray(array) {
8650
8680
  var length = array.length;
8651
8681
  var ret = new Array(length);
@@ -8668,6 +8698,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8668
8698
  the case of non-stream objects, and the streams' current
8669
8699
  values in the case of stream objects.
8670
8700
  */
8701
+
8671
8702
  function readHash(object) {
8672
8703
  var ret = {};
8673
8704
  for (var key in object) {
@@ -8686,6 +8717,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8686
8717
  @return {Boolean} `true` if the array contains a stream/bound value, `false`
8687
8718
  otherwise
8688
8719
  */
8720
+
8689
8721
  function scanArray(array) {
8690
8722
  var length = array.length;
8691
8723
  var containsStream = false;
@@ -8710,6 +8742,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8710
8742
  @return {Boolean} `true` if the object contains a stream/bound value, `false`
8711
8743
  otherwise
8712
8744
  */
8745
+
8713
8746
  function scanHash(hash) {
8714
8747
  var containsStream = false;
8715
8748
 
@@ -8736,6 +8769,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8736
8769
  provided separator, and any stream array members having been
8737
8770
  replaced by the current value of the stream
8738
8771
  */
8772
+
8739
8773
  function concat(array, separator) {
8740
8774
  // TODO: Create subclass ConcatStream < Stream. Defer
8741
8775
  // subscribing to streams until the value() is called.
@@ -8788,6 +8822,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
8788
8822
  non-stream object, the return value of the provided
8789
8823
  function `fn`.
8790
8824
  */
8825
+
8791
8826
  function chain(value, fn) {
8792
8827
  if (isStream(value)) {
8793
8828
  var stream = new Stream['default'](fn);
@@ -8819,18 +8854,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8819
8854
  exports.isArray = isArray;
8820
8855
  exports.canInvoke = canInvoke;
8821
8856
 
8822
- "REMOVE_USE_STRICT: true"; /**
8823
- @module ember-metal
8824
- */
8825
-
8826
- /**
8827
- Previously we used `Ember.$.uuid`, however `$.uuid` has been removed from
8828
- jQuery master. We'll just bootstrap our own uuid now.
8829
-
8830
- @private
8831
- @return {Number} the uuid
8832
- */
8833
- var _uuid = 0;
8857
+ "REMOVE_USE_STRICT: true";var _uuid = 0;
8834
8858
 
8835
8859
  /**
8836
8860
  Generates a universally unique identifier. This method
@@ -8841,6 +8865,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8841
8865
  @public
8842
8866
  @return {Number} [description]
8843
8867
  */
8868
+
8844
8869
  function uuid() {
8845
8870
  return ++_uuid;
8846
8871
  }
@@ -8853,7 +8878,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8853
8878
  @type String
8854
8879
  @final
8855
8880
  */
8856
- var GUID_PREFIX = "ember";
8881
+ var GUID_PREFIX = 'ember';
8857
8882
 
8858
8883
  // Used for guid generation...
8859
8884
  var numberCache = [];
@@ -8923,7 +8948,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8923
8948
  @type String
8924
8949
  @final
8925
8950
  */
8926
- var GUID_KEY = intern("__ember" + +new Date());
8951
+ var GUID_KEY = intern('__ember' + +new Date());
8927
8952
 
8928
8953
  var GUID_DESC = {
8929
8954
  writable: true,
@@ -8954,7 +8979,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8954
8979
  };
8955
8980
 
8956
8981
  var EMBER_META_PROPERTY = {
8957
- name: "__ember_meta__",
8982
+ name: '__ember_meta__',
8958
8983
  descriptor: META_DESC
8959
8984
  };
8960
8985
 
@@ -8964,7 +8989,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
8964
8989
  };
8965
8990
 
8966
8991
  var NEXT_SUPER_PROPERTY = {
8967
- name: "__nextSuper",
8992
+ name: '__nextSuper',
8968
8993
  descriptor: undefinedDescriptor
8969
8994
  };
8970
8995
 
@@ -9003,6 +9028,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9003
9028
  @param {Object} obj any object, string, number, Element, or primitive
9004
9029
  @return {String} the unique guid for this instance.
9005
9030
  */
9031
+
9006
9032
  function guidFor(obj) {
9007
9033
 
9008
9034
  // special cases where we don't want to add a key to object
@@ -9019,26 +9045,26 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9019
9045
 
9020
9046
  // Don't allow prototype changes to String etc. to change the guidFor
9021
9047
  switch (type) {
9022
- case "number":
9048
+ case 'number':
9023
9049
  ret = numberCache[obj];
9024
9050
 
9025
9051
  if (!ret) {
9026
- ret = numberCache[obj] = "nu" + obj;
9052
+ ret = numberCache[obj] = 'nu' + obj;
9027
9053
  }
9028
9054
 
9029
9055
  return ret;
9030
9056
 
9031
- case "string":
9057
+ case 'string':
9032
9058
  ret = stringCache[obj];
9033
9059
 
9034
9060
  if (!ret) {
9035
- ret = stringCache[obj] = "st" + uuid();
9061
+ ret = stringCache[obj] = 'st' + uuid();
9036
9062
  }
9037
9063
 
9038
9064
  return ret;
9039
9065
 
9040
- case "boolean":
9041
- return obj ? "(true)" : "(false)";
9066
+ case 'boolean':
9067
+ return obj ? '(true)' : '(false)';
9042
9068
 
9043
9069
  default:
9044
9070
  if (obj[GUID_KEY]) {
@@ -9046,11 +9072,11 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9046
9072
  }
9047
9073
 
9048
9074
  if (obj === Object) {
9049
- return "(Object)";
9075
+ return '(Object)';
9050
9076
  }
9051
9077
 
9052
9078
  if (obj === Array) {
9053
- return "(Array)";
9079
+ return '(Array)';
9054
9080
  }
9055
9081
 
9056
9082
  ret = GUID_PREFIX + uuid();
@@ -9141,7 +9167,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9141
9167
  if (obj.__defineNonEnumerable) {
9142
9168
  obj.__defineNonEnumerable(EMBER_META_PROPERTY);
9143
9169
  } else {
9144
- define_property.defineProperty(obj, "__ember_meta__", META_DESC);
9170
+ define_property.defineProperty(obj, '__ember_meta__', META_DESC);
9145
9171
  }
9146
9172
  }
9147
9173
 
@@ -9158,7 +9184,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9158
9184
  if (obj.__defineNonEnumerable) {
9159
9185
  obj.__defineNonEnumerable(EMBER_META_PROPERTY);
9160
9186
  } else {
9161
- define_property.defineProperty(obj, "__ember_meta__", META_DESC);
9187
+ define_property.defineProperty(obj, '__ember_meta__', META_DESC);
9162
9188
  }
9163
9189
 
9164
9190
  ret = o_create['default'](ret);
@@ -9173,10 +9199,11 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9173
9199
  }
9174
9200
 
9175
9201
 
9176
- obj["__ember_meta__"] = ret;
9202
+ obj['__ember_meta__'] = ret;
9177
9203
  }
9178
9204
  return ret;
9179
9205
  }
9206
+
9180
9207
  function getMeta(obj, property) {
9181
9208
  var _meta = meta(obj, false);
9182
9209
  return _meta[property];
@@ -9221,6 +9248,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9221
9248
  (or meta property) if one does not already exist or if it's
9222
9249
  shared with its constructor
9223
9250
  */
9251
+
9224
9252
  function metaPath(obj, path, writable) {
9225
9253
  Ember['default'].deprecate("Ember.metaPath is deprecated and will be removed from future releases.");
9226
9254
  var _meta = meta(obj, writable);
@@ -9261,6 +9289,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9261
9289
  @param {Function} superFunc The super function.
9262
9290
  @return {Function} wrapped function.
9263
9291
  */
9292
+
9264
9293
  function wrap(func, superFunc) {
9265
9294
  function superWrapper() {
9266
9295
  var ret;
@@ -9330,9 +9359,9 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9330
9359
  var modulePath, type;
9331
9360
 
9332
9361
  if (typeof EmberArray === "undefined") {
9333
- modulePath = "ember-runtime/mixins/array";
9362
+ modulePath = 'ember-runtime/mixins/array';
9334
9363
  if (Ember['default'].__loader.registry[modulePath]) {
9335
- EmberArray = Ember['default'].__loader.require(modulePath)["default"];
9364
+ EmberArray = Ember['default'].__loader.require(modulePath)['default'];
9336
9365
  }
9337
9366
  }
9338
9367
 
@@ -9347,10 +9376,10 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9347
9376
  }
9348
9377
 
9349
9378
  type = typeOf(obj);
9350
- if ("array" === type) {
9379
+ if ('array' === type) {
9351
9380
  return true;
9352
9381
  }
9353
- if (obj.length !== undefined && "object" === type) {
9382
+ if (obj.length !== undefined && 'object' === type) {
9354
9383
  return true;
9355
9384
  }
9356
9385
  return false;
@@ -9378,6 +9407,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9378
9407
  @param {Object} obj the object
9379
9408
  @return {Array}
9380
9409
  */
9410
+
9381
9411
  function makeArray(obj) {
9382
9412
  if (obj === null || obj === undefined) {
9383
9413
  return [];
@@ -9403,7 +9433,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9403
9433
  @return {Boolean}
9404
9434
  */
9405
9435
  function canInvoke(obj, methodName) {
9406
- return !!(obj && typeof obj[methodName] === "function");
9436
+ return !!(obj && typeof obj[methodName] === 'function');
9407
9437
  }
9408
9438
 
9409
9439
  /**
@@ -9425,6 +9455,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9425
9455
  @param {Array} [args] The arguments to pass to the method
9426
9456
  @return {*} the return value of the invoked method or undefined if it cannot be invoked
9427
9457
  */
9458
+
9428
9459
  function tryInvoke(obj, methodName, args) {
9429
9460
  if (canInvoke(obj, methodName)) {
9430
9461
  return args ? applyStr(obj, methodName, args) : applyStr(obj, methodName);
@@ -9438,7 +9469,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9438
9469
  // jscs:disable
9439
9470
  try {} finally {
9440
9471
  count++;
9441
- throw new Error("needsFinallyFixTest");
9472
+ throw new Error('needsFinallyFixTest');
9442
9473
  }
9443
9474
  // jscs:enable
9444
9475
  } catch (e) {}
@@ -9677,25 +9708,25 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9677
9708
 
9678
9709
  // ES6TODO: Depends on Ember.Object which is defined in runtime.
9679
9710
  if (typeof EmberObject === "undefined") {
9680
- modulePath = "ember-runtime/system/object";
9711
+ modulePath = 'ember-runtime/system/object';
9681
9712
  if (Ember['default'].__loader.registry[modulePath]) {
9682
- EmberObject = Ember['default'].__loader.require(modulePath)["default"];
9713
+ EmberObject = Ember['default'].__loader.require(modulePath)['default'];
9683
9714
  }
9684
9715
  }
9685
9716
 
9686
- ret = item === null || item === undefined ? String(item) : TYPE_MAP[toString.call(item)] || "object";
9717
+ ret = item === null || item === undefined ? String(item) : TYPE_MAP[toString.call(item)] || 'object';
9687
9718
 
9688
- if (ret === "function") {
9719
+ if (ret === 'function') {
9689
9720
  if (EmberObject && EmberObject.detect(item)) {
9690
- ret = "class";
9721
+ ret = 'class';
9691
9722
  }
9692
- } else if (ret === "object") {
9723
+ } else if (ret === 'object') {
9693
9724
  if (item instanceof Error) {
9694
- ret = "error";
9725
+ ret = 'error';
9695
9726
  } else if (EmberObject && item instanceof EmberObject) {
9696
- ret = "instance";
9727
+ ret = 'instance';
9697
9728
  } else if (item instanceof Date) {
9698
- ret = "date";
9729
+ ret = 'date';
9699
9730
  }
9700
9731
  }
9701
9732
 
@@ -9715,13 +9746,14 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9715
9746
  @return {String} A description of the object
9716
9747
  @since 1.4.0
9717
9748
  */
9749
+
9718
9750
  function inspect(obj) {
9719
9751
  var type = typeOf(obj);
9720
- if (type === "array") {
9721
- return "[" + obj + "]";
9752
+ if (type === 'array') {
9753
+ return '[' + obj + ']';
9722
9754
  }
9723
- if (type !== "object") {
9724
- return obj + "";
9755
+ if (type !== 'object') {
9756
+ return obj + '';
9725
9757
  }
9726
9758
 
9727
9759
  var v;
@@ -9729,14 +9761,14 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9729
9761
  for (var key in obj) {
9730
9762
  if (obj.hasOwnProperty(key)) {
9731
9763
  v = obj[key];
9732
- if (v === "toString") {
9764
+ if (v === 'toString') {
9733
9765
  continue;
9734
9766
  } // ignore useless items
9735
- if (typeOf(v) === "function") {
9767
+ if (typeOf(v) === 'function') {
9736
9768
  v = "function() { ... }";
9737
9769
  }
9738
9770
 
9739
- if (v && typeof v.toString !== "function") {
9771
+ if (v && typeof v.toString !== 'function') {
9740
9772
  ret.push(key + ": " + toString.call(v));
9741
9773
  } else {
9742
9774
  ret.push(key + ": " + v);
@@ -9753,6 +9785,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9753
9785
  @param {Function} method
9754
9786
  @param {Array} args
9755
9787
  */
9788
+
9756
9789
  function apply(t, m, a) {
9757
9790
  var l = a && a.length;
9758
9791
  if (!a || !l) {
@@ -9779,6 +9812,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
9779
9812
  @param {String} method
9780
9813
  @param {Array} args
9781
9814
  */
9815
+
9782
9816
  function applyStr(t, m, a) {
9783
9817
  var l = a && a.length;
9784
9818
  if (!a || !l) {
@@ -9822,7 +9856,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/uti
9822
9856
 
9823
9857
  function watchKey(obj, keyName, meta) {
9824
9858
  // can't watch length on Array - it is special...
9825
- if (keyName === "length" && utils.typeOf(obj) === "array") {
9859
+ if (keyName === 'length' && utils.typeOf(obj) === 'array') {
9826
9860
  return;
9827
9861
  }
9828
9862
 
@@ -9834,12 +9868,12 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/uti
9834
9868
  watching[keyName] = 1;
9835
9869
 
9836
9870
  var possibleDesc = obj[keyName];
9837
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
9871
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
9838
9872
  if (desc && desc.willWatch) {
9839
9873
  desc.willWatch(obj, keyName);
9840
9874
  }
9841
9875
 
9842
- if ("function" === typeof obj.willWatchProperty) {
9876
+ if ('function' === typeof obj.willWatchProperty) {
9843
9877
  obj.willWatchProperty(keyName);
9844
9878
  }
9845
9879
 
@@ -9858,9 +9892,9 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/uti
9858
9892
  var descriptor = Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(obj, keyName);
9859
9893
  var configurable = descriptor ? descriptor.configurable : true;
9860
9894
  var isWritable = descriptor ? descriptor.writable : true;
9861
- var hasValue = descriptor ? "value" in descriptor : true;
9895
+ var hasValue = descriptor ? 'value' in descriptor : true;
9862
9896
  var possibleDesc = descriptor && descriptor.value;
9863
- var isDescriptor = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor;
9897
+ var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
9864
9898
 
9865
9899
  if (isDescriptor) {
9866
9900
  return;
@@ -9891,12 +9925,12 @@ enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/uti
9891
9925
  watching[keyName] = 0;
9892
9926
 
9893
9927
  var possibleDesc = obj[keyName];
9894
- var desc = possibleDesc !== null && typeof possibleDesc === "object" && possibleDesc.isDescriptor ? possibleDesc : undefined;
9928
+ var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
9895
9929
  if (desc && desc.didUnwatch) {
9896
9930
  desc.didUnwatch(obj, keyName);
9897
9931
  }
9898
9932
 
9899
- if ("function" === typeof obj.didUnwatchProperty) {
9933
+ if ('function' === typeof obj.didUnwatchProperty) {
9900
9934
  obj.didUnwatchProperty(keyName);
9901
9935
  }
9902
9936
 
@@ -9942,9 +9976,10 @@ enifed('ember-metal/watch_path', ['exports', 'ember-metal/utils', 'ember-metal/c
9942
9976
  }
9943
9977
  return ret;
9944
9978
  }
9979
+
9945
9980
  function watchPath(obj, keyPath, meta) {
9946
9981
  // can't watch length on Array - it is special...
9947
- if (keyPath === "length" && utils.typeOf(obj) === "array") {
9982
+ if (keyPath === 'length' && utils.typeOf(obj) === 'array') {
9948
9983
  return;
9949
9984
  }
9950
9985
 
@@ -9984,7 +10019,7 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/utils', 'ember-metal/cha
9984
10019
 
9985
10020
  function watch(obj, _keyPath, m) {
9986
10021
  // can't watch length on Array - it is special...
9987
- if (_keyPath === "length" && utils.typeOf(obj) === "array") {
10022
+ if (_keyPath === 'length' && utils.typeOf(obj) === 'array') {
9988
10023
  return;
9989
10024
  }
9990
10025
 
@@ -9996,14 +10031,15 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/utils', 'ember-metal/cha
9996
10031
  }
9997
10032
 
9998
10033
  function isWatching(obj, key) {
9999
- var meta = obj["__ember_meta__"];
10034
+ var meta = obj['__ember_meta__'];
10000
10035
  return (meta && meta.watching[key]) > 0;
10001
10036
  }
10002
10037
 
10003
10038
  watch.flushPending = chains.flushPendingChains;
10039
+
10004
10040
  function unwatch(obj, _keyPath, m) {
10005
10041
  // can't watch length on Array - it is special...
10006
- if (_keyPath === "length" && utils.typeOf(obj) === "array") {
10042
+ if (_keyPath === 'length' && utils.typeOf(obj) === 'array') {
10007
10043
  return;
10008
10044
  }
10009
10045
 
@@ -10025,12 +10061,13 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/utils', 'ember-metal/cha
10025
10061
  @param {Object} obj the object to destroy
10026
10062
  @return {void}
10027
10063
  */
10064
+
10028
10065
  function destroy(obj) {
10029
- var meta = obj["__ember_meta__"];
10066
+ var meta = obj['__ember_meta__'];
10030
10067
  var node, nodes, key, nodeObject;
10031
10068
 
10032
10069
  if (meta) {
10033
- obj["__ember_meta__"] = null;
10070
+ obj['__ember_meta__'] = null;
10034
10071
  // remove chainWatchers to remove circular references that would prevent GC
10035
10072
  node = meta.chains;
10036
10073
  if (node) {
@@ -10064,8 +10101,8 @@ enifed('ember-template-compiler', ['exports', 'ember-metal/core', 'ember-templat
10064
10101
 
10065
10102
  'use strict';
10066
10103
 
10067
- plugins.registerPlugin("ast", TransformWithAsToHash['default']);
10068
- plugins.registerPlugin("ast", TransformEachInToHash['default']);
10104
+ plugins.registerPlugin('ast', TransformWithAsToHash['default']);
10105
+ plugins.registerPlugin('ast', TransformEachInToHash['default']);
10069
10106
 
10070
10107
  exports._Ember = _Ember['default'];
10071
10108
  exports.precompile = precompile['default'];
@@ -10130,6 +10167,7 @@ enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
10130
10167
  @private
10131
10168
  @method registerASTPlugin
10132
10169
  */
10170
+
10133
10171
  function registerPlugin(type, Plugin) {
10134
10172
  if (!plugins[type]) {
10135
10173
  throw new Error('Attempting to register "' + Plugin + '" as "' + type + '" which is not a valid HTMLBars plugin type.');
@@ -10260,7 +10298,7 @@ enifed('ember-template-compiler/plugins/transform-with-as-to-hash', ['exports'],
10260
10298
  if (pluginContext.validate(node)) {
10261
10299
 
10262
10300
  if (node.program && node.program.blockParams.length) {
10263
- throw new Error("You cannot use keyword (`{{with foo as bar}}`) and block params (`{{with foo as |bar|}}`) at the same time.");
10301
+ throw new Error('You cannot use keyword (`{{with foo as bar}}`) and block params (`{{with foo as |bar|}}`) at the same time.');
10264
10302
  }
10265
10303
 
10266
10304
  Ember.deprecate("Using {{with}} without block syntax is deprecated. " + "Please use standard block form (`{{#with foo as |bar|}}`) " + (moduleName ? " in `" + moduleName + "` " : "") + "instead.", false, { url: "http://emberjs.com/deprecations/v1.x/#toc_code-as-code-sytnax-for-code-with-code" });
@@ -10275,7 +10313,7 @@ enifed('ember-template-compiler/plugins/transform-with-as-to-hash', ['exports'],
10275
10313
  };
10276
10314
 
10277
10315
  TransformWithAsToHash.prototype.validate = function TransformWithAsToHash_validate(node) {
10278
- return node.type === "BlockStatement" && node.sexpr.path.original === "with" && node.sexpr.params.length === 3 && node.sexpr.params[1].type === "PathExpression" && node.sexpr.params[1].original === "as";
10316
+ return node.type === 'BlockStatement' && node.sexpr.path.original === 'with' && node.sexpr.params.length === 3 && node.sexpr.params[1].type === 'PathExpression' && node.sexpr.params[1].original === 'as';
10279
10317
  };
10280
10318
 
10281
10319
  exports['default'] = TransformWithAsToHash;
@@ -10286,23 +10324,13 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-template-com
10286
10324
  'use strict';
10287
10325
 
10288
10326
 
10289
- var compile; /**
10290
- Uses HTMLBars `compile` function to process a string into a compiled template.
10291
-
10292
- This is not present in production builds.
10293
-
10294
- @private
10295
- @method compile
10296
- @param {String} templateString This is the string to be compiled by HTMLBars.
10297
- @param {Object} options This is an options hash to augment the compiler options.
10298
- */
10299
- exports['default'] = function (templateString, options) {
10300
- if (!compile && Ember.__loader.registry["htmlbars-compiler/compiler"]) {
10301
- compile = requireModule("htmlbars-compiler/compiler").compile;
10327
+ var compile;exports['default'] = function (templateString, options) {
10328
+ if (!compile && Ember.__loader.registry['htmlbars-compiler/compiler']) {
10329
+ compile = requireModule('htmlbars-compiler/compiler').compile;
10302
10330
  }
10303
10331
 
10304
10332
  if (!compile) {
10305
- throw new Error("Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.");
10333
+ throw new Error('Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.');
10306
10334
  }
10307
10335
 
10308
10336
  var templateSpec = compile(templateString, compileOptions['default'](options));
@@ -10331,7 +10359,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
10331
10359
  options = {};
10332
10360
  }
10333
10361
 
10334
- options.revision = "Ember@1.12.1";
10362
+ options.revision = 'Ember@1.12.2';
10335
10363
  options.disableComponentGeneration = disableComponentGeneration;
10336
10364
  options.plugins = plugins['default'];
10337
10365
 
@@ -10382,6 +10410,12 @@ enifed('ember-template-compiler/system/template', ['exports'], function (exports
10382
10410
  @submodule ember-template-compiler
10383
10411
  */
10384
10412
 
10413
+ exports['default'] = function (templateSpec) {
10414
+ templateSpec.isTop = true;
10415
+ templateSpec.isMethod = false;
10416
+
10417
+ return templateSpec;
10418
+ }
10385
10419
  /**
10386
10420
  Augments the default precompiled output of an HTMLBars template with
10387
10421
  additional information needed by Ember.
@@ -10391,13 +10425,6 @@ enifed('ember-template-compiler/system/template', ['exports'], function (exports
10391
10425
  @param {Function} templateSpec This is the compiled HTMLBars template spec.
10392
10426
  */
10393
10427
 
10394
- exports['default'] = function (templateSpec) {
10395
- templateSpec.isTop = true;
10396
- templateSpec.isMethod = false;
10397
-
10398
- return templateSpec;
10399
- }
10400
-
10401
10428
  });
10402
10429
  enifed("htmlbars-compiler",
10403
10430
  ["./htmlbars-compiler/compiler","exports"],
@@ -11290,7 +11317,7 @@ enifed("htmlbars-compiler/template-compiler",
11290
11317
 
11291
11318
  function TemplateCompiler(options) {
11292
11319
  this.options = options || {};
11293
- this.revision = this.options.revision || "HTMLBars@v0.11.3";
11320
+ this.revision = this.options.revision || "HTMLBars@0.11.4.d11ed3e4";
11294
11321
  this.fragmentOpcodeCompiler = new FragmentOpcodeCompiler();
11295
11322
  this.fragmentCompiler = new FragmentJavaScriptCompiler();
11296
11323
  this.hydrationOpcodeCompiler = new HydrationOpcodeCompiler();