ember-source 2.8.0.beta.1 → 2.8.0.beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/dist/ember.debug.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.8.0-beta.1
9
+ * @version 2.8.0-beta.2
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, Ember;
@@ -3890,21 +3890,7 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3890
3890
  },
3891
3891
 
3892
3892
  setupRegistry: function (options) {
3893
- var registry = this.__registry__;
3894
-
3895
- registry.register('-environment:main', options.toEnvironment(), { instantiate: false });
3896
- registry.injection('view', '_environment', '-environment:main');
3897
- registry.injection('route', '_environment', '-environment:main');
3898
-
3899
- registry.register('service:-document', options.document, { instantiate: false });
3900
-
3901
- if (options.isInteractive) {
3902
- registry.injection('view', 'renderer', 'renderer:-dom');
3903
- registry.injection('component', 'renderer', 'renderer:-dom');
3904
- } else {
3905
- registry.injection('view', 'renderer', 'renderer:-inert');
3906
- registry.injection('component', 'renderer', 'renderer:-inert');
3907
- }
3893
+ this.constructor.setupRegistry(this.__registry__, options);
3908
3894
  },
3909
3895
 
3910
3896
  router: _emberMetalComputed.computed(function () {
@@ -4043,6 +4029,32 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
4043
4029
  }
4044
4030
  });
4045
4031
 
