ember-source 2.2.0.beta.1 → 2.2.0

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

Potentially problematic release.


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

@@ -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