Skip to content

Commit

Permalink
fix: Avoid iterating over prototype properties
Browse files Browse the repository at this point in the history
by adding `hasOwnProperty` checks.

#436
  • Loading branch information
karfau committed Oct 11, 2022
1 parent 0b21623 commit b5c1be1
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 16 deletions.
24 changes: 14 additions & 10 deletions lib/dom.js
Expand Up @@ -64,7 +64,9 @@ function arrayIncludes (list) {

function copy(src,dest){
for(var p in src){
dest[p] = src[p];
if (Object.prototype.hasOwnProperty.call(src, p)) {
dest[p] = src[p];
}
}
}

Expand Down Expand Up @@ -553,9 +555,9 @@ Node.prototype = {
//console.dir(map)
if(map){
for(var n in map){
if(map[n] == namespaceURI){
return n;
}
if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {
return n;
}
}
}
el = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;
Expand All @@ -569,7 +571,7 @@ Node.prototype = {
var map = el._nsMap;
//console.dir(map)
if(map){
if(prefix in map){
if(Object.prototype.hasOwnProperty.call(map, prefix)){
return map[prefix] ;
}
}
Expand Down Expand Up @@ -1608,11 +1610,13 @@ function importNode(doc,node,deep){
// attributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};
function cloneNode(doc,node,deep){
var node2 = new node.constructor();
for(var n in node){
var v = node[n];
if(typeof v != 'object' ){
if(v != node2[n]){
node2[n] = v;
for (var n in node) {
if (Object.prototype.hasOwnProperty.call(node, n)) {
var v = node[n];
if (typeof v != "object") {
if (v != node2[n]) {
node2[n] = v;
}
}
}
}
Expand Down
22 changes: 16 additions & 6 deletions lib/sax.js
Expand Up @@ -142,8 +142,10 @@ function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){
if(endIgnoreCaseMach){
domBuilder.endElement(config.uri,config.localName,tagName);
if(localNSMap){
for(var prefix in localNSMap){
domBuilder.endPrefixMapping(prefix) ;
for (var prefix in localNSMap) {
if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {
domBuilder.endPrefixMapping(prefix);
}
}
}
if(!endMatch){
Expand Down Expand Up @@ -493,8 +495,10 @@ function appendElement(el,domBuilder,currentNSMap){
if(el.closed){
domBuilder.endElement(ns,localName,tagName);
if(localNSMap){
for(prefix in localNSMap){
domBuilder.endPrefixMapping(prefix)
for (prefix in localNSMap) {
if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {
domBuilder.endPrefixMapping(prefix);
}
}
}
}else{
Expand Down Expand Up @@ -536,9 +540,15 @@ function fixSelfClosed(source,elStartEnd,tagName,closeMap){
return pos<elStartEnd;
//}
}
function _copy(source,target){
for(var n in source){target[n] = source[n]}

function _copy (source, target) {
for (var n in source) {
if (Object.prototype.hasOwnProperty.call(source, n)) {
target[n] = source[n];
}
}
}

function parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'
var next= source.charAt(start+2)
switch(next){
Expand Down

0 comments on commit b5c1be1

Please sign in to comment.