4032
+ ApplicationInstance.reopenClass({
4033
+ /**
4034
+ @private
4035
+ @method setupRegistry
4036
+ @param {Registry} registry
4037
+ @param {BootOptions} options
4038
+ */
4039
+ setupRegistry: function (registry) {
4040
+ var options = arguments.length <= 1 || arguments[1] === undefined ? new BootOptions() : arguments[1];
4041
+
4042
+ registry.register('-environment:main', options.toEnvironment(), { instantiate: false });
4043
+ registry.injection('view', '_environment', '-environment:main');
4044
+ registry.injection('route', '_environment', '-environment:main');
4045
+
4046
+ registry.register('service:-document', options.document, { instantiate: false });
4047
+
4048
+ if (options.isInteractive) {
4049
+ registry.injection('view', 'renderer', 'renderer:-dom');
4050
+ registry.injection('component', 'renderer', 'renderer:-dom');
4051
+ } else {
4052
+ registry.injection('view', 'renderer', 'renderer:-inert');
4053
+ registry.injection('component', 'renderer', 'renderer:-inert');
4054
+ }
4055
+ }
4056
+ });
4057
+
4046
4058
  /**
4047
4059
  A list of boot-time configuration options for customizing the behavior of
4048
4060
  an `Ember.ApplicationInstance`.
@@ -10304,7 +10316,7 @@ enifed('ember-htmlbars/hooks/component', ['exports', 'ember-metal/debug', 'ember
10304
10316
  var templateMeta = null;
10305
10317
  if (sm.block) {
10306
10318
  templateMeta = sm.block.template.meta;
10307
- } else if (sm.scope && sm.scope._view) {
10319
+ } else if (sm.scope && sm.scope._view && sm.scope._view.template) {
10308
10320
  templateMeta = sm.scope._view.template.meta;
10309
10321
  }
10310
10322
  env.meta.moduleName = templateMeta && templateMeta.moduleName || env.meta && env.meta.moduleName;
@@ -13952,9 +13964,6 @@ enifed('ember-htmlbars/node-managers/component-node-manager', ['exports', 'ember
13952
13964
  if (attrs.id) {
13953
13965
  createOptions.elementId = _emberHtmlbarsHooksGetValue.default(attrs.id);
13954
13966
  }
13955
- if (attrs._defaultTagName) {
13956
- createOptions._defaultTagName = _emberHtmlbarsHooksGetValue.default(attrs._defaultTagName);
13957
- }
13958
13967
  }
13959
13968
 
13960
13969
  ComponentNodeManager.prototype.render = function ComponentNodeManager_render(_env, visitor) {
@@ -14142,9 +14151,6 @@ enifed('ember-htmlbars/node-managers/view-node-manager', ['exports', 'ember-meta
14142
14151
  if (attrs && attrs.tagName) {
14143
14152
  options.tagName = _emberHtmlbarsHooksGetValue.default(attrs.tagName);
14144
14153
  }
14145
- if (attrs && attrs._defaultTagName) {
14146
- options._defaultTagName = _emberHtmlbarsHooksGetValue.default(attrs._defaultTagName);
14147
- }
14148
14154
 
14149
14155
  component = componentInfo.component = createOrUpdateComponent(found.component, options, found.createOptions, renderNode, env, attrs);
14150
14156
 
@@ -14386,7 +14392,7 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
14386
14392
 
14387
14393
  _emberHtmlbarsSystemRenderView.renderHTMLBarsBlock(view, block, renderNode);
14388
14394
  view.lastResult = renderNode.lastResult;
14389
- this.clearRenderedViews(view.env);
14395
+ this.clearRenderedViews(view._env);
14390
14396
  };
14391
14397
 
14392
14398
  Renderer.prototype.renderTopLevelView = function Renderer_renderTopLevelView(view, renderNode) {
@@ -14394,20 +14400,16 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
14394
14400
  if (view._willInsert) {
14395
14401
  view._willInsert = false;
14396
14402
  this.prerenderTopLevelView(view, renderNode);
14397
- this.dispatchLifecycleHooks(view.env);
14403
+ this.dispatchLifecycleHooks(view._env);
14398
14404
  }
14399
14405
  };
14400
14406
 
14401
14407
  Renderer.prototype.revalidateTopLevelView = function Renderer_revalidateTopLevelView(view) {
14402
14408
  // This guard prevents revalidation on an already-destroyed view.
14403
14409
  if (view._renderNode.lastResult) {
14404
- view._renderNode.lastResult.revalidate(view.env);
14405
- // supports createElement, which operates without moving the view into
14406
- // the inDOM state.
14407
- if (view._state === 'inDOM') {
14408
- this.dispatchLifecycleHooks(view.env);
14409
- }
14410
- this.clearRenderedViews(view.env);
14410
+ view._renderNode.lastResult.revalidate(view._env);
14411
+ this.dispatchLifecycleHooks(view._env);
14412
+ this.clearRenderedViews(view._env);
14411
14413
  }
14412
14414
  };
14413
14415
 
@@ -14437,7 +14439,7 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
14437
14439
  };
14438
14440
 
14439
14441
  Renderer.prototype.ensureViewNotRendering = function Renderer_ensureViewNotRendering(view) {
14440
- var env = view.ownerView.env;
14442
+ var env = view.ownerView._env;
14441
14443
  if (env && env.renderedViews.indexOf(view.elementId) !== -1) {
14442
14444
  throw new Error('Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.');
14443
14445
  }
@@ -14485,12 +14487,6 @@ enifed('ember-htmlbars/renderer', ['exports', 'ember-metal/run_loop', 'ember-met
14485
14487
  _emberMetalRun_loop.default.scheduleOnce('render', this, this.renderTopLevelView, view, morph);
14486
14488
  };
14487
14489
 
14488
- Renderer.prototype.createElement = function Renderer_createElement(view) {
14489
- var morph = this._dom.createFragmentMorph();
14490
- morph.ownerNode = morph;
14491
- this.prerenderTopLevelView(view, morph);
14492
- };
14493
-
14494
14490
  Renderer.prototype.didCreateElement = function (view, element) {
14495
14491
  if (element) {
14496
14492
  view.element = element;
@@ -14696,14 +14692,14 @@ enifed('ember-htmlbars/streams/built-in-helper', ['exports', 'ember-htmlbars/str
14696
14692
  this.helper = helper;
14697
14693
  this.params = params;
14698
14694
  this.templates = templates;
14699
- this.env = env;
14695
+ this._env = env;
14700
14696
  this.scope = scope;
14701
14697
  this.hash = hash;
14702
14698
  this.label = label;
14703
14699
  },
14704
14700
 
14705
14701
  compute: function () {
14706
- return this.helper(_emberHtmlbarsStreamsUtils.getArrayValues(this.params), _emberHtmlbarsStreamsUtils.getHashValues(this.hash), this.templates, this.env, this.scope);
14702
+ return this.helper(_emberHtmlbarsStreamsUtils.getArrayValues(this.params), _emberHtmlbarsStreamsUtils.getHashValues(this.hash), this.templates, this._env, this.scope);
14707
14703
  }
14708
14704
  });
14709
14705
  });
@@ -16041,9 +16037,28 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16041
16037
  elementTemplate.meta = meta;
16042
16038
 
16043
16039
  blockToRender = createElementBlock(elementTemplate, blockToRender, component);
16044
- } else {
16045
- validateTaglessComponent(component);
16046
16040
  }
16041
+
16042
+ _emberMetalDebug.assert('You cannot use `classNameBindings` on a tag-less component: ' + component.toString(), (function () {
16043
+ var _component = component;
16044
+ var classNameBindings = _component.classNameBindings;
16045
+
16046
+ return tagName !== '' || !classNameBindings || classNameBindings.length === 0;
16047
+ })());
16048
+
16049
+ _emberMetalDebug.assert('You cannot use `elementId` on a tag-less component: ' + component.toString(), (function () {
16050
+ var _component2 = component;
16051
+ var elementId = _component2.elementId;
16052
+
16053
+ return tagName !== '' || !elementId && elementId !== '';
16054
+ })());
16055
+
16056
+ _emberMetalDebug.assert('You cannot use `attributeBindings` on a tag-less component: ' + component.toString(), (function () {
16057
+ var _component3 = component;
16058
+ var attributeBindings = _component3.attributeBindings;
16059
+
16060
+ return tagName !== '' || !attributeBindings || attributeBindings.length === 0;
16061
+ })());
16047
16062
  }
16048
16063
 
16049
16064
  // tagName is one of:
@@ -16133,7 +16148,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16133
16148
  var tagName = view.tagName;
16134
16149
 
16135
16150
  if (tagName === null || tagName === undefined) {
16136
- tagName = view._defaultTagName || 'div';
16151
+ tagName = 'div';
16137
16152
  }
16138
16153
 
16139
16154
  return tagName;
@@ -16144,7 +16159,6 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16144
16159
  function normalizeComponentAttributes(component, attrs) {
16145
16160
  var normalized = {};
16146
16161
  var attributeBindings = component.attributeBindings;
16147
- var streamBasePath = component.isComponent ? '' : 'view.';
16148
16162
 
16149
16163
  if (attrs.id && _emberHtmlbarsHooksGetValue.default(attrs.id)) {
16150
16164
  // Do not allow binding to the `id`
@@ -16164,7 +16178,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16164
16178
  if (colonIndex !== -1) {
16165
16179
  var attrProperty = attr.substring(0, colonIndex);
16166
16180
  attrName = attr.substring(colonIndex + 1);
16167
- expression = _htmlbarsUtilTemplateUtils.buildStatement('get', '' + streamBasePath + attrProperty);
16181
+ expression = _htmlbarsUtilTemplateUtils.buildStatement('get', attrProperty);
16168
16182
  } else if (attrs[attr]) {
16169
16183
  // TODO: For compatibility with 1.x, we probably need to `set`
16170
16184
  // the component's attribute here if it is a CP, but we also
@@ -16174,7 +16188,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16174
16188
  expression = _htmlbarsUtilTemplateUtils.buildStatement('value', attrs[attr]);
16175
16189
  } else {
16176
16190
  attrName = attr;
16177
- expression = _htmlbarsUtilTemplateUtils.buildStatement('get', '' + streamBasePath + attr);
16191
+ expression = _htmlbarsUtilTemplateUtils.buildStatement('get', attr);
16178
16192
  }
16179
16193
 
16180
16194
  _emberMetalDebug.assert('You cannot use class as an attributeBinding, use classNameBindings instead.', attrName !== 'class');
@@ -16182,11 +16196,13 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16182
16196
  }
16183
16197
  }
16184
16198
 
16199
+ normalized.role = _htmlbarsUtilTemplateUtils.buildStatement('get', 'ariaRole');
16200
+
16185
16201
  if (attrs.tagName) {
16186
16202
  component.tagName = attrs.tagName;
16187
16203
  }
16188
16204
 
16189
- var normalizedClass = normalizeClass(component, attrs, streamBasePath);
16205
+ var normalizedClass = normalizeClass(component, attrs);
16190
16206
  if (normalizedClass) {
16191
16207
  normalized.class = normalizedClass;
16192
16208
  }
@@ -16205,7 +16221,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16205
16221
  return normalized;
16206
16222
  }
16207
16223
 
16208
- function normalizeClass(component, attrs, streamBasePath) {
16224
+ function normalizeClass(component, attrs) {
16209
16225
  var normalizedClass = [];
16210
16226
  var classNames = _emberMetalProperty_get.get(component, 'classNames');
16211
16227
  var classNameBindings = _emberMetalProperty_get.get(component, 'classNameBindings');
@@ -16219,7 +16235,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16219
16235
  }
16220
16236
 
16221
16237
  if (attrs.classBinding) {
16222
- normalizeClasses(attrs.classBinding.split(' '), normalizedClass, streamBasePath);
16238
+ normalizeClasses(attrs.classBinding.split(' '), normalizedClass);
16223
16239
  }
16224
16240
 
16225
16241
  if (classNames) {
@@ -16229,7 +16245,7 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16229
16245
  }
16230
16246
 
16231
16247
  if (classNameBindings) {
16232
- normalizeClasses(classNameBindings, normalizedClass, streamBasePath);
16248
+ normalizeClasses(classNameBindings, normalizedClass);
16233
16249
  }
16234
16250
 
16235
16251
  if (normalizeClass.length) {
@@ -16254,22 +16270,13 @@ enifed('ember-htmlbars/system/build-component-template', ['exports', 'ember-meta
16254
16270
  continue;
16255
16271
  }
16256
16272
 
16257
- var prop = '' + streamBasePath + propName;
16258
-
16259
16273
  output.push(_htmlbarsUtilTemplateUtils.buildStatement('subexpr', '-normalize-class', [
16260
16274
  // params
16261
- _htmlbarsUtilTemplateUtils.buildStatement('value', propName), _htmlbarsUtilTemplateUtils.buildStatement('get', prop)], [
16275
+ _htmlbarsUtilTemplateUtils.buildStatement('value', propName), _htmlbarsUtilTemplateUtils.buildStatement('get', propName)], [
16262
16276
  // hash
16263
16277
  'activeClass', activeClass, 'inactiveClass', inactiveClass]));
16264
16278
  }
16265
16279
  }
16266
-
16267
- function validateTaglessComponent(component) {
16268
- _emberMetalDebug.assert('You cannot use `classNameBindings` on a tag-less component: ' + component.toString(), (function () {
16269
- var classNameBindings = component.classNameBindings;
16270
- return !classNameBindings || classNameBindings.length === 0;
16271
- })());
16272
- }
16273
16280
  });
16274
16281
  enifed('ember-htmlbars/system/dom-helper', ['exports', 'dom-helper', 'ember-htmlbars/morphs/morph', 'ember-htmlbars/morphs/attr-morph'], function (exports, _domHelper, _emberHtmlbarsMorphsMorph, _emberHtmlbarsMorphsAttrMorph) {
16275
16282
  'use strict';
@@ -16532,7 +16539,7 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-htmlbars/node-man
16532
16539
  var meta = block && block.template && block.template.meta;
16533
16540
  var env = _emberHtmlbarsSystemRenderEnv.default.build(view, meta);
16534
16541
 
16535
- view.env = env;
16542
+ view._env = env;
16536
16543
  _emberHtmlbarsNodeManagersViewNodeManager.createOrUpdateComponent(view, {}, null, renderNode, env);
16537
16544
  var nodeManager = new _emberHtmlbarsNodeManagersViewNodeManager.default(view, null, renderNode, block, view.tagName !== '');
16538
16545
 
@@ -17111,8 +17118,8 @@ enifed('ember-htmlbars/views/outlet', ['exports', 'ember-views/views/view', 'emb
17111
17118
  setOutletState: function (state) {
17112
17119
  this.outletState = { main: state };
17113
17120
 
17114
- if (this.env) {
17115
- this.env.outletState = this.outletState;
17121
+ if (this._env) {
17122
+ this._env.outletState = this.outletState;
17116
17123
  }
17117
17124
 
17118
17125
  if (this.lastResult) {
@@ -17412,7 +17419,7 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
17412
17419
 
17413
17420
  _emberMetalEvents.addListener(obj, 'willDestroy', this, 'disconnect');
17414
17421
 
17415
- fireDeprecations(possibleGlobal, this._oneWay, !possibleGlobal && !this._oneWay);
17422
+ fireDeprecations(obj, this._to, this._from, possibleGlobal, this._oneWay, !possibleGlobal && !this._oneWay);
17416
17423
 
17417
17424
  this._readyToSync = true;
17418
17425
  this._fromObj = fromObj;
@@ -17521,22 +17528,23 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
17521
17528
 
17522
17529
  };
17523
17530
 
17524
- function fireDeprecations(deprecateGlobal, deprecateOneWay, deprecateAlias) {
17531
+ function fireDeprecations(obj, toPath, fromPath, deprecateGlobal, deprecateOneWay, deprecateAlias) {
17525
17532
  var deprecateGlobalMessage = '`Ember.Binding` is deprecated. Since you' + ' are binding to a global consider using a service instead.';
17526
17533
  var deprecateOneWayMessage = '`Ember.Binding` is deprecated. Since you' + ' are using a `oneWay` binding consider using a `readOnly` computed' + ' property instead.';
17527
17534
  var deprecateAliasMessage = '`Ember.Binding` is deprecated. Consider' + ' using an `alias` computed property instead.';
17528
17535
 
17529
- _emberMetalDebug.deprecate(deprecateGlobalMessage, !deprecateGlobal, {
17536
+ var objectInfo = 'The `' + toPath + '` property of `' + obj + '` is an `Ember.Binding` connected to `' + fromPath + '`, but ';
17537
+ _emberMetalDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
17530
17538
  id: 'ember-metal.binding',
17531
17539
  until: '3.0.0',
17532
17540
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
17533
17541
  });
17534
- _emberMetalDebug.deprecate(deprecateOneWayMessage, !deprecateOneWay, {
17542
+ _emberMetalDebug.deprecate(objectInfo + deprecateOneWayMessage, !deprecateOneWay, {
17535
17543
  id: 'ember-metal.binding',
17536
17544
  until: '3.0.0',
17537
17545
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
17538
17546
  });
17539
- _emberMetalDebug.deprecate(deprecateAliasMessage, !deprecateAlias, {
17547
+ _emberMetalDebug.deprecate(objectInfo + deprecateAliasMessage, !deprecateAlias, {
17540
17548
  id: 'ember-metal.binding',
17541
17549
  until: '3.0.0',
17542
17550
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
@@ -17744,25 +17752,12 @@ enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (e
17744
17752
  this.store = store || new DefaultStore();
17745
17753
  }
17746
17754
 
17747
- Cache.prototype.set = function set(obj, value) {
17748
- if (this.limit > this.size) {
17749
- var key = this.key === undefined ? obj : this.key(obj);
17750
- this.size++;
17751
- if (value === undefined) {
17752
- this.store.set(key, UNDEFINED);
17753
- } else {
17754
- this.store.set(key, value);
17755
- }
17756
- }
17757
- return value;
17758
- };
17759
-
17760
17755
  Cache.prototype.get = function get(obj) {
17761
17756
  var key = this.key === undefined ? obj : this.key(obj);
17762
17757
  var value = this.store.get(key);
17763
17758
  if (value === undefined) {
17764
17759
  this.misses++;
17765
- value = this.set(key, this.func(obj));
17760
+ value = this._set(key, this.func(obj));
17766
17761
  } else if (value === UNDEFINED) {
17767
17762
  this.hits++;
17768
17763
  value = undefined;
@@ -17774,6 +17769,24 @@ enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (e
17774
17769
  return value;
17775
17770
  };
17776
17771
 
17772
+ Cache.prototype.set = function set(obj, value) {
17773
+ var key = this.key === undefined ? obj : this.key(obj);
17774
+ return this._set(key, value);
17775
+ };
17776
+
17777
+ Cache.prototype._set = function _set(key, value) {
17778
+ if (this.limit > this.size) {
17779
+ this.size++;
17780
+ if (value === undefined) {
17781
+ this.store.set(key, UNDEFINED);
17782
+ } else {
17783
+ this.store.set(key, value);
17784
+ }
17785
+ }
17786
+
17787
+ return value;
17788
+ };
17789
+
17777
17790
  Cache.prototype.purge = function purge() {
17778
17791
  this.store.clear();
17779
17792
  this.size = 0;
@@ -42554,8 +42567,6 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
42554
42567
 
42555
42568
  /**
42556
42569
  Appends the view's element to the specified parent element.
42557
- If the view does not have an HTML representation yet, `createElement()`
42558
- will be called automatically.
42559
42570
  Note that this method just schedules the view to be appended; the DOM
42560
42571
  element will not be appended to the given element until all bindings have
42561
42572
  finished synchronizing.
@@ -42715,26 +42726,6 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
42715
42726
  return _emberViewsSystemJquery.default(id)[0] || _emberViewsSystemJquery.default(id, parentElem)[0];
42716
42727
  },
42717
42728
 
42718
- /**
42719
- Creates a DOM representation of the view and all of its child views by
42720
- recursively calling the `render()` method. Once the element is created,
42721
- it sets the `element` property of the view to the rendered element.
42722
- After the element has been inserted into the DOM, `didInsertElement` will
42723
- be called on this view and all of its child views.
42724
- @method createElement
42725
- @return {Ember.View} receiver
42726
- @private
42727
- */
42728
- createElement: function () {
42729
- if (this.element) {
42730
- return this;
42731
- }
42732
-
42733
- this.renderer.createElement(this);
42734
-
42735
- return this;
42736
- },
42737
-
42738
42729
  /**
42739
42730
  Called when a view is going to insert an element into the DOM.
42740
42731
  @event willInsertElement
@@ -42762,26 +42753,6 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
42762
42753
  */
