From 1a10838a61ed2d85a114b8638fe55f4b4c56dc26 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Mon, 15 Sep 2014 10:35:56 +0200 Subject: [PATCH] use hasOwnProperty in for in loops #450 --- lib/HotModuleReplacementPlugin.js | 48 +++++++++++++++++-------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/lib/HotModuleReplacementPlugin.js b/lib/HotModuleReplacementPlugin.js index 49cd8baed..726b607e7 100644 --- a/lib/HotModuleReplacementPlugin.js +++ b/lib/HotModuleReplacementPlugin.js @@ -367,7 +367,9 @@ var hotInitCode = Template.getFunctionContent(function() { return; hotRequestedFilesMap[chunkId] = false; for(var moduleId in moreModules) { - hotUpdate[moduleId] = moreModules[moduleId]; + if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { + hotUpdate[moduleId] = moreModules[moduleId]; + } } if(--hotWaitingFiles === 0 && hotChunksLoading === 0) { hotUpdateDownloaded(); @@ -394,7 +396,9 @@ var hotInitCode = Template.getFunctionContent(function() { } else { var outdatedModules = []; for(var id in hotUpdate) { - outdatedModules.push(+id); + if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { + outdatedModules.push(+id); + } } callback(null, outdatedModules); } @@ -463,25 +467,27 @@ var hotInitCode = Template.getFunctionContent(function() { var outdatedModules = []; var appliedUpdate = {}; for(var id in hotUpdate) { - var moduleId = +id; - var result = getAffectedStuff(moduleId); - if(!result) { - if(options.ignoreUnaccepted) - continue; - hotSetStatus("abort"); - return callback(new Error("Aborted because " + moduleId + " is not accepted")); - } - if(result instanceof Error) { - hotSetStatus("abort"); - return callback(result); - } - appliedUpdate[moduleId] = hotUpdate[moduleId]; - addAllToSet(outdatedModules, result[0]); - for(var moduleId in result[1]) { - if(Object.prototype.hasOwnProperty.call(result[1], moduleId)) { - if(!outdatedDependencies[moduleId]) - outdatedDependencies[moduleId] = []; - addAllToSet(outdatedDependencies[moduleId], result[1][moduleId]); + if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { + var moduleId = +id; + var result = getAffectedStuff(moduleId); + if(!result) { + if(options.ignoreUnaccepted) + continue; + hotSetStatus("abort"); + return callback(new Error("Aborted because " + moduleId + " is not accepted")); + } + if(result instanceof Error) { + hotSetStatus("abort"); + return callback(result); + } + appliedUpdate[moduleId] = hotUpdate[moduleId]; + addAllToSet(outdatedModules, result[0]); + for(var moduleId in result[1]) { + if(Object.prototype.hasOwnProperty.call(result[1], moduleId)) { + if(!outdatedDependencies[moduleId]) + outdatedDependencies[moduleId] = []; + addAllToSet(outdatedDependencies[moduleId], result[1][moduleId]); + } } } }