Skip to content

Commit

Permalink
start guarding against poorly optimized babel output
Browse files Browse the repository at this point in the history
  • Loading branch information
runspired authored and stefanpenner committed Apr 27, 2017
1 parent 35e014b commit 4cd8cba
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 64 deletions.
16 changes: 8 additions & 8 deletions addon/-private/system/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down
28 changes: 14 additions & 14 deletions addon/serializers/rest.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -283,16 +283,16 @@ 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'
});
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;
Expand All @@ -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) {
Expand All @@ -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.
Expand Down Expand Up @@ -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) {
Expand Down
5 changes: 4 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,10 @@ module.exports = {
return {
loose: true,
plugins: customPlugins.plugins,
postTransformPlugins: customPlugins.postTransformPlugins
postTransformPlugins: customPlugins.postTransformPlugins,
exclude: [
'transform-es2015-block-scoping',
]
};
},

Expand Down
7 changes: 6 additions & 1 deletion lib/stripped-build-plugins.js
Original file line number Diff line number Diff line change
Expand Up @@ -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] || [];
Expand Down Expand Up @@ -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']);
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
43 changes: 4 additions & 39 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit 4cd8cba

Please sign in to comment.