ember-data-source 1.0.0.beta.10 → 1.0.0.beta.11
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.
- checksums.yaml +4 -4
 - data/dist/ember-data.js +571 -155
 - data/dist/ember-data.min.js +3 -3
 - data/dist/ember-data.named-amd.js +555 -155
 - data/dist/ember-data.named-amd.min.js +3 -3
 - data/dist/ember-data.named-amd.prod.js +540 -155
 - data/dist/ember-data.prod.js +556 -155
 - data/package.json +2 -2
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 22471a9db952110eb0fb9232b5789dd5691dceff
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a203dd086407b2cb9d24856f1e0749c9bad84dbb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1ee867289a32ed33fd930dc6a830265d7abcebf171430b76bacbb30e6ec759fdc18056fa11af82d319c4273fbf0cb7334ea7d22d59d305f9390fb773433aa658
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: aa3fed45c6665b7435ae008ddf7c9e6db455d6e64f7334dfb4f46f31ce41bfc74831c4129e03c8b058e42ea4154abd355f0e582ca42229e54414c4ac4227601d
         
     | 
    
        data/dist/ember-data.js
    CHANGED
    
    | 
         @@ -2,10 +2,26 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            var define, requireModule, require, requirejs;
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            (function() {
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              var _isArray;
         
     | 
| 
      
 7 
     | 
    
         
            +
              if (!Array.isArray) {
         
     | 
| 
      
 8 
     | 
    
         
            +
                _isArray = function (x) {
         
     | 
| 
      
 9 
     | 
    
         
            +
                  return Object.prototype.toString.call(x) === "[object Array]";
         
     | 
| 
      
 10 
     | 
    
         
            +
                };
         
     | 
| 
      
 11 
     | 
    
         
            +
              } else {
         
     | 
| 
      
 12 
     | 
    
         
            +
                _isArray = Array.isArray;
         
     | 
| 
      
 13 
     | 
    
         
            +
              }
         
     | 
| 
      
 14 
     | 
    
         
            +
              
         
     | 
| 
       5 
15 
     | 
    
         
             
              var registry = {}, seen = {}, state = {};
         
     | 
| 
       6 
16 
     | 
    
         
             
              var FAILED = false;
         
     | 
| 
       7 
17 
     | 
    
         | 
| 
       8 
18 
     | 
    
         
             
              define = function(name, deps, callback) {
         
     | 
| 
      
 19 
     | 
    
         
            +
              
         
     | 
| 
      
 20 
     | 
    
         
            +
                if (!_isArray(deps)) {
         
     | 
| 
      
 21 
     | 
    
         
            +
                  callback = deps;
         
     | 
| 
      
 22 
     | 
    
         
            +
                  deps     =  [];
         
     | 
| 
      
 23 
     | 
    
         
            +
                }
         
     | 
| 
      
 24 
     | 
    
         
            +
              
         
     | 
| 
       9 
25 
     | 
    
         
             
                registry[name] = {
         
     | 
| 
       10 
26 
     | 
    
         
             
                  deps: deps,
         
     | 
| 
       11 
27 
     | 
    
         
             
                  callback: callback
         
     | 
| 
         @@ -274,7 +290,7 @@ define("activemodel-adapter/system/active_model_adapter", 
     | 
|
| 
       274 
290 
     | 
    
         
             
                    https://tools.ietf.org/html/rfc4918#section-11.2
         
     | 
| 
       275 
291 
     | 
    
         | 
| 
       276 
292 
     | 
    
         
             
                    @method ajaxError
         
     | 
| 
       277 
     | 
    
         
            -
                    @param jqXHR
         
     | 
| 
      
 293 
     | 
    
         
            +
                    @param {Object} jqXHR
         
     | 
| 
       278 
294 
     | 
    
         
             
                    @return error
         
     | 
| 
       279 
295 
     | 
    
         
             
                  */
         
     | 
| 
       280 
296 
     | 
    
         
             
                  ajaxError: function(jqXHR) {
         
     | 
| 
         @@ -463,7 +479,7 @@ define("activemodel-adapter/system/active_model_serializer", 
     | 
|
| 
       463 
479 
     | 
    
         
             
                    @method serializePolymorphicType
         
     | 
| 
       464 
480 
     | 
    
         
             
                    @param {DS.Model} record
         
     | 
| 
       465 
481 
     | 
    
         
             
                    @param {Object} json
         
     | 
| 
       466 
     | 
    
         
            -
                    @param relationship
         
     | 
| 
      
 482 
     | 
    
         
            +
                    @param {Object} relationship
         
     | 
| 
       467 
483 
     | 
    
         
             
                  */
         
     | 
| 
       468 
484 
     | 
    
         
             
                  serializePolymorphicType: function(record, json, relationship) {
         
     | 
| 
       469 
485 
     | 
    
         
             
                    var key = relationship.key;
         
     | 
| 
         @@ -1059,8 +1075,8 @@ define("ember-data/adapters/fixture_adapter", 
     | 
|
| 
       1059 
1075 
     | 
    
         
             
                });
         
     | 
| 
       1060 
1076 
     | 
    
         
             
              });
         
     | 
| 
       1061 
1077 
     | 
    
         
             
            define("ember-data/adapters/rest_adapter",
         
     | 
| 
       1062 
     | 
    
         
            -
              ["ember-data/system/adapter","exports"],
         
     | 
| 
       1063 
     | 
    
         
            -
              function(__dependency1__, __exports__) {
         
     | 
| 
      
 1078 
     | 
    
         
            +
              ["ember-data/system/adapter","ember-data/system/map","exports"],
         
     | 
| 
      
 1079 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __exports__) {
         
     | 
| 
       1064 
1080 
     | 
    
         
             
                "use strict";
         
     | 
| 
       1065 
1081 
     | 
    
         
             
                /**
         
     | 
| 
       1066 
1082 
     | 
    
         
             
                  @module ember-data
         
     | 
| 
         @@ -1068,6 +1084,7 @@ define("ember-data/adapters/rest_adapter", 
     | 
|
| 
       1068 
1084 
     | 
    
         | 
| 
       1069 
1085 
     | 
    
         
             
                var Adapter = __dependency1__.Adapter;
         
     | 
| 
       1070 
1086 
     | 
    
         
             
                var InvalidError = __dependency1__.InvalidError;
         
     | 
| 
      
 1087 
     | 
    
         
            +
                var MapWithDefault = __dependency2__.MapWithDefault;
         
     | 
| 
       1071 
1088 
     | 
    
         
             
                var get = Ember.get;
         
     | 
| 
       1072 
1089 
     | 
    
         
             
                var forEach = Ember.ArrayPolyfills.forEach;
         
     | 
| 
       1073 
1090 
     | 
    
         | 
| 
         @@ -1267,6 +1284,9 @@ define("ember-data/adapters/rest_adapter", 
     | 
|
| 
       1267 
1284 
     | 
    
         | 
| 
       1268 
1285 
     | 
    
         
             
                    will also send a request to: `GET /comments?ids[]=1&ids[]=2`
         
     | 
| 
       1269 
1286 
     | 
    
         | 
| 
      
 1287 
     | 
    
         
            +
                    Note: Requests coalescing rely on URL building strategy. So if you override `buildUrl` in your app
         
     | 
| 
      
 1288 
     | 
    
         
            +
                    `groupRecordsForFindMany` more likely should be overriden as well in order for coalescing to work.
         
     | 
| 
      
 1289 
     | 
    
         
            +
             
     | 
| 
       1270 
1290 
     | 
    
         
             
                    @property coalesceFindRequests
         
     | 
| 
       1271 
1291 
     | 
    
         
             
                    @type {boolean}
         
     | 
| 
       1272 
1292 
     | 
    
         
             
                  */
         
     | 
| 
         @@ -1595,7 +1615,7 @@ define("ember-data/adapters/rest_adapter", 
     | 
|
| 
       1595 
1615 
     | 
    
         
             
                    //We might get passed in an array of ids from findMany
         
     | 
| 
       1596 
1616 
     | 
    
         
             
                    //in which case we don't want to modify the url, as the
         
     | 
| 
       1597 
1617 
     | 
    
         
             
                    //ids will be passed in through a query param
         
     | 
| 
       1598 
     | 
    
         
            -
                    if (id && !Ember.isArray(id)) { url.push(id); }
         
     | 
| 
      
 1618 
     | 
    
         
            +
                    if (id && !Ember.isArray(id)) { url.push(encodeURIComponent(id)); }
         
     | 
| 
       1599 
1619 
     | 
    
         | 
| 
       1600 
1620 
     | 
    
         
             
                    if (prefix) { url.unshift(prefix); }
         
     | 
| 
       1601 
1621 
     | 
    
         | 
| 
         @@ -1680,7 +1700,7 @@ define("ember-data/adapters/rest_adapter", 
     | 
|
| 
       1680 
1700 
     | 
    
         
             
                                      loaded separately by `findMany`.
         
     | 
| 
       1681 
1701 
     | 
    
         
             
                  */
         
     | 
| 
       1682 
1702 
     | 
    
         
             
                  groupRecordsForFindMany: function (store, records) {
         
     | 
| 
       1683 
     | 
    
         
            -
                    var groups =  
     | 
| 
      
 1703 
     | 
    
         
            +
                    var groups = MapWithDefault.create({defaultValue: function(){return [];}});
         
     | 
| 
       1684 
1704 
     | 
    
         
             
                    var adapter = this;
         
     | 
| 
       1685 
1705 
     | 
    
         | 
| 
       1686 
1706 
     | 
    
         
             
                    forEach.call(records, function(record){
         
     | 
| 
         @@ -1710,7 +1730,7 @@ define("ember-data/adapters/rest_adapter", 
     | 
|
| 
       1710 
1730 
     | 
    
         
             
                    }
         
     | 
| 
       1711 
1731 
     | 
    
         | 
| 
       1712 
1732 
     | 
    
         
             
                    var groupsArray = [];
         
     | 
| 
       1713 
     | 
    
         
            -
                    groups.forEach(function( 
     | 
| 
      
 1733 
     | 
    
         
            +
                    groups.forEach(function(group, key){
         
     | 
| 
       1714 
1734 
     | 
    
         
             
                      // http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
         
     | 
| 
       1715 
1735 
     | 
    
         
             
                      var maxUrlLength = 2048;
         
     | 
| 
       1716 
1736 
     | 
    
         
             
                      var splitGroups = splitGroupToFitInUrl(group, maxUrlLength);
         
     | 
| 
         @@ -1929,11 +1949,11 @@ define("ember-data/core", 
     | 
|
| 
       1929 
1949 
     | 
    
         
             
                  /**
         
     | 
| 
       1930 
1950 
     | 
    
         
             
                    @property VERSION
         
     | 
| 
       1931 
1951 
     | 
    
         
             
                    @type String
         
     | 
| 
       1932 
     | 
    
         
            -
                    @default '1.0.0-beta. 
     | 
| 
      
 1952 
     | 
    
         
            +
                    @default '1.0.0-beta.11'
         
     | 
| 
       1933 
1953 
     | 
    
         
             
                    @static
         
     | 
| 
       1934 
1954 
     | 
    
         
             
                  */
         
     | 
| 
       1935 
1955 
     | 
    
         
             
                  DS = Ember.Namespace.create({
         
     | 
| 
       1936 
     | 
    
         
            -
                    VERSION: '1.0.0-beta. 
     | 
| 
      
 1956 
     | 
    
         
            +
                    VERSION: '1.0.0-beta.11'
         
     | 
| 
       1937 
1957 
     | 
    
         
             
                  });
         
     | 
| 
       1938 
1958 
     | 
    
         | 
| 
       1939 
1959 
     | 
    
         
             
                  if (Ember.libraries) {
         
     | 
| 
         @@ -2052,7 +2072,8 @@ define("ember-data/ext/date", 
     | 
|
| 
       2052 
2072 
     | 
    
         | 
| 
       2053 
2073 
     | 
    
         
             
                /**
         
     | 
| 
       2054 
2074 
     | 
    
         
             
                  @method parse
         
     | 
| 
       2055 
     | 
    
         
            -
                  @param date
         
     | 
| 
      
 2075 
     | 
    
         
            +
                  @param {Date} date
         
     | 
| 
      
 2076 
     | 
    
         
            +
                  @return {Number} timestamp
         
     | 
| 
       2056 
2077 
     | 
    
         
             
                */
         
     | 
| 
       2057 
2078 
     | 
    
         
             
                Ember.Date.parse = function (date) {
         
     | 
| 
       2058 
2079 
     | 
    
         
             
                    var timestamp, struct, minutesOffset = 0;
         
     | 
| 
         @@ -2224,21 +2245,24 @@ define("ember-data/serializers/embedded_records_mixin", 
     | 
|
| 
       2224 
2245 
     | 
    
         
             
                  ```js
         
     | 
| 
       2225 
2246 
     | 
    
         
             
                  App.PostSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
         
     | 
| 
       2226 
2247 
     | 
    
         
             
                    attrs: {
         
     | 
| 
       2227 
     | 
    
         
            -
                      author: {embedded: 'always'},
         
     | 
| 
       2228 
     | 
    
         
            -
                      comments: {serialize: 'ids'}
         
     | 
| 
      
 2248 
     | 
    
         
            +
                      author: { embedded: 'always' },
         
     | 
| 
      
 2249 
     | 
    
         
            +
                      comments: { serialize: 'ids' }
         
     | 
| 
       2229 
2250 
     | 
    
         
             
                    }
         
     | 
| 
       2230 
     | 
    
         
            -
                  })
         
     | 
| 
      
 2251 
     | 
    
         
            +
                  });
         
     | 
| 
       2231 
2252 
     | 
    
         
             
                  ```
         
     | 
| 
       2232 
     | 
    
         
            -
                  Note that this use of `{embedded: 'always'}` is unrelated to
         
     | 
| 
       2233 
     | 
    
         
            -
                  the `{embedded: 'always'}` that is defined as an option on `DS.attr` as part of
         
     | 
| 
      
 2253 
     | 
    
         
            +
                  Note that this use of `{ embedded: 'always' }` is unrelated to
         
     | 
| 
      
 2254 
     | 
    
         
            +
                  the `{ embedded: 'always' }` that is defined as an option on `DS.attr` as part of
         
     | 
| 
       2234 
2255 
     | 
    
         
             
                  defining a model while working with the ActiveModelSerializer.  Nevertheless,
         
     | 
| 
       2235 
     | 
    
         
            -
                  using `{embedded: 'always'}` as an option to DS.attr is not a valid way to setup
         
     | 
| 
      
 2256 
     | 
    
         
            +
                  using `{ embedded: 'always' }` as an option to DS.attr is not a valid way to setup
         
     | 
| 
       2236 
2257 
     | 
    
         
             
                  embedded records.
         
     | 
| 
       2237 
2258 
     | 
    
         | 
| 
       2238 
     | 
    
         
            -
                  The `attrs` option for a resource `{embedded: 'always'}` is shorthand for:
         
     | 
| 
      
 2259 
     | 
    
         
            +
                  The `attrs` option for a resource `{ embedded: 'always' }` is shorthand for:
         
     | 
| 
       2239 
2260 
     | 
    
         | 
| 
       2240 
2261 
     | 
    
         
             
                  ```js
         
     | 
| 
       2241 
     | 
    
         
            -
                  { 
     | 
| 
      
 2262 
     | 
    
         
            +
                  { 
         
     | 
| 
      
 2263 
     | 
    
         
            +
                    serialize: 'records',
         
     | 
| 
      
 2264 
     | 
    
         
            +
                    deserialize: 'records'
         
     | 
| 
      
 2265 
     | 
    
         
            +
                  }
         
     | 
| 
       2242 
2266 
     | 
    
         
             
                  ```
         
     | 
| 
       2243 
2267 
     | 
    
         | 
| 
       2244 
2268 
     | 
    
         
             
                  ### Configuring Attrs
         
     | 
| 
         @@ -2262,8 +2286,8 @@ define("ember-data/serializers/embedded_records_mixin", 
     | 
|
| 
       2262 
2286 
     | 
    
         
             
                  If you do not overwrite `attrs` for a specific relationship, the `EmbeddedRecordsMixin`
         
     | 
| 
       2263 
2287 
     | 
    
         
             
                  will behave in the following way:
         
     | 
| 
       2264 
2288 
     | 
    
         | 
| 
       2265 
     | 
    
         
            -
                  BelongsTo: `{serialize:'id', deserialize:'id'}`
         
     | 
| 
       2266 
     | 
    
         
            -
                  HasMany:   `{serialize:false, 
     | 
| 
      
 2289 
     | 
    
         
            +
                  BelongsTo: `{ serialize: 'id', deserialize: 'id' }`  
         
     | 
| 
      
 2290 
     | 
    
         
            +
                  HasMany:   `{ serialize: false, deserialize: 'ids' }`
         
     | 
| 
       2267 
2291 
     | 
    
         | 
| 
       2268 
2292 
     | 
    
         
             
                  ### Model Relationships
         
     | 
| 
       2269 
2293 
     | 
    
         | 
| 
         @@ -3259,8 +3283,9 @@ define("ember-data/serializers/json_serializer", 
     | 
|
| 
       3259 
3283 
     | 
    
         
             
                        payloadKey = this.keyForRelationship(key, "belongsTo");
         
     | 
| 
       3260 
3284 
     | 
    
         
             
                      }
         
     | 
| 
       3261 
3285 
     | 
    
         | 
| 
       3262 
     | 
    
         
            -
                       
     | 
| 
       3263 
     | 
    
         
            -
             
     | 
| 
      
 3286 
     | 
    
         
            +
                      //Need to check whether the id is there for new&async records
         
     | 
| 
      
 3287 
     | 
    
         
            +
                      if (isNone(belongsTo) || isNone(get(belongsTo, 'id'))) {
         
     | 
| 
      
 3288 
     | 
    
         
            +
                        json[payloadKey] = null;
         
     | 
| 
       3264 
3289 
     | 
    
         
             
                      } else {
         
     | 
| 
       3265 
3290 
     | 
    
         
             
                        json[payloadKey] = get(belongsTo, 'id');
         
     | 
| 
       3266 
3291 
     | 
    
         
             
                      }
         
     | 
| 
         @@ -3768,7 +3793,7 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       3768 
3793 
     | 
    
         
             
                  @namespace DS
         
     | 
| 
       3769 
3794 
     | 
    
         
             
                  @extends DS.JSONSerializer
         
     | 
| 
       3770 
3795 
     | 
    
         
             
                */
         
     | 
| 
       3771 
     | 
    
         
            -
                 
     | 
| 
      
 3796 
     | 
    
         
            +
                var RESTSerializer = JSONSerializer.extend({
         
     | 
| 
       3772 
3797 
     | 
    
         
             
                  /**
         
     | 
| 
       3773 
3798 
     | 
    
         
             
                    If you want to do normalizations specific to some part of the payload, you
         
     | 
| 
       3774 
3799 
     | 
    
         
             
                    can specify those under `normalizeHash`.
         
     | 
| 
         @@ -3981,6 +4006,10 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       3981 
4006 
     | 
    
         | 
| 
       3982 
4007 
     | 
    
         
             
                    for (var prop in payload) {
         
     | 
| 
       3983 
4008 
     | 
    
         
             
                      var typeName  = this.typeForRoot(prop);
         
     | 
| 
      
 4009 
     | 
    
         
            +
                      if (!store.modelFactoryFor(typeName)){
         
     | 
| 
      
 4010 
     | 
    
         
            +
                        Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false);
         
     | 
| 
      
 4011 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 4012 
     | 
    
         
            +
                      }
         
     | 
| 
       3984 
4013 
     | 
    
         
             
                      var type = store.modelFor(typeName);
         
     | 
| 
       3985 
4014 
     | 
    
         
             
                      var isPrimary = type.typeKey === primaryTypeName;
         
     | 
| 
       3986 
4015 
     | 
    
         
             
                      var value = payload[prop];
         
     | 
| 
         @@ -4134,6 +4163,10 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       4134 
4163 
     | 
    
         
             
                      }
         
     | 
| 
       4135 
4164 
     | 
    
         | 
| 
       4136 
4165 
     | 
    
         
             
                      var typeName = this.typeForRoot(typeKey);
         
     | 
| 
      
 4166 
     | 
    
         
            +
                      if (!store.modelFactoryFor(typeName)) {
         
     | 
| 
      
 4167 
     | 
    
         
            +
                        Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false);
         
     | 
| 
      
 4168 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 4169 
     | 
    
         
            +
                      }
         
     | 
| 
       4137 
4170 
     | 
    
         
             
                      var type = store.modelFor(typeName);
         
     | 
| 
       4138 
4171 
     | 
    
         
             
                      var typeSerializer = store.serializerFor(type);
         
     | 
| 
       4139 
4172 
     | 
    
         
             
                      var isPrimary = (!forcedSecondary && (type.typeKey === primaryTypeName));
         
     | 
| 
         @@ -4189,6 +4222,10 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       4189 
4222 
     | 
    
         | 
| 
       4190 
4223 
     | 
    
         
             
                    for (var prop in payload) {
         
     | 
| 
       4191 
4224 
     | 
    
         
             
                      var typeName = this.typeForRoot(prop);
         
     | 
| 
      
 4225 
     | 
    
         
            +
                      if (!store.modelFactoryFor(typeName, prop)){
         
     | 
| 
      
 4226 
     | 
    
         
            +
                        Ember.warn(this.warnMessageNoModelForKey(prop, typeName), false);
         
     | 
| 
      
 4227 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 4228 
     | 
    
         
            +
                      }
         
     | 
| 
       4192 
4229 
     | 
    
         
             
                      var type = store.modelFor(typeName);
         
     | 
| 
       4193 
4230 
     | 
    
         
             
                      var typeSerializer = store.serializerFor(type);
         
     | 
| 
       4194 
4231 
     | 
    
         | 
| 
         @@ -4389,8 +4426,9 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       4389 
4426 
     | 
    
         
             
                    ```
         
     | 
| 
       4390 
4427 
     | 
    
         | 
| 
       4391 
4428 
     | 
    
         
             
                    @method serialize
         
     | 
| 
       4392 
     | 
    
         
            -
                    @param record
         
     | 
| 
       4393 
     | 
    
         
            -
                    @param options
         
     | 
| 
      
 4429 
     | 
    
         
            +
                    @param {subclass of DS.Model} record
         
     | 
| 
      
 4430 
     | 
    
         
            +
                    @param {Object} options
         
     | 
| 
      
 4431 
     | 
    
         
            +
                    @return {Object} json
         
     | 
| 
       4394 
4432 
     | 
    
         
             
                  */
         
     | 
| 
       4395 
4433 
     | 
    
         
             
                  serialize: function(record, options) {
         
     | 
| 
       4396 
4434 
     | 
    
         
             
                    return this._super.apply(this, arguments);
         
     | 
| 
         @@ -4443,6 +4481,16 @@ define("ember-data/serializers/rest_serializer", 
     | 
|
| 
       4443 
4481 
     | 
    
         
             
                    }
         
     | 
| 
       4444 
4482 
     | 
    
         
             
                  }
         
     | 
| 
       4445 
4483 
     | 
    
         
             
                });
         
     | 
| 
      
 4484 
     | 
    
         
            +
             
     | 
| 
      
 4485 
     | 
    
         
            +
                Ember.runInDebug(function(){
         
     | 
| 
      
 4486 
     | 
    
         
            +
                  RESTSerializer.reopen({
         
     | 
| 
      
 4487 
     | 
    
         
            +
                    warnMessageNoModelForKey: function(prop, typeKey){
         
     | 
| 
      
 4488 
     | 
    
         
            +
                      return 'Encountered "' + prop + '" in payload, but no model was found for model name "' + typeKey + '" (resolved model name using ' + this.constructor.toString() + '.typeForRoot("' + prop + '"))';
         
     | 
| 
      
 4489 
     | 
    
         
            +
                    }
         
     | 
| 
      
 4490 
     | 
    
         
            +
                  });
         
     | 
| 
      
 4491 
     | 
    
         
            +
                });
         
     | 
| 
      
 4492 
     | 
    
         
            +
             
     | 
| 
      
 4493 
     | 
    
         
            +
                __exports__["default"] = RESTSerializer;
         
     | 
| 
       4446 
4494 
     | 
    
         
             
              });
         
     | 
| 
       4447 
4495 
     | 
    
         
             
            define("ember-data/setup-container",
         
     | 
| 
       4448 
4496 
     | 
    
         
             
              ["ember-data/initializers/store","ember-data/initializers/transforms","ember-data/initializers/store_injections","ember-data/initializers/data_adapter","activemodel-adapter/setup-container","exports"],
         
     | 
| 
         @@ -5038,7 +5086,7 @@ define("ember-data/system/debug/debug_adapter", 
     | 
|
| 
       5038 
5086 
     | 
    
         
             
                    }];
         
     | 
| 
       5039 
5087 
     | 
    
         
             
                    var count = 0;
         
     | 
| 
       5040 
5088 
     | 
    
         
             
                    var self = this;
         
     | 
| 
       5041 
     | 
    
         
            -
                    get(type, 'attributes').forEach(function( 
     | 
| 
      
 5089 
     | 
    
         
            +
                    get(type, 'attributes').forEach(function(meta, name) {
         
     | 
| 
       5042 
5090 
     | 
    
         
             
                        if (count++ > self.attributeLimit) { return false; }
         
     | 
| 
       5043 
5091 
     | 
    
         
             
                        var desc = capitalize(underscore(name).replace('_', ' '));
         
     | 
| 
       5044 
5092 
     | 
    
         
             
                        columns.push({ name: name, desc: desc });
         
     | 
| 
         @@ -5195,6 +5243,101 @@ define("ember-data/system/debug/debug_info", 
     | 
|
| 
       5195 
5243 
     | 
    
         | 
| 
       5196 
5244 
     | 
    
         
             
                __exports__["default"] = Model;
         
     | 
| 
       5197 
5245 
     | 
    
         
             
              });
         
     | 
| 
      
 5246 
     | 
    
         
            +
            define("ember-data/system/map",
         
     | 
| 
      
 5247 
     | 
    
         
            +
              ["exports"],
         
     | 
| 
      
 5248 
     | 
    
         
            +
              function(__exports__) {
         
     | 
| 
      
 5249 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 5250 
     | 
    
         
            +
                /**
         
     | 
| 
      
 5251 
     | 
    
         
            +
                 * Polyfill Ember.Map behavior for Ember <= 1.7
         
     | 
| 
      
 5252 
     | 
    
         
            +
                 * This can probably be removed before 1.0 final
         
     | 
| 
      
 5253 
     | 
    
         
            +
                */
         
     | 
| 
      
 5254 
     | 
    
         
            +
                var mapForEach, deleteFn;
         
     | 
| 
      
 5255 
     | 
    
         
            +
             
     | 
| 
      
 5256 
     | 
    
         
            +
                function OrderedSet(){
         
     | 
| 
      
 5257 
     | 
    
         
            +
                  Ember.OrderedSet.apply(this, arguments);
         
     | 
| 
      
 5258 
     | 
    
         
            +
                }
         
     | 
| 
      
 5259 
     | 
    
         
            +
             
     | 
| 
      
 5260 
     | 
    
         
            +
                function Map() {
         
     | 
| 
      
 5261 
     | 
    
         
            +
                  Ember.Map.apply(this, arguments);
         
     | 
| 
      
 5262 
     | 
    
         
            +
                }
         
     | 
| 
      
 5263 
     | 
    
         
            +
             
     | 
| 
      
 5264 
     | 
    
         
            +
                function MapWithDefault(){
         
     | 
| 
      
 5265 
     | 
    
         
            +
                  Ember.MapWithDefault.apply(this, arguments);
         
     | 
| 
      
 5266 
     | 
    
         
            +
                }
         
     | 
| 
      
 5267 
     | 
    
         
            +
             
     | 
| 
      
 5268 
     | 
    
         
            +
                var testMap = Ember.Map.create();
         
     | 
| 
      
 5269 
     | 
    
         
            +
                testMap.set('key', 'value');
         
     | 
| 
      
 5270 
     | 
    
         
            +
             
     | 
| 
      
 5271 
     | 
    
         
            +
                var usesOldBehavior = false;
         
     | 
| 
      
 5272 
     | 
    
         
            +
             
     | 
| 
      
 5273 
     | 
    
         
            +
                testMap.forEach(function(value, key){
         
     | 
| 
      
 5274 
     | 
    
         
            +
                  usesOldBehavior = value === 'key' && key === 'value';
         
     | 
| 
      
 5275 
     | 
    
         
            +
                });
         
     | 
| 
      
 5276 
     | 
    
         
            +
             
     | 
| 
      
 5277 
     | 
    
         
            +
                Map.prototype            = Object.create(Ember.Map.prototype);
         
     | 
| 
      
 5278 
     | 
    
         
            +
                MapWithDefault.prototype = Object.create(Ember.MapWithDefault.prototype);
         
     | 
| 
      
 5279 
     | 
    
         
            +
                OrderedSet.prototype     = Object.create(Ember.OrderedSet.prototype);
         
     | 
| 
      
 5280 
     | 
    
         
            +
             
     | 
| 
      
 5281 
     | 
    
         
            +
                OrderedSet.create = function(){
         
     | 
| 
      
 5282 
     | 
    
         
            +
                  return new OrderedSet();
         
     | 
| 
      
 5283 
     | 
    
         
            +
                };
         
     | 
| 
      
 5284 
     | 
    
         
            +
             
     | 
| 
      
 5285 
     | 
    
         
            +
                /**
         
     | 
| 
      
 5286 
     | 
    
         
            +
                 * returns a function that calls the original
         
     | 
| 
      
 5287 
     | 
    
         
            +
                 * callback function in the correct order.
         
     | 
| 
      
 5288 
     | 
    
         
            +
                 * if we are in pre-Ember.1.8 land, Map/MapWithDefault
         
     | 
| 
      
 5289 
     | 
    
         
            +
                 * forEach calls with key, value, in that order.
         
     | 
| 
      
 5290 
     | 
    
         
            +
                 * >= 1.8 forEach is called with the order value, key as per
         
     | 
| 
      
 5291 
     | 
    
         
            +
                 * the ES6 spec.
         
     | 
| 
      
 5292 
     | 
    
         
            +
                */
         
     | 
| 
      
 5293 
     | 
    
         
            +
                function translate(valueKeyOrderedCallback){
         
     | 
| 
      
 5294 
     | 
    
         
            +
                  return function(key, value){
         
     | 
| 
      
 5295 
     | 
    
         
            +
                    valueKeyOrderedCallback.call(this, value, key);
         
     | 
| 
      
 5296 
     | 
    
         
            +
                  };
         
     | 
| 
      
 5297 
     | 
    
         
            +
                }
         
     | 
| 
      
 5298 
     | 
    
         
            +
             
     | 
| 
      
 5299 
     | 
    
         
            +
                // old, non ES6 compliant behavior
         
     | 
| 
      
 5300 
     | 
    
         
            +
                if (usesOldBehavior){
         
     | 
| 
      
 5301 
     | 
    
         
            +
                  mapForEach = function(callback, thisArg){
         
     | 
| 
      
 5302 
     | 
    
         
            +
                    this.__super$forEach(translate(callback), thisArg);
         
     | 
| 
      
 5303 
     | 
    
         
            +
                  };
         
     | 
| 
      
 5304 
     | 
    
         
            +
             
     | 
| 
      
 5305 
     | 
    
         
            +
                  /* alias to remove */
         
     | 
| 
      
 5306 
     | 
    
         
            +
                  deleteFn = function(thing){
         
     | 
| 
      
 5307 
     | 
    
         
            +
                    this.remove(thing);
         
     | 
| 
      
 5308 
     | 
    
         
            +
                  };
         
     | 
| 
      
 5309 
     | 
    
         
            +
             
     | 
| 
      
 5310 
     | 
    
         
            +
                  Map.prototype.__super$forEach = Ember.Map.prototype.forEach;
         
     | 
| 
      
 5311 
     | 
    
         
            +
                  Map.prototype.forEach = mapForEach;
         
     | 
| 
      
 5312 
     | 
    
         
            +
                  Map.prototype["delete"] = deleteFn;
         
     | 
| 
      
 5313 
     | 
    
         
            +
             
     | 
| 
      
 5314 
     | 
    
         
            +
                  MapWithDefault.prototype.forEach = mapForEach;
         
     | 
| 
      
 5315 
     | 
    
         
            +
                  MapWithDefault.prototype.__super$forEach = Ember.MapWithDefault.prototype.forEach;
         
     | 
| 
      
 5316 
     | 
    
         
            +
                  MapWithDefault.prototype["delete"] = deleteFn;
         
     | 
| 
      
 5317 
     | 
    
         
            +
             
     | 
| 
      
 5318 
     | 
    
         
            +
                  OrderedSet.prototype["delete"] = deleteFn;
         
     | 
| 
      
 5319 
     | 
    
         
            +
                }
         
     | 
| 
      
 5320 
     | 
    
         
            +
             
     | 
| 
      
 5321 
     | 
    
         
            +
                MapWithDefault.constructor = MapWithDefault;
         
     | 
| 
      
 5322 
     | 
    
         
            +
                Map.constructor = Map;
         
     | 
| 
      
 5323 
     | 
    
         
            +
             
     | 
| 
      
 5324 
     | 
    
         
            +
                MapWithDefault.create = function(options){
         
     | 
| 
      
 5325 
     | 
    
         
            +
                  if (options) {
         
     | 
| 
      
 5326 
     | 
    
         
            +
                    return new MapWithDefault(options);
         
     | 
| 
      
 5327 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 5328 
     | 
    
         
            +
                    return new Map();
         
     | 
| 
      
 5329 
     | 
    
         
            +
                  }
         
     | 
| 
      
 5330 
     | 
    
         
            +
                };
         
     | 
| 
      
 5331 
     | 
    
         
            +
             
     | 
| 
      
 5332 
     | 
    
         
            +
                Map.create = function(){
         
     | 
| 
      
 5333 
     | 
    
         
            +
                  return new this.constructor();
         
     | 
| 
      
 5334 
     | 
    
         
            +
                };
         
     | 
| 
      
 5335 
     | 
    
         
            +
             
     | 
| 
      
 5336 
     | 
    
         
            +
                __exports__["default"] = Map;
         
     | 
| 
      
 5337 
     | 
    
         
            +
                __exports__.Map = Map;
         
     | 
| 
      
 5338 
     | 
    
         
            +
                __exports__.MapWithDefault = MapWithDefault;
         
     | 
| 
      
 5339 
     | 
    
         
            +
                __exports__.OrderedSet = OrderedSet;
         
     | 
| 
      
 5340 
     | 
    
         
            +
              });
         
     | 
| 
       5198 
5341 
     | 
    
         
             
            define("ember-data/system/model",
         
     | 
| 
       5199 
5342 
     | 
    
         
             
              ["ember-data/system/model/model","ember-data/system/model/attributes","ember-data/system/model/states","ember-data/system/model/errors","exports"],
         
     | 
| 
       5200 
5343 
     | 
    
         
             
              function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
         
     | 
| 
         @@ -5214,10 +5357,11 @@ define("ember-data/system/model", 
     | 
|
| 
       5214 
5357 
     | 
    
         
             
                __exports__.Errors = Errors;
         
     | 
| 
       5215 
5358 
     | 
    
         
             
              });
         
     | 
| 
       5216 
5359 
     | 
    
         
             
            define("ember-data/system/model/attributes",
         
     | 
| 
       5217 
     | 
    
         
            -
              ["ember-data/system/model/model","exports"],
         
     | 
| 
       5218 
     | 
    
         
            -
              function(__dependency1__, __exports__) {
         
     | 
| 
      
 5360 
     | 
    
         
            +
              ["ember-data/system/model/model","ember-data/system/map","exports"],
         
     | 
| 
      
 5361 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __exports__) {
         
     | 
| 
       5219 
5362 
     | 
    
         
             
                "use strict";
         
     | 
| 
       5220 
5363 
     | 
    
         
             
                var Model = __dependency1__["default"];
         
     | 
| 
      
 5364 
     | 
    
         
            +
                var Map = __dependency2__.Map;
         
     | 
| 
       5221 
5365 
     | 
    
         | 
| 
       5222 
5366 
     | 
    
         
             
                /**
         
     | 
| 
       5223 
5367 
     | 
    
         
             
                  @module ember-data
         
     | 
| 
         @@ -5263,7 +5407,7 @@ define("ember-data/system/model/attributes", 
     | 
|
| 
       5263 
5407 
     | 
    
         
             
                    @readOnly
         
     | 
| 
       5264 
5408 
     | 
    
         
             
                  */
         
     | 
| 
       5265 
5409 
     | 
    
         
             
                  attributes: Ember.computed(function() {
         
     | 
| 
       5266 
     | 
    
         
            -
                    var map =  
     | 
| 
      
 5410 
     | 
    
         
            +
                    var map = Map.create();
         
     | 
| 
       5267 
5411 
     | 
    
         | 
| 
       5268 
5412 
     | 
    
         
             
                    this.eachComputedProperty(function(name, meta) {
         
     | 
| 
       5269 
5413 
     | 
    
         
             
                      if (meta.isAttribute) {
         
     | 
| 
         @@ -5309,7 +5453,7 @@ define("ember-data/system/model/attributes", 
     | 
|
| 
       5309 
5453 
     | 
    
         
             
                    @readOnly
         
     | 
| 
       5310 
5454 
     | 
    
         
             
                  */
         
     | 
| 
       5311 
5455 
     | 
    
         
             
                  transformedAttributes: Ember.computed(function() {
         
     | 
| 
       5312 
     | 
    
         
            -
                    var map =  
     | 
| 
      
 5456 
     | 
    
         
            +
                    var map = Map.create();
         
     | 
| 
       5313 
5457 
     | 
    
         | 
| 
       5314 
5458 
     | 
    
         
             
                    this.eachAttribute(function(key, meta) {
         
     | 
| 
       5315 
5459 
     | 
    
         
             
                      if (meta.type) {
         
     | 
| 
         @@ -5362,7 +5506,7 @@ define("ember-data/system/model/attributes", 
     | 
|
| 
       5362 
5506 
     | 
    
         
             
                    @static
         
     | 
| 
       5363 
5507 
     | 
    
         
             
                  */
         
     | 
| 
       5364 
5508 
     | 
    
         
             
                  eachAttribute: function(callback, binding) {
         
     | 
| 
       5365 
     | 
    
         
            -
                    get(this, 'attributes').forEach(function( 
     | 
| 
      
 5509 
     | 
    
         
            +
                    get(this, 'attributes').forEach(function(meta, name) {
         
     | 
| 
       5366 
5510 
     | 
    
         
             
                      callback.call(binding, name, meta);
         
     | 
| 
       5367 
5511 
     | 
    
         
             
                    }, binding);
         
     | 
| 
       5368 
5512 
     | 
    
         
             
                  },
         
     | 
| 
         @@ -5410,7 +5554,7 @@ define("ember-data/system/model/attributes", 
     | 
|
| 
       5410 
5554 
     | 
    
         
             
                    @static
         
     | 
| 
       5411 
5555 
     | 
    
         
             
                  */
         
     | 
| 
       5412 
5556 
     | 
    
         
             
                  eachTransformedAttribute: function(callback, binding) {
         
     | 
| 
       5413 
     | 
    
         
            -
                    get(this, 'transformedAttributes').forEach(function( 
     | 
| 
      
 5557 
     | 
    
         
            +
                    get(this, 'transformedAttributes').forEach(function(type, name) {
         
     | 
| 
       5414 
5558 
     | 
    
         
             
                      callback.call(binding, name, type);
         
     | 
| 
       5415 
5559 
     | 
    
         
             
                    });
         
     | 
| 
       5416 
5560 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -5524,13 +5668,15 @@ define("ember-data/system/model/attributes", 
     | 
|
| 
       5524 
5668 
     | 
    
         
             
                };
         
     | 
| 
       5525 
5669 
     | 
    
         
             
              });
         
     | 
| 
       5526 
5670 
     | 
    
         
             
            define("ember-data/system/model/errors",
         
     | 
| 
       5527 
     | 
    
         
            -
              ["exports"],
         
     | 
| 
       5528 
     | 
    
         
            -
              function(__exports__) {
         
     | 
| 
      
 5671 
     | 
    
         
            +
              ["ember-data/system/map","exports"],
         
     | 
| 
      
 5672 
     | 
    
         
            +
              function(__dependency1__, __exports__) {
         
     | 
| 
       5529 
5673 
     | 
    
         
             
                "use strict";
         
     | 
| 
       5530 
5674 
     | 
    
         
             
                var get = Ember.get;
         
     | 
| 
       5531 
5675 
     | 
    
         
             
                var isEmpty = Ember.isEmpty;
         
     | 
| 
       5532 
5676 
     | 
    
         
             
                var map = Ember.EnumerableUtils.map;
         
     | 
| 
       5533 
5677 
     | 
    
         | 
| 
      
 5678 
     | 
    
         
            +
                var MapWithDefault = __dependency1__.MapWithDefault;
         
     | 
| 
      
 5679 
     | 
    
         
            +
             
     | 
| 
       5534 
5680 
     | 
    
         
             
                /**
         
     | 
| 
       5535 
5681 
     | 
    
         
             
                @module ember-data
         
     | 
| 
       5536 
5682 
     | 
    
         
             
                */
         
     | 
| 
         @@ -5627,7 +5773,7 @@ define("ember-data/system/model/errors", 
     | 
|
| 
       5627 
5773 
     | 
    
         
             
                  */
         
     | 
| 
       5628 
5774 
     | 
    
         
             
                  errorsByAttributeName: Ember.reduceComputed("content", {
         
     | 
| 
       5629 
5775 
     | 
    
         
             
                    initialValue: function() {
         
     | 
| 
       5630 
     | 
    
         
            -
                      return  
     | 
| 
      
 5776 
     | 
    
         
            +
                      return MapWithDefault.create({
         
     | 
| 
       5631 
5777 
     | 
    
         
             
                        defaultValue: function() {
         
     | 
| 
       5632 
5778 
     | 
    
         
             
                          return Ember.A();
         
     | 
| 
       5633 
5779 
     | 
    
         
             
                        }
         
     | 
| 
         @@ -6319,6 +6465,27 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6319 
6465 
     | 
    
         
             
                    this._attributes = {};
         
     | 
| 
       6320 
6466 
     | 
    
         
             
                    this._inFlightAttributes = {};
         
     | 
| 
       6321 
6467 
     | 
    
         
             
                    this._relationships = {};
         
     | 
| 
      
 6468 
     | 
    
         
            +
                    /*
         
     | 
| 
      
 6469 
     | 
    
         
            +
                      implicit relationships are relationship which have not been declared but the inverse side exists on
         
     | 
| 
      
 6470 
     | 
    
         
            +
                      another record somewhere
         
     | 
| 
      
 6471 
     | 
    
         
            +
                      For example if there was
         
     | 
| 
      
 6472 
     | 
    
         
            +
                      ```
         
     | 
| 
      
 6473 
     | 
    
         
            +
                        App.Comment = DS.Model.extend({
         
     | 
| 
      
 6474 
     | 
    
         
            +
                          name: DS.attr()
         
     | 
| 
      
 6475 
     | 
    
         
            +
                        })
         
     | 
| 
      
 6476 
     | 
    
         
            +
                      ```
         
     | 
| 
      
 6477 
     | 
    
         
            +
                      but there is also
         
     | 
| 
      
 6478 
     | 
    
         
            +
                      ```
         
     | 
| 
      
 6479 
     | 
    
         
            +
                        App.Post = DS.Model.extend({
         
     | 
| 
      
 6480 
     | 
    
         
            +
                          name: DS.attr(),
         
     | 
| 
      
 6481 
     | 
    
         
            +
                          comments: DS.hasMany('comment')
         
     | 
| 
      
 6482 
     | 
    
         
            +
                        })
         
     | 
| 
      
 6483 
     | 
    
         
            +
                      ```
         
     | 
| 
      
 6484 
     | 
    
         
            +
             
     | 
| 
      
 6485 
     | 
    
         
            +
                      would have a implicit post relationship in order to be do things like remove ourselves from the post
         
     | 
| 
      
 6486 
     | 
    
         
            +
                      when we are deleted
         
     | 
| 
      
 6487 
     | 
    
         
            +
                    */
         
     | 
| 
      
 6488 
     | 
    
         
            +
                    this._implicitRelationships = Object.create(null);
         
     | 
| 
       6322 
6489 
     | 
    
         
             
                    var model = this;
         
     | 
| 
       6323 
6490 
     | 
    
         
             
                    //TODO Move into a getter for better perf
         
     | 
| 
       6324 
6491 
     | 
    
         
             
                    this.constructor.eachRelationship(function(key, descriptor) {
         
     | 
| 
         @@ -6516,6 +6683,27 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6516 
6683 
     | 
    
         
             
                    }, this);
         
     | 
| 
       6517 
6684 
     | 
    
         
             
                  },
         
     | 
| 
       6518 
6685 
     | 
    
         | 
| 
      
 6686 
     | 
    
         
            +
                  disconnectRelationships: function() {
         
     | 
| 
      
 6687 
     | 
    
         
            +
                    this.eachRelationship(function(name, relationship) {
         
     | 
| 
      
 6688 
     | 
    
         
            +
                      this._relationships[name].disconnect();
         
     | 
| 
      
 6689 
     | 
    
         
            +
                    }, this);
         
     | 
| 
      
 6690 
     | 
    
         
            +
                    var model = this;
         
     | 
| 
      
 6691 
     | 
    
         
            +
                    forEach.call(Ember.keys(this._implicitRelationships), function(key) {
         
     | 
| 
      
 6692 
     | 
    
         
            +
                      model._implicitRelationships[key].disconnect();
         
     | 
| 
      
 6693 
     | 
    
         
            +
                    });
         
     | 
| 
      
 6694 
     | 
    
         
            +
                  },
         
     | 
| 
      
 6695 
     | 
    
         
            +
             
     | 
| 
      
 6696 
     | 
    
         
            +
                  reconnectRelationships: function() {
         
     | 
| 
      
 6697 
     | 
    
         
            +
                    this.eachRelationship(function(name, relationship) {
         
     | 
| 
      
 6698 
     | 
    
         
            +
                      this._relationships[name].reconnect();
         
     | 
| 
      
 6699 
     | 
    
         
            +
                    }, this);
         
     | 
| 
      
 6700 
     | 
    
         
            +
                    var model = this;
         
     | 
| 
      
 6701 
     | 
    
         
            +
                    forEach.call(Ember.keys(this._implicitRelationships), function(key) {
         
     | 
| 
      
 6702 
     | 
    
         
            +
                      model._implicitRelationships[key].reconnect();
         
     | 
| 
      
 6703 
     | 
    
         
            +
                    });
         
     | 
| 
      
 6704 
     | 
    
         
            +
                  },
         
     | 
| 
      
 6705 
     | 
    
         
            +
             
     | 
| 
      
 6706 
     | 
    
         
            +
             
     | 
| 
       6519 
6707 
     | 
    
         
             
                  /**
         
     | 
| 
       6520 
6708 
     | 
    
         
             
                    @method updateRecordArrays
         
     | 
| 
       6521 
6709 
     | 
    
         
             
                    @private
         
     | 
| 
         @@ -6737,6 +6925,13 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6737 
6925 
     | 
    
         
             
                      set(this, 'isError', false);
         
     | 
| 
       6738 
6926 
     | 
    
         
             
                    }
         
     | 
| 
       6739 
6927 
     | 
    
         | 
| 
      
 6928 
     | 
    
         
            +
                    //Eventually rollback will always work for relationships
         
     | 
| 
      
 6929 
     | 
    
         
            +
                    //For now we support it only out of deleted state, because we
         
     | 
| 
      
 6930 
     | 
    
         
            +
                    //have an explicit way of knowing when the server acked the relationship change
         
     | 
| 
      
 6931 
     | 
    
         
            +
                    if (get(this, 'isDeleted')) {
         
     | 
| 
      
 6932 
     | 
    
         
            +
                      this.reconnectRelationships();
         
     | 
| 
      
 6933 
     | 
    
         
            +
                    }
         
     | 
| 
      
 6934 
     | 
    
         
            +
             
     | 
| 
       6740 
6935 
     | 
    
         
             
                    if (!get(this, 'isValid')) {
         
     | 
| 
       6741 
6936 
     | 
    
         
             
                      this._inFlightAttributes = {};
         
     | 
| 
       6742 
6937 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -6752,7 +6947,7 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6752 
6947 
     | 
    
         | 
| 
       6753 
6948 
     | 
    
         
             
                  /**
         
     | 
| 
       6754 
6949 
     | 
    
         
             
                    Save the record and persist any changes to the record to an
         
     | 
| 
       6755 
     | 
    
         
            -
                     
     | 
| 
      
 6950 
     | 
    
         
            +
                    external source via the adapter.
         
     | 
| 
       6756 
6951 
     | 
    
         | 
| 
       6757 
6952 
     | 
    
         
             
                    Example
         
     | 
| 
       6758 
6953 
     | 
    
         | 
| 
         @@ -6819,7 +7014,9 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6819 
7014 
     | 
    
         
             
                    }, function(reason) {
         
     | 
| 
       6820 
7015 
     | 
    
         
             
                      record.set('isError', true);
         
     | 
| 
       6821 
7016 
     | 
    
         
             
                      throw reason;
         
     | 
| 
       6822 
     | 
    
         
            -
                    }, "DS: Model#reload complete, update flags") 
     | 
| 
      
 7017 
     | 
    
         
            +
                    }, "DS: Model#reload complete, update flags")['finally'](function () {
         
     | 
| 
      
 7018 
     | 
    
         
            +
                      record.updateRecordArrays();
         
     | 
| 
      
 7019 
     | 
    
         
            +
                    });
         
     | 
| 
       6823 
7020 
     | 
    
         | 
| 
       6824 
7021 
     | 
    
         
             
                    return PromiseObject.create({
         
     | 
| 
       6825 
7022 
     | 
    
         
             
                      promise: promise
         
     | 
| 
         @@ -6875,15 +7072,32 @@ define("ember-data/system/model/model", 
     | 
|
| 
       6875 
7072 
     | 
    
         | 
| 
       6876 
7073 
     | 
    
         
             
                    @method trigger
         
     | 
| 
       6877 
7074 
     | 
    
         
             
                    @private
         
     | 
| 
       6878 
     | 
    
         
            -
                    @param name
         
     | 
| 
      
 7075 
     | 
    
         
            +
                    @param {String} name
         
     | 
| 
       6879 
7076 
     | 
    
         
             
                  */
         
     | 
| 
       6880 
     | 
    
         
            -
                  trigger: function( 
     | 
| 
       6881 
     | 
    
         
            -
                     
     | 
| 
      
 7077 
     | 
    
         
            +
                  trigger: function() {
         
     | 
| 
      
 7078 
     | 
    
         
            +
                    var length = arguments.length;
         
     | 
| 
      
 7079 
     | 
    
         
            +
                    var args = new Array(length - 1);
         
     | 
| 
      
 7080 
     | 
    
         
            +
                    var name = arguments[0];
         
     | 
| 
      
 7081 
     | 
    
         
            +
             
     | 
| 
      
 7082 
     | 
    
         
            +
                    for (var i = 1; i < length; i++ ){
         
     | 
| 
      
 7083 
     | 
    
         
            +
                      args[i - 1] = arguments[i];
         
     | 
| 
      
 7084 
     | 
    
         
            +
                    }
         
     | 
| 
      
 7085 
     | 
    
         
            +
             
     | 
| 
      
 7086 
     | 
    
         
            +
                    Ember.tryInvoke(this, name, args);
         
     | 
| 
       6882 
7087 
     | 
    
         
             
                    this._super.apply(this, arguments);
         
     | 
| 
       6883 
7088 
     | 
    
         
             
                  },
         
     | 
| 
       6884 
7089 
     | 
    
         | 
| 
       6885 
7090 
     | 
    
         
             
                  triggerLater: function() {
         
     | 
| 
       6886 
     | 
    
         
            -
                     
     | 
| 
      
 7091 
     | 
    
         
            +
                    var length = arguments.length;
         
     | 
| 
      
 7092 
     | 
    
         
            +
                    var args = new Array(length);
         
     | 
| 
      
 7093 
     | 
    
         
            +
             
     | 
| 
      
 7094 
     | 
    
         
            +
                    for (var i = 0; i < length; i++ ){
         
     | 
| 
      
 7095 
     | 
    
         
            +
                      args[i] = arguments[i];
         
     | 
| 
      
 7096 
     | 
    
         
            +
                    }
         
     | 
| 
      
 7097 
     | 
    
         
            +
             
     | 
| 
      
 7098 
     | 
    
         
            +
                    if (this._deferredTriggers.push(args) !== 1) {
         
     | 
| 
      
 7099 
     | 
    
         
            +
                      return;
         
     | 
| 
      
 7100 
     | 
    
         
            +
                    }
         
     | 
| 
       6887 
7101 
     | 
    
         
             
                    Ember.run.schedule('actions', this, '_triggerDeferredTriggers');
         
     | 
| 
       6888 
7102 
     | 
    
         
             
                  },
         
     | 
| 
       6889 
7103 
     | 
    
         | 
| 
         @@ -7267,7 +7481,7 @@ define("ember-data/system/model/states", 
     | 
|
| 
       7267 
7481 
     | 
    
         
             
                    // EVENTS
         
     | 
| 
       7268 
7482 
     | 
    
         
             
                    deleteRecord: function(record) {
         
     | 
| 
       7269 
7483 
     | 
    
         
             
                      record.transitionTo('deleted.uncommitted');
         
     | 
| 
       7270 
     | 
    
         
            -
                      record. 
     | 
| 
      
 7484 
     | 
    
         
            +
                      record.disconnectRelationships();
         
     | 
| 
       7271 
7485 
     | 
    
         
             
                    },
         
     | 
| 
       7272 
7486 
     | 
    
         | 
| 
       7273 
7487 
     | 
    
         
             
                    didSetProperty: function(record, context) {
         
     | 
| 
         @@ -7348,7 +7562,7 @@ define("ember-data/system/model/states", 
     | 
|
| 
       7348 
7562 
     | 
    
         
             
                });
         
     | 
| 
       7349 
7563 
     | 
    
         | 
| 
       7350 
7564 
     | 
    
         
             
                createdState.uncommitted.deleteRecord = function(record) {
         
     | 
| 
       7351 
     | 
    
         
            -
                  record. 
     | 
| 
      
 7565 
     | 
    
         
            +
                  record.disconnectRelationships();
         
     | 
| 
       7352 
7566 
     | 
    
         
             
                  record.transitionTo('deleted.saved');
         
     | 
| 
       7353 
7567 
     | 
    
         
             
                };
         
     | 
| 
       7354 
7568 
     | 
    
         | 
| 
         @@ -7367,7 +7581,7 @@ define("ember-data/system/model/states", 
     | 
|
| 
       7367 
7581 
     | 
    
         | 
| 
       7368 
7582 
     | 
    
         
             
                updatedState.uncommitted.deleteRecord = function(record) {
         
     | 
| 
       7369 
7583 
     | 
    
         
             
                  record.transitionTo('deleted.uncommitted');
         
     | 
| 
       7370 
     | 
    
         
            -
                  record. 
     | 
| 
      
 7584 
     | 
    
         
            +
                  record.disconnectRelationships();
         
     | 
| 
       7371 
7585 
     | 
    
         
             
                };
         
     | 
| 
       7372 
7586 
     | 
    
         | 
| 
       7373 
7587 
     | 
    
         
             
                var RootState = {
         
     | 
| 
         @@ -7508,7 +7722,7 @@ define("ember-data/system/model/states", 
     | 
|
| 
       7508 
7722 
     | 
    
         | 
| 
       7509 
7723 
     | 
    
         
             
                      deleteRecord: function(record) {
         
     | 
| 
       7510 
7724 
     | 
    
         
             
                        record.transitionTo('deleted.uncommitted');
         
     | 
| 
       7511 
     | 
    
         
            -
                        record. 
     | 
| 
      
 7725 
     | 
    
         
            +
                        record.disconnectRelationships();
         
     | 
| 
       7512 
7726 
     | 
    
         
             
                      },
         
     | 
| 
       7513 
7727 
     | 
    
         | 
| 
       7514 
7728 
     | 
    
         
             
                      unloadRecord: function(record) {
         
     | 
| 
         @@ -7665,6 +7879,7 @@ define("ember-data/system/promise_proxies", 
     | 
|
| 
       7665 
7879 
     | 
    
         
             
              function(__exports__) {
         
     | 
| 
       7666 
7880 
     | 
    
         
             
                "use strict";
         
     | 
| 
       7667 
7881 
     | 
    
         
             
                var Promise = Ember.RSVP.Promise;
         
     | 
| 
      
 7882 
     | 
    
         
            +
                var get = Ember.get;
         
     | 
| 
       7668 
7883 
     | 
    
         | 
| 
       7669 
7884 
     | 
    
         
             
                /**
         
     | 
| 
       7670 
7885 
     | 
    
         
             
                  A `PromiseArray` is an object that acts like both an `Ember.Array`
         
     | 
| 
         @@ -7740,14 +7955,38 @@ define("ember-data/system/promise_proxies", 
     | 
|
| 
       7740 
7955 
     | 
    
         
             
                  });
         
     | 
| 
       7741 
7956 
     | 
    
         
             
                };
         
     | 
| 
       7742 
7957 
     | 
    
         | 
| 
      
 7958 
     | 
    
         
            +
                /**
         
     | 
| 
      
 7959 
     | 
    
         
            +
                  A PromiseManyArray is a PromiseArray that also proxies certain method calls
         
     | 
| 
      
 7960 
     | 
    
         
            +
                  to the underlying manyArray.
         
     | 
| 
      
 7961 
     | 
    
         
            +
                  Right now we proxy:
         
     | 
| 
      
 7962 
     | 
    
         
            +
                    `reload()`
         
     | 
| 
      
 7963 
     | 
    
         
            +
                */
         
     | 
| 
      
 7964 
     | 
    
         
            +
             
     | 
| 
      
 7965 
     | 
    
         
            +
                var PromiseManyArray = PromiseArray.extend({
         
     | 
| 
      
 7966 
     | 
    
         
            +
                  reload: function() {
         
     | 
| 
      
 7967 
     | 
    
         
            +
                    //I don't think this should ever happen right now, but worth guarding if we refactor the async relationships
         
     | 
| 
      
 7968 
     | 
    
         
            +
                    Ember.assert('You are trying to reload an async manyArray before it has been created', get(this, 'content'));
         
     | 
| 
      
 7969 
     | 
    
         
            +
                    return get(this, 'content').reload();
         
     | 
| 
      
 7970 
     | 
    
         
            +
                  }
         
     | 
| 
      
 7971 
     | 
    
         
            +
                });
         
     | 
| 
      
 7972 
     | 
    
         
            +
             
     | 
| 
      
 7973 
     | 
    
         
            +
                var promiseManyArray = function(promise, label) {
         
     | 
| 
      
 7974 
     | 
    
         
            +
                  return PromiseManyArray.create({
         
     | 
| 
      
 7975 
     | 
    
         
            +
                    promise: Promise.resolve(promise, label)
         
     | 
| 
      
 7976 
     | 
    
         
            +
                  });
         
     | 
| 
      
 7977 
     | 
    
         
            +
                };
         
     | 
| 
      
 7978 
     | 
    
         
            +
             
     | 
| 
      
 7979 
     | 
    
         
            +
             
     | 
| 
       7743 
7980 
     | 
    
         
             
                __exports__.PromiseArray = PromiseArray;
         
     | 
| 
       7744 
7981 
     | 
    
         
             
                __exports__.PromiseObject = PromiseObject;
         
     | 
| 
      
 7982 
     | 
    
         
            +
                __exports__.PromiseManyArray = PromiseManyArray;
         
     | 
| 
       7745 
7983 
     | 
    
         
             
                __exports__.promiseArray = promiseArray;
         
     | 
| 
       7746 
7984 
     | 
    
         
             
                __exports__.promiseObject = promiseObject;
         
     | 
| 
      
 7985 
     | 
    
         
            +
                __exports__.promiseManyArray = promiseManyArray;
         
     | 
| 
       7747 
7986 
     | 
    
         
             
              });
         
     | 
| 
       7748 
7987 
     | 
    
         
             
            define("ember-data/system/record_array_manager",
         
     | 
| 
       7749 
     | 
    
         
            -
              ["ember-data/system/record_arrays","exports"],
         
     | 
| 
       7750 
     | 
    
         
            -
              function(__dependency1__, __exports__) {
         
     | 
| 
      
 7988 
     | 
    
         
            +
              ["ember-data/system/record_arrays","ember-data/system/map","exports"],
         
     | 
| 
      
 7989 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __exports__) {
         
     | 
| 
       7751 
7990 
     | 
    
         
             
                "use strict";
         
     | 
| 
       7752 
7991 
     | 
    
         
             
                /**
         
     | 
| 
       7753 
7992 
     | 
    
         
             
                  @module ember-data
         
     | 
| 
         @@ -7757,6 +7996,8 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7757 
7996 
     | 
    
         
             
                var FilteredRecordArray = __dependency1__.FilteredRecordArray;
         
     | 
| 
       7758 
7997 
     | 
    
         
             
                var AdapterPopulatedRecordArray = __dependency1__.AdapterPopulatedRecordArray;
         
     | 
| 
       7759 
7998 
     | 
    
         
             
                var ManyArray = __dependency1__.ManyArray;
         
     | 
| 
      
 7999 
     | 
    
         
            +
                var MapWithDefault = __dependency2__.MapWithDefault;
         
     | 
| 
      
 8000 
     | 
    
         
            +
                var OrderedSet = __dependency2__.OrderedSet;
         
     | 
| 
       7760 
8001 
     | 
    
         
             
                var get = Ember.get;
         
     | 
| 
       7761 
8002 
     | 
    
         
             
                var forEach = Ember.EnumerableUtils.forEach;
         
     | 
| 
       7762 
8003 
     | 
    
         | 
| 
         @@ -7768,7 +8009,7 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7768 
8009 
     | 
    
         
             
                */
         
     | 
| 
       7769 
8010 
     | 
    
         
             
                __exports__["default"] = Ember.Object.extend({
         
     | 
| 
       7770 
8011 
     | 
    
         
             
                  init: function() {
         
     | 
| 
       7771 
     | 
    
         
            -
                    this.filteredRecordArrays =  
     | 
| 
      
 8012 
     | 
    
         
            +
                    this.filteredRecordArrays = MapWithDefault.create({
         
     | 
| 
       7772 
8013 
     | 
    
         
             
                      defaultValue: function() { return []; }
         
     | 
| 
       7773 
8014 
     | 
    
         
             
                    });
         
     | 
| 
       7774 
8015 
     | 
    
         | 
| 
         @@ -7783,7 +8024,7 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7783 
8024 
     | 
    
         
             
                  },
         
     | 
| 
       7784 
8025 
     | 
    
         | 
| 
       7785 
8026 
     | 
    
         
             
                  recordArraysForRecord: function(record) {
         
     | 
| 
       7786 
     | 
    
         
            -
                    record._recordArrays = record._recordArrays ||  
     | 
| 
      
 8027 
     | 
    
         
            +
                    record._recordArrays = record._recordArrays || OrderedSet.create();
         
     | 
| 
       7787 
8028 
     | 
    
         
             
                    return record._recordArrays;
         
     | 
| 
       7788 
8029 
     | 
    
         
             
                  },
         
     | 
| 
       7789 
8030 
     | 
    
         | 
| 
         @@ -7816,9 +8057,11 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7816 
8057 
     | 
    
         | 
| 
       7817 
8058 
     | 
    
         
             
                    if (!recordArrays) { return; }
         
     | 
| 
       7818 
8059 
     | 
    
         | 
| 
       7819 
     | 
    
         
            -
                    forEach( 
     | 
| 
      
 8060 
     | 
    
         
            +
                    recordArrays.forEach(function(array){
         
     | 
| 
       7820 
8061 
     | 
    
         
             
                      array.removeRecord(record);
         
     | 
| 
       7821 
8062 
     | 
    
         
             
                    });
         
     | 
| 
      
 8063 
     | 
    
         
            +
             
     | 
| 
      
 8064 
     | 
    
         
            +
                    record._recordArrays = null;
         
     | 
| 
       7822 
8065 
     | 
    
         
             
                  },
         
     | 
| 
       7823 
8066 
     | 
    
         | 
| 
       7824 
8067 
     | 
    
         
             
                  _recordWasChanged: function (record) {
         
     | 
| 
         @@ -7870,7 +8113,7 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7870 
8113 
     | 
    
         
             
                        recordArrays.add(array);
         
     | 
| 
       7871 
8114 
     | 
    
         
             
                      }
         
     | 
| 
       7872 
8115 
     | 
    
         
             
                    } else if (!shouldBeInArray) {
         
     | 
| 
       7873 
     | 
    
         
            -
                      recordArrays 
     | 
| 
      
 8116 
     | 
    
         
            +
                      recordArrays["delete"](array);
         
     | 
| 
       7874 
8117 
     | 
    
         
             
                      array.removeRecord(record);
         
     | 
| 
       7875 
8118 
     | 
    
         
             
                    }
         
     | 
| 
       7876 
8119 
     | 
    
         
             
                  },
         
     | 
| 
         @@ -7883,9 +8126,9 @@ define("ember-data/system/record_array_manager", 
     | 
|
| 
       7883 
8126 
     | 
    
         
             
                    method is invoked when the filter is created in th first place.
         
     | 
| 
       7884 
8127 
     | 
    
         | 
| 
       7885 
8128 
     | 
    
         
             
                    @method updateFilter
         
     | 
| 
       7886 
     | 
    
         
            -
                    @param array
         
     | 
| 
       7887 
     | 
    
         
            -
                    @param type
         
     | 
| 
       7888 
     | 
    
         
            -
                    @param filter
         
     | 
| 
      
 8129 
     | 
    
         
            +
                    @param {Array} array
         
     | 
| 
      
 8130 
     | 
    
         
            +
                    @param {String} type
         
     | 
| 
      
 8131 
     | 
    
         
            +
                    @param {Function} filter
         
     | 
| 
       7889 
8132 
     | 
    
         
             
                  */
         
     | 
| 
       7890 
8133 
     | 
    
         
             
                  updateFilter: function(array, type, filter) {
         
     | 
| 
       7891 
8134 
     | 
    
         
             
                    var typeMap = this.store.typeMapFor(type);
         
     | 
| 
         @@ -8259,22 +8502,6 @@ define("ember-data/system/record_arrays/many_array", 
     | 
|
| 
       8259 
8502 
     | 
    
         
             
                    this._super.apply(this, arguments);
         
     | 
| 
       8260 
8503 
     | 
    
         
             
                  },
         
     | 
| 
       8261 
8504 
     | 
    
         | 
| 
       8262 
     | 
    
         
            -
                  /**
         
     | 
| 
       8263 
     | 
    
         
            -
                    The property name of the relationship
         
     | 
| 
       8264 
     | 
    
         
            -
             
     | 
| 
       8265 
     | 
    
         
            -
                    @property {String} name
         
     | 
| 
       8266 
     | 
    
         
            -
                    @private
         
     | 
| 
       8267 
     | 
    
         
            -
                  */
         
     | 
| 
       8268 
     | 
    
         
            -
                  name: null,
         
     | 
| 
       8269 
     | 
    
         
            -
             
     | 
| 
       8270 
     | 
    
         
            -
                  /**
         
     | 
| 
       8271 
     | 
    
         
            -
                    The record to which this relationship belongs.
         
     | 
| 
       8272 
     | 
    
         
            -
             
     | 
| 
       8273 
     | 
    
         
            -
                    @property {DS.Model} owner
         
     | 
| 
       8274 
     | 
    
         
            -
                    @private
         
     | 
| 
       8275 
     | 
    
         
            -
                  */
         
     | 
| 
       8276 
     | 
    
         
            -
                  owner: null,
         
     | 
| 
       8277 
     | 
    
         
            -
             
     | 
| 
       8278 
8505 
     | 
    
         
             
                  /**
         
     | 
| 
       8279 
8506 
     | 
    
         
             
                    `true` if the relationship is polymorphic, `false` otherwise.
         
     | 
| 
       8280 
8507 
     | 
    
         | 
| 
         @@ -8337,6 +8564,13 @@ define("ember-data/system/record_arrays/many_array", 
     | 
|
| 
       8337 
8564 
     | 
    
         
             
                      this.get('relationship').addRecords(objects, idx);
         
     | 
| 
       8338 
8565 
     | 
    
         
             
                    }
         
     | 
| 
       8339 
8566 
     | 
    
         
             
                  },
         
     | 
| 
      
 8567 
     | 
    
         
            +
                  /**
         
     | 
| 
      
 8568 
     | 
    
         
            +
                    @method reload
         
     | 
| 
      
 8569 
     | 
    
         
            +
                    @public
         
     | 
| 
      
 8570 
     | 
    
         
            +
                  */
         
     | 
| 
      
 8571 
     | 
    
         
            +
                  reload: function() {
         
     | 
| 
      
 8572 
     | 
    
         
            +
                    return this.relationship.reload();
         
     | 
| 
      
 8573 
     | 
    
         
            +
                  },
         
     | 
| 
       8340 
8574 
     | 
    
         | 
| 
       8341 
8575 
     | 
    
         
             
                  /**
         
     | 
| 
       8342 
8576 
     | 
    
         
             
                    Create a child record within the owner
         
     | 
| 
         @@ -8557,7 +8791,7 @@ define("ember-data/system/record_arrays/record_array", 
     | 
|
| 
       8557 
8791 
     | 
    
         
             
                      var recordArrays = record._recordArrays;
         
     | 
| 
       8558 
8792 
     | 
    
         | 
| 
       8559 
8793 
     | 
    
         
             
                      if (recordArrays) {
         
     | 
| 
       8560 
     | 
    
         
            -
                        recordArrays 
     | 
| 
      
 8794 
     | 
    
         
            +
                        recordArrays["delete"](array);
         
     | 
| 
       8561 
8795 
     | 
    
         
             
                      }
         
     | 
| 
       8562 
8796 
     | 
    
         
             
                    });
         
     | 
| 
       8563 
8797 
     | 
    
         
             
                  },
         
     | 
| 
         @@ -8695,7 +8929,11 @@ define("ember-data/system/relationships/belongs_to", 
     | 
|
| 
       8695 
8929 
     | 
    
         
             
                      if ( value === undefined ) {
         
     | 
| 
       8696 
8930 
     | 
    
         
             
                        value = null;
         
     | 
| 
       8697 
8931 
     | 
    
         
             
                      }
         
     | 
| 
       8698 
     | 
    
         
            -
                       
     | 
| 
      
 8932 
     | 
    
         
            +
                      if (value && value.then) {
         
     | 
| 
      
 8933 
     | 
    
         
            +
                        this._relationships[key].setRecordPromise(value);
         
     | 
| 
      
 8934 
     | 
    
         
            +
                      } else {
         
     | 
| 
      
 8935 
     | 
    
         
            +
                        this._relationships[key].setRecord(value);
         
     | 
| 
      
 8936 
     | 
    
         
            +
                      }
         
     | 
| 
       8699 
8937 
     | 
    
         
             
                    }
         
     | 
| 
       8700 
8938 
     | 
    
         | 
| 
       8701 
8939 
     | 
    
         
             
                    return this._relationships[key].getRecord();
         
     | 
| 
         @@ -8722,14 +8960,17 @@ define("ember-data/system/relationships/belongs_to", 
     | 
|
| 
       8722 
8960 
     | 
    
         
             
                __exports__["default"] = belongsTo;
         
     | 
| 
       8723 
8961 
     | 
    
         
             
              });
         
     | 
| 
       8724 
8962 
     | 
    
         
             
            define("ember-data/system/relationships/ext",
         
     | 
| 
       8725 
     | 
    
         
            -
              ["ember-data/system/relationship-meta","ember-data/system/model"],
         
     | 
| 
       8726 
     | 
    
         
            -
              function(__dependency1__, __dependency2__) {
         
     | 
| 
      
 8963 
     | 
    
         
            +
              ["ember-data/system/relationship-meta","ember-data/system/model","ember-data/system/map"],
         
     | 
| 
      
 8964 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __dependency3__) {
         
     | 
| 
       8727 
8965 
     | 
    
         
             
                "use strict";
         
     | 
| 
       8728 
8966 
     | 
    
         
             
                var typeForRelationshipMeta = __dependency1__.typeForRelationshipMeta;
         
     | 
| 
       8729 
8967 
     | 
    
         
             
                var relationshipFromMeta = __dependency1__.relationshipFromMeta;
         
     | 
| 
       8730 
8968 
     | 
    
         
             
                var Model = __dependency2__.Model;
         
     | 
| 
      
 8969 
     | 
    
         
            +
                var Map = __dependency3__.Map;
         
     | 
| 
      
 8970 
     | 
    
         
            +
                var MapWithDefault = __dependency3__.MapWithDefault;
         
     | 
| 
       8731 
8971 
     | 
    
         | 
| 
       8732 
8972 
     | 
    
         
             
                var get = Ember.get;
         
     | 
| 
      
 8973 
     | 
    
         
            +
                var filter = Ember.ArrayPolyfills.filter;
         
     | 
| 
       8733 
8974 
     | 
    
         | 
| 
       8734 
8975 
     | 
    
         
             
                /**
         
     | 
| 
       8735 
8976 
     | 
    
         
             
                  @module ember-data
         
     | 
| 
         @@ -8768,9 +9009,9 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8768 
9009 
     | 
    
         
             
                    property returned by `DS.belongsTo` as the value.
         
     | 
| 
       8769 
9010 
     | 
    
         | 
| 
       8770 
9011 
     | 
    
         
             
                    @method didDefineProperty
         
     | 
| 
       8771 
     | 
    
         
            -
                    @param proto
         
     | 
| 
       8772 
     | 
    
         
            -
                    @param key
         
     | 
| 
       8773 
     | 
    
         
            -
                    @param value
         
     | 
| 
      
 9012 
     | 
    
         
            +
                    @param {Object} proto
         
     | 
| 
      
 9013 
     | 
    
         
            +
                    @param {String} key
         
     | 
| 
      
 9014 
     | 
    
         
            +
                    @param {Ember.ComputedProperty} value
         
     | 
| 
       8774 
9015 
     | 
    
         
             
                  */
         
     | 
| 
       8775 
9016 
     | 
    
         
             
                  didDefineProperty: function(proto, key, value) {
         
     | 
| 
       8776 
9017 
     | 
    
         
             
                    // Check if the value being set is a computed property.
         
     | 
| 
         @@ -8804,6 +9045,7 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8804 
9045 
     | 
    
         
             
                */
         
     | 
| 
       8805 
9046 
     | 
    
         | 
| 
       8806 
9047 
     | 
    
         
             
                Model.reopenClass({
         
     | 
| 
      
 9048 
     | 
    
         
            +
             
     | 
| 
       8807 
9049 
     | 
    
         
             
                  /**
         
     | 
| 
       8808 
9050 
     | 
    
         
             
                    For a given relationship name, returns the model type of the relationship.
         
     | 
| 
       8809 
9051 
     | 
    
         | 
| 
         @@ -8827,17 +9069,59 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8827 
9069 
     | 
    
         
             
                    return relationship && relationship.type;
         
     | 
| 
       8828 
9070 
     | 
    
         
             
                  },
         
     | 
| 
       8829 
9071 
     | 
    
         | 
| 
      
 9072 
     | 
    
         
            +
                  inverseMap: Ember.computed(function() {
         
     | 
| 
      
 9073 
     | 
    
         
            +
                    return Object.create(null);
         
     | 
| 
      
 9074 
     | 
    
         
            +
                  }),
         
     | 
| 
      
 9075 
     | 
    
         
            +
             
     | 
| 
      
 9076 
     | 
    
         
            +
                  /*
         
     | 
| 
      
 9077 
     | 
    
         
            +
                    Find the relationship which is the inverse of the one asked for.
         
     | 
| 
      
 9078 
     | 
    
         
            +
             
     | 
| 
      
 9079 
     | 
    
         
            +
                    For example, if you define models like this:
         
     | 
| 
      
 9080 
     | 
    
         
            +
             
     | 
| 
      
 9081 
     | 
    
         
            +
                   ```javascript
         
     | 
| 
      
 9082 
     | 
    
         
            +
                      App.Post = DS.Model.extend({
         
     | 
| 
      
 9083 
     | 
    
         
            +
                        comments: DS.hasMany('message')
         
     | 
| 
      
 9084 
     | 
    
         
            +
                      });
         
     | 
| 
      
 9085 
     | 
    
         
            +
             
     | 
| 
      
 9086 
     | 
    
         
            +
                      App.Message = DS.Model.extend({
         
     | 
| 
      
 9087 
     | 
    
         
            +
                        owner: DS.belongsTo('post')
         
     | 
| 
      
 9088 
     | 
    
         
            +
                      });
         
     | 
| 
      
 9089 
     | 
    
         
            +
                    ```
         
     | 
| 
      
 9090 
     | 
    
         
            +
             
     | 
| 
      
 9091 
     | 
    
         
            +
                    App.Post.inverseFor('comments') -> {type: App.Message, name:'owner', kind:'belongsTo'}
         
     | 
| 
      
 9092 
     | 
    
         
            +
                    App.Message.inverseFor('owner') -> {type: App.Post, name:'comments', kind:'hasMany'}
         
     | 
| 
      
 9093 
     | 
    
         
            +
             
     | 
| 
      
 9094 
     | 
    
         
            +
                    @method inverseFor
         
     | 
| 
      
 9095 
     | 
    
         
            +
                    @static
         
     | 
| 
      
 9096 
     | 
    
         
            +
                    @param {String} name the name of the relationship
         
     | 
| 
      
 9097 
     | 
    
         
            +
                    @return {Object} the inverse relationship, or null
         
     | 
| 
      
 9098 
     | 
    
         
            +
                  */
         
     | 
| 
       8830 
9099 
     | 
    
         
             
                  inverseFor: function(name) {
         
     | 
| 
       8831 
     | 
    
         
            -
                    var  
     | 
| 
      
 9100 
     | 
    
         
            +
                    var inverseMap = get(this, 'inverseMap');
         
     | 
| 
      
 9101 
     | 
    
         
            +
                    if (inverseMap[name]) {
         
     | 
| 
      
 9102 
     | 
    
         
            +
                      return inverseMap[name];
         
     | 
| 
      
 9103 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 9104 
     | 
    
         
            +
                      var inverse = this._findInverseFor(name);
         
     | 
| 
      
 9105 
     | 
    
         
            +
                      inverseMap[name] = inverse;
         
     | 
| 
      
 9106 
     | 
    
         
            +
                      return inverse;
         
     | 
| 
      
 9107 
     | 
    
         
            +
                    }
         
     | 
| 
      
 9108 
     | 
    
         
            +
                  },
         
     | 
| 
       8832 
9109 
     | 
    
         | 
| 
       8833 
     | 
    
         
            -
             
     | 
| 
      
 9110 
     | 
    
         
            +
                  //Calculate the inverse, ignoring the cache
         
     | 
| 
      
 9111 
     | 
    
         
            +
                  _findInverseFor: function(name) {
         
     | 
| 
       8834 
9112 
     | 
    
         | 
| 
       8835 
     | 
    
         
            -
                    var  
     | 
| 
      
 9113 
     | 
    
         
            +
                    var inverseType = this.typeForRelationship(name);
         
     | 
| 
      
 9114 
     | 
    
         
            +
                    if (!inverseType) {
         
     | 
| 
      
 9115 
     | 
    
         
            +
                      return null;
         
     | 
| 
      
 9116 
     | 
    
         
            +
                    }
         
     | 
| 
       8836 
9117 
     | 
    
         | 
| 
      
 9118 
     | 
    
         
            +
                    //If inverse is manually specified to be null, like  `comments: DS.hasMany('message', {inverse: null})`
         
     | 
| 
      
 9119 
     | 
    
         
            +
                    var options = this.metaForProperty(name).options;
         
     | 
| 
       8837 
9120 
     | 
    
         
             
                    if (options.inverse === null) { return null; }
         
     | 
| 
       8838 
9121 
     | 
    
         | 
| 
       8839 
9122 
     | 
    
         
             
                    var inverseName, inverseKind, inverse;
         
     | 
| 
       8840 
9123 
     | 
    
         | 
| 
      
 9124 
     | 
    
         
            +
                    //If inverse is specified manually, return the inverse
         
     | 
| 
       8841 
9125 
     | 
    
         
             
                    if (options.inverse) {
         
     | 
| 
       8842 
9126 
     | 
    
         
             
                      inverseName = options.inverse;
         
     | 
| 
       8843 
9127 
     | 
    
         
             
                      inverse = Ember.get(inverseType, 'relationshipsByName').get(inverseName);
         
     | 
| 
         @@ -8847,10 +9131,24 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8847 
9131 
     | 
    
         | 
| 
       8848 
9132 
     | 
    
         
             
                      inverseKind = inverse.kind;
         
     | 
| 
       8849 
9133 
     | 
    
         
             
                    } else {
         
     | 
| 
      
 9134 
     | 
    
         
            +
                      //No inverse was specified manually, we need to use a heuristic to guess one
         
     | 
| 
       8850 
9135 
     | 
    
         
             
                      var possibleRelationships = findPossibleInverses(this, inverseType);
         
     | 
| 
       8851 
9136 
     | 
    
         | 
| 
       8852 
9137 
     | 
    
         
             
                      if (possibleRelationships.length === 0) { return null; }
         
     | 
| 
       8853 
9138 
     | 
    
         | 
| 
      
 9139 
     | 
    
         
            +
                      var filteredRelationships = filter.call(possibleRelationships, function(possibleRelationship) {
         
     | 
| 
      
 9140 
     | 
    
         
            +
                        var optionsForRelationship = inverseType.metaForProperty(possibleRelationship.name).options;
         
     | 
| 
      
 9141 
     | 
    
         
            +
                        return name === optionsForRelationship.inverse;
         
     | 
| 
      
 9142 
     | 
    
         
            +
                      });
         
     | 
| 
      
 9143 
     | 
    
         
            +
             
     | 
| 
      
 9144 
     | 
    
         
            +
                      Ember.assert("You defined the '" + name + "' relationship on " + this + ", but you defined the inverse relationships of type " +
         
     | 
| 
      
 9145 
     | 
    
         
            +
                        inverseType.toString() + " multiple times. Look at http://emberjs.com/guides/models/defining-models/#toc_explicit-inverses for how to explicitly specify inverses",
         
     | 
| 
      
 9146 
     | 
    
         
            +
                        filteredRelationships.length < 2);
         
     | 
| 
      
 9147 
     | 
    
         
            +
             
     | 
| 
      
 9148 
     | 
    
         
            +
                      if (filteredRelationships.length === 1 ) {
         
     | 
| 
      
 9149 
     | 
    
         
            +
                        possibleRelationships = filteredRelationships;
         
     | 
| 
      
 9150 
     | 
    
         
            +
                      }
         
     | 
| 
      
 9151 
     | 
    
         
            +
             
     | 
| 
       8854 
9152 
     | 
    
         
             
                      Ember.assert("You defined the '" + name + "' relationship on " + this + ", but multiple possible inverse relationships of type " +
         
     | 
| 
       8855 
9153 
     | 
    
         
             
                        this + " were found on " + inverseType + ". Look at http://emberjs.com/guides/models/defining-models/#toc_explicit-inverses for how to explicitly specify inverses",
         
     | 
| 
       8856 
9154 
     | 
    
         
             
                        possibleRelationships.length === 1);
         
     | 
| 
         @@ -8859,17 +9157,29 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8859 
9157 
     | 
    
         
             
                      inverseKind = possibleRelationships[0].kind;
         
     | 
| 
       8860 
9158 
     | 
    
         
             
                    }
         
     | 
| 
       8861 
9159 
     | 
    
         | 
| 
       8862 
     | 
    
         
            -
                    function findPossibleInverses(type, inverseType,  
     | 
| 
       8863 
     | 
    
         
            -
                      possibleRelationships =  
     | 
| 
      
 9160 
     | 
    
         
            +
                    function findPossibleInverses(type, inverseType, relationshipsSoFar) {
         
     | 
| 
      
 9161 
     | 
    
         
            +
                      var possibleRelationships = relationshipsSoFar || [];
         
     | 
| 
       8864 
9162 
     | 
    
         | 
| 
       8865 
9163 
     | 
    
         
             
                      var relationshipMap = get(inverseType, 'relationships');
         
     | 
| 
       8866 
9164 
     | 
    
         
             
                      if (!relationshipMap) { return; }
         
     | 
| 
       8867 
9165 
     | 
    
         | 
| 
       8868 
9166 
     | 
    
         
             
                      var relationships = relationshipMap.get(type);
         
     | 
| 
      
 9167 
     | 
    
         
            +
             
     | 
| 
      
 9168 
     | 
    
         
            +
                      relationships = filter.call(relationships, function(relationship) {
         
     | 
| 
      
 9169 
     | 
    
         
            +
                        var optionsForRelationship = inverseType.metaForProperty(relationship.name).options;
         
     | 
| 
      
 9170 
     | 
    
         
            +
             
     | 
| 
      
 9171 
     | 
    
         
            +
                        if (!optionsForRelationship.inverse){
         
     | 
| 
      
 9172 
     | 
    
         
            +
                          return true;
         
     | 
| 
      
 9173 
     | 
    
         
            +
                        }
         
     | 
| 
      
 9174 
     | 
    
         
            +
             
     | 
| 
      
 9175 
     | 
    
         
            +
                        return name === optionsForRelationship.inverse;
         
     | 
| 
      
 9176 
     | 
    
         
            +
                      });
         
     | 
| 
      
 9177 
     | 
    
         
            +
             
     | 
| 
       8869 
9178 
     | 
    
         
             
                      if (relationships) {
         
     | 
| 
       8870 
     | 
    
         
            -
                        possibleRelationships.push.apply(possibleRelationships,  
     | 
| 
      
 9179 
     | 
    
         
            +
                        possibleRelationships.push.apply(possibleRelationships, relationships);
         
     | 
| 
       8871 
9180 
     | 
    
         
             
                      }
         
     | 
| 
       8872 
9181 
     | 
    
         | 
| 
      
 9182 
     | 
    
         
            +
                      //Recurse to support polymorphism
         
     | 
| 
       8873 
9183 
     | 
    
         
             
                      if (type.superclass) {
         
     | 
| 
       8874 
9184 
     | 
    
         
             
                        findPossibleInverses(type.superclass, inverseType, possibleRelationships);
         
     | 
| 
       8875 
9185 
     | 
    
         
             
                      }
         
     | 
| 
         @@ -8918,7 +9228,7 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       8918 
9228 
     | 
    
         
             
                    @readOnly
         
     | 
| 
       8919 
9229 
     | 
    
         
             
                  */
         
     | 
| 
       8920 
9230 
     | 
    
         
             
                  relationships: Ember.computed(function() {
         
     | 
| 
       8921 
     | 
    
         
            -
                    var map = new  
     | 
| 
      
 9231 
     | 
    
         
            +
                    var map = new MapWithDefault({
         
     | 
| 
       8922 
9232 
     | 
    
         
             
                      defaultValue: function() { return []; }
         
     | 
| 
       8923 
9233 
     | 
    
         
             
                    });
         
     | 
| 
       8924 
9234 
     | 
    
         | 
| 
         @@ -9068,7 +9378,7 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       9068 
9378 
     | 
    
         
             
                    @readOnly
         
     | 
| 
       9069 
9379 
     | 
    
         
             
                  */
         
     | 
| 
       9070 
9380 
     | 
    
         
             
                  relationshipsByName: Ember.computed(function() {
         
     | 
| 
       9071 
     | 
    
         
            -
                    var map =  
     | 
| 
      
 9381 
     | 
    
         
            +
                    var map = Map.create();
         
     | 
| 
       9072 
9382 
     | 
    
         | 
| 
       9073 
9383 
     | 
    
         
             
                    this.eachComputedProperty(function(name, meta) {
         
     | 
| 
       9074 
9384 
     | 
    
         
             
                      if (meta.isRelationship) {
         
     | 
| 
         @@ -9118,7 +9428,7 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       9118 
9428 
     | 
    
         
             
                    @readOnly
         
     | 
| 
       9119 
9429 
     | 
    
         
             
                  */
         
     | 
| 
       9120 
9430 
     | 
    
         
             
                  fields: Ember.computed(function() {
         
     | 
| 
       9121 
     | 
    
         
            -
                    var map =  
     | 
| 
      
 9431 
     | 
    
         
            +
                    var map = Map.create();
         
     | 
| 
       9122 
9432 
     | 
    
         | 
| 
       9123 
9433 
     | 
    
         
             
                    this.eachComputedProperty(function(name, meta) {
         
     | 
| 
       9124 
9434 
     | 
    
         
             
                      if (meta.isRelationship) {
         
     | 
| 
         @@ -9142,7 +9452,7 @@ define("ember-data/system/relationships/ext", 
     | 
|
| 
       9142 
9452 
     | 
    
         
             
                    @param {any} binding the value to which the callback's `this` should be bound
         
     | 
| 
       9143 
9453 
     | 
    
         
             
                  */
         
     | 
| 
       9144 
9454 
     | 
    
         
             
                  eachRelationship: function(callback, binding) {
         
     | 
| 
       9145 
     | 
    
         
            -
                    get(this, 'relationshipsByName').forEach(function( 
     | 
| 
      
 9455 
     | 
    
         
            +
                    get(this, 'relationshipsByName').forEach(function(relationship, name) {
         
     | 
| 
       9146 
9456 
     | 
    
         
             
                      callback.call(binding, name, relationship);
         
     | 
| 
       9147 
9457 
     | 
    
         
             
                    });
         
     | 
| 
       9148 
9458 
     | 
    
         
             
                  },
         
     | 
| 
         @@ -9346,14 +9656,15 @@ define("ember-data/system/relationships/has_many", 
     | 
|
| 
       9346 
9656 
     | 
    
         
             
                __exports__["default"] = hasMany;
         
     | 
| 
       9347 
9657 
     | 
    
         
             
              });
         
     | 
| 
       9348 
9658 
     | 
    
         
             
            define("ember-data/system/relationships/relationship",
         
     | 
| 
       9349 
     | 
    
         
            -
              ["ember-data/system/promise_proxies","exports"],
         
     | 
| 
       9350 
     | 
    
         
            -
              function(__dependency1__, __exports__) {
         
     | 
| 
      
 9659 
     | 
    
         
            +
              ["ember-data/system/promise_proxies","ember-data/system/map","exports"],
         
     | 
| 
      
 9660 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __exports__) {
         
     | 
| 
       9351 
9661 
     | 
    
         
             
                "use strict";
         
     | 
| 
       9352 
     | 
    
         
            -
                var  
     | 
| 
      
 9662 
     | 
    
         
            +
                var PromiseManyArray = __dependency1__.PromiseManyArray;
         
     | 
| 
       9353 
9663 
     | 
    
         
             
                var PromiseObject = __dependency1__.PromiseObject;
         
     | 
| 
      
 9664 
     | 
    
         
            +
                var OrderedSet = __dependency2__.OrderedSet;
         
     | 
| 
       9354 
9665 
     | 
    
         | 
| 
       9355 
9666 
     | 
    
         
             
                var Relationship = function(store, record, inverseKey, relationshipMeta) {
         
     | 
| 
       9356 
     | 
    
         
            -
                  this.members = new  
     | 
| 
      
 9667 
     | 
    
         
            +
                  this.members = new OrderedSet();
         
     | 
| 
       9357 
9668 
     | 
    
         
             
                  this.store = store;
         
     | 
| 
       9358 
9669 
     | 
    
         
             
                  this.key = relationshipMeta.key;
         
     | 
| 
       9359 
9670 
     | 
    
         
             
                  this.inverseKey = inverseKey;
         
     | 
| 
         @@ -9361,11 +9672,15 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9361 
9672 
     | 
    
         
             
                  this.key = relationshipMeta.key;
         
     | 
| 
       9362 
9673 
     | 
    
         
             
                  this.isAsync = relationshipMeta.options.async;
         
     | 
| 
       9363 
9674 
     | 
    
         
             
                  this.relationshipMeta = relationshipMeta;
         
     | 
| 
      
 9675 
     | 
    
         
            +
                  //This probably breaks for polymorphic relationship in complex scenarios, due to
         
     | 
| 
      
 9676 
     | 
    
         
            +
                  //multiple possible typeKeys
         
     | 
| 
      
 9677 
     | 
    
         
            +
                  this.inverseKeyForImplicit = this.store.modelFor(this.record.constructor).typeKey + this.key;
         
     | 
| 
      
 9678 
     | 
    
         
            +
                  //Cached promise when fetching the relationship from a link
         
     | 
| 
      
 9679 
     | 
    
         
            +
                  this.linkPromise = null;
         
     | 
| 
       9364 
9680 
     | 
    
         
             
                };
         
     | 
| 
       9365 
9681 
     | 
    
         | 
| 
       9366 
9682 
     | 
    
         
             
                Relationship.prototype = {
         
     | 
| 
       9367 
9683 
     | 
    
         
             
                  constructor: Relationship,
         
     | 
| 
       9368 
     | 
    
         
            -
                  hasFetchedLink: false,
         
     | 
| 
       9369 
9684 
     | 
    
         | 
| 
       9370 
9685 
     | 
    
         
             
                  destroy: Ember.K,
         
     | 
| 
       9371 
9686 
     | 
    
         | 
| 
         @@ -9375,6 +9690,18 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9375 
9690 
     | 
    
         
             
                    }, this);
         
     | 
| 
       9376 
9691 
     | 
    
         
             
                  },
         
     | 
| 
       9377 
9692 
     | 
    
         | 
| 
      
 9693 
     | 
    
         
            +
                  disconnect: function(){
         
     | 
| 
      
 9694 
     | 
    
         
            +
                    this.members.forEach(function(member) {
         
     | 
| 
      
 9695 
     | 
    
         
            +
                      this.removeRecordFromInverse(member);
         
     | 
| 
      
 9696 
     | 
    
         
            +
                    }, this);
         
     | 
| 
      
 9697 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9698 
     | 
    
         
            +
             
     | 
| 
      
 9699 
     | 
    
         
            +
                  reconnect: function(){
         
     | 
| 
      
 9700 
     | 
    
         
            +
                    this.members.forEach(function(member) {
         
     | 
| 
      
 9701 
     | 
    
         
            +
                      this.addRecordToInverse(member);
         
     | 
| 
      
 9702 
     | 
    
         
            +
                    }, this);
         
     | 
| 
      
 9703 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9704 
     | 
    
         
            +
             
     | 
| 
       9378 
9705 
     | 
    
         
             
                  removeRecords: function(records){
         
     | 
| 
       9379 
9706 
     | 
    
         
             
                    var that = this;
         
     | 
| 
       9380 
9707 
     | 
    
         
             
                    records.forEach(function(record){
         
     | 
| 
         @@ -9392,13 +9719,17 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9392 
9719 
     | 
    
         
             
                    });
         
     | 
| 
       9393 
9720 
     | 
    
         
             
                  },
         
     | 
| 
       9394 
9721 
     | 
    
         | 
| 
       9395 
     | 
    
         
            -
             
     | 
| 
       9396 
9722 
     | 
    
         
             
                  addRecord: function(record, idx) {
         
     | 
| 
       9397 
9723 
     | 
    
         
             
                    if (!this.members.has(record)) {
         
     | 
| 
       9398 
9724 
     | 
    
         
             
                      this.members.add(record);
         
     | 
| 
       9399 
9725 
     | 
    
         
             
                      this.notifyRecordRelationshipAdded(record, idx);
         
     | 
| 
       9400 
9726 
     | 
    
         
             
                      if (this.inverseKey) {
         
     | 
| 
       9401 
9727 
     | 
    
         
             
                        record._relationships[this.inverseKey].addRecord(this.record);
         
     | 
| 
      
 9728 
     | 
    
         
            +
                      } else {
         
     | 
| 
      
 9729 
     | 
    
         
            +
                        if (!record._implicitRelationships[this.inverseKeyForImplicit]) {
         
     | 
| 
      
 9730 
     | 
    
         
            +
                          record._implicitRelationships[this.inverseKeyForImplicit] = new Relationship(this.store, record, this.key,  {options:{}});
         
     | 
| 
      
 9731 
     | 
    
         
            +
                        }
         
     | 
| 
      
 9732 
     | 
    
         
            +
                        record._implicitRelationships[this.inverseKeyForImplicit].addRecord(this.record);
         
     | 
| 
       9402 
9733 
     | 
    
         
             
                      }
         
     | 
| 
       9403 
9734 
     | 
    
         
             
                      this.record.updateRecordArrays();
         
     | 
| 
       9404 
9735 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -9406,31 +9737,64 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9406 
9737 
     | 
    
         | 
| 
       9407 
9738 
     | 
    
         
             
                  removeRecord: function(record) {
         
     | 
| 
       9408 
9739 
     | 
    
         
             
                    if (this.members.has(record)) {
         
     | 
| 
       9409 
     | 
    
         
            -
                      this. 
     | 
| 
       9410 
     | 
    
         
            -
                      this.notifyRecordRelationshipRemoved(record);
         
     | 
| 
      
 9740 
     | 
    
         
            +
                      this.removeRecordFromOwn(record);
         
     | 
| 
       9411 
9741 
     | 
    
         
             
                      if (this.inverseKey) {
         
     | 
| 
       9412 
     | 
    
         
            -
                         
     | 
| 
       9413 
     | 
    
         
            -
             
     | 
| 
       9414 
     | 
    
         
            -
                        if ( 
     | 
| 
       9415 
     | 
    
         
            -
                           
     | 
| 
      
 9742 
     | 
    
         
            +
                        this.removeRecordFromInverse(record);
         
     | 
| 
      
 9743 
     | 
    
         
            +
                      } else {
         
     | 
| 
      
 9744 
     | 
    
         
            +
                        if (record._implicitRelationships[this.inverseKeyForImplicit]) {
         
     | 
| 
      
 9745 
     | 
    
         
            +
                          record._implicitRelationships[this.inverseKeyForImplicit].removeRecord(this.record);
         
     | 
| 
       9416 
9746 
     | 
    
         
             
                        }
         
     | 
| 
       9417 
9747 
     | 
    
         
             
                      }
         
     | 
| 
       9418 
     | 
    
         
            -
                      this.record.updateRecordArrays();
         
     | 
| 
       9419 
9748 
     | 
    
         
             
                    }
         
     | 
| 
       9420 
9749 
     | 
    
         
             
                  },
         
     | 
| 
       9421 
9750 
     | 
    
         | 
| 
      
 9751 
     | 
    
         
            +
                  addRecordToInverse: function(record) {
         
     | 
| 
      
 9752 
     | 
    
         
            +
                    if (this.inverseKey) {
         
     | 
| 
      
 9753 
     | 
    
         
            +
                      record._relationships[this.inverseKey].addRecord(this.record);
         
     | 
| 
      
 9754 
     | 
    
         
            +
                    }
         
     | 
| 
      
 9755 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9756 
     | 
    
         
            +
             
     | 
| 
      
 9757 
     | 
    
         
            +
                  removeRecordFromInverse: function(record) {
         
     | 
| 
      
 9758 
     | 
    
         
            +
                    var inverseRelationship = record._relationships[this.inverseKey];
         
     | 
| 
      
 9759 
     | 
    
         
            +
                    //Need to check for existence, as the record might unloading at the moment
         
     | 
| 
      
 9760 
     | 
    
         
            +
                    if (inverseRelationship) {
         
     | 
| 
      
 9761 
     | 
    
         
            +
                      inverseRelationship.removeRecordFromOwn(this.record);
         
     | 
| 
      
 9762 
     | 
    
         
            +
                    }
         
     | 
| 
      
 9763 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9764 
     | 
    
         
            +
             
     | 
| 
      
 9765 
     | 
    
         
            +
                  removeRecordFromOwn: function(record) {
         
     | 
| 
      
 9766 
     | 
    
         
            +
                    this.members["delete"](record);
         
     | 
| 
      
 9767 
     | 
    
         
            +
                    this.notifyRecordRelationshipRemoved(record);
         
     | 
| 
      
 9768 
     | 
    
         
            +
                    this.record.updateRecordArrays();
         
     | 
| 
      
 9769 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9770 
     | 
    
         
            +
             
     | 
| 
       9422 
9771 
     | 
    
         
             
                  updateLink: function(link) {
         
     | 
| 
       9423 
9772 
     | 
    
         
             
                    if (link !== this.link) {
         
     | 
| 
       9424 
9773 
     | 
    
         
             
                      this.link = link;
         
     | 
| 
       9425 
     | 
    
         
            -
                      this. 
     | 
| 
      
 9774 
     | 
    
         
            +
                      this.linkPromise = null;
         
     | 
| 
       9426 
9775 
     | 
    
         
             
                      this.record.notifyPropertyChange(this.key);
         
     | 
| 
       9427 
9776 
     | 
    
         
             
                    }
         
     | 
| 
       9428 
9777 
     | 
    
         
             
                  },
         
     | 
| 
       9429 
9778 
     | 
    
         | 
| 
      
 9779 
     | 
    
         
            +
                  findLink: function() {
         
     | 
| 
      
 9780 
     | 
    
         
            +
                    if (this.linkPromise) {
         
     | 
| 
      
 9781 
     | 
    
         
            +
                      return this.linkPromise;
         
     | 
| 
      
 9782 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 9783 
     | 
    
         
            +
                      var promise = this.fetchLink();
         
     | 
| 
      
 9784 
     | 
    
         
            +
                      this.linkPromise = promise;
         
     | 
| 
      
 9785 
     | 
    
         
            +
                      return promise.then(function(result) {
         
     | 
| 
      
 9786 
     | 
    
         
            +
                        return result;
         
     | 
| 
      
 9787 
     | 
    
         
            +
                      });
         
     | 
| 
      
 9788 
     | 
    
         
            +
                    }
         
     | 
| 
      
 9789 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9790 
     | 
    
         
            +
             
     | 
| 
       9430 
9791 
     | 
    
         
             
                  updateRecordsFromAdapter: function(records) {
         
     | 
| 
       9431 
9792 
     | 
    
         
             
                    //TODO Once we have adapter support, we need to handle updated and canonical changes
         
     | 
| 
       9432 
9793 
     | 
    
         
             
                    this.computeChanges(records);
         
     | 
| 
       9433 
     | 
    
         
            -
                  }
         
     | 
| 
      
 9794 
     | 
    
         
            +
                  },
         
     | 
| 
      
 9795 
     | 
    
         
            +
             
     | 
| 
      
 9796 
     | 
    
         
            +
                  notifyRecordRelationshipAdded: Ember.K,
         
     | 
| 
      
 9797 
     | 
    
         
            +
                  notifyRecordRelationshipRemoved: Ember.K
         
     | 
| 
       9434 
9798 
     | 
    
         
             
                };
         
     | 
| 
       9435 
9799 
     | 
    
         | 
| 
       9436 
9800 
     | 
    
         
             
                var ManyRelationship = function(store, record, inverseKey, relationshipMeta) {
         
     | 
| 
         @@ -9459,49 +9823,84 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9459 
9823 
     | 
    
         
             
                  this.record.notifyHasManyRemoved(this.key, record);
         
     | 
| 
       9460 
9824 
     | 
    
         
             
                };
         
     | 
| 
       9461 
9825 
     | 
    
         | 
| 
      
 9826 
     | 
    
         
            +
                ManyRelationship.prototype.reload = function() {
         
     | 
| 
      
 9827 
     | 
    
         
            +
                  var self = this;
         
     | 
| 
      
 9828 
     | 
    
         
            +
                  if (this.link) {
         
     | 
| 
      
 9829 
     | 
    
         
            +
                    return this.fetchLink();
         
     | 
| 
      
 9830 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 9831 
     | 
    
         
            +
                    return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function() {
         
     | 
| 
      
 9832 
     | 
    
         
            +
                      //Goes away after the manyArray refactor
         
     | 
| 
      
 9833 
     | 
    
         
            +
                      self.manyArray.set('isLoaded', true);
         
     | 
| 
      
 9834 
     | 
    
         
            +
                      return self.manyArray;
         
     | 
| 
      
 9835 
     | 
    
         
            +
                    });
         
     | 
| 
      
 9836 
     | 
    
         
            +
                  }
         
     | 
| 
      
 9837 
     | 
    
         
            +
                };
         
     | 
| 
      
 9838 
     | 
    
         
            +
             
     | 
| 
       9462 
9839 
     | 
    
         
             
                ManyRelationship.prototype.computeChanges = function(records) {
         
     | 
| 
       9463 
9840 
     | 
    
         
             
                  var members = this.members;
         
     | 
| 
      
 9841 
     | 
    
         
            +
                  var recordsToRemove = [];
         
     | 
| 
      
 9842 
     | 
    
         
            +
                  var length;
         
     | 
| 
      
 9843 
     | 
    
         
            +
                  var record;
         
     | 
| 
      
 9844 
     | 
    
         
            +
                  var i;
         
     | 
| 
       9464 
9845 
     | 
    
         | 
| 
       9465 
9846 
     | 
    
         
             
                  records = setForArray(records);
         
     | 
| 
       9466 
9847 
     | 
    
         | 
| 
       9467 
9848 
     | 
    
         
             
                  members.forEach(function(member) {
         
     | 
| 
       9468 
9849 
     | 
    
         
             
                    if (records.has(member)) return;
         
     | 
| 
       9469 
9850 
     | 
    
         | 
| 
       9470 
     | 
    
         
            -
                     
     | 
| 
       9471 
     | 
    
         
            -
                  } 
     | 
| 
      
 9851 
     | 
    
         
            +
                    recordsToRemove.push(member);
         
     | 
| 
      
 9852 
     | 
    
         
            +
                  });
         
     | 
| 
      
 9853 
     | 
    
         
            +
                  this.removeRecords(recordsToRemove);
         
     | 
| 
       9472 
9854 
     | 
    
         | 
| 
       9473 
9855 
     | 
    
         
             
                  var hasManyArray = this.manyArray;
         
     | 
| 
       9474 
9856 
     | 
    
         | 
| 
       9475 
     | 
    
         
            -
                  records. 
     | 
| 
      
 9857 
     | 
    
         
            +
                  // Using records.toArray() since currently using
         
     | 
| 
      
 9858 
     | 
    
         
            +
                  // removeRecord can modify length, messing stuff up
         
     | 
| 
      
 9859 
     | 
    
         
            +
                  // forEach since it directly looks at "length" each
         
     | 
| 
      
 9860 
     | 
    
         
            +
                  // iteration
         
     | 
| 
      
 9861 
     | 
    
         
            +
                  records = records.toArray();
         
     | 
| 
      
 9862 
     | 
    
         
            +
                  length = records.length;
         
     | 
| 
      
 9863 
     | 
    
         
            +
                  for (i = 0; i < length; i++){
         
     | 
| 
      
 9864 
     | 
    
         
            +
                    record = records[i];
         
     | 
| 
       9476 
9865 
     | 
    
         
             
                    //Need to preserve the order of incoming records
         
     | 
| 
       9477 
     | 
    
         
            -
                    if (hasManyArray.objectAt( 
     | 
| 
       9478 
     | 
    
         
            -
             
     | 
| 
      
 9866 
     | 
    
         
            +
                    if (hasManyArray.objectAt(i) === record ) {
         
     | 
| 
      
 9867 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 9868 
     | 
    
         
            +
                    }
         
     | 
| 
       9479 
9869 
     | 
    
         
             
                    this.removeRecord(record);
         
     | 
| 
       9480 
     | 
    
         
            -
                    this.addRecord(record,  
     | 
| 
       9481 
     | 
    
         
            -
                  } 
     | 
| 
      
 9870 
     | 
    
         
            +
                    this.addRecord(record, i);
         
     | 
| 
      
 9871 
     | 
    
         
            +
                  }
         
     | 
| 
       9482 
9872 
     | 
    
         
             
                };
         
     | 
| 
       9483 
9873 
     | 
    
         | 
| 
      
 9874 
     | 
    
         
            +
                ManyRelationship.prototype.fetchLink = function() {
         
     | 
| 
      
 9875 
     | 
    
         
            +
                  var self = this;
         
     | 
| 
      
 9876 
     | 
    
         
            +
                  return this.store.findHasMany(this.record, this.link, this.relationshipMeta).then(function(records){
         
     | 
| 
      
 9877 
     | 
    
         
            +
                    self.updateRecordsFromAdapter(records);
         
     | 
| 
      
 9878 
     | 
    
         
            +
                    return self.manyArray;
         
     | 
| 
      
 9879 
     | 
    
         
            +
                  });
         
     | 
| 
      
 9880 
     | 
    
         
            +
                };
         
     | 
| 
      
 9881 
     | 
    
         
            +
             
     | 
| 
      
 9882 
     | 
    
         
            +
                ManyRelationship.prototype.findRecords = function() {
         
     | 
| 
      
 9883 
     | 
    
         
            +
                  var manyArray = this.manyArray;
         
     | 
| 
      
 9884 
     | 
    
         
            +
                  return this.store.findMany(manyArray.toArray()).then(function(){
         
     | 
| 
      
 9885 
     | 
    
         
            +
                    //Goes away after the manyArray refactor
         
     | 
| 
      
 9886 
     | 
    
         
            +
                    manyArray.set('isLoaded', true);
         
     | 
| 
      
 9887 
     | 
    
         
            +
                    return manyArray;
         
     | 
| 
      
 9888 
     | 
    
         
            +
                  });
         
     | 
| 
      
 9889 
     | 
    
         
            +
                };
         
     | 
| 
       9484 
9890 
     | 
    
         | 
| 
       9485 
9891 
     | 
    
         
             
                ManyRelationship.prototype.getRecords = function() {
         
     | 
| 
       9486 
9892 
     | 
    
         
             
                  if (this.isAsync) {
         
     | 
| 
       9487 
9893 
     | 
    
         
             
                    var self = this;
         
     | 
| 
       9488 
9894 
     | 
    
         
             
                    var promise;
         
     | 
| 
       9489 
     | 
    
         
            -
                    if (this.link 
     | 
| 
       9490 
     | 
    
         
            -
                      promise = this. 
     | 
| 
       9491 
     | 
    
         
            -
                        self. 
     | 
| 
       9492 
     | 
    
         
            -
                        self.hasFetchedLink = true;
         
     | 
| 
       9493 
     | 
    
         
            -
                        //TODO(Igor) try to abstract the isLoaded part
         
     | 
| 
       9494 
     | 
    
         
            -
                        self.manyArray.set('isLoaded', true);
         
     | 
| 
       9495 
     | 
    
         
            -
                        return self.manyArray;
         
     | 
| 
      
 9895 
     | 
    
         
            +
                    if (this.link) {
         
     | 
| 
      
 9896 
     | 
    
         
            +
                      promise = this.findLink().then(function() {
         
     | 
| 
      
 9897 
     | 
    
         
            +
                        return self.findRecords();
         
     | 
| 
       9496 
9898 
     | 
    
         
             
                      });
         
     | 
| 
       9497 
9899 
     | 
    
         
             
                    } else {
         
     | 
| 
       9498 
     | 
    
         
            -
                       
     | 
| 
       9499 
     | 
    
         
            -
                      promise = this.store.findMany(manyArray.toArray()).then(function(){
         
     | 
| 
       9500 
     | 
    
         
            -
                        self.manyArray.set('isLoaded', true);
         
     | 
| 
       9501 
     | 
    
         
            -
                        return manyArray;
         
     | 
| 
       9502 
     | 
    
         
            -
                      });
         
     | 
| 
      
 9900 
     | 
    
         
            +
                      promise = this.findRecords();
         
     | 
| 
       9503 
9901 
     | 
    
         
             
                    }
         
     | 
| 
       9504 
     | 
    
         
            -
                    return  
     | 
| 
      
 9902 
     | 
    
         
            +
                    return PromiseManyArray.create({
         
     | 
| 
      
 9903 
     | 
    
         
            +
                      content: this.manyArray,
         
     | 
| 
       9505 
9904 
     | 
    
         
             
                      promise: promise
         
     | 
| 
       9506 
9905 
     | 
    
         
             
                    });
         
     | 
| 
       9507 
9906 
     | 
    
         
             
                  } else {
         
     | 
| 
         @@ -9514,10 +9913,8 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9514 
9913 
     | 
    
         | 
| 
       9515 
9914 
     | 
    
         
             
                var BelongsToRelationship = function(store, record, inverseKey, relationshipMeta) {
         
     | 
| 
       9516 
9915 
     | 
    
         
             
                  this._super$constructor(store, record, inverseKey, relationshipMeta);
         
     | 
| 
       9517 
     | 
    
         
            -
                  this.members.add(record);
         
     | 
| 
       9518 
9916 
     | 
    
         
             
                  this.record = record;
         
     | 
| 
       9519 
9917 
     | 
    
         
             
                  this.key = relationshipMeta.key;
         
     | 
| 
       9520 
     | 
    
         
            -
                  this.inverseKey = inverseKey;
         
     | 
| 
       9521 
9918 
     | 
    
         
             
                  this.inverseRecord = null;
         
     | 
| 
       9522 
9919 
     | 
    
         
             
                };
         
     | 
| 
       9523 
9920 
     | 
    
         | 
| 
         @@ -9539,7 +9936,7 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9539 
9936 
     | 
    
         
             
                  var type = this.relationshipMeta.type;
         
     | 
| 
       9540 
9937 
     | 
    
         
             
                  Ember.assert("You can only add a '" + type.typeKey + "' record to this relationship", newRecord instanceof type);
         
     | 
| 
       9541 
9938 
     | 
    
         | 
| 
       9542 
     | 
    
         
            -
                  if (this.inverseRecord 
     | 
| 
      
 9939 
     | 
    
         
            +
                  if (this.inverseRecord) {
         
     | 
| 
       9543 
9940 
     | 
    
         
             
                    this.removeRecord(this.inverseRecord);
         
     | 
| 
       9544 
9941 
     | 
    
         
             
                  }
         
     | 
| 
       9545 
9942 
     | 
    
         | 
| 
         @@ -9547,6 +9944,12 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9547 
9944 
     | 
    
         
             
                  this._super$addRecord(newRecord);
         
     | 
| 
       9548 
9945 
     | 
    
         
             
                };
         
     | 
| 
       9549 
9946 
     | 
    
         | 
| 
      
 9947 
     | 
    
         
            +
                BelongsToRelationship.prototype.setRecordPromise = function(newPromise) {
         
     | 
| 
      
 9948 
     | 
    
         
            +
                  var content = newPromise.get && newPromise.get('content');
         
     | 
| 
      
 9949 
     | 
    
         
            +
                  Ember.assert("You passed in a promise that did not originate from an EmberData relationship. You can only pass promises that come from a belongsTo or hasMany relationship to the get call.", content !== undefined);
         
     | 
| 
      
 9950 
     | 
    
         
            +
                  this.setRecord(content);
         
     | 
| 
      
 9951 
     | 
    
         
            +
                };
         
     | 
| 
      
 9952 
     | 
    
         
            +
             
     | 
| 
       9550 
9953 
     | 
    
         
             
                BelongsToRelationship.prototype.notifyRecordRelationshipAdded = function(newRecord) {
         
     | 
| 
       9551 
9954 
     | 
    
         
             
                  this.record.notifyBelongsToAdded(this.key, this);
         
     | 
| 
       9552 
9955 
     | 
    
         
             
                };
         
     | 
| 
         @@ -9555,36 +9958,44 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9555 
9958 
     | 
    
         
             
                  this.record.notifyBelongsToRemoved(this.key, this);
         
     | 
| 
       9556 
9959 
     | 
    
         
             
                };
         
     | 
| 
       9557 
9960 
     | 
    
         | 
| 
       9558 
     | 
    
         
            -
                BelongsToRelationship.prototype._super$ 
     | 
| 
       9559 
     | 
    
         
            -
                BelongsToRelationship.prototype. 
     | 
| 
      
 9961 
     | 
    
         
            +
                BelongsToRelationship.prototype._super$removeRecordFromOwn = Relationship.prototype.removeRecordFromOwn;
         
     | 
| 
      
 9962 
     | 
    
         
            +
                BelongsToRelationship.prototype.removeRecordFromOwn = function(record) {
         
     | 
| 
       9560 
9963 
     | 
    
         
             
                  if (!this.members.has(record)){ return;}
         
     | 
| 
       9561 
     | 
    
         
            -
                  this._super$ 
     | 
| 
      
 9964 
     | 
    
         
            +
                  this._super$removeRecordFromOwn(record);
         
     | 
| 
       9562 
9965 
     | 
    
         
             
                  this.inverseRecord = null;
         
     | 
| 
       9563 
9966 
     | 
    
         
             
                };
         
     | 
| 
       9564 
9967 
     | 
    
         | 
| 
       9565 
     | 
    
         
            -
                BelongsToRelationship.prototype. 
     | 
| 
       9566 
     | 
    
         
            -
                   
     | 
| 
      
 9968 
     | 
    
         
            +
                BelongsToRelationship.prototype.findRecord = function() {
         
     | 
| 
      
 9969 
     | 
    
         
            +
                  if (this.inverseRecord) {
         
     | 
| 
      
 9970 
     | 
    
         
            +
                    return this.store._findByRecord(this.inverseRecord);
         
     | 
| 
      
 9971 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 9972 
     | 
    
         
            +
                    return Ember.RSVP.Promise.resolve(null);
         
     | 
| 
      
 9973 
     | 
    
         
            +
                  }
         
     | 
| 
      
 9974 
     | 
    
         
            +
                };
         
     | 
| 
      
 9975 
     | 
    
         
            +
             
     | 
| 
      
 9976 
     | 
    
         
            +
                BelongsToRelationship.prototype.fetchLink = function() {
         
     | 
| 
      
 9977 
     | 
    
         
            +
                  var self = this;
         
     | 
| 
      
 9978 
     | 
    
         
            +
                  return this.store.findBelongsTo(this.record, this.link, this.relationshipMeta).then(function(record){
         
     | 
| 
      
 9979 
     | 
    
         
            +
                    self.addRecord(record);
         
     | 
| 
      
 9980 
     | 
    
         
            +
                    return record;
         
     | 
| 
      
 9981 
     | 
    
         
            +
                  });
         
     | 
| 
       9567 
9982 
     | 
    
         
             
                };
         
     | 
| 
       9568 
9983 
     | 
    
         | 
| 
       9569 
9984 
     | 
    
         
             
                BelongsToRelationship.prototype.getRecord = function() {
         
     | 
| 
       9570 
9985 
     | 
    
         
             
                  if (this.isAsync) {
         
     | 
| 
       9571 
9986 
     | 
    
         
             
                    var promise;
         
     | 
| 
       9572 
     | 
    
         
            -
             
     | 
| 
       9573 
     | 
    
         
            -
                    if (this.link && !this.hasFetchedLink){
         
     | 
| 
      
 9987 
     | 
    
         
            +
                    if (this.link){
         
     | 
| 
       9574 
9988 
     | 
    
         
             
                      var self = this;
         
     | 
| 
       9575 
     | 
    
         
            -
                      promise = this. 
     | 
| 
       9576 
     | 
    
         
            -
                        self. 
     | 
| 
       9577 
     | 
    
         
            -
                        self.hasFetchedLink = true;
         
     | 
| 
       9578 
     | 
    
         
            -
                        return record;
         
     | 
| 
      
 9989 
     | 
    
         
            +
                      promise = this.findLink().then(function() {
         
     | 
| 
      
 9990 
     | 
    
         
            +
                        return self.findRecord();
         
     | 
| 
       9579 
9991 
     | 
    
         
             
                      });
         
     | 
| 
       9580 
     | 
    
         
            -
                    } else if (this.inverseRecord) {
         
     | 
| 
       9581 
     | 
    
         
            -
                      promise = this.store._findByRecord(this.inverseRecord);
         
     | 
| 
       9582 
9992 
     | 
    
         
             
                    } else {
         
     | 
| 
       9583 
     | 
    
         
            -
                      promise =  
     | 
| 
      
 9993 
     | 
    
         
            +
                      promise = this.findRecord();
         
     | 
| 
       9584 
9994 
     | 
    
         
             
                    }
         
     | 
| 
       9585 
9995 
     | 
    
         | 
| 
       9586 
9996 
     | 
    
         
             
                    return PromiseObject.create({
         
     | 
| 
       9587 
     | 
    
         
            -
                      promise: promise
         
     | 
| 
      
 9997 
     | 
    
         
            +
                      promise: promise,
         
     | 
| 
      
 9998 
     | 
    
         
            +
                      content: this.inverseRecord
         
     | 
| 
       9588 
9999 
     | 
    
         
             
                    });
         
     | 
| 
       9589 
10000 
     | 
    
         
             
                  } else {
         
     | 
| 
       9590 
10001 
     | 
    
         
             
                    Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.constructor.typeKey + "' with id " + this.record.get('id') +  " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", this.inverseRecord === null || !this.inverseRecord.get('isEmpty'));
         
     | 
| 
         @@ -9593,7 +10004,7 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9593 
10004 
     | 
    
         
             
                };
         
     | 
| 
       9594 
10005 
     | 
    
         | 
| 
       9595 
10006 
     | 
    
         
             
                function setForArray(array) {
         
     | 
| 
       9596 
     | 
    
         
            -
                  var set = new  
     | 
| 
      
 10007 
     | 
    
         
            +
                  var set = new OrderedSet();
         
     | 
| 
       9597 
10008 
     | 
    
         | 
| 
       9598 
10009 
     | 
    
         
             
                  if (array) {
         
     | 
| 
       9599 
10010 
     | 
    
         
             
                    for (var i=0, l=array.length; i<l; i++) {
         
     | 
| 
         @@ -9627,8 +10038,8 @@ define("ember-data/system/relationships/relationship", 
     | 
|
| 
       9627 
10038 
     | 
    
         
             
                __exports__.createRelationshipFor = createRelationshipFor;
         
     | 
| 
       9628 
10039 
     | 
    
         
             
              });
         
     | 
| 
       9629 
10040 
     | 
    
         
             
            define("ember-data/system/store",
         
     | 
| 
       9630 
     | 
    
         
            -
              ["ember-data/system/adapter","ember-inflector/system/string","ember-data/system/promise_proxies","exports"],
         
     | 
| 
       9631 
     | 
    
         
            -
              function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
         
     | 
| 
      
 10041 
     | 
    
         
            +
              ["ember-data/system/adapter","ember-inflector/system/string","ember-data/system/map","ember-data/system/promise_proxies","exports"],
         
     | 
| 
      
 10042 
     | 
    
         
            +
              function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
         
     | 
| 
       9632 
10043 
     | 
    
         
             
                "use strict";
         
     | 
| 
       9633 
10044 
     | 
    
         
             
                /*globals Ember*/
         
     | 
| 
       9634 
10045 
     | 
    
         
             
                /*jshint eqnull:true*/
         
     | 
| 
         @@ -9640,9 +10051,10 @@ define("ember-data/system/store", 
     | 
|
| 
       9640 
10051 
     | 
    
         
             
                var InvalidError = __dependency1__.InvalidError;
         
     | 
| 
       9641 
10052 
     | 
    
         
             
                var Adapter = __dependency1__.Adapter;
         
     | 
| 
       9642 
10053 
     | 
    
         
             
                var singularize = __dependency2__.singularize;
         
     | 
| 
      
 10054 
     | 
    
         
            +
                var Map = __dependency3__.Map;
         
     | 
| 
       9643 
10055 
     | 
    
         | 
| 
       9644 
     | 
    
         
            -
                var promiseArray =  
     | 
| 
       9645 
     | 
    
         
            -
                var promiseObject =  
     | 
| 
      
 10056 
     | 
    
         
            +
                var promiseArray = __dependency4__.promiseArray;
         
     | 
| 
      
 10057 
     | 
    
         
            +
                var promiseObject = __dependency4__.promiseObject;
         
     | 
| 
       9646 
10058 
     | 
    
         | 
| 
       9647 
10059 
     | 
    
         | 
| 
       9648 
10060 
     | 
    
         
             
                var get = Ember.get;
         
     | 
| 
         @@ -9777,7 +10189,7 @@ define("ember-data/system/store", 
     | 
|
| 
       9777 
10189 
     | 
    
         
             
                    });
         
     | 
| 
       9778 
10190 
     | 
    
         
             
                    this._pendingSave = [];
         
     | 
| 
       9779 
10191 
     | 
    
         
             
                    //Used to keep track of all the find requests that need to be coalesced
         
     | 
| 
       9780 
     | 
    
         
            -
                    this._pendingFetch =  
     | 
| 
      
 10192 
     | 
    
         
            +
                    this._pendingFetch = Map.create();
         
     | 
| 
       9781 
10193 
     | 
    
         
             
                  },
         
     | 
| 
       9782 
10194 
     | 
    
         | 
| 
       9783 
10195 
     | 
    
         
             
                  /**
         
     | 
| 
         @@ -10165,10 +10577,10 @@ define("ember-data/system/store", 
     | 
|
| 
       10165 
10577 
     | 
    
         
             
                    }
         
     | 
| 
       10166 
10578 
     | 
    
         | 
| 
       10167 
10579 
     | 
    
         
             
                    this._pendingFetch.forEach(this._flushPendingFetchForType, this);
         
     | 
| 
       10168 
     | 
    
         
            -
                    this._pendingFetch =  
     | 
| 
      
 10580 
     | 
    
         
            +
                    this._pendingFetch = Map.create();
         
     | 
| 
       10169 
10581 
     | 
    
         
             
                  },
         
     | 
| 
       10170 
10582 
     | 
    
         | 
| 
       10171 
     | 
    
         
            -
                  _flushPendingFetchForType: function ( 
     | 
| 
      
 10583 
     | 
    
         
            +
                  _flushPendingFetchForType: function (recordResolverPairs, type) {
         
     | 
| 
       10172 
10584 
     | 
    
         
             
                    var store = this;
         
     | 
| 
       10173 
10585 
     | 
    
         
             
                    var adapter = store.adapterFor(type);
         
     | 
| 
       10174 
10586 
     | 
    
         
             
                    var shouldCoalesce = !!adapter.findMany && adapter.coalesceFindRequests;
         
     | 
| 
         @@ -10772,7 +11184,7 @@ define("ember-data/system/store", 
     | 
|
| 
       10772 
11184 
     | 
    
         | 
| 
       10773 
11185 
     | 
    
         
             
                    @method typeMapFor
         
     | 
| 
       10774 
11186 
     | 
    
         
             
                    @private
         
     | 
| 
       10775 
     | 
    
         
            -
                    @param type
         
     | 
| 
      
 11187 
     | 
    
         
            +
                    @param {subclass of DS.Model} type
         
     | 
| 
       10776 
11188 
     | 
    
         
             
                    @return {Object} typeMap
         
     | 
| 
       10777 
11189 
     | 
    
         
             
                  */
         
     | 
| 
       10778 
11190 
     | 
    
         
             
                  typeMapFor: function(type) {
         
     | 
| 
         @@ -10833,7 +11245,7 @@ define("ember-data/system/store", 
     | 
|
| 
       10833 
11245 
     | 
    
         
             
                    var factory;
         
     | 
| 
       10834 
11246 
     | 
    
         | 
| 
       10835 
11247 
     | 
    
         
             
                    if (typeof key === 'string') {
         
     | 
| 
       10836 
     | 
    
         
            -
                      factory = this. 
     | 
| 
      
 11248 
     | 
    
         
            +
                      factory = this.modelFactoryFor(key);
         
     | 
| 
       10837 
11249 
     | 
    
         
             
                      if (!factory) {
         
     | 
| 
       10838 
11250 
     | 
    
         
             
                        throw new Ember.Error("No model was found for '" + key + "'");
         
     | 
| 
       10839 
11251 
     | 
    
         
             
                      }
         
     | 
| 
         @@ -10850,6 +11262,10 @@ define("ember-data/system/store", 
     | 
|
| 
       10850 
11262 
     | 
    
         
             
                    return factory;
         
     | 
| 
       10851 
11263 
     | 
    
         
             
                  },
         
     | 
| 
       10852 
11264 
     | 
    
         | 
| 
      
 11265 
     | 
    
         
            +
                  modelFactoryFor: function(key){
         
     | 
| 
      
 11266 
     | 
    
         
            +
                    return this.container.lookupFactory('model:' + key);
         
     | 
| 
      
 11267 
     | 
    
         
            +
                  },
         
     | 
| 
      
 11268 
     | 
    
         
            +
             
     | 
| 
       10853 
11269 
     | 
    
         
             
                  /**
         
     | 
| 
       10854 
11270 
     | 
    
         
             
                    Push some data for a given type into the store.
         
     | 
| 
       10855 
11271 
     | 
    
         | 
| 
         @@ -11014,7 +11430,7 @@ define("ember-data/system/store", 
     | 
|
| 
       11014 
11430 
     | 
    
         
             
                    ```
         
     | 
| 
       11015 
11431 
     | 
    
         | 
| 
       11016 
11432 
     | 
    
         
             
                    @method normalize
         
     | 
| 
       11017 
     | 
    
         
            -
                    @param {String} The name of the model type for this payload
         
     | 
| 
      
 11433 
     | 
    
         
            +
                    @param {String} type The name of the model type for this payload
         
     | 
| 
       11018 
11434 
     | 
    
         
             
                    @param {Object} payload
         
     | 
| 
       11019 
11435 
     | 
    
         
             
                    @return {Object} The normalized payload
         
     | 
| 
       11020 
11436 
     | 
    
         
             
                  */
         
     | 
| 
         @@ -11593,8 +12009,8 @@ define("ember-data/transforms/base", 
     | 
|
| 
       11593 
12009 
     | 
    
         
             
                    ```
         
     | 
| 
       11594 
12010 
     | 
    
         | 
| 
       11595 
12011 
     | 
    
         
             
                    @method serialize
         
     | 
| 
       11596 
     | 
    
         
            -
                    @param deserialized The deserialized value
         
     | 
| 
       11597 
     | 
    
         
            -
                    @return The serialized value
         
     | 
| 
      
 12012 
     | 
    
         
            +
                    @param {mixed} deserialized The deserialized value
         
     | 
| 
      
 12013 
     | 
    
         
            +
                    @return {mixed} The serialized value
         
     | 
| 
       11598 
12014 
     | 
    
         
             
                  */
         
     | 
| 
       11599 
12015 
     | 
    
         
             
                  serialize: Ember.required(),
         
     | 
| 
       11600 
12016 
     | 
    
         | 
| 
         @@ -11611,8 +12027,8 @@ define("ember-data/transforms/base", 
     | 
|
| 
       11611 
12027 
     | 
    
         
             
                    ```
         
     | 
| 
       11612 
12028 
     | 
    
         | 
| 
       11613 
12029 
     | 
    
         
             
                    @method deserialize
         
     | 
| 
       11614 
     | 
    
         
            -
                    @param serialized The serialized value
         
     | 
| 
       11615 
     | 
    
         
            -
                    @return The deserialized value
         
     | 
| 
      
 12030 
     | 
    
         
            +
                    @param {mixed} serialized The serialized value
         
     | 
| 
      
 12031 
     | 
    
         
            +
                    @return {mixed} The deserialized value
         
     | 
| 
       11616 
12032 
     | 
    
         
             
                  */
         
     | 
| 
       11617 
12033 
     | 
    
         
             
                  deserialize: Ember.required()
         
     | 
| 
       11618 
12034 
     | 
    
         
             
                });
         
     |