ember-source 2.2.0.beta.1 → 2.2.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.

@@ -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.2.0-beta.1
9
+ * @version 2.2.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, requirejs, Ember;
@@ -4471,6 +4471,11 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4471
4471
  });
4472
4472
  },
4473
4473
 
4474
+ /**
4475
+ @private
4476
+ @since 1.12.0
4477
+ @method runInstanceInitializers
4478
+ */
4474
4479
  runInstanceInitializers: function (instance) {
4475
4480
  this._runInitializer('instanceInitializers', function (name, initializer) {
4476
4481
  _emberMetalDebug.assert('No instance initializer named \'' + name + '\'', !!initializer);
@@ -5694,6 +5699,11 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
5694
5699
  var missingOptionsUntilDeprecation = 'When calling `Ember.deprecate` you must provide `until` in options.';
5695
5700
 
5696
5701
  exports.missingOptionsUntilDeprecation = missingOptionsUntilDeprecation;
5702
+ /**
5703
+ @module ember
5704
+ @submodule ember-debug
5705
+ */
5706
+
5697
5707
  /**
5698
5708
  Display a deprecation warning with the provided message and a stack trace
5699
5709
  (Chrome and Firefox only). Ember build tools will remove any calls to
@@ -5708,6 +5718,7 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
5708
5718
  `id` for this deprecation. The `id` can be used by Ember debugging tools
5709
5719
  to change the behavior (raise, log or silence) for that specific deprecation.
5710
5720
  The `id` should be namespaced by dots, e.g. "view.helper.select".
5721
+ @for Ember
5711
5722
  @public
5712
5723
  */
5713
5724
 
@@ -5819,6 +5830,11 @@ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug'
5819
5830
  var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
5820
5831
 
5821
5832
  exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
5833
+ /**
5834
+ @module ember
5835
+ @submodule ember-debug
5836
+ */
5837
+
5822
5838
  /**
5823
5839
  Display a warning with the provided message. Ember build tools will
5824
5840
  remove any calls to `Ember.warn()` when doing a production build.
@@ -5827,6 +5843,11 @@ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug'
5827
5843
  @param {String} message A warning to display.
5828
5844
  @param {Boolean} test An optional boolean. If falsy, the warning
5829
5845
  will be displayed.
5846
+ @param {Object} options An ojbect that can be used to pass a unique
5847
+ `id` for this warning. The `id` can be used by Ember debugging tools
5848
+ to change the behavior (raise, log, or silence) for that specific warning.
5849
+ The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
5850
+ @for Ember
5830
5851
  @public
5831
5852
  */
5832
5853
 
@@ -6012,7 +6033,9 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'embe
6012
6033
  });
6013
6034
 
6014
6035
  _emberMetalDebug.setDebugFunction('deprecate', _emberDebugDeprecate.default);
6036
+
6015
6037
  _emberMetalDebug.setDebugFunction('warn', _emberDebugWarn.default);
6038
+
6016
6039
  /**
6017
6040
  Will call `Ember.warn()` if ENABLE_ALL_FEATURES, ENABLE_OPTIONAL_FEATURES, or
6018
6041
  any specific FEATURES flag is truthy.
@@ -6100,6 +6123,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'embe
6100
6123
  @static
6101
6124
  @method registerDeprecationHandler
6102
6125
  @param handler {Function} a function to handle deprecation calls
6126
+ @since 2.1.0
6103
6127
  */
6104
6128
  _emberMetalCore.default.Debug.registerDeprecationHandler = _emberDebugDeprecate.registerHandler;
6105
6129
  /**
@@ -6124,6 +6148,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/debug', 'embe
6124
6148
  @static
6125
6149
  @method registerWarnHandler
6126
6150
  @param handler {Function} a function to handle warnings
6151
+ @since 2.1.0
6127
6152
  */
6128
6153
  _emberMetalCore.default.Debug.registerWarnHandler = _emberDebugWarn.registerHandler;
6129
6154
 
@@ -6896,6 +6921,7 @@ enifed('ember-htmlbars/helper', ['exports', 'ember-runtime/system/object'], func
6896
6921
 
6897
6922
  @class Ember.Helper
6898
6923
  @public
6924
+ @since 1.13.0
6899
6925
  */
6900
6926
  var Helper = _emberRuntimeSystemObject.default.extend({
6901
6927
  isHelperInstance: true,
@@ -6919,6 +6945,7 @@ enifed('ember-htmlbars/helper', ['exports', 'ember-runtime/system/object'], func
6919
6945
  ```
6920
6946
  @method recompute
6921
6947
  @public
6948
+ @since 1.13.0
6922
6949
  */
6923
6950
  recompute: function () {
6924
6951
  this._stream.notify();
@@ -6930,6 +6957,7 @@ enifed('ember-htmlbars/helper', ['exports', 'ember-runtime/system/object'], func
6930
6957
  @param {Array} params The positional arguments to the helper
6931
6958
  @param {Object} hash The named arguments to the helper
6932
6959
  @public
6960
+ @since 1.13.0
6933
6961
  */
6934
6962
  });
6935
6963
 
@@ -6955,6 +6983,7 @@ enifed('ember-htmlbars/helper', ['exports', 'ember-runtime/system/object'], func
6955
6983
  @param {Function} helper The helper function
6956
6984
  @method helper
6957
6985
  @public
6986
+ @since 1.13.0
6958
6987
  */
6959
6988
 
6960
6989
  function helper(helperFn) {
@@ -6986,6 +7015,7 @@ enifed('ember-htmlbars/helpers/-concat', ['exports'], function (exports) {
6986
7015
  @public
6987
7016
  @method concat
6988
7017
  @for Ember.Templates.helpers
7018
+ @since 1.13.0
6989
7019
  */
6990
7020
  'use strict';
6991
7021
 
@@ -7108,9 +7138,9 @@ enifed('ember-htmlbars/helpers/-legacy-each-with-keyword', ['exports', 'ember-vi
7108
7138
  function bindKeyword(self, keyword, item) {
7109
7139
  var _ref;
7110
7140
 
7111
- return (_ref = {
7141
+ return _ref = {
7112
7142
  self: self
7113
- }, _ref[keyword] = item, _ref);
7143
+ }, _ref[keyword] = item, _ref;
7114
7144
  }
7115
7145
 
7116
7146
  var deprecation = 'Using the context switching form of {{each}} is deprecated. Please use the keyword form (`{{#each items as |item|}}`) instead.';
@@ -7207,6 +7237,7 @@ enifed('ember-htmlbars/helpers/each-in', ['exports', 'ember-views/streams/should
7207
7237
  @method each-in
7208
7238
  @for Ember.Templates.helpers
7209
7239
  @public
7240
+ @since 2.1.0
7210
7241
  */
7211
7242
  var eachInHelper = function (_ref, hash, blocks) {
7212
7243
  var object = _ref[0];
@@ -8333,7 +8364,7 @@ enifed('ember-htmlbars/hooks/get-root', ['exports'], function (exports) {
8333
8364
  }
8334
8365
 
8335
8366
  var attrs = scope.getAttrs();
8336
- if (key in attrs) {
8367
+ if (attrs && key in attrs) {
8337
8368
  // TODO: attrs
8338
8369
  // deprecate("You accessed the `" + key + "` attribute directly. Please use `attrs." + key + "` instead.");
8339
8370
  return attrs[key];
@@ -8736,7 +8767,7 @@ enifed('ember-htmlbars/keywords/closure-component', ['exports', 'ember-metal/uti
8736
8767
  // This needs to be done in each nesting level to avoid raising assertions
8737
8768
  _emberHtmlbarsUtilsExtractPositionalParams.processPositionalParams(null, positionalParams, params, hash);
8738
8769
 
8739
- return (_ref = {}, _ref[COMPONENT_PATH] = componentCell[COMPONENT_PATH], _ref[COMPONENT_HASH] = mergeHash(componentCell[COMPONENT_HASH], hash), _ref[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref[COMPONENT_CELL] = true, _ref);
8770
+ return _ref = {}, _ref[COMPONENT_PATH] = componentCell[COMPONENT_PATH], _ref[COMPONENT_HASH] = mergeHash(componentCell[COMPONENT_HASH], hash), _ref[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref[COMPONENT_CELL] = true, _ref;
8740
8771
  }
8741
8772
 
8742
8773
  function createNewClosureComponentCell(env, componentPath, params, hash) {
@@ -8747,7 +8778,7 @@ enifed('ember-htmlbars/keywords/closure-component', ['exports', 'ember-metal/uti
8747
8778
  // This needs to be done in each nesting level to avoid raising assertions
8748
8779
  _emberHtmlbarsUtilsExtractPositionalParams.processPositionalParams(null, positionalParams, params, hash);
8749
8780
 
8750
- return (_ref2 = {}, _ref2[COMPONENT_PATH] = componentPath, _ref2[COMPONENT_HASH] = hash, _ref2[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref2[COMPONENT_CELL] = true, _ref2);
8781
+ return _ref2 = {}, _ref2[COMPONENT_PATH] = componentPath, _ref2[COMPONENT_HASH] = hash, _ref2[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref2[COMPONENT_CELL] = true, _ref2;
8751
8782
  }
8752
8783
 
8753
8784
  /*
@@ -9336,6 +9367,7 @@ enifed('ember-htmlbars/keywords/get', ['exports', 'ember-metal/debug', 'ember-me
9336
9367
  @public
9337
9368
  @method get
9338
9369
  @for Ember.Templates.helpers
9370
+ @since 2.1.0
9339
9371
  */
9340
9372
  function getKeyword(morph, env, scope, params, hash, template, inverse, visitor) {
9341
9373
  if (morph === null) {
@@ -9706,7 +9738,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
9706
9738
 
9707
9739
  'use strict';
9708
9740
 
9709
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0-beta.1';
9741
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0';
9710
9742
 
9711
9743
  /**
9712
9744
  The `{{outlet}}` helper lets you specify where a child routes will render in
@@ -11574,8 +11606,8 @@ enifed('ember-htmlbars/system/invoke-helper', ['exports', 'ember-metal/debug', '
11574
11606
  exports.buildHelperStream = buildHelperStream;
11575
11607
 
11576
11608
  function buildHelperStream(helper, params, hash, templates, env, scope, label) {
11577
- _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(helper.isHelperInstance && !helper.isHelperFactory) || (!templates || !templates.template || !templates.template.meta));
11578
- _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(helper.isHelperInstance && !helper.isHelperFactory) || (!templates || !templates.element));
11609
+ _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.template || !templates.template.meta);
11610
+ _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.element);
11579
11611
  if (helper.isHelperFactory) {
11580
11612
  return new _emberHtmlbarsStreamsHelperFactory.default(helper, params, hash, label);
11581
11613
  } else if (helper.isHelperInstance) {
@@ -12676,8 +12708,15 @@ enifed('ember-htmlbars/utils/extract-positional-params', ['exports', 'ember-meta
12676
12708
  }
12677
12709
 
12678
12710
  function processRestPositionalParameters(renderNode, positionalParamsName, params, attrs) {
12711
+ var nameInAttrs = (positionalParamsName in attrs);
12712
+
12713
+ // when no params are used, do not override the specified `attrs.stringParamName` value
12714
+ if (params.length === 0 && nameInAttrs) {
12715
+ return;
12716
+ }
12717
+
12679
12718
  // If there is already an attribute for that variable, do nothing
12680
- _emberMetalDebug.assert('You cannot specify positional parameters and the hash argument `' + positionalParamsName + '`.', !(positionalParamsName in attrs));
12719
+ _emberMetalDebug.assert('You cannot specify positional parameters and the hash argument `' + positionalParamsName + '`.', !nameInAttrs);
12681
12720
 
12682
12721
  var paramsStream = new _emberMetalStreamsStream.Stream(function () {
12683
12722
  return _emberMetalStreamsUtils.readArray(params.slice(0));
@@ -12782,10 +12821,8 @@ enifed('ember-htmlbars/utils/string', ['exports', 'ember-metal/core', 'ember-run
12782
12821
  */
12783
12822
  function htmlSafe(str) {
12784
12823
  if (str === null || str === undefined) {
12785
- return '';
12786
- }
12787
-
12788
- if (typeof str !== 'string') {
12824
+ str = '';
12825
+ } else if (typeof str !== 'string') {
12789
12826
  str = '' + str;
12790
12827
  }
12791
12828
  return new _htmlbarsUtil.SafeString(str);
@@ -14889,7 +14926,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
14889
14926
  /**
14890
14927
  A computed property which matches the original value for the
14891
14928
  dependent property against a given RegExp, returning `true`
14892
- if they values matches the RegExp and `false` if it does not.
14929
+ if the value matches the RegExp and `false` if it does not.
14893
14930
 
14894
14931
  Example
14895
14932
 
@@ -15390,7 +15427,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15390
15427
 
15391
15428
  @class Ember
15392
15429
  @static
15393
- @version 2.2.0-beta.1
15430
+ @version 2.2.0
15394
15431
  @public
15395
15432
  */
15396
15433
 
@@ -15434,11 +15471,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
15434
15471
 
15435
15472
  @property VERSION
15436
15473
  @type String
15437
- @default '2.2.0-beta.1'
15474
+ @default '2.2.0'
15438
15475
  @static
15439
15476
  @public
15440
15477
  */
15441
- Ember.VERSION = '2.2.0-beta.1';
15478
+ Ember.VERSION = '2.2.0';
15442
15479
 
15443
15480
  /**
15444
15481
  The hash of environment variables used to control various configuration
@@ -15781,6 +15818,7 @@ enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exp
15781
15818
  hasDOM: true,
15782
15819
  isChrome: !!window.chrome && !window.opera,
15783
15820
  isFirefox: typeof InstallTrigger !== 'undefined',
15821
+ isPhantom: !!window.callPhantom,
15784
15822
  location: window.location,
15785
15823
  history: window.history,
15786
15824
  userAgent: window.navigator.userAgent,
@@ -15791,6 +15829,7 @@ enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exp
15791
15829
  hasDOM: false,
15792
15830
  isChrome: false,
15793
15831
  isFirefox: false,
15832
+ isPhantom: false,
15794
15833
  location: null,
15795
15834
  history: null,
15796
15835
  userAgent: 'Lynx (textmode)',
@@ -16752,7 +16791,7 @@ enifed("ember-metal/is_none", ["exports"], function (exports) {
16752
16791
  Ember.isNone(undefined); // true
16753
16792
  Ember.isNone(''); // false
16754
16793
  Ember.isNone([]); // false
16755
- Ember.isNone(function() {}); // false
16794
+ Ember.isNone(function() {}); // false
16756
16795
  ```
16757
16796
 
16758
16797
  @method isNone
@@ -16781,12 +16820,12 @@ enifed('ember-metal/is_present', ['exports', 'ember-metal/is_blank'], function (
16781
16820
  Ember.isPresent(); // false
16782
16821
  Ember.isPresent(null); // false
16783
16822
  Ember.isPresent(undefined); // false
16784
- Ember.isPresent(false); // false
16785
16823
  Ember.isPresent(''); // false
16786
16824
  Ember.isPresent([]); // false
16787
16825
  Ember.isPresent('\n\t'); // false
16788
16826
  Ember.isPresent(' '); // false
16789
16827
  Ember.isPresent({}); // true
16828
+ Ember.isPresent(false); // true
16790
16829
  Ember.isPresent('\n\t Hello'); // true
16791
16830
  Ember.isPresent('Hello world'); // true
16792
16831
  Ember.isPresent([1,2,3]); // true
@@ -16804,59 +16843,6 @@ enifed('ember-metal/is_present', ['exports', 'ember-metal/is_blank'], function (
16804
16843
  return !_emberMetalIs_blank.default(obj);
16805
16844
  }
16806
16845
  });
16807
- enifed('ember-metal/keys', ['exports'], function (exports) {
16808
- /**
16809
- Returns all of the keys defined on an object or hash. This is useful
16810
- when inspecting objects for debugging. On browsers that support it, this
16811
- uses the native `Object.keys` implementation.
16812
-
16813
- @method keys
16814
- @for Ember
16815
- @param {Object} obj
16816
- @return {Array} Array containing keys of obj
16817
- @private
16818
- */
16819
- 'use strict';
16820
-
16821
- var keys = Object.keys;
16822
-
16823
- if (!keys) {
16824
- // modified from
16825
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
16826
- keys = (function () {
16827
- var hasOwnProperty = Object.prototype.hasOwnProperty;
16828
- var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');
16829
- var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];
16830
- var dontEnumsLength = dontEnums.length;
16831
-
16832
- return function keys(obj) {
16833
- if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
16834
- throw new TypeError('Object.keys called on non-object');
16835
- }
16836
-
16837
- var result = [];
16838
- var prop, i;
16839
-
16840
- for (prop in obj) {
16841
- if (prop !== '_super' && prop.lastIndexOf('__', 0) !== 0 && hasOwnProperty.call(obj, prop)) {
16842
- result.push(prop);
16843
- }
16844
- }
16845
-
16846
- if (hasDontEnumBug) {
16847
- for (i = 0; i < dontEnumsLength; i++) {
16848
- if (hasOwnProperty.call(obj, dontEnums[i])) {
16849
- result.push(dontEnums[i]);
16850
- }
16851
- }
16852
- }
16853
- return result;
16854
- };
16855
- })();
16856
- }
16857
-
16858
- exports.default = keys;
16859
- });
16860
16846
  enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/features'], function (exports, _emberMetalDebug, _emberMetalFeatures) {
16861
16847
  'use strict';
16862
16848
 
@@ -22011,7 +21997,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
22011
21997
  var checkHasSuper = (function () {
22012
21998
  var sourceAvailable = (function () {
22013
21999
  return this;
22014
- }).toString().indexOf('return this;') > -1;
22000
+ }).toString().indexOf('return this') > -1;
22015
22001
 
22016
22002
  if (sourceAvailable) {
22017
22003
  return function checkHasSuper(func) {
@@ -22024,6 +22010,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
22024
22010
  };
22025
22011
  })();
22026
22012
 
22013
+ exports.checkHasSuper = checkHasSuper;
22027
22014
  function ROOT() {}
22028
22015
  ROOT.__hasSuper = false;
22029
22016
 
@@ -27764,9 +27751,11 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
27764
27751
  @module ember
27765
27752
  @submodule ember-routing
27766
27753
  */
27767
- enifed('ember-routing/system/router_state', ['exports', 'ember-metal/is_empty', 'ember-metal/keys', 'ember-runtime/system/object', 'ember-metal/assign'], function (exports, _emberMetalIs_empty, _emberMetalKeys, _emberRuntimeSystemObject, _emberMetalAssign) {
27754
+ enifed('ember-routing/system/router_state', ['exports', 'ember-metal/is_empty', 'ember-runtime/system/object', 'ember-metal/assign'], function (exports, _emberMetalIs_empty, _emberRuntimeSystemObject, _emberMetalAssign) {
27768
27755
  'use strict';
27769
27756
 
27757
+ var keys = Object.keys;
27758
+
27770
27759
  var RouterState = _emberRuntimeSystemObject.default.extend({
27771
27760
  emberRouter: null,
27772
27761
  routerJs: null,
@@ -27778,7 +27767,7 @@ enifed('ember-routing/system/router_state', ['exports', 'ember-metal/is_empty',
27778
27767
  return false;
27779
27768
  }
27780
27769
 
27781
- var emptyQueryParams = _emberMetalIs_empty.default(_emberMetalKeys.default(queryParams));
27770
+ var emptyQueryParams = _emberMetalIs_empty.default(keys(queryParams));
27782
27771
 
27783
27772
  if (queryParamsMustMatch && !emptyQueryParams) {
27784
27773
  var visibleQueryParams = {};
@@ -28081,7 +28070,7 @@ enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/h
28081
28070
  ```js
28082
28071
  export default Ember.Component.extend({
28083
28072
  actions: {
28084
- save(/* event *\/) {
28073
+ save() {
28085
28074
  this.get('model').save();
28086
28075
  }
28087
28076
  }
@@ -28270,7 +28259,7 @@ enifed('ember-routing-htmlbars/keywords/action', ['exports', 'htmlbars-runtime/h
28270
28259
  return _emberRoutingHtmlbarsKeywordsClosureAction.default(morph, env, scope, params, hash, template, inverse, visitor);
28271
28260
  };
28272
28261
  });
28273
- enifed('ember-routing-htmlbars/keywords/closure-action', ['exports', 'ember-metal/streams/stream', 'ember-metal/streams/utils', 'ember-metal/utils', 'ember-metal/property_get', 'ember-htmlbars/hooks/subexpr', 'ember-metal/error'], function (exports, _emberMetalStreamsStream, _emberMetalStreamsUtils, _emberMetalUtils, _emberMetalProperty_get, _emberHtmlbarsHooksSubexpr, _emberMetalError) {
28262
+ enifed('ember-routing-htmlbars/keywords/closure-action', ['exports', 'ember-metal/streams/stream', 'ember-metal/streams/utils', 'ember-metal/utils', 'ember-metal/property_get', 'ember-htmlbars/hooks/subexpr', 'ember-metal/error', 'ember-metal/run_loop'], function (exports, _emberMetalStreamsStream, _emberMetalStreamsUtils, _emberMetalUtils, _emberMetalProperty_get, _emberHtmlbarsHooksSubexpr, _emberMetalError, _emberMetalRun_loop) {
28274
28263
  'use strict';
28275
28264
 
28276
28265
  exports.default = closureAction;
@@ -28343,23 +28332,31 @@ enifed('ember-routing-htmlbars/keywords/closure-action', ['exports', 'ember-meta
28343
28332
  if (actionArguments.length > 0) {
28344
28333
  closureAction = function () {
28345
28334
  var args = actionArguments;
28346
- if (arguments.length > 0) {
28347
- var passedArguments = Array.prototype.slice.apply(arguments);
28335
+
28336
+ for (var _len = arguments.length, passedArguments = Array(_len), _key = 0; _key < _len; _key++) {
28337
+ passedArguments[_key] = arguments[_key];
28338
+ }
28339
+
28340
+ if (passedArguments.length > 0) {
28348
28341
  args = actionArguments.concat(passedArguments);
28349
28342
  }
28350
28343
  if (valuePath && args.length > 0) {
28351
28344
  args[0] = _emberMetalProperty_get.get(args[0], valuePath);
28352
28345
  }
28353
- return action.apply(target, args);
28346
+
28347
+ return _emberMetalRun_loop.default.join.apply(_emberMetalRun_loop.default, [target, action].concat(args));
28354
28348
  };
28355
28349
  } else {
28356
28350
  closureAction = function () {
28357
- var args = arguments;
28351
+ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
28352
+ args[_key2] = arguments[_key2];
28353
+ }
28354
+
28358
28355
  if (valuePath && args.length > 0) {
28359
- args = Array.prototype.slice.apply(args);
28360
28356
  args[0] = _emberMetalProperty_get.get(args[0], valuePath);
28361
28357
  }
28362
- return action.apply(target, args);
28358
+
28359
+ return _emberMetalRun_loop.default.join.apply(_emberMetalRun_loop.default, [target, action].concat(args));
28363
28360
  };
28364
28361
  }
28365
28362
 
@@ -29128,7 +29125,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29128
29125
 
29129
29126
  'use strict';
29130
29127
 
29131
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.2.0-beta.1';
29128
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.2.0';
29132
29129
 
29133
29130
  /**
29134
29131
  `Ember.LinkComponent` renders an element whose `click` event triggers a
@@ -29416,14 +29413,16 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29416
29413
  return true;
29417
29414
  }
29418
29415
 
29419
- if (this.attrs.preventDefault !== false) {
29420
- var targetAttribute = this.attrs.target;
29416
+ var preventDefault = _emberMetalProperty_get.get(this, 'preventDefault');
29417
+ var targetAttribute = _emberMetalProperty_get.get(this, 'target');
29418
+
29419
+ if (preventDefault !== false) {
29421
29420
  if (!targetAttribute || targetAttribute === '_self') {
29422
29421
  event.preventDefault();
29423
29422
  }
29424
29423
  }
29425
29424
 
29426
- if (this.attrs.bubbles === false) {
29425
+ if (_emberMetalProperty_get.get(this, 'bubbles') === false) {
29427
29426
  event.stopPropagation();
29428
29427
  }
29429
29428
 
@@ -29436,8 +29435,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29436
29435
  return false;
29437
29436
  }
29438
29437
 
29439
- var targetAttribute2 = this.attrs.target;
29440
- if (targetAttribute2 && targetAttribute2 !== '_self') {
29438
+ if (targetAttribute && targetAttribute !== '_self') {
29441
29439
  return false;
29442
29440
  }
29443
29441
 
@@ -29445,7 +29443,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29445
29443
  var qualifiedRouteName = _emberMetalProperty_get.get(this, 'qualifiedRouteName');
29446
29444
  var models = _emberMetalProperty_get.get(this, 'models');
29447
29445
  var queryParamValues = _emberMetalProperty_get.get(this, 'queryParams.values');
29448
- var shouldReplace = _emberMetalProperty_get.get(this, 'attrs.replace');
29446
+ var shouldReplace = _emberMetalProperty_get.get(this, 'replace');
29449
29447
 
29450
29448
  routing.transitionTo(qualifiedRouteName, models, queryParamValues, shouldReplace);
29451
29449
  },
@@ -29453,7 +29451,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29453
29451
  queryParams: null,
29454
29452
 
29455
29453
  qualifiedRouteName: _emberMetalComputed.computed('targetRouteName', '_routing.currentState', function computeLinkToComponentQualifiedRouteName() {
29456
- var params = this.attrs.params.slice();
29454
+ var params = _emberMetalProperty_get.get(this, 'params').slice();
29457
29455
  var lastParam = params[params.length - 1];
29458
29456
  if (lastParam && lastParam.isQueryParams) {
29459
29457
  params.pop();
@@ -29529,6 +29527,24 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29529
29527
  return true;
29530
29528
  }),
29531
29529
 
29530
+ _getModels: function (params) {
29531
+ var modelCount = params.length - 1;
29532
+ var models = new Array(modelCount);
29533
+
29534
+ for (var i = 0; i < modelCount; i++) {
29535
+ var value = params[i + 1];
29536
+
29537
+ while (_emberRuntimeMixinsController.default.detect(value)) {
29538
+ _emberMetalDebug.deprecate('Providing `{{link-to}}` with a param that is wrapped in a controller is deprecated. ' + (this.parentView ? 'Please update `' + this.parentView + '` to use `{{link-to "post" someController.model}}` instead.' : ''), false, { id: 'ember-routing-views.controller-wrapped-param', until: '3.0.0' });
29539
+ value = value.get('model');
29540
+ }
29541
+
29542
+ models[i] = value;
29543
+ }
29544
+
29545
+ return models;
29546
+ },
29547
+
29532
29548
  /**
29533
29549
  The default href value to use while a link-to is loading.
29534
29550
  Only applies when tagName is 'a'
@@ -29542,15 +29558,14 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29542
29558
  willRender: function () {
29543
29559
  var queryParams = undefined;
29544
29560
 
29545
- var attrs = this.attrs;
29546
-
29547
29561
  // Do not mutate params in place
29548
- var params = attrs.params.slice();
29562
+ var params = _emberMetalProperty_get.get(this, 'params').slice();
29549
29563
 
29550
29564
  _emberMetalDebug.assert('You must provide one or more parameters to the link-to component.', params.length);
29551
29565
 
29552
- if (attrs.disabledWhen) {
29553
- this.set('disabled', attrs.disabledWhen);
29566
+ var disabledWhen = _emberMetalProperty_get.get(this, 'disabledWhen');
29567
+ if (disabledWhen) {
29568
+ this.set('disabled', disabledWhen);
29554
29569
  }
29555
29570
 
29556
29571
  // Process the positional arguments, in order.
@@ -29573,20 +29588,11 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
29573
29588
  this.set('queryParams', queryParams);
29574
29589
 
29575
29590
  // 4. Any remaining indices (excepting `targetRouteName` at 0) are `models`.
29576
- var models = [];
29577
-
29578
- for (var i = 1; i < params.length; i++) {
29579
- var value = params[i];
29580
-
29581
- while (_emberRuntimeMixinsController.default.detect(value)) {
29582
- _emberMetalDebug.deprecate('Providing `{{link-to}}` with a param that is wrapped in a controller is deprecated. ' + (this.parentView ? 'Please update `' + this.parentView + '` to use `{{link-to "post" someController.model}}` instead.' : ''), false, { id: 'ember-routing-views.controller-wrapped-param', until: '3.0.0' });
29583
- value = value.get('model');
29584
- }
29585
-
29586
- models.push(value);
29591
+ if (params.length > 1) {
29592
+ this.set('models', this._getModels(params));
29593
+ } else {
29594
+ this.set('models', []);
29587
29595
  }
29588
-
29589
- this.set('models', models);
29590
29596
  }
29591
29597
  });
29592
29598
 
@@ -29609,7 +29615,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
29609
29615
 
29610
29616
  'use strict';
29611
29617
 
29612
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0-beta.1';
29618
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0';
29613
29619
 
29614
29620
  var CoreOutletView = _emberViewsViewsView.default.extend({
29615
29621
  defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
@@ -29733,7 +29739,7 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
29733
29739
  @param {Object} v First value to compare
29734
29740
  @param {Object} w Second value to compare
29735
29741
  @return {Number} -1 if v < w, 0 if v = w and 1 if v > w.
29736
- @private
29742
+ @public
29737
29743
  */
29738
29744
 
29739
29745
  function compare(v, w) {
@@ -38444,7 +38450,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
38444
38450
  options.buildMeta = function buildMeta(program) {
38445
38451
  return {
38446
38452
  fragmentReason: fragmentReason(program),
38447
- revision: 'Ember@2.2.0-beta.1',
38453
+ revision: 'Ember@2.2.0',
38448
38454
  loc: program.loc,
38449
38455
  moduleName: options.moduleName
38450
38456
  };
@@ -40117,6 +40123,8 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/core', 'embe
40117
40123
  }),
40118
40124
 
40119
40125
  init: function () {
40126
+ var _this = this;
40127
+
40120
40128
  this._super.apply(this, arguments);
40121
40129
  _emberMetalProperty_set.set(this, 'controller', this);
40122
40130
  _emberMetalProperty_set.set(this, 'context', this);
@@ -40135,6 +40143,20 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/core', 'embe
40135
40143
 
40136
40144
  this.layout = this.defaultLayout;
40137
40145
  }
40146
+
40147
+ // If in a tagless component, assert that no event handlers are defined
40148
+ _emberMetalDebug.assert('You can not define a function that handles DOM events in the `' + this + '` tagless component since it doesn\'t have any DOM element.', this.tagName !== '' || !(function () {
40149
+ var eventDispatcher = _this.container.lookup('event_dispatcher:main');
40150
+ var events = eventDispatcher && eventDispatcher._finalEvents || {};
40151
+
40152
+ for (var key in events) {
40153
+ var methodName = events[key];
40154
+
40155
+ if (typeof _this[methodName] === 'function') {
40156
+ return true; // indicate that the assertion should be triggered
40157
+ }
40158
+ }
40159
+ })());
40138
40160
  },
40139
40161
 
40140
40162
  template: null,
@@ -40329,6 +40351,7 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/core', 'embe
40329
40351
  @property hasBlock
40330
40352
  @param {String} [blockName="default"] The name of the block to check presence of.
40331
40353
  @returns Boolean
40354
+ @since 1.13.0
40332
40355
  */
40333
40356
 
40334
40357
  /**
@@ -40361,6 +40384,7 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/core', 'embe
40361
40384
  @public
40362
40385
  @property hasBlockParams
40363
40386
  @returns Boolean
40387
+ @since 1.13.0
40364
40388
  */
40365
40389
 
40366
40390
  /**
@@ -40400,6 +40424,7 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/core', 'embe
40400
40424
  @static
40401
40425
  @public
40402
40426
  @property positionalParams
40427
+ @since 1.13.0
40403
40428
  */
40404
40429
  });
40405
40430
 
@@ -42951,7 +42976,7 @@ enifed('ember-views/system/event_dispatcher', ['exports', 'ember-metal/debug', '
42951
42976
  */
42952
42977
  setup: function (addedEvents, rootElement) {
42953
42978
  var event;
42954
- var events = _emberMetalAssign.default({}, _emberMetalProperty_get.get(this, 'events'), addedEvents);
42979
+ var events = this._finalEvents = _emberMetalAssign.default({}, _emberMetalProperty_get.get(this, 'events'), addedEvents);
42955
42980
 
42956
42981
  if (!_emberMetalIs_none.default(rootElement)) {
42957
42982
  _emberMetalProperty_set.set(this, 'rootElement', rootElement);
@@ -43755,7 +43780,7 @@ enifed('ember-views/views/collection_view', ['exports', 'ember-metal/core', 'emb
43755
43780
  enifed('ember-views/views/container_view', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-runtime/mixins/mutable_array', 'ember-runtime/system/native_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, _emberMetalDebug, _emberRuntimeMixinsMutable_array, _emberRuntimeSystemNative_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
43756
43781
  'use strict';
43757
43782
 
43758
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.2.0-beta.1';
43783
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.2.0';
43759
43784
 
43760
43785
  /**
43761
43786
  @module ember