ember-source 1.11.0.1 → 1.11.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ember-source might be problematic. Click here for more details.

@@ -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.11.0
8
+ * @version 1.11.1
9
9
  */
10
10
 
11
11
  (function() {
@@ -6029,7 +6029,7 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
6029
6029
  function HandlebarsCompatibleHelper(fn) {
6030
6030
  this.helperFunction = function helperFunc(params, hash, options, env) {
6031
6031
  var param, blockResult, fnResult;
6032
- var context = this;
6032
+ var context = env.data.view;
6033
6033
  var handlebarsOptions = {
6034
6034
  hash: { },
6035
6035
  types: new Array(params.length),
@@ -6045,6 +6045,12 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
6045
6045
  handlebarsOptions.fn = function() {
6046
6046
  blockResult = options.template.render(context, env, options.morph.contextualElement);
6047
6047
  };
6048
+
6049
+ if (options.inverse) {
6050
+ handlebarsOptions.inverse = function() {
6051
+ blockResult = options.inverse.render(context, env, options.morph.contextualElement);
6052
+ };
6053
+ }
6048
6054
  }
6049
6055
 
6050
6056
  for (var prop in hash) {
@@ -7818,8 +7824,8 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-metal/core', 'emb
7818
7824
  function renderHTMLBarsTemplate(view, buffer, template) {
7819
7825
  Ember['default'].assert(
7820
7826
  'The template being rendered by `' + view + '` was compiled with `' + template.revision +
7821
- '` which does not match `Ember@1.11.0` (this revision).',
7822
- template.revision === 'Ember@1.11.0'
7827
+ '` which does not match `Ember@1.11.1` (this revision).',
7828
+ template.revision === 'Ember@1.11.1'
7823
7829
  );
7824
7830
 
7825
7831
  var contextualElement = buffer.innerContextualElement();
@@ -7859,7 +7865,7 @@ enifed('ember-htmlbars/templates/component', ['exports', 'ember-template-compile
7859
7865
  exports['default'] = template['default']((function() {
7860
7866
  return {
7861
7867
  isHTMLBars: true,
7862
- revision: "Ember@1.11.0",
7868
+ revision: "Ember@1.11.1",
7863
7869
  blockParams: 0,
7864
7870
  cachedFragment: null,
7865
7871
  hasRendered: false,
@@ -7906,7 +7912,7 @@ enifed('ember-htmlbars/templates/empty', ['exports', 'ember-template-compiler/sy
7906
7912
  exports['default'] = template['default']((function() {
7907
7913
  return {
7908
7914
  isHTMLBars: true,
7909
- revision: "Ember@1.11.0",
7915
+ revision: "Ember@1.11.1",
7910
7916
  blockParams: 0,
7911
7917
  cachedFragment: null,
7912
7918
  hasRendered: false,
@@ -7946,7 +7952,7 @@ enifed('ember-htmlbars/templates/link-to-escaped', ['exports', 'ember-template-c
7946
7952
  exports['default'] = template['default']((function() {
7947
7953
  return {
7948
7954
  isHTMLBars: true,
7949
- revision: "Ember@1.11.0",
7955
+ revision: "Ember@1.11.1",
7950
7956
  blockParams: 0,
7951
7957
  cachedFragment: null,
7952
7958
  hasRendered: false,
@@ -7993,7 +7999,7 @@ enifed('ember-htmlbars/templates/link-to-unescaped', ['exports', 'ember-template
7993
7999
  exports['default'] = template['default']((function() {
7994
8000
  return {
7995
8001
  isHTMLBars: true,
7996
- revision: "Ember@1.11.0",
8002
+ revision: "Ember@1.11.1",
7997
8003
  blockParams: 0,
7998
8004
  cachedFragment: null,
7999
8005
  hasRendered: false,
@@ -8041,7 +8047,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8041
8047
  var child0 = (function() {
8042
8048
  return {
8043
8049
  isHTMLBars: true,
8044
- revision: "Ember@1.11.0",
8050
+ revision: "Ember@1.11.1",
8045
8051
  blockParams: 0,
8046
8052
  cachedFragment: null,
8047
8053
  hasRendered: false,
@@ -8084,7 +8090,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8084
8090
  var child0 = (function() {
8085
8091
  return {
8086
8092
  isHTMLBars: true,
8087
- revision: "Ember@1.11.0",
8093
+ revision: "Ember@1.11.1",
8088
8094
  blockParams: 0,
8089
8095
  cachedFragment: null,
8090
8096
  hasRendered: false,
@@ -8124,7 +8130,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8124
8130
  }());
8125
8131
  return {
8126
8132
  isHTMLBars: true,
8127
- revision: "Ember@1.11.0",
8133
+ revision: "Ember@1.11.1",
8128
8134
  blockParams: 0,
8129
8135
  cachedFragment: null,
8130
8136
  hasRendered: false,
@@ -8166,7 +8172,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8166
8172
  var child0 = (function() {
8167
8173
  return {
8168
8174
  isHTMLBars: true,
8169
- revision: "Ember@1.11.0",
8175
+ revision: "Ember@1.11.1",
8170
8176
  blockParams: 0,
8171
8177
  cachedFragment: null,
8172
8178
  hasRendered: false,
@@ -8206,7 +8212,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8206
8212
  }());
8207
8213
  return {
8208
8214
  isHTMLBars: true,
8209
- revision: "Ember@1.11.0",
8215
+ revision: "Ember@1.11.1",
8210
8216
  blockParams: 0,
8211
8217
  cachedFragment: null,
8212
8218
  hasRendered: false,
@@ -8246,7 +8252,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8246
8252
  }());
8247
8253
  return {
8248
8254
  isHTMLBars: true,
8249
- revision: "Ember@1.11.0",
8255
+ revision: "Ember@1.11.1",
8250
8256
  blockParams: 0,
8251
8257
  cachedFragment: null,
8252
8258
  hasRendered: false,
@@ -8560,7 +8566,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
8560
8566
 
8561
8567
  this.beforeRemove(removeQueue[idx]);
8562
8568
 
8563
- childViews = view._childViews;
8569
+ childViews = this.childViews(view);
8564
8570
  if (childViews) {
8565
8571
  for (i=0,l=childViews.length; i<l; i++) {
8566
8572
  queue.push(childViews[i]);
@@ -8573,7 +8579,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
8573
8579
 
8574
8580
  this.beforeRemove(destroyQueue[idx]);
8575
8581
 
8576
- childViews = view._childViews;
8582
+ childViews = this.childViews(view);
8577
8583
  if (childViews) {
8578
8584
  for (i=0,l=childViews.length; i<l; i++) {
8579
8585
  destroyQueue.push(childViews[i]);
@@ -11393,7 +11399,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11393
11399
 
11394
11400
  @class Ember
11395
11401
  @static
11396
- @version 1.11.0
11402
+ @version 1.11.1
11397
11403
  */
11398
11404
 
11399
11405
  if ('undefined' === typeof Ember) {
@@ -11421,10 +11427,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11421
11427
  /**
11422
11428
  @property VERSION
11423
11429
  @type String
11424
- @default '1.11.0'
11430
+ @default '1.11.1'
11425
11431
  @static
11426
11432
  */
11427
- Ember.VERSION = '1.11.0';
11433
+ Ember.VERSION = '1.11.1';
11428
11434
 
11429
11435
  /**
11430
11436
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -16880,7 +16886,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16880
16886
  return object && object.isStream;
16881
16887
  }
16882
16888
 
16883
- /**
16889
+ /*
16884
16890
  A method of subscribing to a stream which is safe for use with a non-stream
16885
16891
  object. If a non-stream object is passed, the function does nothing.
16886
16892
 
@@ -16898,7 +16904,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16898
16904
  }
16899
16905
  }
16900
16906
 
16901
- /**
16907
+ /*
16902
16908
  A method of unsubscribing from a stream which is safe for use with a non-stream
16903
16909
  object. If a non-stream object is passed, the function does nothing.
16904
16910
 
@@ -16915,7 +16921,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16915
16921
  }
16916
16922
  }
16917
16923
 
16918
- /**
16924
+ /*
16919
16925
  Retrieve the value of a stream, or in the case a non-stream object is passed,
16920
16926
  return the object itself.
16921
16927
 
@@ -16933,7 +16939,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16933
16939
  }
16934
16940
  }
16935
16941
 
16936
- /**
16942
+ /*
16937
16943
  Map an array, replacing any streams with their values.
16938
16944
 
16939
16945
  @public
@@ -16954,7 +16960,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16954
16960
  return ret;
16955
16961
  }
16956
16962
 
16957
- /**
16963
+ /*
16958
16964
  Map a hash, replacing any stream property values with the current value of that
16959
16965
  stream.
16960
16966
 
@@ -16975,7 +16981,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16975
16981
  return ret;
16976
16982
  }
16977
16983
 
16978
- /**
16984
+ /*
16979
16985
  Check whether an array contains any stream values
16980
16986
 
16981
16987
  @public
@@ -16999,7 +17005,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16999
17005
  return containsStream;
17000
17006
  }
17001
17007
 
17002
- /**
17008
+ /*
17003
17009
  Check whether a hash has any stream property values
17004
17010
 
17005
17011
  @public
@@ -17022,7 +17028,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
17022
17028
  return containsStream;
17023
17029
  }
17024
17030
 
17025
- /**
17031
+ /*
17026
17032
  Join an array, with any streams replaced by their current values
17027
17033
 
17028
17034
  @public
@@ -17055,7 +17061,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
17055
17061
  }
17056
17062
  }
17057
17063
 
17058
- /**
17064
+ /*
17059
17065
  Generate a new stream by providing a source stream and a function that can
17060
17066
  be used to transform the stream's value. In the case of a non-stream object,
17061
17067
  returns the result of the function.
@@ -18787,7 +18793,7 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/c
18787
18793
  }
18788
18794
 
18789
18795
  });
18790
- enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView, create) {
18796
+ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, property_get, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView, create) {
18791
18797
 
18792
18798
  'use strict';
18793
18799
 
@@ -18848,6 +18854,9 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
18848
18854
  view = container.lookup('view:' + name);
18849
18855
  if (!view) {
18850
18856
  view = container.lookup('view:default');
18857
+ }
18858
+ var viewHasTemplateSpecified = !!property_get.get(view, 'template');
18859
+ if (!viewHasTemplateSpecified) {
18851
18860
  template = template || container.lookup(templateName);
18852
18861
  }
18853
18862
 
@@ -20732,6 +20741,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20732
20741
  init: function() {
20733
20742
  property_set.set(this, 'location', property_get.get(this, 'location') || window.location);
20734
20743
  property_set.set(this, 'baseURL', jQuery['default']('base').attr('href') || '');
20744
+
20735
20745
  },
20736
20746
 
20737
20747
  /**
@@ -20741,7 +20751,13 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20741
20751
  @method initState
20742
20752
  */
20743
20753
  initState: function() {
20744
- property_set.set(this, 'history', property_get.get(this, 'history') || window.history);
20754
+ var history = property_get.get(this, 'history') || window.history;
20755
+ property_set.set(this, 'history', history);
20756
+
20757
+ if (history && 'state' in history) {
20758
+ this.supportsHistory = true;
20759
+ }
20760
+
20745
20761
  this.replaceState(this.formatURL(this.getURL()));
20746
20762
  },
20747
20763
 
@@ -20786,7 +20802,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20786
20802
  @param path {String}
20787
20803
  */
20788
20804
  setURL: function(path) {
20789
- var state = this._historyState;
20805
+ var state = this.getState();
20790
20806
  path = this.formatURL(path);
20791
20807
 
20792
20808
  if (!state || state.path !== path) {
@@ -20803,7 +20819,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20803
20819
  @param path {String}
20804
20820
  */
20805
20821
  replaceURL: function(path) {
20806
- var state = this._historyState;
20822
+ var state = this.getState();
20807
20823
  path = this.formatURL(path);
20808
20824
 
20809
20825
  if (!state || state.path !== path) {
@@ -20811,6 +20827,24 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20811
20827
  }
20812
20828
  },
20813
20829
 
20830
+ /**
20831
+ Get the current `history.state`. Checks for if a polyfill is
20832
+ required and if so fetches this._historyState. The state returned
20833
+ from getState may be null if an iframe has changed a window's
20834
+ history.
20835
+
20836
+ @private
20837
+ @method getState
20838
+ @return state {Object}
20839
+ */
20840
+ getState: function() {
20841
+ if (this.supportsHistory) {
20842
+ return property_get.get(this, 'history').state;
20843
+ }
20844
+
20845
+ return this._historyState;
20846
+ },
20847
+
20814
20848
  /**
20815
20849
  Pushes a new state.
20816
20850
 
@@ -20821,7 +20855,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20821
20855
  pushState: function(path) {
20822
20856
  var state = { path: path };
20823
20857
 
20824
- property_get.get(this, 'history').pushState(null, null, path);
20858
+ property_get.get(this, 'history').pushState(state, null, path);
20825
20859
 
20826
20860
  this._historyState = state;
20827
20861
 
@@ -20838,7 +20872,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20838
20872
  */
20839
20873
  replaceState: function(path) {
20840
20874
  var state = { path: path };
20841
- property_get.get(this, 'history').replaceState(null, null, path);
20875
+ property_get.get(this, 'history').replaceState(state, null, path);
20842
20876
 
20843
20877
  this._historyState = state;
20844
20878
 
@@ -26651,7 +26685,7 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
26651
26685
  Ember['default'].assert(
26652
26686
  'ArrayController expects `model` to implement the Ember.Array mixin. ' +
26653
26687
  'This can often be fixed by wrapping your model with `Ember.A()`.',
26654
- EmberArray['default'].detect(value)
26688
+ EmberArray['default'].detect(value) || !value
26655
26689
  );
26656
26690
 
26657
26691
  return value;
@@ -34713,7 +34747,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
34713
34747
  var disableComponentGeneration = true;
34714
34748
 
34715
34749
  return {
34716
- revision: 'Ember@1.11.0',
34750
+ revision: 'Ember@1.11.1',
34717
34751
 
34718
34752
  disableComponentGeneration: disableComponentGeneration,
34719
34753
 
@@ -36269,6 +36303,8 @@ enifed('ember-views/mixins/attribute_bindings_support', ['exports', 'ember-metal
36269
36303
  */
36270
36304
  attributeBindings: EMPTY_ARRAY,
36271
36305
 
36306
+ _attrNodes: EMPTY_ARRAY,
36307
+
36272
36308
  _unspecifiedAttributeBindings: null,
36273
36309
 
36274
36310
  /**
@@ -38886,7 +38922,10 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
38886
38922
  };
38887
38923
 
38888
38924
  EmberRenderer.prototype.childViews = function childViews(view) {
38889
- return view._childViews;
38925
+ if (view._attrNodes && view._childViews) {
38926
+ return view._attrNodes.concat(view._childViews);
38927
+ }
38928
+ return view._attrNodes || view._childViews;
38890
38929
  };
38891
38930
 
38892
38931
  Renderer['default'].prototype.willCreateElement = function (view) {
@@ -40459,7 +40498,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
40459
40498
 
40460
40499
  var selectOptionDefaultTemplate = {
40461
40500
  isHTMLBars: true,
40462
- revision: 'Ember@1.11.0',
40501
+ revision: 'Ember@1.11.1',
40463
40502
  render: function(context, env, contextualElement) {
40464
40503
  var lazyValue = context.getStream('view.label');
40465
40504
 
@@ -41410,10 +41449,10 @@ enifed('ember-views/views/states/in_buffer', ['exports', 'ember-views/views/stat
41410
41449
 
41411
41450
  appendAttr: function(view, attrNode) {
41412
41451
  var buffer = view.buffer;
41413
- var _childViews = view._childViews;
41452
+ var _attrNodes = view._attrNodes;
41414
41453
 
41415
- if (!_childViews.length) { _childViews = view._childViews = _childViews.slice(); }
41416
- _childViews.push(attrNode);
41454
+ if (!_attrNodes.length) { _attrNodes = view._attrNodes = _attrNodes.slice(); }
41455
+ _attrNodes.push(attrNode);
41417
41456
 
41418
41457
  if (!attrNode._morph) {
41419
41458
  Ember.assert("bound attributes that do not have a morph must have a buffer", !!buffer);
@@ -41468,10 +41507,10 @@ enifed('ember-views/views/states/in_dom', ['exports', 'ember-metal/core', 'ember
41468
41507
  },
41469
41508
 
41470
41509
  appendAttr: function(view, attrNode) {
41471
- var _childViews = view._childViews;
41510
+ var _attrNodes = view._attrNodes;
41472
41511
 
41473
- if (!_childViews.length) { _childViews = view._childViews = _childViews.slice(); }
41474
- _childViews.push(attrNode);
41512
+ if (!_attrNodes.length) { _attrNodes = view._attrNodes = _attrNodes.slice(); }
41513
+ _attrNodes.push(attrNode);
41475
41514
 
41476
41515
  attrNode._parentView = view;
41477
41516
  view.renderer.appendAttrTo(attrNode, view.element, attrNode.attrName);
@@ -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.11.0
8
+ * @version 1.11.1
9
9
  */
10
10
 
11
11
  (function() {
@@ -6029,7 +6029,7 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
6029
6029
  function HandlebarsCompatibleHelper(fn) {
6030
6030
  this.helperFunction = function helperFunc(params, hash, options, env) {
6031
6031
  var param, blockResult, fnResult;
6032
- var context = this;
6032
+ var context = env.data.view;
6033
6033
  var handlebarsOptions = {
6034
6034
  hash: { },
6035
6035
  types: new Array(params.length),
@@ -6045,6 +6045,12 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
6045
6045
  handlebarsOptions.fn = function() {
6046
6046
  blockResult = options.template.render(context, env, options.morph.contextualElement);
6047
6047
  };
6048
+
6049
+ if (options.inverse) {
6050
+ handlebarsOptions.inverse = function() {
6051
+ blockResult = options.inverse.render(context, env, options.morph.contextualElement);
6052
+ };
6053
+ }
6048
6054
  }
6049
6055
 
6050
6056
  for (var prop in hash) {
@@ -7818,8 +7824,8 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-metal/core', 'emb
7818
7824
  function renderHTMLBarsTemplate(view, buffer, template) {
7819
7825
  Ember['default'].assert(
7820
7826
  'The template being rendered by `' + view + '` was compiled with `' + template.revision +
7821
- '` which does not match `Ember@1.11.0` (this revision).',
7822
- template.revision === 'Ember@1.11.0'
7827
+ '` which does not match `Ember@1.11.1` (this revision).',
7828
+ template.revision === 'Ember@1.11.1'
7823
7829
  );
7824
7830
 
7825
7831
  var contextualElement = buffer.innerContextualElement();
@@ -7859,7 +7865,7 @@ enifed('ember-htmlbars/templates/component', ['exports', 'ember-template-compile
7859
7865
  exports['default'] = template['default']((function() {
7860
7866
  return {
7861
7867
  isHTMLBars: true,
7862
- revision: "Ember@1.11.0",
7868
+ revision: "Ember@1.11.1",
7863
7869
  blockParams: 0,
7864
7870
  cachedFragment: null,
7865
7871
  hasRendered: false,
@@ -7906,7 +7912,7 @@ enifed('ember-htmlbars/templates/empty', ['exports', 'ember-template-compiler/sy
7906
7912
  exports['default'] = template['default']((function() {
7907
7913
  return {
7908
7914
  isHTMLBars: true,
7909
- revision: "Ember@1.11.0",
7915
+ revision: "Ember@1.11.1",
7910
7916
  blockParams: 0,
7911
7917
  cachedFragment: null,
7912
7918
  hasRendered: false,
@@ -7946,7 +7952,7 @@ enifed('ember-htmlbars/templates/link-to-escaped', ['exports', 'ember-template-c
7946
7952
  exports['default'] = template['default']((function() {
7947
7953
  return {
7948
7954
  isHTMLBars: true,
7949
- revision: "Ember@1.11.0",
7955
+ revision: "Ember@1.11.1",
7950
7956
  blockParams: 0,
7951
7957
  cachedFragment: null,
7952
7958
  hasRendered: false,
@@ -7993,7 +7999,7 @@ enifed('ember-htmlbars/templates/link-to-unescaped', ['exports', 'ember-template
7993
7999
  exports['default'] = template['default']((function() {
7994
8000
  return {
7995
8001
  isHTMLBars: true,
7996
- revision: "Ember@1.11.0",
8002
+ revision: "Ember@1.11.1",
7997
8003
  blockParams: 0,
7998
8004
  cachedFragment: null,
7999
8005
  hasRendered: false,
@@ -8041,7 +8047,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8041
8047
  var child0 = (function() {
8042
8048
  return {
8043
8049
  isHTMLBars: true,
8044
- revision: "Ember@1.11.0",
8050
+ revision: "Ember@1.11.1",
8045
8051
  blockParams: 0,
8046
8052
  cachedFragment: null,
8047
8053
  hasRendered: false,
@@ -8084,7 +8090,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8084
8090
  var child0 = (function() {
8085
8091
  return {
8086
8092
  isHTMLBars: true,
8087
- revision: "Ember@1.11.0",
8093
+ revision: "Ember@1.11.1",
8088
8094
  blockParams: 0,
8089
8095
  cachedFragment: null,
8090
8096
  hasRendered: false,
@@ -8124,7 +8130,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8124
8130
  }());
8125
8131
  return {
8126
8132
  isHTMLBars: true,
8127
- revision: "Ember@1.11.0",
8133
+ revision: "Ember@1.11.1",
8128
8134
  blockParams: 0,
8129
8135
  cachedFragment: null,
8130
8136
  hasRendered: false,
@@ -8166,7 +8172,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8166
8172
  var child0 = (function() {
8167
8173
  return {
8168
8174
  isHTMLBars: true,
8169
- revision: "Ember@1.11.0",
8175
+ revision: "Ember@1.11.1",
8170
8176
  blockParams: 0,
8171
8177
  cachedFragment: null,
8172
8178
  hasRendered: false,
@@ -8206,7 +8212,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8206
8212
  }());
8207
8213
  return {
8208
8214
  isHTMLBars: true,
8209
- revision: "Ember@1.11.0",
8215
+ revision: "Ember@1.11.1",
8210
8216
  blockParams: 0,
8211
8217
  cachedFragment: null,
8212
8218
  hasRendered: false,
@@ -8246,7 +8252,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8246
8252
  }());
8247
8253
  return {
8248
8254
  isHTMLBars: true,
8249
- revision: "Ember@1.11.0",
8255
+ revision: "Ember@1.11.1",
8250
8256
  blockParams: 0,
8251
8257
  cachedFragment: null,
8252
8258
  hasRendered: false,
@@ -8560,7 +8566,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
8560
8566
 
8561
8567
  this.beforeRemove(removeQueue[idx]);
8562
8568
 
8563
- childViews = view._childViews;
8569
+ childViews = this.childViews(view);
8564
8570
  if (childViews) {
8565
8571
  for (i=0,l=childViews.length; i<l; i++) {
8566
8572
  queue.push(childViews[i]);
@@ -8573,7 +8579,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
8573
8579
 
8574
8580
  this.beforeRemove(destroyQueue[idx]);
8575
8581
 
8576
- childViews = view._childViews;
8582
+ childViews = this.childViews(view);
8577
8583
  if (childViews) {
8578
8584
  for (i=0,l=childViews.length; i<l; i++) {
8579
8585
  destroyQueue.push(childViews[i]);
@@ -11393,7 +11399,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11393
11399
 
11394
11400
  @class Ember
11395
11401
  @static
11396
- @version 1.11.0
11402
+ @version 1.11.1
11397
11403
  */
11398
11404
 
11399
11405
  if ('undefined' === typeof Ember) {
@@ -11421,10 +11427,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11421
11427
  /**
11422
11428
  @property VERSION
11423
11429
  @type String
11424
- @default '1.11.0'
11430
+ @default '1.11.1'
11425
11431
  @static
11426
11432
  */
11427
- Ember.VERSION = '1.11.0';
11433
+ Ember.VERSION = '1.11.1';
11428
11434
 
11429
11435
  /**
11430
11436
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -16880,7 +16886,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16880
16886
  return object && object.isStream;
16881
16887
  }
16882
16888
 
16883
- /**
16889
+ /*
16884
16890
  A method of subscribing to a stream which is safe for use with a non-stream
16885
16891
  object. If a non-stream object is passed, the function does nothing.
16886
16892
 
@@ -16898,7 +16904,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16898
16904
  }
16899
16905
  }
16900
16906
 
16901
- /**
16907
+ /*
16902
16908
  A method of unsubscribing from a stream which is safe for use with a non-stream
16903
16909
  object. If a non-stream object is passed, the function does nothing.
16904
16910
 
@@ -16915,7 +16921,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16915
16921
  }
16916
16922
  }
16917
16923
 
16918
- /**
16924
+ /*
16919
16925
  Retrieve the value of a stream, or in the case a non-stream object is passed,
16920
16926
  return the object itself.
16921
16927
 
@@ -16933,7 +16939,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16933
16939
  }
16934
16940
  }
16935
16941
 
16936
- /**
16942
+ /*
16937
16943
  Map an array, replacing any streams with their values.
16938
16944
 
16939
16945
  @public
@@ -16954,7 +16960,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16954
16960
  return ret;
16955
16961
  }
16956
16962
 
16957
- /**
16963
+ /*
16958
16964
  Map a hash, replacing any stream property values with the current value of that
16959
16965
  stream.
16960
16966
 
@@ -16975,7 +16981,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16975
16981
  return ret;
16976
16982
  }
16977
16983
 
16978
- /**
16984
+ /*
16979
16985
  Check whether an array contains any stream values
16980
16986
 
16981
16987
  @public
@@ -16999,7 +17005,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16999
17005
  return containsStream;
17000
17006
  }
17001
17007
 
17002
- /**
17008
+ /*
17003
17009
  Check whether a hash has any stream property values
17004
17010
 
17005
17011
  @public
@@ -17022,7 +17028,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
17022
17028
  return containsStream;
17023
17029
  }
17024
17030
 
17025
- /**
17031
+ /*
17026
17032
  Join an array, with any streams replaced by their current values
17027
17033
 
17028
17034
  @public
@@ -17055,7 +17061,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
17055
17061
  }
17056
17062
  }
17057
17063
 
17058
- /**
17064
+ /*
17059
17065
  Generate a new stream by providing a source stream and a function that can
17060
17066
  be used to transform the stream's value. In the case of a non-stream object,
17061
17067
  returns the result of the function.
@@ -18787,7 +18793,7 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/c
18787
18793
  }
18788
18794
 
18789
18795
  });
18790
- enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView, create) {
18796
+ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, property_get, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView, create) {
18791
18797
 
18792
18798
  'use strict';
18793
18799
 
@@ -18848,6 +18854,9 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
18848
18854
  view = container.lookup('view:' + name);
18849
18855
  if (!view) {
18850
18856
  view = container.lookup('view:default');
18857
+ }
18858
+ var viewHasTemplateSpecified = !!property_get.get(view, 'template');
18859
+ if (!viewHasTemplateSpecified) {
18851
18860
  template = template || container.lookup(templateName);
18852
18861
  }
18853
18862
 
@@ -20732,6 +20741,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20732
20741
  init: function() {
20733
20742
  property_set.set(this, 'location', property_get.get(this, 'location') || window.location);
20734
20743
  property_set.set(this, 'baseURL', jQuery['default']('base').attr('href') || '');
20744
+
20735
20745
  },
20736
20746
 
20737
20747
  /**
@@ -20741,7 +20751,13 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20741
20751
  @method initState
20742
20752
  */
20743
20753
  initState: function() {
20744
- property_set.set(this, 'history', property_get.get(this, 'history') || window.history);
20754
+ var history = property_get.get(this, 'history') || window.history;
20755
+ property_set.set(this, 'history', history);
20756
+
20757
+ if (history && 'state' in history) {
20758
+ this.supportsHistory = true;
20759
+ }
20760
+
20745
20761
  this.replaceState(this.formatURL(this.getURL()));
20746
20762
  },
20747
20763
 
@@ -20786,7 +20802,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20786
20802
  @param path {String}
20787
20803
  */
20788
20804
  setURL: function(path) {
20789
- var state = this._historyState;
20805
+ var state = this.getState();
20790
20806
  path = this.formatURL(path);
20791
20807
 
20792
20808
  if (!state || state.path !== path) {
@@ -20803,7 +20819,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20803
20819
  @param path {String}
20804
20820
  */
20805
20821
  replaceURL: function(path) {
20806
- var state = this._historyState;
20822
+ var state = this.getState();
20807
20823
  path = this.formatURL(path);
20808
20824
 
20809
20825
  if (!state || state.path !== path) {
@@ -20811,6 +20827,24 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20811
20827
  }
20812
20828
  },
20813
20829
 
20830
+ /**
20831
+ Get the current `history.state`. Checks for if a polyfill is
20832
+ required and if so fetches this._historyState. The state returned
20833
+ from getState may be null if an iframe has changed a window's
20834
+ history.
20835
+
20836
+ @private
20837
+ @method getState
20838
+ @return state {Object}
20839
+ */
20840
+ getState: function() {
20841
+ if (this.supportsHistory) {
20842
+ return property_get.get(this, 'history').state;
20843
+ }
20844
+
20845
+ return this._historyState;
20846
+ },
20847
+
20814
20848
  /**
20815
20849
  Pushes a new state.
20816
20850
 
@@ -20821,7 +20855,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20821
20855
  pushState: function(path) {
20822
20856
  var state = { path: path };
20823
20857
 
20824
- property_get.get(this, 'history').pushState(null, null, path);
20858
+ property_get.get(this, 'history').pushState(state, null, path);
20825
20859
 
20826
20860
  this._historyState = state;
20827
20861
 
@@ -20838,7 +20872,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20838
20872
  */
20839
20873
  replaceState: function(path) {
20840
20874
  var state = { path: path };
20841
- property_get.get(this, 'history').replaceState(null, null, path);
20875
+ property_get.get(this, 'history').replaceState(state, null, path);
20842
20876
 
20843
20877
  this._historyState = state;
20844
20878
 
@@ -26651,7 +26685,7 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
26651
26685
  Ember['default'].assert(
26652
26686
  'ArrayController expects `model` to implement the Ember.Array mixin. ' +
26653
26687
  'This can often be fixed by wrapping your model with `Ember.A()`.',
26654
- EmberArray['default'].detect(value)
26688
+ EmberArray['default'].detect(value) || !value
26655
26689
  );
26656
26690
 
26657
26691
  return value;
@@ -34713,7 +34747,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
34713
34747
  var disableComponentGeneration = true;
34714
34748
 
34715
34749
  return {
34716
- revision: 'Ember@1.11.0',
34750
+ revision: 'Ember@1.11.1',
34717
34751
 
34718
34752
  disableComponentGeneration: disableComponentGeneration,
34719
34753
 
@@ -36269,6 +36303,8 @@ enifed('ember-views/mixins/attribute_bindings_support', ['exports', 'ember-metal
36269
36303
  */
36270
36304
  attributeBindings: EMPTY_ARRAY,
36271
36305
 
36306
+ _attrNodes: EMPTY_ARRAY,
36307
+
36272
36308
  _unspecifiedAttributeBindings: null,
36273
36309
 
36274
36310
  /**
@@ -38886,7 +38922,10 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
38886
38922
  };
38887
38923
 
38888
38924
  EmberRenderer.prototype.childViews = function childViews(view) {
38889
- return view._childViews;
38925
+ if (view._attrNodes && view._childViews) {
38926
+ return view._attrNodes.concat(view._childViews);
38927
+ }
38928
+ return view._attrNodes || view._childViews;
38890
38929
  };
38891
38930
 
38892
38931
  Renderer['default'].prototype.willCreateElement = function (view) {
@@ -40459,7 +40498,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
40459
40498
 
40460
40499
  var selectOptionDefaultTemplate = {
40461
40500
  isHTMLBars: true,
40462
- revision: 'Ember@1.11.0',
40501
+ revision: 'Ember@1.11.1',
40463
40502
  render: function(context, env, contextualElement) {
40464
40503
  var lazyValue = context.getStream('view.label');
40465
40504
 
@@ -41410,10 +41449,10 @@ enifed('ember-views/views/states/in_buffer', ['exports', 'ember-views/views/stat
41410
41449
 
41411
41450
  appendAttr: function(view, attrNode) {
41412
41451
  var buffer = view.buffer;
41413
- var _childViews = view._childViews;
41452
+ var _attrNodes = view._attrNodes;
41414
41453
 
41415
- if (!_childViews.length) { _childViews = view._childViews = _childViews.slice(); }
41416
- _childViews.push(attrNode);
41454
+ if (!_attrNodes.length) { _attrNodes = view._attrNodes = _attrNodes.slice(); }
41455
+ _attrNodes.push(attrNode);
41417
41456
 
41418
41457
  if (!attrNode._morph) {
41419
41458
  Ember.assert("bound attributes that do not have a morph must have a buffer", !!buffer);
@@ -41468,10 +41507,10 @@ enifed('ember-views/views/states/in_dom', ['exports', 'ember-metal/core', 'ember
41468
41507
  },
41469
41508
 
41470
41509
  appendAttr: function(view, attrNode) {
41471
- var _childViews = view._childViews;
41510
+ var _attrNodes = view._attrNodes;
41472
41511
 
41473
- if (!_childViews.length) { _childViews = view._childViews = _childViews.slice(); }
41474
- _childViews.push(attrNode);
41512
+ if (!_attrNodes.length) { _attrNodes = view._attrNodes = _attrNodes.slice(); }
41513
+ _attrNodes.push(attrNode);
41475
41514
 
41476
41515
  attrNode._parentView = view;
41477
41516
  view.renderer.appendAttrTo(attrNode, view.element, attrNode.attrName);