ember-source 1.12.1 → 1.12.2

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