ember-source 2.0.0.beta.5 → 2.0.0

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.

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 2.0.0-beta.5
8
+ * @version 2.0.0
9
9
  */
10
10
 
11
11
  (function() {
@@ -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 2.0.0-beta.5
8
+ * @version 2.0.0
9
9
  */
10
10
 
11
11
  (function() {
@@ -3570,7 +3570,9 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
3570
3570
  */
3571
3571
  setupEventDispatcher: function () {
3572
3572
  var dispatcher = this.container.lookup('event_dispatcher:main');
3573
- dispatcher.setup(this.customEvents, this.rootElement);
3573
+ var applicationCustomEvents = _emberMetalProperty_get.get(this.application, 'customEvents');
3574
+
3575
+ dispatcher.setup(applicationCustomEvents, this.rootElement);
3574
3576
 
3575
3577
  return dispatcher;
3576
3578
  },
@@ -3855,7 +3857,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3855
3857
  */
3856
3858
  buildInstance: function () {
3857
3859
  return _emberApplicationSystemApplicationInstance.default.create({
3858
- customEvents: _emberMetalProperty_get.get(this, 'customEvents'),
3860
+ application: this,
3859
3861
  rootElement: _emberMetalProperty_get.get(this, 'rootElement'),
3860
3862
  applicationRegistry: this.registry
3861
3863
  });
@@ -6229,7 +6231,6 @@ enifed('ember-htmlbars/env', ['exports', 'ember-metal', 'ember-metal/features',
6229
6231
  _emberHtmlbarsKeywords.registerKeyword('partial', _emberHtmlbarsKeywordsPartial.default);
6230
6232
  _emberHtmlbarsKeywords.registerKeyword('input', _emberHtmlbarsKeywordsInput.default);
6231
6233
  _emberHtmlbarsKeywords.registerKeyword('textarea', _emberHtmlbarsKeywordsTextarea.default);
6232
- _emberHtmlbarsKeywords.registerKeyword('collection', _emberHtmlbarsKeywordsCollection.default);
6233
6234
  _emberHtmlbarsKeywords.registerKeyword('legacy-yield', _emberHtmlbarsKeywordsLegacyYield.default);
6234
6235
  _emberHtmlbarsKeywords.registerKeyword('mut', _emberHtmlbarsKeywordsMut.default);
6235
6236
  _emberHtmlbarsKeywords.registerKeyword('@mut', _emberHtmlbarsKeywordsMut.privateMut);
@@ -6237,6 +6238,7 @@ enifed('ember-htmlbars/env', ['exports', 'ember-metal', 'ember-metal/features',
6237
6238
  _emberHtmlbarsKeywords.registerKeyword('readonly', _emberHtmlbarsKeywordsReadonly.default);
6238
6239
 
6239
6240
  if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
6241
+ _emberHtmlbarsKeywords.registerKeyword('collection', _emberHtmlbarsKeywordsCollection.default);
6240
6242
  _emberHtmlbarsKeywords.registerKeyword('view', _emberHtmlbarsKeywordsView.default);
6241
6243
  }
6242
6244
 
@@ -6606,8 +6608,38 @@ enifed('ember-htmlbars/helpers/-normalize-class', ['exports', 'ember-runtime/sys
6606
6608
  }
6607
6609
  });
6608
6610
  enifed('ember-htmlbars/helpers/each-in', ['exports', 'ember-metal/features', 'ember-views/streams/should_display'], function (exports, _emberMetalFeatures, _emberViewsStreamsShould_display) {
6611
+ /**
6612
+ @module ember
6613
+ @submodule ember-templates
6614
+ */
6615
+
6609
6616
  'use strict';
6610
6617
 
6618
+ /**
6619
+ The `{{each-in}}` helper loops over properties on an object. It is unbound,
6620
+ in that new (or removed) properties added to the target object will not be
6621
+ rendered.
6622
+ For example, given a `user` object that looks like:
6623
+ ```javascript
6624
+ {
6625
+ "name": "Shelly Sails",
6626
+ "age": 42
6627
+ }
6628
+ ```
6629
+ This template would display all properties on the `user`
6630
+ object in a list:
6631
+ ```handlebars
6632
+ <ul>
6633
+ {{#each-in user as |key value|}}
6634
+ <li>{{key}}: {{value}}</li>
6635
+ {{/each-in}}
6636
+ </ul>
6637
+ ```
6638
+ Outputting their name and age.
6639
+ @method each-in
6640
+ @for Ember.Templates.helpers
6641
+ @public
6642
+ */
6611
6643
  var eachInHelper = function (_ref, hash, blocks) {
6612
6644
  var object = _ref[0];
6613
6645
 
@@ -6625,6 +6657,11 @@ enifed('ember-htmlbars/helpers/each-in', ['exports', 'ember-metal/features', 'em
6625
6657
  exports.default = eachInHelper;
6626
6658
  });
6627
6659
  enifed('ember-htmlbars/helpers/each', ['exports', 'ember-views/streams/should_display', 'ember-htmlbars/utils/decode-each-key'], function (exports, _emberViewsStreamsShould_display, _emberHtmlbarsUtilsDecodeEachKey) {
6660
+ /**
6661
+ @module ember
6662
+ @submodule ember-templates
6663
+ */
6664
+
6628
6665
  'use strict';
6629
6666
 
6630
6667
  exports.default = eachHelper;
@@ -7738,11 +7775,135 @@ enifed('ember-htmlbars/keywords', ['exports', 'htmlbars-runtime'], function (exp
7738
7775
  enifed('ember-htmlbars/keywords/collection', ['exports', 'ember-views/streams/utils', 'ember-views/views/collection_view', 'ember-htmlbars/node-managers/view-node-manager', 'ember-metal/merge'], function (exports, _emberViewsStreamsUtils, _emberViewsViewsCollection_view, _emberHtmlbarsNodeManagersViewNodeManager, _emberMetalMerge) {
7739
7776
  /**
7740
7777
  @module ember
7741
- @submodule ember-htmlbars
7778
+ @submodule ember-templates
7742
7779
  */
7743
7780
 
7744
7781
  'use strict';
7745
7782
 
7783
+ /**
7784
+ `{{collection}}` is a template helper for adding instances of
7785
+ `Ember.CollectionView` to a template. See [Ember.CollectionView](/api/classes/Ember.CollectionView.html)
7786
+ for additional information on how a `CollectionView` functions.
7787
+
7788
+ `{{collection}}`'s primary use is as a block helper with a `contentBinding`
7789
+ option pointing towards an `Ember.Array`-compatible object. An `Ember.View`
7790
+ instance will be created for each item in its `content` property. Each view
7791
+ will have its own `content` property set to the appropriate item in the
7792
+ collection.
7793
+
7794
+ The provided block will be applied as the template for each item's view.
7795
+
7796
+ Given an empty `<body>` the following template:
7797
+
7798
+ ```handlebars
7799
+ {{! application.hbs }}
7800
+ {{#collection content=model}}
7801
+ Hi {{view.content.name}}
7802
+ {{/collection}}
7803
+ ```
7804
+
7805
+ And the following application code
7806
+
7807
+ ```javascript
7808
+ App = Ember.Application.create();
7809
+ App.ApplicationRoute = Ember.Route.extend({
7810
+ model: function() {
7811
+ return [{name: 'Yehuda'},{name: 'Tom'},{name: 'Peter'}];
7812
+ }
7813
+ });
7814
+ ```
7815
+
7816
+ The following HTML will result:
7817
+
7818
+ ```html
7819
+ <div class="ember-view">
7820
+ <div class="ember-view">Hi Yehuda</div>
7821
+ <div class="ember-view">Hi Tom</div>
7822
+ <div class="ember-view">Hi Peter</div>
7823
+ </div>
7824
+ ```
7825
+
7826
+ ### Non-block version of collection
7827
+
7828
+ If you provide an `itemViewClass` option that has its own `template` you may
7829
+ omit the block.
7830
+
7831
+ The following template:
7832
+
7833
+ ```handlebars
7834
+ {{! application.hbs }}
7835
+ {{collection content=model itemViewClass="an-item"}}
7836
+ ```
7837
+
7838
+ And application code
7839
+
7840
+ ```javascript
7841
+ App = Ember.Application.create();
7842
+ App.ApplicationRoute = Ember.Route.extend({
7843
+ model: function() {
7844
+ return [{name: 'Yehuda'},{name: 'Tom'},{name: 'Peter'}];
7845
+ }
7846
+ });
7847
+
7848
+ App.AnItemView = Ember.View.extend({
7849
+ template: Ember.Handlebars.compile("Greetings {{view.content.name}}")
7850
+ });
7851
+ ```
7852
+
7853
+ Will result in the HTML structure below
7854
+
7855
+ ```html
7856
+ <div class="ember-view">
7857
+ <div class="ember-view">Greetings Yehuda</div>
7858
+ <div class="ember-view">Greetings Tom</div>
7859
+ <div class="ember-view">Greetings Peter</div>
7860
+ </div>
7861
+ ```
7862
+
7863
+ ### Specifying a CollectionView subclass
7864
+
7865
+ By default the `{{collection}}` helper will create an instance of
7866
+ `Ember.CollectionView`. You can supply a `Ember.CollectionView` subclass to
7867
+ the helper by passing it as the first argument:
7868
+
7869
+ ```handlebars
7870
+ {{#collection "my-custom-collection" content=model}}
7871
+ Hi {{view.content.name}}
7872
+ {{/collection}}
7873
+ ```
7874
+
7875
+ This example would look for the class `App.MyCustomCollection`.
7876
+
7877
+ ### Forwarded `item.*`-named Options
7878
+
7879
+ As with the `{{view}}`, helper options passed to the `{{collection}}` will be
7880
+ set on the resulting `Ember.CollectionView` as properties. Additionally,
7881
+ options prefixed with `item` will be applied to the views rendered for each
7882
+ item (note the camelcasing):
7883
+
7884
+ ```handlebars
7885
+ {{#collection content=model
7886
+ itemTagName="p"
7887
+ itemClassNames="greeting"}}
7888
+ Howdy {{view.content.name}}
7889
+ {{/collection}}
7890
+ ```
7891
+
7892
+ Will result in the following HTML structure:
7893
+
7894
+ ```html
7895
+ <div class="ember-view">
7896
+ <p class="ember-view greeting">Howdy Yehuda</p>
7897
+ <p class="ember-view greeting">Howdy Tom</p>
7898
+ <p class="ember-view greeting">Howdy Peter</p>
7899
+ </div>
7900
+ ```
7901
+
7902
+ @method collection
7903
+ @for Ember.Templates.helpers
7904
+ @deprecated Use `{{each}}` helper instead.
7905
+ @public
7906
+ */
7746
7907
  exports.default = {
7747
7908
  setupState: function (state, env, scope, params, hash) {
7748
7909
  var read = env.hooks.getValue;
@@ -8148,8 +8309,158 @@ enifed('ember-htmlbars/keywords/get', ['exports', 'ember-metal/core', 'ember-met
8148
8309
  exports.default = getKeyword;
8149
8310
  });
8150
8311
  enifed('ember-htmlbars/keywords/input', ['exports', 'ember-metal/core', 'ember-metal/merge'], function (exports, _emberMetalCore, _emberMetalMerge) {
8312
+ /**
8313
+ @module ember
8314
+ @submodule ember-templates
8315
+ */
8151
8316
  'use strict';
8152
8317
 
8318
+ /**
8319
+ The `{{input}}` helper lets you create an HTML `<input />` component.
8320
+ It causes an `Ember.TextField` component to be rendered. For more info,
8321
+ see the [Ember.TextField](/api/classes/Ember.TextField.html) docs and
8322
+ the [templates guide](http://emberjs.com/guides/templates/input-helpers/).
8323
+
8324
+ ```handlebars
8325
+ {{input value="987"}}
8326
+ ```
8327
+
8328
+ renders as:
8329
+
8330
+ ```HTML
8331
+ <input type="text" value="987" />
8332
+ ```
8333
+
8334
+ ### Text field
8335
+
8336
+ If no `type` option is specified, a default of type 'text' is used.
8337
+
8338
+ Many of the standard HTML attributes may be passed to this helper.
8339
+
8340
+ <table>
8341
+ <tr><td>`readonly`</td><td>`required`</td><td>`autofocus`</td></tr>
8342
+ <tr><td>`value`</td><td>`placeholder`</td><td>`disabled`</td></tr>
8343
+ <tr><td>`size`</td><td>`tabindex`</td><td>`maxlength`</td></tr>
8344
+ <tr><td>`name`</td><td>`min`</td><td>`max`</td></tr>
8345
+ <tr><td>`pattern`</td><td>`accept`</td><td>`autocomplete`</td></tr>
8346
+ <tr><td>`autosave`</td><td>`formaction`</td><td>`formenctype`</td></tr>
8347
+ <tr><td>`formmethod`</td><td>`formnovalidate`</td><td>`formtarget`</td></tr>
8348
+ <tr><td>`height`</td><td>`inputmode`</td><td>`multiple`</td></tr>
8349
+ <tr><td>`step`</td><td>`width`</td><td>`form`</td></tr>
8350
+ <tr><td>`selectionDirection`</td><td>`spellcheck`</td><td>&nbsp;</td></tr>
8351
+ </table>
8352
+
8353
+
8354
+ When set to a quoted string, these values will be directly applied to the HTML
8355
+ element. When left unquoted, these values will be bound to a property on the
8356
+ template's current rendering context (most typically a controller instance).
8357
+
8358
+
8359
+ A very common use of this helper is to bind the `value` of an input to an Object's attribute:
8360
+
8361
+ ```handlebars
8362
+ Search:
8363
+ {{input value=searchWord}}
8364
+ ```
8365
+
8366
+ In this example, the inital value in the `<input />` will be set to the value of `searchWord`.
8367
+ If the user changes the text, the value of `searchWord` will also be updated.
8368
+
8369
+ ### Actions
8370
+ The helper can send multiple actions based on user events.
8371
+ The action property defines the action which is sent when
8372
+ the user presses the return key.
8373
+
8374
+ ```handlebars
8375
+ {{input action="submit"}}
8376
+ ```
8377
+
8378
+ The helper allows some user events to send actions.
8379
+
8380
+ * `enter`
8381
+ * `insert-newline`
8382
+ * `escape-press`
8383
+ * `focus-in`
8384
+ * `focus-out`
8385
+ * `key-press`
8386
+ * `key-up`
8387
+
8388
+
8389
+ For example, if you desire an action to be sent when the input is blurred,
8390
+ you only need to setup the action name to the event name property.
8391
+
8392
+ ```handlebars
8393
+ {{input focus-in="alertMessage"}}
8394
+ ```
8395
+
8396
+ See more about [Text Support Actions](/api/classes/Ember.TextField.html)
8397
+
8398
+
8399
+ ### Extending `Ember.TextField`
8400
+
8401
+ Internally, `{{input type="text"}}` creates an instance of `Ember.TextField`, passing
8402
+ arguments from the helper to `Ember.TextField`'s `create` method. You can extend the
8403
+ capabilities of text inputs in your applications by reopening this class. For example,
8404
+ if you are building a Bootstrap project where `data-*` attributes are used, you
8405
+ can add one to the `TextField`'s `attributeBindings` property:
8406
+
8407
+
8408
+ ```javascript
8409
+ Ember.TextField.reopen({
8410
+ attributeBindings: ['data-error']
8411
+ });
8412
+ ```
8413
+
8414
+ Keep in mind when writing `Ember.TextField` subclasses that `Ember.TextField`
8415
+ itself extends `Ember.Component`. Expect isolated component semantics, not
8416
+ legacy 1.x view semantics (like `controller` being present).
8417
+
8418
+ See more about [Ember components](/api/classes/Ember.Component.html)
8419
+
8420
+
8421
+ ### Checkbox
8422
+
8423
+ Checkboxes are special forms of the `{{input}}` helper. To create a `<checkbox />`:
8424
+
8425
+ ```handlebars
8426
+ Emberize Everything:
8427
+ {{input type="checkbox" name="isEmberized" checked=isEmberized}}
8428
+ ```
8429
+
8430
+ This will bind checked state of this checkbox to the value of `isEmberized` -- if either one changes,
8431
+ it will be reflected in the other.
8432
+
8433
+
8434
+ The following HTML attributes can be set via the helper:
8435
+
8436
+ * `checked`
8437
+ * `disabled`
8438
+ * `tabindex`
8439
+ * `indeterminate`
8440
+ * `name`
8441
+ * `autofocus`
8442
+ * `form`
8443
+
8444
+
8445
+ ### Extending `Ember.Checkbox`
8446
+
8447
+ Internally, `{{input type="checkbox"}}` creates an instance of `Ember.Checkbox`, passing
8448
+ arguments from the helper to `Ember.Checkbox`'s `create` method. You can extend the
8449
+ capablilties of checkbox inputs in your applications by reopening this class. For example,
8450
+ if you wanted to add a css class to all checkboxes in your application:
8451
+
8452
+ ```javascript
8453
+ Ember.Checkbox.reopen({
8454
+ classNames: ['my-app-checkbox']
8455
+ });
8456
+ ```
8457
+
8458
+
8459
+ @method input
8460
+ @for Ember.Templates.helpers
8461
+ @param {Hash} options
8462
+ @public
8463
+ */
8153
8464
  exports.default = {
8154
8465
  setupState: function (lastState, env, scope, params, hash) {
8155
8466
  var type = env.hooks.getValue(hash.type);
@@ -8219,7 +8530,7 @@ enifed('ember-htmlbars/keywords/mut', ['exports', 'ember-metal/core', 'ember-met
8219
8530
  exports.MUTABLE_REFERENCE = MUTABLE_REFERENCE;
8220
8531
  /**
8221
8532
  The `mut` helper lets you __clearly specify__ that a child `Component` can update the
8222
- (mutable) value passed to it, which will __change the value of the parent compnent__.
8533
+ (mutable) value passed to it, which will __change the value of the parent component__.
8223
8534
 
8224
8535
  This is very helpful for passing mutable values to a `Component` of any size, but
8225
8536
  critical to understanding the logic of a large/complex `Component`.
@@ -8336,7 +8647,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/core', 'ember-
8336
8647
 
8337
8648
  'use strict';
8338
8649
 
8339
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0-beta.5';
8650
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0';
8340
8651
 
8341
8652
  /**
8342
8653
  The `{{outlet}}` helper lets you specify where a child routes will render in
@@ -8498,11 +8809,52 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/core', 'ember-
8498
8809
  enifed('ember-htmlbars/keywords/partial', ['exports', 'ember-views/system/lookup_partial', 'htmlbars-runtime'], function (exports, _emberViewsSystemLookup_partial, _htmlbarsRuntime) {
8499
8810
  /**
8500
8811
  @module ember
8501
- @submodule ember-htmlbars
8812
+ @submodule ember-templates
8502
8813
  */
8503
8814
 
8504
8815
  'use strict';
8505
8816
 
8817
+ /**
8818
+ The `partial` helper renders another template without
8819
+ changing the template context:
8820
+
8821
+ ```handlebars
8822
+ {{foo}}
8823
+ {{partial "nav"}}
8824
+ ```
8825
+
8826
+ The above example template will render a template named
8827
+ "_nav", which has the same context as the parent template
8828
+ it's rendered into, so if the "_nav" template also referenced
8829
+ `{{foo}}`, it would print the same thing as the `{{foo}}`
8830
+ in the above example.
8831
+
8832
+ If a "_nav" template isn't found, the `partial` helper will
8833
+ fall back to a template named "nav".
8834
+
8835
+ ### Bound template names
8836
+
8837
+ The parameter supplied to `partial` can also be a path
8838
+ to a property containing a template name, e.g.:
8839
+
8840
+ ```handlebars
8841
+ {{partial someTemplateName}}
8842
+ ```
8843
+
8844
+ The above example will look up the value of `someTemplateName`
8845
+ on the template context (e.g. a controller) and use that
8846
+ value as the name of the template to render. If the resolved
8847
+ value is falsy, nothing will be rendered. If `someTemplateName`
8848
+ changes, the partial will be re-rendered using the new template
8849
+ name.
8850
+
8851
+
8852
+ @method partial
8853
+ @for Ember.Templates.helpers
8854
+ @param {String} partialName the name of the template to render minus the leading underscore
8855
+ @public
8856
+ */
8857
+
8506
8858
  exports.default = {
8507
8859
  setupState: function (state, env, scope, params, hash) {
8508
8860
  return { partialName: env.hooks.getValue(params[0]) };
@@ -8525,6 +8877,11 @@ enifed('ember-htmlbars/keywords/partial', ['exports', 'ember-views/system/lookup
8525
8877
  };
8526
8878
  });
8527
8879
  enifed('ember-htmlbars/keywords/readonly', ['exports', 'ember-htmlbars/keywords/mut'], function (exports, _emberHtmlbarsKeywordsMut) {
8880
+ /**
8881
+ @module ember
8882
+ @submodule ember-templates
8883
+ */
8884
+
8528
8885
  'use strict';
8529
8886
 
8530
8887
  exports.default = readonly;
@@ -8545,9 +8902,195 @@ enifed('ember-htmlbars/keywords/readonly', ['exports', 'ember-htmlbars/keywords/
8545
8902
  enifed('ember-htmlbars/keywords/textarea', ['exports'], function (exports) {
8546
8903
  /**
8547
8904
  @module ember
8548
- @submodule ember-htmlbars
8905
+ @submodule ember-templates
8549
8906
  */
8550
8907
 
8908
+ /**
8909
+ `{{textarea}}` inserts a new instance of `<textarea>` tag into the template.
8910
+ The attributes of `{{textarea}}` match those of the native HTML tags as
8911
+ closely as possible.
8912
+
8913
+ The following HTML attributes can be set:
8914
+
8915
+ * `value`
8916
+ * `name`
8917
+ * `rows`
8918
+ * `cols`
8919
+ * `placeholder`
8920
+ * `disabled`
8921
+ * `maxlength`
8922
+ * `tabindex`
8923
+ * `selectionEnd`
8924
+ * `selectionStart`
8925
+ * `selectionDirection`
8926
+ * `wrap`
8927
+ * `readonly`
8928
+ * `autofocus`
8929
+ * `form`
8930
+ * `spellcheck`
8931
+ * `required`
8932
+
8933
+ When set to a quoted string, these value will be directly applied to the HTML
8934
+ element. When left unquoted, these values will be bound to a property on the
8935
+ template's current rendering context (most typically a controller instance).
8936
+
8937
+ Unbound:
8938
+
8939
+ ```handlebars
8940
+ {{textarea value="Lots of static text that ISN'T bound"}}
8941
+ ```
8942
+
8943
+ Would result in the following HTML:
8944
+
8945
+ ```html
8946
+ <textarea class="ember-text-area">
8947
+ Lots of static text that ISN'T bound
8948
+ </textarea>
8949
+ ```
8950
+
8951
+ Bound:
8952
+
8953
+ In the following example, the `writtenWords` property on `App.ApplicationController`
8954
+ will be updated live as the user types 'Lots of text that IS bound' into
8955
+ the text area of their browser's window.
8956
+
8957
+ ```javascript
8958
+ App.ApplicationController = Ember.Controller.extend({
8959
+ writtenWords: "Lots of text that IS bound"
8960
+ });
8961
+ ```
8962
+
8963
+ ```handlebars
8964
+ {{textarea value=writtenWords}}
8965
+ ```
8966
+
8967
+ Would result in the following HTML:
8968
+
8969
+ ```html
8970
+ <textarea class="ember-text-area">
8971
+ Lots of text that IS bound
8972
+ </textarea>
8973
+ ```
8974
+
8975
+ If you wanted a one way binding between the text area and a div tag
8976
+ somewhere else on your screen, you could use `Ember.computed.oneWay`:
8977
+
8978
+ ```javascript
8979
+ App.ApplicationController = Ember.Controller.extend({
8980
+ writtenWords: "Lots of text that IS bound",
8981
+ outputWrittenWords: Ember.computed.oneWay("writtenWords")
8982
+ });
8983
+ ```
8984
+
8985
+ ```handlebars
8986
+ {{textarea value=writtenWords}}
8987
+
8988
+ <div>
8989
+ {{outputWrittenWords}}
8990
+ </div>
8991
+ ```
8992
+
8993
+ Would result in the following HTML:
8994
+
8995
+ ```html
8996
+ <textarea class="ember-text-area">
8997
+ Lots of text that IS bound
8998
+ </textarea>
8999
+
9000
+ <-- the following div will be updated in real time as you type -->
9001
+
9002
+ <div>
9003
+ Lots of text that IS bound
9004
+ </div>
9005
+ ```
9006
+
9007
+ Finally, this example really shows the power and ease of Ember when two
9008
+ properties are bound to eachother via `Ember.computed.alias`. Type into
9009
+ either text area box and they'll both stay in sync. Note that
9010
+ `Ember.computed.alias` costs more in terms of performance, so only use it when
9011
+ your really binding in both directions:
9012
+
9013
+ ```javascript
9014
+ App.ApplicationController = Ember.Controller.extend({
9015
+ writtenWords: "Lots of text that IS bound",
9016
+ twoWayWrittenWords: Ember.computed.alias("writtenWords")
9017
+ });
9018
+ ```
9019
+
9020
+ ```handlebars
9021
+ {{textarea value=writtenWords}}
9022
+ {{textarea value=twoWayWrittenWords}}
9023
+ ```
9024
+
9025
+ ```html
9026
+ <textarea id="ember1" class="ember-text-area">
9027
+ Lots of text that IS bound
9028
+ </textarea>
9029
+
9030
+ <-- both updated in real time -->
9031
+
9032
+ <textarea id="ember2" class="ember-text-area">
9033
+ Lots of text that IS bound
9034
+ </textarea>
9035
+ ```
9036
+
9037
+ ### Actions
9038
+
9039
+ The helper can send multiple actions based on user events.
9040
+
9041
+ The action property defines the action which is send when
9042
+ the user presses the return key.
9043
+
9044
+ ```handlebars
9045
+ {{input action="submit"}}
9046
+ ```
9047
+
9048
+ The helper allows some user events to send actions.
9049
+
9050
+ * `enter`
9051
+ * `insert-newline`
9052
+ * `escape-press`
9053
+ * `focus-in`
9054
+ * `focus-out`
9055
+ * `key-press`
9056
+
9057
+ For example, if you desire an action to be sent when the input is blurred,
9058
+ you only need to setup the action name to the event name property.
9059
+
9060
+ ```handlebars
9061
+ {{textarea focus-in="alertMessage"}}
9062
+ ```
9063
+
9064
+ See more about [Text Support Actions](/api/classes/Ember.TextArea.html)
9065
+
9066
+ ### Extension
9067
+
9068
+ Internally, `{{textarea}}` creates an instance of `Ember.TextArea`, passing
9069
+ arguments from the helper to `Ember.TextArea`'s `create` method. You can
9070
+ extend the capabilities of text areas in your application by reopening this
9071
+ class. For example, if you are building a Bootstrap project where `data-*`
9072
+ attributes are used, you can globally add support for a `data-*` attribute
9073
+ on all `{{textarea}}`s' in your app by reopening `Ember.TextArea` or
9074
+ `Ember.TextSupport` and adding it to the `attributeBindings` concatenated
9075
+ property:
9076
+
9077
+ ```javascript
9078
+ Ember.TextArea.reopen({
9079
+ attributeBindings: ['data-error']
9080
+ });
9081
+ ```
9082
+
9083
+ Keep in mind when writing `Ember.TextArea` subclasses that `Ember.TextArea`
9084
+ itself extends `Ember.Component`. Expect isolated component semantics, not
9085
+ legacy 1.x view semantics (like `controller` being present).
9086
+
9087
+ See more about [Ember components](/api/classes/Ember.Component.html)
9088
+
9089
+ @method textarea
9090
+ @for Ember.Templates.helpers
9091
+ @param {Hash} options
9092
+ @public
9093
+ */
8551
9094
  'use strict';
8552
9095
 
8553
9096
  exports.default = textarea;
@@ -8635,11 +9178,189 @@ enifed('ember-htmlbars/keywords/unbound', ['exports', 'ember-metal/core', 'ember
8635
9178
  enifed('ember-htmlbars/keywords/view', ['exports', 'ember-views/streams/utils', 'ember-views/views/view', 'ember-htmlbars/node-managers/view-node-manager'], function (exports, _emberViewsStreamsUtils, _emberViewsViewsView, _emberHtmlbarsNodeManagersViewNodeManager) {
8636
9179
  /**
8637
9180
  @module ember
8638
- @submodule ember-htmlbars
9181
+ @submodule ember-templates
8639
9182
  */
8640
9183
 
8641
9184
  'use strict';
8642
9185
 
9186
+ /**
9187
+ `{{view}}` inserts a new instance of an `Ember.View` into a template passing its
9188
+ options to the `Ember.View`'s `create` method and using the supplied block as
9189
+ the view's own template.
9190
+
9191
+ An empty `<body>` and the following template:
9192
+
9193
+ ```handlebars
9194
+ A span:
9195
+ {{#view tagName="span"}}
9196
+ hello.
9197
+ {{/view}}
9198
+ ```
9199
+
9200
+ Will result in HTML structure:
9201
+
9202
+ ```html
9203
+ <body>
9204
+ <!-- Note: the handlebars template script
9205
+ also results in a rendered Ember.View
9206
+ which is the outer <div> here -->
9207
+
9208
+ <div class="ember-view">
9209
+ A span:
9210
+ <span id="ember1" class="ember-view">
9211
+ Hello.
9212
+ </span>
9213
+ </div>
9214
+ </body>
9215
+ ```
9216
+
9217
+ ### `parentView` setting
9218
+
9219
+ The `parentView` property of the new `Ember.View` instance created through
9220
+ `{{view}}` will be set to the `Ember.View` instance of the template where
9221
+ `{{view}}` was called.
9222
+
9223
+ ```javascript
9224
+ aView = Ember.View.create({
9225
+ template: Ember.Handlebars.compile("{{#view}} my parent: {{parentView.elementId}} {{/view}}")
9226
+ });
9227
+
9228
+ aView.appendTo('body');
9229
+ ```
9230
+
9231
+ Will result in HTML structure:
9232
+
9233
+ ```html
9234
+ <div id="ember1" class="ember-view">
9235
+ <div id="ember2" class="ember-view">
9236
+ my parent: ember1
9237
+ </div>
9238
+ </div>
9239
+ ```
9240
+
9241
+ ### Setting CSS id and class attributes
9242
+
9243
+ The HTML `id` attribute can be set on the `{{view}}`'s resulting element with
9244
+ the `id` option. This option will _not_ be passed to `Ember.View.create`.
9245
+
9246
+ ```handlebars
9247
+ {{#view tagName="span" id="a-custom-id"}}
9248
+ hello.
9249
+ {{/view}}
9250
+ ```
9251
+
9252
+ Results in the following HTML structure:
9253
+
9254
+ ```html
9255
+ <div class="ember-view">
9256
+ <span id="a-custom-id" class="ember-view">
9257
+ hello.
9258
+ </span>
9259
+ </div>
9260
+ ```
9261
+
9262
+ The HTML `class` attribute can be set on the `{{view}}`'s resulting element
9263
+ with the `class` or `classNameBindings` options. The `class` option will
9264
+ directly set the CSS `class` attribute and will not be passed to
9265
+ `Ember.View.create`. `classNameBindings` will be passed to `create` and use
9266
+ `Ember.View`'s class name binding functionality:
9267
+
9268
+ ```handlebars
9269
+ {{#view tagName="span" class="a-custom-class"}}
9270
+ hello.
9271
+ {{/view}}
9272
+ ```
9273
+
9274
+ Results in the following HTML structure:
9275
+
9276
+ ```html
9277
+ <div class="ember-view">
9278
+ <span id="ember2" class="ember-view a-custom-class">
9279
+ hello.
9280
+ </span>
9281
+ </div>
9282
+ ```
9283
+
9284
+ ### Supplying a different view class
9285
+
9286
+ `{{view}}` can take an optional first argument before its supplied options to
9287
+ specify a path to a custom view class.
9288
+
9289
+ ```handlebars
9290
+ {{#view "custom"}}{{! will look up App.CustomView }}
9291
+ hello.
9292
+ {{/view}}
9293
+ ```
9294
+
9295
+ The first argument can also be a relative path accessible from the current
9296
+ context.
9297
+
9298
+ ```javascript
9299
+ MyApp = Ember.Application.create({});
9300
+ MyApp.OuterView = Ember.View.extend({
9301
+ innerViewClass: Ember.View.extend({
9302
+ classNames: ['a-custom-view-class-as-property']
9303
+ }),
9304
+ template: Ember.Handlebars.compile('{{#view view.innerViewClass}} hi {{/view}}')
9305
+ });
9306
+
9307
+ MyApp.OuterView.create().appendTo('body');
9308
+ ```
9309
+
9310
+ Will result in the following HTML:
9311
+
9312
+ ```html
9313
+ <div id="ember1" class="ember-view">
9314
+ <div id="ember2" class="ember-view a-custom-view-class-as-property">
9315
+ hi
9316
+ </div>
9317
+ </div>
9318
+ ```
9319
+
9320
+ ### Blockless use
9321
+
9322
+ If you supply a custom `Ember.View` subclass that specifies its own template
9323
+ or provide a `templateName` option to `{{view}}` it can be used without
9324
+ supplying a block. Attempts to use both a `templateName` option and supply a
9325
+ block will throw an error.
9326
+
9327
+ ```javascript
9328
+ var App = Ember.Application.create();
9329
+ App.WithTemplateDefinedView = Ember.View.extend({
9330
+ templateName: 'defined-template'
9331
+ });
9332
+ ```
9333
+
9334
+ ```handlebars
9335
+ {{! application.hbs }}
9336
+ {{view 'with-template-defined'}}
9337
+ ```
9338
+
9339
+ ```handlebars
9340
+ {{! defined-template.hbs }}
9341
+ Some content for the defined template view.
9342
+ ```
9343
+
9344
+ ### `viewName` property
9345
+
9346
+ You can supply a `viewName` option to `{{view}}`. The `Ember.View` instance
9347
+ will be referenced as a property of its parent view by this name.
9348
+
9349
+ ```javascript
9350
+ aView = Ember.View.create({
9351
+ template: Ember.Handlebars.compile('{{#view viewName="aChildByName"}} hi {{/view}}')
9352
+ });
9353
+
9354
+ aView.appendTo('body');
9355
+ aView.get('aChildByName') // the instance of Ember.View created by {{view}} helper
9356
+ ```
9357
+
9358
+ @method view
9359
+ @for Ember.Templates.helpers
9360
+ @public
9361
+ @deprecated
9362
+ */
9363
+
8643
9364
  exports.default = {
8644
9365
  setupState: function (state, env, scope, params, hash) {
8645
9366
  var read = env.hooks.getValue;
@@ -8744,6 +9465,11 @@ enifed('ember-htmlbars/keywords/view', ['exports', 'ember-views/streams/utils',
8744
9465
  }
8745
9466
  });
8746
9467
  enifed('ember-htmlbars/keywords/with', ['exports', 'ember-metal/core', 'htmlbars-runtime'], function (exports, _emberMetalCore, _htmlbarsRuntime) {
9468
+ /**
9469
+ @module ember
9470
+ @submodule ember-templates
9471
+ */
9472
+
8747
9473
  'use strict';
8748
9474
 
8749
9475
  exports.default = {
@@ -12109,7 +12835,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
12109
12835
  }
12110
12836
 
12111
12837
  function isVolatile(obj) {
12112
- return !(isObject(obj) && obj.isDescriptor && obj._cacheable);
12838
+ return !(isObject(obj) && obj.isDescriptor && !obj._volatile);
12113
12839
  }
12114
12840
 
12115
12841
  function Chains() {}
@@ -12628,7 +13354,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12628
13354
  this._dependentKeys = undefined;
12629
13355
  this._suspended = undefined;
12630
13356
  this._meta = undefined;
12631
- this._cacheable = true;
13357
+ this._volatile = false;
12632
13358
  this._dependentKeys = opts && opts.dependentKeys;
12633
13359
  this._readOnly = false;
12634
13360
  }
@@ -12641,6 +13367,12 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12641
13367
  Call on a computed property to set it into non-cached mode. When in this
12642
13368
  mode the computed property will not automatically cache the return value.
12643
13369
 
13370
+ It also does not automatically fire any change events. You must manually notify
13371
+ any changes if you want to observe this property.
13372
+
13373
+ Dependency keys have no effect on volatile properties as they are for cache
13374
+ invalidation and notification when cached value is invalidated.
13375
+
12644
13376
  ```javascript
12645
13377
  var outsideService = Ember.Object.extend({
12646
13378
  value: function() {
@@ -12655,7 +13387,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12655
13387
  @public
12656
13388
  */
12657
13389
  ComputedPropertyPrototype.volatile = function () {
12658
- this._cacheable = false;
13390
+ this._volatile = true;
12659
13391
  return this;
12660
13392
  };
12661
13393
 
@@ -12766,16 +13498,24 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12766
13498
  }
12767
13499
  };
12768
13500
 
12769
- /* impl descriptor API */
13501
+ // invalidate cache when CP key changes
12770
13502
  ComputedPropertyPrototype.didChange = function (obj, keyName) {
12771
13503
  // _suspended is set via a CP.set to ensure we don't clear
12772
13504
  // the cached value set by the setter
12773
- if (this._cacheable && this._suspended !== obj) {
12774
- var meta = metaFor(obj);
12775
- if (meta.cache && meta.cache[keyName] !== undefined) {
12776
- meta.cache[keyName] = undefined;
12777
- _emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
12778
- }
13505
+ if (this._volatile || this._suspended === obj) {
13506
+ return;
13507
+ }
13508
+
13509
+ // don't create objects just to invalidate
13510
+ var meta = obj.__ember_meta__;
13511
+ if (!meta || meta.source !== obj) {
13512
+ return;
13513
+ }
13514
+
13515
+ var cache = meta.cache;
13516
+ if (cache && cache[keyName] !== undefined) {
13517
+ cache[keyName] = undefined;
13518
+ _emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
12779
13519
  }
12780
13520
  };
12781
13521
 
@@ -12807,37 +13547,36 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12807
13547
  @public
12808
13548
  */
12809
13549
  ComputedPropertyPrototype.get = function (obj, keyName) {
12810
- var ret, cache, meta;
12811
- if (this._cacheable) {
12812
- meta = metaFor(obj);
12813
- cache = meta.cache;
12814
-
12815
- var result = cache && cache[keyName];
13550
+ if (this._volatile) {
13551
+ return this._getter.call(obj, keyName);
13552
+ }
12816
13553
 
12817
- if (result === UNDEFINED) {
12818
- return undefined;
12819
- } else if (result !== undefined) {
12820
- return result;
12821
- }
13554
+ var meta = metaFor(obj);
13555
+ var cache = meta.cache;
13556
+ if (!cache) {
13557
+ cache = meta.cache = {};
13558
+ }
12822
13559
 
12823
- ret = this._getter.call(obj, keyName);
12824
- cache = meta.cache;
12825
- if (!cache) {
12826
- cache = meta.cache = {};
12827
- }
12828
- if (ret === undefined) {
12829
- cache[keyName] = UNDEFINED;
12830
- } else {
12831
- cache[keyName] = ret;
12832
- }
13560
+ var result = cache[keyName];
13561
+ if (result === UNDEFINED) {
13562
+ return undefined;
13563
+ } else if (result !== undefined) {
13564
+ return result;
13565
+ }
12833
13566
 
12834
- if (meta.chainWatchers) {
12835
- meta.chainWatchers.revalidate(keyName);
12836
- }
12837
- _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
13567
+ var ret = this._getter.call(obj, keyName);
13568
+ if (ret === undefined) {
13569
+ cache[keyName] = UNDEFINED;
12838
13570
  } else {
12839
- ret = this._getter.call(obj, keyName);
13571
+ cache[keyName] = ret;
12840
13572
  }
13573
+
13574
+ var chainWatchers = meta.chainWatchers;
13575
+ if (chainWatchers) {
13576
+ chainWatchers.revalidate(keyName);
13577
+ }
13578
+ _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
13579
+
12841
13580
  return ret;
12842
13581
  };
12843
13582
 
@@ -12890,51 +13629,72 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12890
13629
  @return {Object} The return value of the function backing the CP.
12891
13630
  @public
12892
13631
  */
12893
- ComputedPropertyPrototype.set = function computedPropertySetWithSuspend(obj, keyName, value) {
12894
- var oldSuspended = this._suspended;
13632
+ ComputedPropertyPrototype.set = function computedPropertySetEntry(obj, keyName, value) {
13633
+ if (this._readOnly) {
13634
+ this._throwReadOnlyError(obj, keyName);
13635
+ }
12895
13636
 
12896
- this._suspended = obj;
13637
+ if (!this._setter) {
13638
+ return this.clobberSet(obj, keyName, value);
13639
+ }
13640
+
13641
+ if (this._volatile) {
13642
+ return this.volatileSet(obj, keyName, value);
13643
+ }
13644
+
13645
+ return this.setWithSuspend(obj, keyName, value);
13646
+ };
13647
+
13648
+ ComputedPropertyPrototype._throwReadOnlyError = function computedPropertyThrowReadOnlyError(obj, keyName) {
13649
+ throw new _emberMetalError.default('Cannot set read-only property "' + keyName + '" on object: ' + _emberMetalUtils.inspect(obj));
13650
+ };
13651
+
13652
+ ComputedPropertyPrototype.clobberSet = function computedPropertyClobberSet(obj, keyName, value) {
13653
+ var cachedValue = cacheFor(obj, keyName);
13654
+ _emberMetalProperties.defineProperty(obj, keyName, null, cachedValue);
13655
+ _emberMetalProperty_set.set(obj, keyName, value);
13656
+ return value;
13657
+ };
13658
+
13659
+ ComputedPropertyPrototype.volatileSet = function computedPropertyVolatileSet(obj, keyName, value) {
13660
+ return this._setter.call(obj, keyName, value);
13661
+ };
12897
13662
 
13663
+ ComputedPropertyPrototype.setWithSuspend = function computedPropertySetWithSuspend(obj, keyName, value) {
13664
+ var oldSuspended = this._suspended;
13665
+ this._suspended = obj;
12898
13666
  try {
12899
- this._set(obj, keyName, value);
13667
+ return this._set(obj, keyName, value);
12900
13668
  } finally {
12901
13669
  this._suspended = oldSuspended;
12902
13670
  }
12903
13671
  };
12904
13672
 
12905
13673
  ComputedPropertyPrototype._set = function computedPropertySet(obj, keyName, value) {
12906
- var cacheable = this._cacheable;
12907
- var setter = this._setter;
12908
- var meta = metaFor(obj, cacheable);
13674
+ // cache requires own meta
13675
+ var meta = metaFor(obj);
13676
+ // either there is a writable cache or we need one to update
12909
13677
  var cache = meta.cache;
12910
- var hadCachedValue = false;
12911
-
12912
- var cachedValue, ret;
12913
-
12914
- if (this._readOnly) {
12915
- throw new _emberMetalError.default('Cannot set read-only property "' + keyName + '" on object: ' + _emberMetalUtils.inspect(obj));
13678
+ if (!cache) {
13679
+ cache = meta.cache = {};
12916
13680
  }
12917
-
12918
- if (cacheable && cache && cache[keyName] !== undefined) {
13681
+ var hadCachedValue = false;
13682
+ var cachedValue = undefined;
13683
+ if (cache[keyName] !== undefined) {
12919
13684
  if (cache[keyName] !== UNDEFINED) {
12920
13685
  cachedValue = cache[keyName];
12921
13686
  }
12922
-
12923
13687
  hadCachedValue = true;
12924
13688
  }
12925
13689
 
12926
- if (!setter) {
12927
- _emberMetalProperties.defineProperty(obj, keyName, null, cachedValue);
12928
- return _emberMetalProperty_set.set(obj, keyName, value);
12929
- } else {
12930
- ret = setter.call(obj, keyName, value, cachedValue);
12931
- }
13690
+ var ret = this._setter.call(obj, keyName, value, cachedValue);
12932
13691
 
13692
+ // allows setter to return the same value that is cached already
12933
13693
  if (hadCachedValue && cachedValue === ret) {
12934
- return;
13694
+ return ret;
12935
13695
  }
12936
13696
 
12937
- var watched = meta.watching[keyName];
13697
+ var watched = meta.watching && meta.watching[keyName];
12938
13698
  if (watched) {
12939
13699
  _emberMetalProperty_events.propertyWillChange(obj, keyName);
12940
13700
  }
@@ -12943,18 +13703,14 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12943
13703
  cache[keyName] = undefined;
12944
13704
  }
12945
13705
 
12946
- if (cacheable) {
12947
- if (!hadCachedValue) {
12948
- _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
12949
- }
12950
- if (!cache) {
12951
- cache = meta.cache = {};
12952
- }
12953
- if (ret === undefined) {
12954
- cache[keyName] = UNDEFINED;
12955
- } else {
12956
- cache[keyName] = ret;
12957
- }
13706
+ if (!hadCachedValue) {
13707
+ _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
13708
+ }
13709
+
13710
+ if (ret === undefined) {
13711
+ cache[keyName] = UNDEFINED;
13712
+ } else {
13713
+ cache[keyName] = ret;
12958
13714
  }
12959
13715
 
12960
13716
  if (watched) {
@@ -12966,19 +13722,15 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
12966
13722
 
12967
13723
  /* called before property is overridden */
12968
13724
  ComputedPropertyPrototype.teardown = function (obj, keyName) {
13725
+ if (this._volatile) {
13726
+ return;
13727
+ }
12969
13728
  var meta = metaFor(obj);
12970
-
12971
- if (meta.cache) {
12972
- if (keyName in meta.cache) {
12973
- _emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
12974
- }
12975
-
12976
- if (this._cacheable) {
12977
- delete meta.cache[keyName];
12978
- }
13729
+ var cache = meta.cache;
13730
+ if (cache && cache[keyName] !== undefined) {
13731
+ _emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
13732
+ cache[keyName] = undefined;
12979
13733
  }
12980
-
12981
- return null; // no value to restore
12982
13734
  };
12983
13735
 
12984
13736
  /**
@@ -13068,8 +13820,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
13068
13820
  @public
13069
13821
  */
13070
13822
  function cacheFor(obj, key) {
13071
- var meta = obj['__ember_meta__'];
13072
- var cache = meta && meta.cache;
13823
+ var meta = obj.__ember_meta__;
13824
+ var cache = meta && meta.source === obj && meta.cache;
13073
13825
  var ret = cache && cache[key];
13074
13826
 
13075
13827
  if (ret === UNDEFINED) {
@@ -13819,7 +14571,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
13819
14571
 
13820
14572
  @class Ember
13821
14573
  @static
13822
- @version 2.0.0-beta.5
14574
+ @version 2.0.0
13823
14575
  @public
13824
14576
  */
13825
14577
 
@@ -13853,11 +14605,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
13853
14605
 
13854
14606
  @property VERSION
13855
14607
  @type String
13856
- @default '2.0.0-beta.5'
14608
+ @default '2.0.0'
13857
14609
  @static
13858
14610
  @public
13859
14611
  */
13860
- Ember.VERSION = '2.0.0-beta.5';
14612
+ Ember.VERSION = '2.0.0';
13861
14613
 
13862
14614
  /**
13863
14615
  The hash of environment variables used to control various configuration
@@ -20145,6 +20897,9 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/features'], function (expor
20145
20897
  */
20146
20898
 
20147
20899
  function guidFor(obj) {
20900
+ if (obj && obj[GUID_KEY]) {
20901
+ return obj[GUID_KEY];
20902
+ }
20148
20903
 
20149
20904
  // special cases where we don't want to add a key to object
20150
20905
  if (obj === undefined) {
@@ -20182,10 +20937,6 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/features'], function (expor
20182
20937
  return obj ? '(true)' : '(false)';
20183
20938
 
20184
20939
  default:
20185
- if (obj[GUID_KEY]) {
20186
- return obj[GUID_KEY];
20187
- }
20188
-
20189
20940
  if (obj === Object) {
20190
20941
  return '(Object)';
20191
20942
  }
@@ -21494,6 +22245,35 @@ enifed('ember-routing-htmlbars/keywords/link-to', ['exports', 'ember-metal/strea
21494
22245
  To override this option for your entire application, see
21495
22246
  "Overriding Application-wide Defaults".
21496
22247
 
22248
+ ### Keeping a link active for other routes
22249
+
22250
+ If you need a link to be 'active' even when it doesn't match
22251
+ the current route, you can use the the `current-when`
22252
+ argument.
22253
+
22254
+ ```handlebars
22255
+ {{#link-to 'photoGallery' current-when='photos'}}
22256
+ Photo Gallery
22257
+ {{/link-to}}
22258
+ ```
22259
+
22260
+ This may be helpful for keeping links active for:
22261
+
22262
+ * non-nested routes that are logically related
22263
+ * some secondary menu approaches
22264
+ * 'top navigation' with 'sub navigation' scenarios
22265
+
22266
+ A link will be active if `current-when` is `true` or the current
22267
+ route is the route this link would transition to.
22268
+
22269
+ To match multiple routes 'space-separate' the routes:
22270
+
22271
+ ```handlebars
22272
+ {{#link-to 'gallery' current-when='photos drawings paintings'}}
22273
+ Art Gallery
22274
+ {{/link-to}}
22275
+ ```
22276
+
21497
22277
  ### Supplying a model
21498
22278
  An optional model argument can be used for routes whose
21499
22279
  paths contain dynamic segments. This argument will become
@@ -21896,7 +22676,7 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
21896
22676
 
21897
22677
  'use strict';
21898
22678
 
21899
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.0-beta.5';
22679
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.0';
21900
22680
 
21901
22681
  var linkComponentClassNameBindings = ['active', 'loading', 'disabled'];
21902
22682
 
@@ -22191,7 +22971,7 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
22191
22971
  }
22192
22972
 
22193
22973
  var routing = _emberMetalProperty_get.get(this, '_routing');
22194
- var targetRouteName = _emberMetalProperty_get.get(this, 'targetRouteName');
22974
+ var targetRouteName = this._handleOnlyQueryParamsSupplied(_emberMetalProperty_get.get(this, 'targetRouteName'));
22195
22975
  var models = _emberMetalProperty_get.get(this, 'models');
22196
22976
  var queryParamValues = _emberMetalProperty_get.get(this, 'queryParams.values');
22197
22977
  var shouldReplace = _emberMetalProperty_get.get(this, 'attrs.replace');
@@ -22398,7 +23178,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
22398
23178
 
22399
23179
  'use strict';
22400
23180
 
22401
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0-beta.5';
23181
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0';
22402
23182
 
22403
23183
  var CoreOutletView = _emberViewsViewsView.default.extend({
22404
23184
  defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
@@ -24669,7 +25449,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
24669
25449
  @property controller
24670
25450
  @type Ember.Controller
24671
25451
  @since 1.6.0
24672
- @private
25452
+ @public
24673
25453
  */
24674
25454
 
24675
25455
  actions: {
@@ -27313,11 +28093,13 @@ enifed('ember-routing/utils', ['exports', 'ember-metal/merge', 'ember-metal/prop
27313
28093
  var part = parts[i];
27314
28094
  var cacheValuePrefix = _calculateCacheValuePrefix(prefix, part);
27315
28095
  var value;
27316
- if (cacheValuePrefix && cacheValuePrefix in values) {
27317
- var partRemovedPrefix = part.indexOf(cacheValuePrefix) === 0 ? part.substr(cacheValuePrefix.length + 1) : part;
27318
- value = _emberMetalProperty_get.get(values[cacheValuePrefix], partRemovedPrefix);
27319
- } else {
27320
- value = _emberMetalProperty_get.get(values, part);
28096
+ if (values) {
28097
+ if (cacheValuePrefix && cacheValuePrefix in values) {
28098
+ var partRemovedPrefix = part.indexOf(cacheValuePrefix) === 0 ? part.substr(cacheValuePrefix.length + 1) : part;
28099
+ value = _emberMetalProperty_get.get(values[cacheValuePrefix], partRemovedPrefix);
28100
+ } else {
28101
+ value = _emberMetalProperty_get.get(values, part);
28102
+ }
27321
28103
  }
27322
28104
  suffixes += '::' + part + ':' + value;
27323
28105
  }
@@ -34689,7 +35471,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
34689
35471
  return ret;
34690
35472
  }
34691
35473
  });
34692
- enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/deprecate-view-and-controller-paths', 'ember-template-compiler/plugins/deprecate-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsDeprecateViewAndControllerPaths, _emberTemplateCompilerPluginsDeprecateViewHelper, _emberTemplateCompilerCompat) {
35474
+ enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
34693
35475
  'use strict';
34694
35476
 
34695
35477
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
@@ -34702,8 +35484,9 @@ enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-com
34702
35484
 
34703
35485
  if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
34704
35486
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
34705
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateViewAndControllerPaths.default);
34706
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateViewHelper.default);
35487
+ } else {
35488
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
35489
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
34707
35490
  }
34708
35491
 
34709
35492
  exports._Ember = _emberMetal.default;
@@ -34784,10 +35567,10 @@ enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
34784
35567
 
34785
35568
  exports.default = plugins;
34786
35569
  });
34787
- enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
35570
+ enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
34788
35571
  'use strict';
34789
35572
 
34790
- function DeprecateViewAndControllerPaths(options) {
35573
+ function AssertNoViewAndControllerPaths(options) {
34791
35574
  // set later within HTMLBars to the syntax package
34792
35575
  this.syntax = null;
34793
35576
  this.options = options || {};
@@ -34798,7 +35581,7 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
34798
35581
  @method transform
34799
35582
  @param {AST} ast The AST to be transformed.
34800
35583
  */
34801
- DeprecateViewAndControllerPaths.prototype.transform = function DeprecateViewAndControllerPaths_transform(ast) {
35584
+ AssertNoViewAndControllerPaths.prototype.transform = function AssertNoViewAndControllerPaths_transform(ast) {
34802
35585
  var walker = new this.syntax.Walker();
34803
35586
  var moduleName = this.options && this.options.moduleName;
34804
35587
 
@@ -34807,15 +35590,15 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
34807
35590
  return;
34808
35591
  }
34809
35592
 
34810
- deprecatePath(moduleName, node, node.path);
34811
- deprecatePaths(moduleName, node, node.params);
34812
- deprecateHash(moduleName, node, node.hash);
35593
+ assertPath(moduleName, node, node.path);
35594
+ assertPaths(moduleName, node, node.params);
35595
+ assertHash(moduleName, node, node.hash);
34813
35596
  });
34814
35597
 
34815
35598
  return ast;
34816
35599
  };
34817
35600
 
34818
- function deprecateHash(moduleName, node, hash) {
35601
+ function assertHash(moduleName, node, hash) {
34819
35602
  if (!hash || !hash.pairs) {
34820
35603
  return;
34821
35604
  }
@@ -34823,46 +35606,49 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
34823
35606
  for (i = 0, l = hash.pairs.length; i < l; i++) {
34824
35607
  pair = hash.pairs[i];
34825
35608
  paths = pair.value.params;
34826
- deprecatePaths(moduleName, pair, paths);
35609
+ assertPaths(moduleName, pair, paths);
34827
35610
  }
34828
35611
  }
34829
35612
 
34830
- function deprecatePaths(moduleName, node, paths) {
35613
+ function assertPaths(moduleName, node, paths) {
34831
35614
  if (!paths) {
34832
35615
  return;
34833
35616
  }
34834
35617
  var i, l, path;
34835
35618
  for (i = 0, l = paths.length; i < l; i++) {
34836
35619
  path = paths[i];
34837
- deprecatePath(moduleName, node, path);
35620
+ assertPath(moduleName, node, path);
34838
35621
  }
34839
35622
  }
34840
35623
 
34841
- function deprecatePath(moduleName, node, path) {
34842
- _emberMetalCore.default.deprecate('Using `{{' + (path && path.type === 'PathExpression' && path.parts[0]) + '}}` or any path based on it ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc) + 'has been deprecated.', function deprecatePath_test() {
34843
- var noDeprecate = true;
35624
+ function assertPath(moduleName, node, path) {
35625
+ _emberMetalCore.default.assert('Using `{{' + (path && path.type === 'PathExpression' && path.parts[0]) + '}}` or any path based on it ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc) + 'has been removed in Ember 2.0', function assertPath_test() {
35626
+ var noAssertion = true;
34844
35627
 
34845
35628
  var viewKeyword = path && path.type === 'PathExpression' && path.parts && path.parts[0];
34846
35629
  if (viewKeyword === 'view') {
34847
- noDeprecate = _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT;
35630
+ noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT;
34848
35631
  } else if (viewKeyword === 'controller') {
34849
- noDeprecate = false;
35632
+ noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_CONTROLLER_SUPPORT;
34850
35633
  }
34851
35634
 
34852
- return noDeprecate;
34853
- }, { url: 'http://emberjs.com/deprecations/v1.x#toc_view-and-controller-template-keywords', id: path.parts && path.parts[0] === 'view' ? 'view.keyword.view' : 'view.keyword.controller' });
35635
+ return noAssertion;
35636
+ }, {
35637
+ id: path.parts && path.parts[0] === 'view' ? 'view.keyword.view' : 'view.keyword.controller',
35638
+ until: '2.0.0'
35639
+ });
34854
35640
  }
34855
35641
 
34856
35642
  function validate(node) {
34857
35643
  return node.type === 'MustacheStatement' || node.type === 'BlockStatement';
34858
35644
  }
34859
35645
 
34860
- exports.default = DeprecateViewAndControllerPaths;
35646
+ exports.default = AssertNoViewAndControllerPaths;
34861
35647
  });
34862
- enifed('ember-template-compiler/plugins/deprecate-view-helper', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
35648
+ enifed('ember-template-compiler/plugins/assert-no-view-helper', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
34863
35649
  'use strict';
34864
35650
 
34865
- function DeprecateViewHelper(options) {
35651
+ function AssertNoViewHelper(options) {
34866
35652
  // set later within HTMLBars to the syntax package
34867
35653
  this.syntax = null;
34868
35654
  this.options = options || {};
@@ -34873,7 +35659,7 @@ enifed('ember-template-compiler/plugins/deprecate-view-helper', ['exports', 'emb
34873
35659
  @method transform
34874
35660
  @param {AST} ast The AST to be transformed.
34875
35661
  */
34876
- DeprecateViewHelper.prototype.transform = function DeprecateViewHelper_transform(ast) {
35662
+ AssertNoViewHelper.prototype.transform = function AssertNoViewHelper_transform(ast) {
34877
35663
  if (!!_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
34878
35664
  return ast;
34879
35665
  }
@@ -34885,33 +35671,27 @@ enifed('ember-template-compiler/plugins/deprecate-view-helper', ['exports', 'emb
34885
35671
  return;
34886
35672
  }
34887
35673
 
34888
- deprecateHelper(moduleName, node);
35674
+ assertHelper(moduleName, node);
34889
35675
  });
34890
35676
 
34891
35677
  return ast;
34892
35678
  };
34893
35679
 
34894
- function deprecateHelper(moduleName, node) {
35680
+ function assertHelper(moduleName, node) {
34895
35681
  var paramValue = node.params.length && node.params[0].value;
34896
35682
 
34897
35683
  if (!paramValue) {
34898
35684
  return;
34899
- } else if (paramValue === 'select') {
34900
- deprecateSelect(moduleName, node);
34901
35685
  } else {
34902
- _emberMetalCore.default.deprecate('Using the `{{view "string"}}` helper is deprecated. ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc), false, { url: 'http://emberjs.com/deprecations/v1.x#toc_ember-view', id: 'view.helper' });
35686
+ _emberMetalCore.default.assert('Using the `{{view "string"}}` helper is removed in 2.0. ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc), _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT, { id: 'view.helper', until: '2.0.0' });
34903
35687
  }
34904
35688
  }
34905
35689
 
34906
- function deprecateSelect(moduleName, node) {
34907
- _emberMetalCore.default.deprecate('Using `{{view "select"}}` is deprecated. ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc), false, { url: 'http://emberjs.com/deprecations/v1.x#toc_ember-select', id: 'view.helper.select' });
34908
- }
34909
-
34910
35690
  function validate(node) {
34911
35691
  return (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && node.path.parts[0] === 'view';
34912
35692
  }
34913
35693
 
34914
- exports.default = DeprecateViewHelper;
35694
+ exports.default = AssertNoViewHelper;
34915
35695
  });
34916
35696
  enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) {
34917
35697
  'use strict';
@@ -35660,7 +36440,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
35660
36440
 
35661
36441
  options.buildMeta = function buildMeta(program) {
35662
36442
  return {
35663
- revision: 'Ember@2.0.0-beta.5',
36443
+ revision: 'Ember@2.0.0',
35664
36444
  loc: program.loc,
35665
36445
  moduleName: options.moduleName
35666
36446
  };
@@ -37014,7 +37794,7 @@ enifed('ember-views', ['exports', 'ember-runtime', 'ember-views/system/jquery',
37014
37794
  _emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
37015
37795
 
37016
37796
  if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
37017
- _emberRuntime.default.Select = _emberViewsViewsSelect.DeprecatedSelect;
37797
+ _emberRuntime.default.Select = _emberViewsViewsSelect.Select;
37018
37798
  }
37019
37799
 
37020
37800
  _emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
@@ -37082,13 +37862,16 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
37082
37862
 
37083
37863
  _propagateAttrsToThis: function () {
37084
37864
  var attrs = this.attrs;
37085
- var values = {};
37865
+
37086
37866
  for (var prop in attrs) {
37087
- if (prop !== 'attrs') {
37088
- values[prop] = this.getAttr(prop);
37867
+ if (prop !== 'attrs' &&
37868
+ // These list of properties are concatenated and merged properties of
37869
+ // Ember.View / Ember.Component. Setting them here results in them being
37870
+ // completely stomped and not handled properly, BAIL OUT!
37871
+ prop !== 'actions' && prop !== 'classNames' && prop !== 'classNameBindings' && prop !== 'attributeBindings') {
37872
+ this.set(prop, this.getAttr(prop));
37089
37873
  }
37090
37874
  }
37091
- this.setProperties(values);
37092
37875
  },
37093
37876
 
37094
37877
  initializeShape: _emberMetalEvents.on('init', function () {
@@ -37113,7 +37896,7 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
37113
37896
  // do not deprecate accessing `this[key]` at this time.
37114
37897
  // add this back when we have a proper migration path
37115
37898
  // Ember.deprecate(deprecation(key), { id: 'ember-views.', until: '3.0.0' });
37116
- var possibleCell = attrs.key;
37899
+ var possibleCell = attrs[key];
37117
37900
 
37118
37901
  if (possibleCell && possibleCell[MUTABLE_CELL]) {
37119
37902
  return possibleCell.value;
@@ -38112,7 +38895,7 @@ enifed('ember-views/mixins/view_context_support', ['exports', 'ember-metal/mixin
38112
38895
  _emberMetalProperty_set.set(this, '_context', value);
38113
38896
  return value;
38114
38897
  }
38115
- }).volatile(),
38898
+ }),
38116
38899
 
38117
38900
  /**
38118
38901
  Private copy of the view's template context. This can be set directly
@@ -40188,7 +40971,7 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-run
40188
40971
  enifed('ember-views/views/container_view', ['exports', 'ember-metal/core', 'ember-runtime/mixins/mutable_array', 'ember-views/views/view', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/mixin', 'ember-metal/events', 'ember-htmlbars/templates/container-view'], function (exports, _emberMetalCore, _emberRuntimeMixinsMutable_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
40189
40972
  'use strict';
40190
40973
 
40191
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.0-beta.5';
40974
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.0';
40192
40975
 
40193
40976
  /**
40194
40977
  @module ember
@@ -40685,7 +41468,7 @@ enifed('ember-views/views/legacy_each_view', ['exports', 'ember-htmlbars/templat
40685
41468
  })
40686
41469
  });
40687
41470
  });
40688
- enifed('ember-views/views/select', ['exports', 'ember-metal/core', 'ember-metal/replace', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-views/views/view', 'ember-runtime/utils', 'ember-metal/is_none', 'ember-metal/computed', 'ember-runtime/system/native_array', 'ember-metal/mixin', 'ember-metal/properties', 'ember-htmlbars/templates/select', 'ember-htmlbars/templates/select-option', 'ember-htmlbars/templates/select-optgroup'], function (exports, _emberMetalCore, _emberMetalReplace, _emberMetalProperty_get, _emberMetalProperty_set, _emberViewsViewsView, _emberRuntimeUtils, _emberMetalIs_none, _emberMetalComputed, _emberRuntimeSystemNative_array, _emberMetalMixin, _emberMetalProperties, _emberHtmlbarsTemplatesSelect, _emberHtmlbarsTemplatesSelectOption, _emberHtmlbarsTemplatesSelectOptgroup) {
41471
+ enifed('ember-views/views/select', ['exports', 'ember-metal/replace', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-views/views/view', 'ember-runtime/utils', 'ember-metal/is_none', 'ember-metal/computed', 'ember-runtime/system/native_array', 'ember-metal/mixin', 'ember-metal/properties', 'ember-htmlbars/templates/select', 'ember-htmlbars/templates/select-option', 'ember-htmlbars/templates/select-optgroup'], function (exports, _emberMetalReplace, _emberMetalProperty_get, _emberMetalProperty_set, _emberViewsViewsView, _emberRuntimeUtils, _emberMetalIs_none, _emberMetalComputed, _emberRuntimeSystemNative_array, _emberMetalMixin, _emberMetalProperties, _emberHtmlbarsTemplatesSelect, _emberHtmlbarsTemplatesSelectOption, _emberHtmlbarsTemplatesSelectOptgroup) {
40689
41472
  /**
40690
41473
  @module ember
40691
41474
  @submodule ember-views
@@ -41336,27 +42119,6 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/core', 'ember-metal/
41336
42119
  }
41337
42120
  });
41338
42121
 
41339
- function selectViewDeprecationMessage() {
41340
- _emberMetalCore.default.deprecate('Ember.Select is deprecated. Consult the Deprecations Guide for a migration strategy.', !!_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT, {
41341
- url: 'http://emberjs.com/deprecations/v1.x/#toc_ember-select',
41342
- id: 'ember-views.select-deprecated',
41343
- until: '2.4.0'
41344
- });
41345
- }
41346
-
41347
- var DeprecatedSelect = Select.extend({
41348
- init: function () {
41349
- selectViewDeprecationMessage();
41350
- this._super.apply(this, arguments);
41351
- }
41352
- });
41353
-
41354
- DeprecatedSelect.reopen = function () {
41355
- selectViewDeprecationMessage();
41356
- Select.reopen.apply(Select, arguments);
41357
- return this;
41358
- };
41359
-
41360
42122
  function indexesOf(iterable, elements) {
41361
42123
  return elements === undefined ? [] : elements.map(function (item) {
41362
42124
  return iterable.indexOf(item);
@@ -41365,7 +42127,6 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/core', 'ember-metal/
41365
42127
 
41366
42128
  exports.default = Select;
41367
42129
  exports.Select = Select;
41368
- exports.DeprecatedSelect = DeprecatedSelect;
41369
42130
  exports.SelectOption = SelectOption;
41370
42131
  exports.SelectOptgroup = SelectOptgroup;
41371
42132
  });