diff --git a/addon/-private/system/store.js b/addon/-private/system/store.js index 86e5ec1de76..9f2871b2f16 100644 --- a/addon/-private/system/store.js +++ b/addon/-private/system/store.js @@ -933,14 +933,14 @@ Store = Service.extend({ let groups = adapter.groupRecordsForFindMany(this, snapshots); - for (let i = 0, l = groups.length; i < l; i++) { - let group = groups[i]; - let totalInGroup = groups[i].length; - let ids = new Array(totalInGroup); - let groupedInternalModels = new Array(totalInGroup); + for (var i = 0, l = groups.length; i < l; i++) { + var group = groups[i]; + var totalInGroup = groups[i].length; + var ids = new Array(totalInGroup); + var groupedInternalModels = new Array(totalInGroup); - for (let j = 0; j < totalInGroup; j++) { - let internalModel = group[j]._internalModel; + for (var j = 0; j < totalInGroup; j++) { + var internalModel = group[j]._internalModel; groupedInternalModels[j] = internalModel; ids[j] = internalModel.id; @@ -955,7 +955,7 @@ Store = Service.extend({ rejectInternalModels(groupedInternalModels, error); }); } else if (ids.length === 1) { - let pair = seeking[groupedInternalModels[0].id]; + var pair = seeking[groupedInternalModels[0].id]; _fetchRecord(pair); } else { assert("You cannot return an empty array from adapter's method groupRecordsForFindMany", false); diff --git a/addon/serializers/rest.js b/addon/serializers/rest.js index 5f4e3397cb3..1a82086e2d9 100644 --- a/addon/serializers/rest.js +++ b/addon/serializers/rest.js @@ -253,10 +253,10 @@ let RESTSerializer = JSONSerializer.extend({ let keys = Object.keys(payload); - for (let i = 0, length = keys.length; i < length; i++) { - let prop = keys[i]; - let modelName = prop; - let forcedSecondary = false; + for (var i = 0, length = keys.length; i < length; i++) { + var prop = keys[i]; + var modelName = prop; + var forcedSecondary = false; /* If you want to provide sideloaded records of the same type that the @@ -283,7 +283,7 @@ let RESTSerializer = JSONSerializer.extend({ modelName = prop.substr(1); } - let typeName = this.modelNameFromPayloadKey(modelName); + var typeName = this.modelNameFromPayloadKey(modelName); if (!store.modelFactoryFor(typeName)) { warn(this.warnMessageNoModelForKey(modelName, typeName), false, { id: 'ds.serializer.model-for-key-missing' @@ -291,8 +291,8 @@ let RESTSerializer = JSONSerializer.extend({ continue; } - let isPrimary = (!forcedSecondary && this.isPrimaryType(store, typeName, primaryModelClass)); - let value = payload[prop]; + var isPrimary = (!forcedSecondary && this.isPrimaryType(store, typeName, primaryModelClass)); + var value = payload[prop]; if (value === null) { continue; @@ -319,7 +319,7 @@ let RESTSerializer = JSONSerializer.extend({ } ``` */ - if (isPrimary && Ember.typeOf(value) !== 'array') { + if (isPrimary && Array.isArray(value)) { let { data, included } = this._normalizePolymorphicRecord(store, value, prop, primaryModelClass, this); documentHash.data = data; if (included) { @@ -335,7 +335,7 @@ let RESTSerializer = JSONSerializer.extend({ } if (isSingle) { - data.forEach((resource) => { + data.forEach(resource => { /* Figures out if this is the primary record or not. @@ -410,18 +410,18 @@ let RESTSerializer = JSONSerializer.extend({ included: [] }; - for (let prop in payload) { - let modelName = this.modelNameFromPayloadKey(prop); + for (var prop in payload) { + var modelName = this.modelNameFromPayloadKey(prop); if (!store.modelFactoryFor(modelName)) { warn(this.warnMessageNoModelForKey(prop, modelName), false, { id: 'ds.serializer.model-for-key-missing' }); continue; } - let type = store.modelFor(modelName); - let typeSerializer = store.serializerFor(type.modelName); + var type = store.modelFor(modelName); + var typeSerializer = store.serializerFor(type.modelName); - Ember.makeArray(payload[prop]).forEach((hash) => { + Ember.makeArray(payload[prop]).forEach(hash => { let { data, included } = typeSerializer.normalize(type, hash, prop); documentHash.data.push(data); if (included) { diff --git a/index.js b/index.js index e8c81b05b97..ed4474cf9d0 100644 --- a/index.js +++ b/index.js @@ -174,7 +174,10 @@ module.exports = { return { loose: true, plugins: customPlugins.plugins, - postTransformPlugins: customPlugins.postTransformPlugins + postTransformPlugins: customPlugins.postTransformPlugins, + exclude: [ + 'transform-es2015-block-scoping', + ] }; }, diff --git a/lib/stripped-build-plugins.js b/lib/stripped-build-plugins.js index ce122923a8b..eb48cbeda6d 100644 --- a/lib/stripped-build-plugins.js +++ b/lib/stripped-build-plugins.js @@ -4,6 +4,7 @@ var FeatureFlags = require('babel-plugin-feature-flags'); var StripHeimdall = require('babel6-plugin-strip-heimdall'); var StripClassCallCheck = require('babel6-plugin-strip-class-callcheck'); var StripFilteredImports = require('./transforms/babel-plugin-remove-imports'); +var TransformBlockScoping = require('babel-plugin-transform-es2015-block-scoping'); function uniqueAdd(obj, key, values) { var a = obj[key] = obj[key] || []; @@ -58,7 +59,11 @@ module.exports = function(environment) { 'debugSeal' ]); } - plugins.push([FilterImports, filteredImports]); + + plugins.push( + [FilterImports, filteredImports], + ['transform-es2015-block-scoping', { 'throwIfClosureRequired': true }] + ); if (environment === 'production') { plugins.push([StripFilteredImports, 'ember-data/-debug']); diff --git a/package.json b/package.json index 48d66b62d57..e13c7e97092 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ }, "devDependencies": { "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", "babel-plugin-transform-es2015-classes": "^6.23.0", "babel-plugin-transform-es2015-computed-properties": "^6.22.0", "babel-plugin-transform-es2015-constants": "^6.1.4", diff --git a/yarn.lock b/yarn.lock index f0d65707e4f..b7d6d217283 100644 --- a/yarn.lock +++ b/yarn.lock @@ -605,9 +605,9 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.23.0: +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -1853,7 +1853,7 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cross-spawn@^5.0.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.0, cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -4232,10 +4232,6 @@ lodash.uniq@^4.2.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - lodash@^3.10.0, lodash@^3.10.1, lodash@^3.9.3: version "3.10.1" resolved "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -5734,7 +5730,7 @@ temp@0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" -testem@1.15.0: +testem@1.15.0, testem@^1.8.1: version "1.15.0" resolved "https://registry.yarnpkg.com/testem/-/testem-1.15.0.tgz#2e3a9e7ac29f16a20f718eb0c4b12e7a44900675" dependencies: @@ -5764,37 +5760,6 @@ testem@1.15.0: tap-parser "^5.1.0" xmldom "^0.1.19" -testem@^1.8.1: - version "1.16.0" - resolved "https://registry.npmjs.org/testem/-/testem-1.16.0.tgz#3933040b5d5b5fbdb6a2b1e7032e511b54a05867" - dependencies: - backbone "^1.1.2" - bluebird "^3.4.6" - charm "^1.0.0" - commander "^2.6.0" - consolidate "^0.14.0" - cross-spawn "^5.1.0" - express "^4.10.7" - fireworm "^0.7.0" - glob "^7.0.4" - http-proxy "^1.13.1" - js-yaml "^3.2.5" - lodash.assignin "^4.1.0" - lodash.clonedeep "^4.4.1" - lodash.find "^4.5.1" - lodash.uniqby "^4.7.0" - mkdirp "^0.5.1" - mustache "^2.2.1" - node-notifier "^5.0.1" - npmlog "^4.0.0" - printf "^0.2.3" - rimraf "^2.4.4" - socket.io "1.6.0" - spawn-args "^0.2.0" - styled_string "0.0.1" - tap-parser "^5.1.0" - xmldom "^0.1.19" - text-table@~0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"