From eceea64548b6eba3a8fe25cb06c8cc8b948188fd Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Sat, 18 Dec 2021 17:11:56 +0100 Subject: [PATCH] [spidermonkey] rewritten matches function --- src/ecmascript/spidermonkey/element.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ecmascript/spidermonkey/element.c b/src/ecmascript/spidermonkey/element.c index b4188069..7ea13a77 100644 --- a/src/ecmascript/spidermonkey/element.c +++ b/src/ecmascript/spidermonkey/element.c @@ -3020,11 +3020,6 @@ element_matches(JSContext *ctx, unsigned int argc, JS::Value *vp) jshandle_value_to_char_string(&cssstr, ctx, args[0]); xmlpp::ustring css = cssstr.source; xmlpp::ustring xpath = css2xpath(css); - - if (xpath[0] == '/' && xpath[1] == '/') - { - xpath = xmlpp::ustring("descendant-or-self::") + xpath.substr(2); - } done_string(&cssstr); xmlpp::Node::NodeSet elements; @@ -3035,7 +3030,13 @@ element_matches(JSContext *ctx, unsigned int argc, JS::Value *vp) args.rval().setBoolean(false); return true; } - args.rval().setBoolean(elements.size()); + for (auto node: elements) { + if (node == el) { + args.rval().setBoolean(true); + return true; + } + } + args.rval().setBoolean(false); return true; }