42763
42754
  willClearRender: K,
42764
42755
 
42765
- /**
42766
- Destroys any existing element along with the element for any child views
42767
- as well. If the view does not currently have a element, then this method
42768
- will do nothing.
42769
- If you implement `willDestroyElement()` on your view, then this method will
42770
- be invoked on your view before your element is destroyed to give you a
42771
- chance to clean up any event handlers, etc.
42772
- If you write a `willDestroyElement()` handler, you can assume that your
42773
- `didInsertElement()` handler was called earlier for the same element.
42774
- You should not call or override this method yourself, but you may
42775
- want to implement the above callbacks.
42776
- @method destroyElement
42777
- @return {Ember.View} receiver
42778
- @private
42779
- */
42780
- destroyElement: function () {
42781
- this._currentState.destroyElement(this);
42782
- return this;
42783
- },
42784
-
42785
42756
  /**
42786
42757
  You must call `destroy` on a view to destroy the view (and all of its
42787
42758
  child views). This will remove the view from any parent node, then make
@@ -42832,13 +42803,6 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
42832
42803
  // the default case and a user-specified tag.
42833
42804
  tagName: null,
42834
42805
 
42835
- /*
42836
- Used to specify a default tagName that can be overridden when extending
42837
- or invoking from a template.
42838
- @property _defaultTagName
42839
- @private
42840
- */
42841
-
42842
42806
  // .......................................................
