From 1f20aee8ef1a8f3964add1a188f723bbc54862a0 Mon Sep 17 00:00:00 2001 From: James Tanner-McLeod Date: Wed, 12 Oct 2022 13:17:44 -0400 Subject: [PATCH] fix: Backport PR-437 to 0.7.x branch --- lib/dom.js | 26 ++++++++++++++++---------- lib/sax.js | 22 ++++++++++++++++------ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/lib/dom.js b/lib/dom.js index 1459059fb..f4b65e383 100644 --- a/lib/dom.js +++ b/lib/dom.js @@ -62,7 +62,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]; + } } } @@ -509,9 +511,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; @@ -526,7 +528,9 @@ Node.prototype = { //console.dir(map) if(map){ if(prefix in map){ - return map[prefix] ; + if(Object.prototype.hasOwnProperty.call(map, prefix)){ + return map[prefix] ; + } } } el = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode; @@ -1390,11 +1394,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; + } } } } diff --git a/lib/sax.js b/lib/sax.js index 6795df61c..e81fefac9 100644 --- a/lib/sax.js +++ b/lib/sax.js @@ -135,8 +135,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){ @@ -472,8 +474,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{ @@ -519,9 +523,15 @@ function fixSelfClosed(source,elStartEnd,tagName,closeMap){ return pos