42843
42807
  // CORE DISPLAY METHODS
42844
42808
  //
@@ -42885,7 +42849,7 @@ enifed('ember-views/mixins/view_support', ['exports', 'ember-metal/debug', 'embe
42885
42849
  this.renderer.revalidateTopLevelView(this);
42886
42850
  this.scheduledRevalidation = false;
42887
42851
  }, _Mixin$create.scheduleRevalidate = function (node, label, manualRerender) {
42888
- if (node && !this._dispatching && this.env.renderedNodes.has(node)) {
42852
+ if (node && !this._dispatching && this._env.renderedNodes.has(node)) {
42889
42853
  if (manualRerender) {
42890
42854
  _emberMetalDebug.deprecate('You manually rerendered ' + label + ' (a parent component) from a child component during the rendering process. This rarely worked in Ember 1.x and will be removed in Ember 3.0', false, { id: 'ember-views.manual-parent-rerender', until: '3.0.0' });
42891
42855
  } else {
@@ -43638,7 +43602,7 @@ enifed('ember-views/views/core_view', ['exports', 'ember-metal/property_get', 'e
43638
43602
  this._isDispatchingAttrs = false;
43639
43603
  this._isVisible = false;
43640
43604
  this.element = null;
43641
- this.env = null;
43605
+ this._env = null;
43642
43606
  this._isVisible = _emberMetalProperty_get.get(this, 'isVisible');
43643
43607
 
43644
43608
  // Fallback for legacy cases where the view was created directly
@@ -43783,8 +43747,6 @@ enifed('ember-views/views/states/default', ['exports', 'ember-metal/error', 'emb
43783
43747
  return true; // continue event propagation
43784
43748
  },
43785
43749
 
43786
- destroyElement: function () {},
43787
-
43788
43750
  destroy: function () {},
43789
43751
 
43790
43752
  rerender: function (view) {
@@ -43808,9 +43770,6 @@ enifed('ember-views/views/states/destroying', ['exports', 'ember-metal/assign',
43808
43770
  },
43809
43771
  rerender: function () {
43810
43772
  throw new _emberMetalError.default('You can\'t call rerender on a view being destroyed');
43811
- },
43812
- destroyElement: function () {
43813
- throw new _emberMetalError.default('You can\'t call destroyElement on a view being destroyed');
43814
43773
  }
43815
43774
  });
43816
43775
 
@@ -43845,10 +43804,6 @@ enifed('ember-views/views/states/has_element', ['exports', 'ember-views/views/st
43845
43804
  view.renderer.rerender(view);
43846
43805
  },
43847
43806
 
43848
- destroyElement: function (view) {
43849
- view.renderer.remove(view, false);
43850
- },
43851
-
43852
43807
  destroy: function (view) {
43853
43808
  view.renderer.remove(view, true);
43854
43809
  },
@@ -44422,22 +44377,7 @@ enifed('ember-views/views/view', ['exports', 'ember-views/system/ext', 'ember-vi
44422
44377
  @public
44423
44378
  */
44424
44379
  // jscs:disable validateIndentation
44425
- var View = _emberViewsViewsCore_view.default.extend(_emberViewsMixinsChild_views_support.default, _emberViewsMixinsView_state_support.default, _emberViewsMixinsClass_names_support.default, _emberViewsMixinsInstrumentation_support.default, _emberViewsMixinsVisibility_support.default, _emberViewsCompatAttrsProxy.default, _emberViewsMixinsAria_role_support.default, _emberViewsMixinsView_support.default, {
44426
- attributeBindings: ['ariaRole:role'],
44427
-
44428
- /**
44429
- Given a property name, returns a dasherized version of that
44430
- property name if the property evaluates to a non-falsy value.
44431
- For example, if the view has property `isUrgent` that evaluates to true,
44432
- passing `isUrgent` to this method will return `"is-urgent"`.
44433
- @method _classStringForProperty
44434
- @param property
44435
- @private
44436
- */
44437
- _classStringForProperty: function (parsedPath) {
44438
- return View._classStringForValue(parsedPath.path, parsedPath.stream.value(), parsedPath.className, parsedPath.falsyClassName);
44439
- }
44440
- });
44380
+ var View = _emberViewsViewsCore_view.default.extend(_emberViewsMixinsChild_views_support.default, _emberViewsMixinsView_state_support.default, _emberViewsMixinsClass_names_support.default, _emberViewsMixinsInstrumentation_support.default, _emberViewsMixinsVisibility_support.default, _emberViewsCompatAttrsProxy.default, _emberViewsMixinsAria_role_support.default, _emberViewsMixinsView_support.default);
44441
44381
 
44442
44382
  // jscs:enable validateIndentation
44443
44383
 
@@ -44510,7 +44450,7 @@ enifed('ember/index', ['exports', 'require', 'ember-metal', 'ember-runtime', 'em
44510
44450
  enifed("ember/version", ["exports"], function (exports) {
44511
44451
  "use strict";
44512
44452
 
44513
- exports.default = "2.8.0-beta.1";
44453
+ exports.default = "2.8.0-beta.2";
44514
44454
  });
44515
44455
  enifed('htmlbars-runtime', ['exports', 'htmlbars-runtime/hooks', 'htmlbars-runtime/render', 'htmlbars-util/morph-utils', 'htmlbars-util/template-utils'], function (exports, _htmlbarsRuntimeHooks, _htmlbarsRuntimeRender, _htmlbarsUtilMorphUtils, _htmlbarsUtilTemplateUtils) {
44516
44456
  'use strict';