The package rpms/nodejs-libxmljs.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/nodejs-libxmljs.git/commit/?id=703f0....
Change: -ExclusiveArch: %{nodejs_arches}
Thanks.
Full change: ============
commit 703f0134673e0b97fac8edcb51201ada1519e1f3 Author: Tom Hughes tom@compton.nu Date: Fri Feb 7 10:00:42 2020 +0000
Update to 0.19.7 upstream release
diff --git a/.gitignore b/.gitignore index 980554e..16310a0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /libxmljs-0.18.2.tgz /libxmljs-0.18.7.tgz /libxmljs-0.19.5.tgz +/libxmljs-0.19.7.tgz diff --git a/nodejs-libxmljs-0.18.7-remove-bundled-libxml.patch b/nodejs-libxmljs-0.18.7-remove-bundled-libxml.patch deleted file mode 100644 index df380bf..0000000 --- a/nodejs-libxmljs-0.18.7-remove-bundled-libxml.patch +++ /dev/null @@ -1,79 +0,0 @@ -commit a1f3eddd81a99a55aa1c2742cc0b342e977d8f47 -Author: Tom Hughes tom@compton.nu -Date: Thu Dec 3 00:06:52 2015 +0000 - - Remove dependency on bundled libxml2 - -diff --git a/binding.gyp b/binding.gyp -index a540ecd..37e0f6f 100644 ---- a/binding.gyp -+++ b/binding.gyp -@@ -25,55 +25,29 @@ - 'src/xml_text.cc', - 'src/xml_pi.cc', - 'src/xml_xpath_context.cc', -- 'vendor/libxml/buf.c', -- 'vendor/libxml/catalog.c', -- 'vendor/libxml/chvalid.c', -- 'vendor/libxml/dict.c', -- 'vendor/libxml/encoding.c', -- 'vendor/libxml/entities.c', -- 'vendor/libxml/error.c', -- 'vendor/libxml/globals.c', -- 'vendor/libxml/hash.c', -- 'vendor/libxml/HTMLparser.c', -- 'vendor/libxml/HTMLtree.c', -- 'vendor/libxml/legacy.c', -- 'vendor/libxml/list.c', -- 'vendor/libxml/parser.c', -- 'vendor/libxml/parserInternals.c', -- 'vendor/libxml/pattern.c', -- 'vendor/libxml/relaxng.c', -- 'vendor/libxml/SAX2.c', -- 'vendor/libxml/SAX.c', -- 'vendor/libxml/tree.c', -- 'vendor/libxml/threads.c', -- 'vendor/libxml/uri.c', -- 'vendor/libxml/valid.c', -- 'vendor/libxml/xinclude.c', -- 'vendor/libxml/xlink.c', -- 'vendor/libxml/xmlIO.c', -- 'vendor/libxml/xmlmemory.c', -- 'vendor/libxml/xmlmodule.c', -- 'vendor/libxml/xmlreader.c', -- 'vendor/libxml/xmlregexp.c', -- 'vendor/libxml/xmlsave.c', -- 'vendor/libxml/xmlschemas.c', -- 'vendor/libxml/xmlschemastypes.c', -- 'vendor/libxml/xmlstring.c', -- 'vendor/libxml/xmlunicode.c', -- 'vendor/libxml/xmlwriter.c', -- 'vendor/libxml/xpath.c', -- 'vendor/libxml/xpointer.c' - ], - 'conditions': [ -+ ['OS=="win"', { -+ # no Windows support yet... -+ }, { -+ 'libraries': [ -+ '<!@(xml2-config --libs)' -+ ], -+ }], - ['OS=="mac"', { - # node-gyp 2.x doesn't add this anymore - # https://github.com/TooTallNate/node-gyp/pull/612 - 'xcode_settings': { - 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', - 'OTHER_LDFLAGS': [ -- '-undefined dynamic_lookup' -+ '-undefined dynamic_lookup', -+ '<!@(xml2-config --cflags)' - ], - }, -+ }, { -+ 'cflags': [ -+ '<!@(xml2-config --cflags)' -+ ], - }] - ] - } diff --git a/nodejs-libxmljs-0.19.5-node12.patch b/nodejs-libxmljs-0.19.5-node12.patch deleted file mode 100644 index 987f8eb..0000000 --- a/nodejs-libxmljs-0.19.5-node12.patch +++ /dev/null @@ -1,1225 +0,0 @@ -commit 3c8be5e707a0d5424859028dc81d1242b50ba6bf -Author: Tom Hughes tom@compton.nu -Date: Sun Jun 16 15:33:08 2019 +0100 - - Update for Node.js 12.x support - -diff --git a/.travis.yml b/.travis.yml -index 6f0a64b..014b4b0 100644 ---- a/.travis.yml -+++ b/.travis.yml -@@ -14,6 +14,7 @@ node_js: - - 8 - - 9 - - 10 -+- 12 - - addons: - apt: -diff --git a/package.json b/package.json -index 930f1b2..c8dacab 100644 ---- a/package.json -+++ b/package.json -@@ -31,7 +31,7 @@ - }, - "dependencies": { - "bindings": "~1.3.0", -- "nan": "~2.10.0", -+ "nan": "~2.14.0", - "node-pre-gyp": "~0.11.0" - }, - "devDependencies": { -diff --git a/src/html_document.cc b/src/html_document.cc -index 13139ac..dd5ebcc 100644 ---- a/src/html_document.cc -+++ b/src/html_document.cc -@@ -4,6 +4,6 @@ - namespace libxmljs { - - void --HtmlDocument::Initialize(v8::Handlev8::Object target) { -+HtmlDocument::Initialize(v8::Localv8::Object target) { - } - } // namespcae libxmljs -diff --git a/src/html_document.h b/src/html_document.h -index 91553ad..3a17ff4 100644 ---- a/src/html_document.h -+++ b/src/html_document.h -@@ -11,7 +11,7 @@ class HtmlDocument : public XmlDocument { - public: - - explicit HtmlDocument(xmlDoc* doc) : XmlDocument(doc) {} -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - }; - - } // namespace libxmljs -diff --git a/src/libxmljs.cc b/src/libxmljs.cc -index cf40a36..afa6b86 100644 ---- a/src/libxmljs.cc -+++ b/src/libxmljs.cc -@@ -274,6 +274,6 @@ NAN_MODULE_INIT(init) - Nan::SetMethod(target, "xmlNodeCount", XmlNodeCount); - } - --NODE_MODULE(xmljs, init) -+NAN_MODULE_WORKER_ENABLED(xmljs, init) - - } // namespace libxmljs -diff --git a/src/xml_attribute.cc b/src/xml_attribute.cc -index 1c2bae7..c71f567 100644 ---- a/src/xml_attribute.cc -+++ b/src/xml_attribute.cc -@@ -23,7 +23,7 @@ XmlAttribute::New(xmlNode* xml_obj, const xmlChar* name, const xmlChar* value) - } - - XmlAttribute* attribute = new XmlAttribute(attr); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - attribute->Wrap(obj); - return scope.Escape(obj); - } -@@ -39,7 +39,7 @@ XmlAttribute::New(xmlAttr* attr) - } - - XmlAttribute* attribute = new XmlAttribute(attr); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - attribute->Wrap(obj); - return scope.Escape(obj); - } -@@ -59,7 +59,7 @@ NAN_METHOD(XmlAttribute::Value) { - - // attr.value('new value'); - if (info.Length() > 0) { -- attr->set_value(*v8::String::Utf8Value(info[0])); -+ attr->set_value(*Nan::Utf8String(info[0])); - return info.GetReturnValue().Set(info.Holder()); - } - -@@ -153,7 +153,7 @@ XmlAttribute::get_namespace() { - } - - void --XmlAttribute::Initialize(v8::Handlev8::Object target) { -+XmlAttribute::Initialize(v8::Localv8::Object target) { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate tmpl = - Nan::Newv8::FunctionTemplate(XmlAttribute::New); -@@ -167,7 +167,7 @@ XmlAttribute::Initialize(v8::Handlev8::Object target) { - Nan::SetPrototypeMethod(tmpl, "namespace", XmlAttribute::Namespace); - - Nan::Set(target, Nan::Newv8::String("Attribute").ToLocalChecked(), -- tmpl->GetFunction()); -+ Nan::GetFunction(tmpl).ToLocalChecked()); - } - - } // namespace libxmljs -diff --git a/src/xml_attribute.h b/src/xml_attribute.h -index 6367469..787c2be 100644 ---- a/src/xml_attribute.h -+++ b/src/xml_attribute.h -@@ -14,7 +14,7 @@ public: - explicit XmlAttribute(xmlAttr* node) : - XmlNode(reinterpret_cast<xmlNode*>(node)) {} - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - static Nan::Persistentv8::FunctionTemplate constructor_template; - - static v8::Localv8::Object New(xmlNode* xml_obj, -diff --git a/src/xml_comment.cc b/src/xml_comment.cc -index 704b2fe..f832781 100644 ---- a/src/xml_comment.cc -+++ b/src/xml_comment.cc -@@ -23,14 +23,14 @@ NAN_METHOD(XmlComment::New) { - return info.GetReturnValue().Set(info.Holder()); - } - -- XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(document); - - v8::Localv8::Value contentOpt; - if (info[1]->IsString()) { - contentOpt = info[1]; - } -- v8::String::Utf8Value contentRaw(contentOpt); -+ Nan::Utf8String contentRaw(contentOpt); - const char* content = (contentRaw.length()) ? *contentRaw : NULL; - - xmlNode* comm = xmlNewDocComment(document->xml_obj, (xmlChar *) content); -@@ -40,7 +40,7 @@ NAN_METHOD(XmlComment::New) { - comment->Wrap(info.Holder()); - - // this prevents the document from going away -- info.Holder()->Set(Nan::Newv8::String("document").ToLocalChecked(), info[0]); -+ Nan::Set(info.Holder(), Nan::Newv8::String("document").ToLocalChecked(), info[0]); - - return info.GetReturnValue().Set(info.Holder()); - } -@@ -53,7 +53,7 @@ NAN_METHOD(XmlComment::Text) { - if (info.Length() == 0) { - return info.GetReturnValue().Set(comment->get_content()); - } else { -- comment->set_content(*v8::String::Utf8Value(info[0])); -+ comment->set_content(*Nan::Utf8String(info[0])); - } - - return info.GetReturnValue().Set(info.Holder()); -@@ -87,7 +87,7 @@ XmlComment::New(xmlNode* node) - } - - XmlComment* comment = new XmlComment(node); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - comment->Wrap(obj); - return scope.Escape(obj); - } -@@ -98,7 +98,7 @@ XmlComment::XmlComment(xmlNode* node) - } - - void --XmlComment::Initialize(v8::Handlev8::Object target) -+XmlComment::Initialize(v8::Localv8::Object target) - { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate t = Nan::Newv8::FunctionTemplate(static_cast<NAN_METHOD((*))>(New)); -@@ -111,7 +111,7 @@ XmlComment::Initialize(v8::Handlev8::Object target) - XmlComment::Text); - - Nan::Set(target, Nan::Newv8::String("Comment").ToLocalChecked(), -- t->GetFunction()); -+ Nan::GetFunction(t).ToLocalChecked()); - } - - } // namespace libxmljs -diff --git a/src/xml_comment.h b/src/xml_comment.h -index 5eed4a6..0eecb70 100644 ---- a/src/xml_comment.h -+++ b/src/xml_comment.h -@@ -11,7 +11,7 @@ public: - - explicit XmlComment(xmlNode* node); - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - - static Nan::Persistentv8::FunctionTemplate constructor_template; - -diff --git a/src/xml_document.cc b/src/xml_document.cc -index 46e68b4..cb281e2 100644 ---- a/src/xml_document.cc -+++ b/src/xml_document.cc -@@ -38,7 +38,7 @@ NAN_METHOD(XmlDocument::Encoding) - } - - // set the encoding otherwise -- v8::String::Utf8Value encoding(info[0]->ToString()); -+ Nan::Utf8String encoding(Nan::Tov8::String(info[0]).ToLocalChecked()); - if(document->xml_obj->encoding != NULL) { - xmlFree((xmlChar*)document->xml_obj->encoding); - } -@@ -82,7 +82,7 @@ NAN_METHOD(XmlDocument::Root) - - // set the element as the root element for the document - // allows for proper retrieval of root later -- XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(info[0]->ToObject()); -+ XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(element); - xmlDocSetRootElement(document->xml_obj, element->xml_obj); - element->ref_wrapped_ancestor(); -@@ -140,7 +140,7 @@ NAN_METHOD(XmlDocument::SetDtd) - XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info.Holder()); - assert(document); - -- v8::String::Utf8Value name(info[0]); -+ Nan::Utf8String name(info[0]); - - v8::Localv8::Value extIdOpt; - v8::Localv8::Value sysIdOpt; -@@ -151,8 +151,8 @@ NAN_METHOD(XmlDocument::SetDtd) - sysIdOpt = info[2]; - } - -- v8::String::Utf8Value extIdRaw(extIdOpt); -- v8::String::Utf8Value sysIdRaw(sysIdOpt); -+ Nan::Utf8String extIdRaw(extIdOpt); -+ Nan::Utf8String sysIdRaw(sysIdOpt); - - //must be set to null in order for xmlCreateIntSubset to ignore them - const char* extId = (extIdRaw.length()) ? *extIdRaw : NULL; -@@ -180,38 +180,38 @@ NAN_METHOD(XmlDocument::ToString) - - if (info.Length() > 0) { - if (info[0]->IsBoolean()) { -- if (info[0]->ToBoolean()->BooleanValue() == true) { -+ if (Nan::Tov8::Boolean(info[0]).ToLocalChecked()->Value() == true) { - options |= XML_SAVE_FORMAT; - } - } else if (info[0]->IsObject()) { -- v8::Localv8::Object obj = info[0]->ToObject(); -+ v8::Localv8::Object obj = Nan::Tov8::Object(info[0]).ToLocalChecked(); - - // drop the xml declaration -- if (obj->Get(Nan::Newv8::String("declaration").ToLocalChecked())->IsFalse()) { -+ if (Nan::Get(obj, Nan::Newv8::String("declaration").ToLocalChecked()).ToLocalChecked()->IsFalse()) { - options |= XML_SAVE_NO_DECL; - } - - // format save output -- if (obj->Get(Nan::Newv8::String("format").ToLocalChecked())->IsTrue()) { -+ if (Nan::Get(obj, Nan::Newv8::String("format").ToLocalChecked()).ToLocalChecked()->IsTrue()) { - options |= XML_SAVE_FORMAT; - } - - // no empty tags (only works with XML) ex: <title></title> becomes <title/> -- if (obj->Get(Nan::Newv8::String("selfCloseEmpty").ToLocalChecked())->IsFalse()) { -+ if (Nan::Get(obj, Nan::Newv8::String("selfCloseEmpty").ToLocalChecked()).ToLocalChecked()->IsFalse()) { - options |= XML_SAVE_NO_EMPTY; - } - - // format with non-significant whitespace -- if (obj->Get(Nan::Newv8::String("whitespace").ToLocalChecked())->IsTrue()) { -+ if (Nan::Get(obj, Nan::Newv8::String("whitespace").ToLocalChecked()).ToLocalChecked()->IsTrue()) { - options |= XML_SAVE_WSNONSIG; - } - -- v8::Localv8::Value type = obj->Get(Nan::Newv8::String("type").ToLocalChecked()); -- if (type->Equals(Nan::Newv8::String("XML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("xml").ToLocalChecked())) { -+ v8::Localv8::Value type = Nan::Get(obj, Nan::Newv8::String("type").ToLocalChecked()).ToLocalChecked(); -+ if (Nan::Equals(type, Nan::Newv8::String("XML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("xml").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_AS_XML; // force XML serialization on HTML doc -- } else if (type->Equals(Nan::Newv8::String("HTML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("html").ToLocalChecked())) { -+ } else if (Nan::Equals(type, Nan::Newv8::String("HTML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("html").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_AS_HTML; // force HTML serialization on XML doc - // if the document is XML and we want formatted HTML output - // we must use the XHTML serializer because the default HTML -@@ -219,8 +219,8 @@ NAN_METHOD(XmlDocument::ToString) - if ((options & XML_SAVE_FORMAT) && (options & XML_SAVE_XHTML) == false) { - options |= XML_SAVE_XHTML; - } -- } else if (type->Equals(Nan::Newv8::String("XHTML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("xhtml").ToLocalChecked())) { -+ } else if (Nan::Equals(type, Nan::Newv8::String("XHTML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("xhtml").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_XHTML; // force XHTML serialization - } - } -@@ -250,7 +250,7 @@ XmlDocument::New(xmlDoc* doc) - return scope.Escape(static_cast<XmlDocument*>(doc->_private)->handle()); - } - -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - - XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(obj); - -@@ -268,8 +268,8 @@ XmlDocument::New(xmlDoc* doc) - - int getParserOption(v8::Localv8::Object props, const char *key, int value, bool defaultValue = true) { - Nan::HandleScope scope; -- v8::Localv8::Value prop = props->Get(Nan::Newv8::String(key).ToLocalChecked()); -- return !prop->IsUndefined() && prop->ToBoolean()->BooleanValue() == defaultValue ? value : 0; -+ v8::Localv8::Value prop = Nan::Get(props, Nan::Newv8::String(key).ToLocalChecked()).ToLocalChecked(); -+ return !prop->IsUndefined() && Nan::Tov8::Boolean(prop).ToLocalChecked()->Value() == defaultValue ? value : 0; - } - - xmlParserOption getParserOptions(v8::Localv8::Object props) { -@@ -342,16 +342,16 @@ NAN_METHOD(XmlDocument::FromHtml) - { - Nan::HandleScope scope; - -- v8::Localv8::Object options = info[1]->ToObject(); -- v8::Localv8::Value baseUrlOpt = options->Get( -- Nan::Newv8::String("baseUrl").ToLocalChecked()); -- v8::Localv8::Value encodingOpt = options->Get( -- Nan::Newv8::String("encoding").ToLocalChecked()); -- v8::Localv8::Value excludeImpliedElementsOpt = options->Get( -- Nan::Newv8::String("excludeImpliedElements").ToLocalChecked()); -+ v8::Localv8::Object options = Nan::Tov8::Object(info[1]).ToLocalChecked(); -+ v8::Localv8::Value baseUrlOpt = Nan::Get(options, -+ Nan::Newv8::String("baseUrl").ToLocalChecked()).ToLocalChecked(); -+ v8::Localv8::Value encodingOpt = Nan::Get(options, -+ Nan::Newv8::String("encoding").ToLocalChecked()).ToLocalChecked(); -+ v8::Localv8::Value excludeImpliedElementsOpt = Nan::Get(options, -+ Nan::Newv8::String("excludeImpliedElements").ToLocalChecked()).ToLocalChecked(); - - // the base URL that will be used for this HTML parsed document -- v8::String::Utf8Value baseUrl_(baseUrlOpt->ToString()); -+ Nan::Utf8String baseUrl_(Nan::Tov8::String(baseUrlOpt).ToLocalChecked()); - const char * baseUrl = *baseUrl_; - if (!baseUrlOpt->IsString()) { - baseUrl = NULL; -@@ -359,7 +359,7 @@ NAN_METHOD(XmlDocument::FromHtml) - - // the encoding to be used for this document - // (leave NULL for libxml to autodetect) -- v8::String::Utf8Value encoding_(encodingOpt->ToString()); -+ Nan::Utf8String encoding_(Nan::Tov8::String(encodingOpt).ToLocalChecked()); - const char * encoding = *encoding_; - - if (!encodingOpt->IsString()) { -@@ -371,18 +371,18 @@ NAN_METHOD(XmlDocument::FromHtml) - xmlSetStructuredErrorFunc(reinterpret_cast<void*>(&errors), XmlSyntaxError::PushToArray); - - int opts = (int)getParserOptions(options); -- if (excludeImpliedElementsOpt->ToBoolean()->Value()) -+ if (Nan::Tov8::Boolean(excludeImpliedElementsOpt).ToLocalChecked()->Value()) - opts |= HTML_PARSE_NOIMPLIED | HTML_PARSE_NODEFDTD; - - htmlDocPtr doc; - if (!node::Buffer::HasInstance(info[0])) { - // Parse a string -- v8::String::Utf8Value str(info[0]->ToString()); -+ Nan::Utf8String str(Nan::Tov8::String(info[0]).ToLocalChecked()); - doc = htmlReadMemory(*str, str.length(), baseUrl, encoding, opts); - } - else { - // Parse a buffer -- v8::Localv8::Object buf = info[0]->ToObject(); -+ v8::Localv8::Object buf = Nan::Tov8::Object(info[0]).ToLocalChecked(); - doc = htmlReadMemory(node::Buffer::Data(buf), node::Buffer::Length(buf), - baseUrl, encoding, opts); - } -@@ -416,14 +416,14 @@ NAN_METHOD(XmlDocument::FromXml) - xmlSetStructuredErrorFunc(reinterpret_cast<void *>(&errors), - XmlSyntaxError::PushToArray); - -- v8::Localv8::Object options = info[1]->ToObject(); -- v8::Localv8::Value baseUrlOpt = options->Get( -- Nan::Newv8::String("baseUrl").ToLocalChecked()); -- v8::Localv8::Value encodingOpt = options->Get( -- Nan::Newv8::String("encoding").ToLocalChecked()); -+ v8::Localv8::Object options = Nan::Tov8::Object(info[1]).ToLocalChecked(); -+ v8::Localv8::Value baseUrlOpt = Nan::Get(options, -+ Nan::Newv8::String("baseUrl").ToLocalChecked()).ToLocalChecked(); -+ v8::Localv8::Value encodingOpt = Nan::Get(options, -+ Nan::Newv8::String("encoding").ToLocalChecked()).ToLocalChecked(); - - // the base URL that will be used for this document -- v8::String::Utf8Value baseUrl_(baseUrlOpt->ToString()); -+ Nan::Utf8String baseUrl_(Nan::Tov8::String(baseUrlOpt).ToLocalChecked()); - const char * baseUrl = *baseUrl_; - if (!baseUrlOpt->IsString()) { - baseUrl = NULL; -@@ -431,7 +431,7 @@ NAN_METHOD(XmlDocument::FromXml) - - // the encoding to be used for this document - // (leave NULL for libxml to autodetect) -- v8::String::Utf8Value encoding_(encodingOpt->ToString()); -+ Nan::Utf8String encoding_(Nan::Tov8::String(encodingOpt).ToLocalChecked()); - const char * encoding = *encoding_; - if (!encodingOpt->IsString()) { - encoding = NULL; -@@ -441,12 +441,12 @@ NAN_METHOD(XmlDocument::FromXml) - xmlDocPtr doc; - if (!node::Buffer::HasInstance(info[0])) { - // Parse a string -- v8::String::Utf8Value str(info[0]->ToString()); -+ Nan::Utf8String str(Nan::Tov8::String(info[0]).ToLocalChecked()); - doc = xmlReadMemory(*str, str.length(), baseUrl, "UTF-8", opts); - } - else { - // Parse a buffer -- v8::Localv8::Object buf = info[0]->ToObject(); -+ v8::Localv8::Object buf = Nan::Tov8::Object(info[0]).ToLocalChecked(); - doc = xmlReadMemory(node::Buffer::Data(buf), node::Buffer::Length(buf), - baseUrl, encoding, opts); - } -@@ -483,7 +483,7 @@ NAN_METHOD(XmlDocument::Validate) - XmlSyntaxError::PushToArray); - - XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info.Holder()); -- XmlDocument* documentSchema = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* documentSchema = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - - xmlSchemaParserCtxtPtr parser_ctxt = xmlSchemaNewDocParserCtxt(documentSchema->xml_obj); - if (parser_ctxt == NULL) { -@@ -500,7 +500,7 @@ NAN_METHOD(XmlDocument::Validate) - bool valid = xmlSchemaValidateDoc(valid_ctxt, document->xml_obj) == 0; - - xmlSetStructuredErrorFunc(NULL, NULL); -- info.Holder()->Set(Nan::Newv8::String("validationErrors").ToLocalChecked(), errors); -+ Nan::Set(info.Holder(), Nan::Newv8::String("validationErrors").ToLocalChecked(), errors); - - xmlSchemaFreeValidCtxt(valid_ctxt); - xmlSchemaFree(schema); -@@ -519,7 +519,7 @@ NAN_METHOD(XmlDocument::RngValidate) - XmlSyntaxError::PushToArray); - - XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info.Holder()); -- XmlDocument* documentSchema = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* documentSchema = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - - xmlRelaxNGParserCtxtPtr parser_ctxt = xmlRelaxNGNewDocParserCtxt(documentSchema->xml_obj); - if (parser_ctxt == NULL) { -@@ -538,7 +538,7 @@ NAN_METHOD(XmlDocument::RngValidate) - bool valid = xmlRelaxNGValidateDoc(valid_ctxt, document->xml_obj) == 0; - - xmlSetStructuredErrorFunc(NULL, NULL); -- info.Holder()->Set(Nan::Newv8::String("validationErrors").ToLocalChecked(), errors); -+ Nan::Set(info.Holder(), Nan::Newv8::String("validationErrors").ToLocalChecked(), errors); - - xmlRelaxNGFreeValidCtxt(valid_ctxt); - xmlRelaxNGFree(schema); -@@ -553,7 +553,7 @@ NAN_METHOD(XmlDocument::New) - { - Nan::HandleScope scope; - -- v8::String::Utf8Value version(info[0]->ToString()); -+ Nan::Utf8String version(Nan::Tov8::String(info[0]).ToLocalChecked()); - xmlDoc* doc = xmlNewDoc((const xmlChar*)(*version)); - - XmlDocument* document = new XmlDocument(doc); -@@ -575,7 +575,7 @@ XmlDocument::~XmlDocument() - } - - void --XmlDocument::Initialize(v8::Handlev8::Object target) -+XmlDocument::Initialize(v8::Localv8::Object target) - { - Nan::HandleScope scope; - -@@ -621,7 +621,7 @@ XmlDocument::Initialize(v8::Handlev8::Object target) - Nan::SetMethod(target, "fromHtml", XmlDocument::FromHtml); - - // used to create new document handles -- Nan::Set(target, Nan::Newv8::String("Document").ToLocalChecked(), tmpl->GetFunction()); -+ Nan::Set(target, Nan::Newv8::String("Document").ToLocalChecked(), Nan::GetFunction(tmpl).ToLocalChecked()); - - XmlNode::Initialize(target); - XmlNamespace::Initialize(target); -diff --git a/src/xml_document.h b/src/xml_document.h -index 5958db2..0e2872e 100644 ---- a/src/xml_document.h -+++ b/src/xml_document.h -@@ -20,7 +20,7 @@ public: - virtual ~XmlDocument(); - - // setup the document handle bindings and internal constructor -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - - // create a new document handle initialized with the - // given xmlDoc object, intended for use in c++ space -diff --git a/src/xml_element.cc b/src/xml_element.cc -index 9e7ddeb..3d147ba 100644 ---- a/src/xml_element.cc -+++ b/src/xml_element.cc -@@ -26,16 +26,16 @@ NAN_METHOD(XmlElement::New) { - return info.GetReturnValue().Set(info.Holder()); - } - -- XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(document); - -- v8::String::Utf8Value name(info[1]); -+ Nan::Utf8String name(info[1]); - - v8::Localv8::Value contentOpt; - if(info[2]->IsString()) { - contentOpt = info[2]; - } -- v8::String::Utf8Value contentRaw(contentOpt); -+ Nan::Utf8String contentRaw(contentOpt); - const char* content = (contentRaw.length()) ? *contentRaw : NULL; - - xmlChar* encodedContent = content ? xmlEncodeSpecialChars(document->xml_obj, (const xmlChar*)content) : NULL; -@@ -51,7 +51,7 @@ NAN_METHOD(XmlElement::New) { - element->Wrap(info.Holder()); - - // this prevents the document from going away -- info.Holder()->Set(Nan::Newv8::String("document").ToLocalChecked(), info[0]); -+ Nan::Set(info.Holder(), Nan::Newv8::String("document").ToLocalChecked(), info[0]); - - return info.GetReturnValue().Set(info.Holder()); - } -@@ -64,7 +64,7 @@ NAN_METHOD(XmlElement::Name) { - if (info.Length() == 0) - return info.GetReturnValue().Set(element->get_name()); - -- v8::String::Utf8Value name(info[0]->ToString()); -+ Nan::Utf8String name(Nan::Tov8::String(info[0]).ToLocalChecked()); - element->set_name(*name); - return info.GetReturnValue().Set(info.Holder()); - } -@@ -77,13 +77,13 @@ NAN_METHOD(XmlElement::Attr) { - // getter - if (info.Length() == 1) - { -- v8::String::Utf8Value name(info[0]); -+ Nan::Utf8String name(info[0]); - return info.GetReturnValue().Set(element->get_attr(*name)); - } - - // setter -- v8::String::Utf8Value name(info[0]->ToString()); -- v8::String::Utf8Value value(info[1]->ToString()); -+ Nan::Utf8String name(Nan::Tov8::String(info[0]).ToLocalChecked()); -+ Nan::Utf8String value(Nan::Tov8::String(info[1]).ToLocalChecked()); - element->set_attr(*name, *value); - - return info.GetReturnValue().Set(info.Holder()); -@@ -101,7 +101,7 @@ NAN_METHOD(XmlElement::AddChild) { - XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(info.Holder()); - assert(element); - -- XmlNode* child = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* child = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(child); - - xmlNode *imported_child = element->import_node(child->xml_obj); -@@ -133,7 +133,7 @@ NAN_METHOD(XmlElement::AddCData) { - if(info[0]->IsString()) { - contentOpt = info[0]; - } -- v8::String::Utf8Value contentRaw(contentOpt); -+ Nan::Utf8String contentRaw(contentOpt); - const char* content = (contentRaw.length()) ? *contentRaw : NULL; - - xmlNode* elem = xmlNewCDataBlock(element->xml_obj->doc, -@@ -149,23 +149,23 @@ NAN_METHOD(XmlElement::Find) { - XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(info.Holder()); - assert(element); - -- v8::String::Utf8Value xpath(info[0]); -+ Nan::Utf8String xpath(info[0]); - - XmlXpathContext ctxt(element->xml_obj); - - if (info.Length() == 2) { - if (info[1]->IsString()) { -- v8::String::Utf8Value uri(info[1]); -+ Nan::Utf8String uri(info[1]); - ctxt.register_ns((const xmlChar*)"xmlns", (const xmlChar*)*uri); - - } else if (info[1]->IsObject()) { -- v8::Localv8::Object namespaces = info[1]->ToObject(); -- v8::Localv8::Array properties = namespaces->GetPropertyNames(); -+ v8::Localv8::Object namespaces = Nan::Tov8::Object(info[1]).ToLocalChecked(); -+ v8::Localv8::Array properties = Nan::GetPropertyNames(namespaces).ToLocalChecked(); - for (unsigned int i = 0; i < properties->Length(); i++) { -- v8::Localv8::String prop_name = properties->Get( -- Nan::Newv8::Number(i))->ToString(); -- v8::String::Utf8Value prefix(prop_name); -- v8::String::Utf8Value uri(namespaces->Get(prop_name)); -+ v8::Localv8::String prop_name = Nan::Tov8::String(Nan::Get(properties, -+ Nan::Newv8::Number(i)).ToLocalChecked()).ToLocalChecked(); -+ Nan::Utf8String prefix(prop_name); -+ Nan::Utf8String uri(Nan::Get(namespaces, prop_name).ToLocalChecked()); - ctxt.register_ns((const xmlChar*)*prefix, (const xmlChar*)*uri); - } - } -@@ -198,7 +198,7 @@ NAN_METHOD(XmlElement::Text) { - if (info.Length() == 0) { - return info.GetReturnValue().Set(element->get_content()); - } else { -- element->set_content(*v8::String::Utf8Value(info[0])); -+ element->set_content(*Nan::Utf8String(info[0])); - } - - return info.GetReturnValue().Set(info.Holder()); -@@ -214,7 +214,7 @@ NAN_METHOD(XmlElement::Child) { - return Nan::ThrowError("Bad argument: must provide #child() with a number"); - } - -- const int32_t idx = info[0]->Int32Value(); -+ const int32_t idx = Nan::Tov8::Int32(info[0]).ToLocalChecked()->Value(); - return info.GetReturnValue().Set(element->get_child(idx)); - } - -@@ -224,7 +224,7 @@ NAN_METHOD(XmlElement::ChildNodes) { - assert(element); - - if (info[0]->IsInt32()) -- return info.GetReturnValue().Set(element->get_child(info[0]->Int32Value())); -+ return info.GetReturnValue().Set(element->get_child(Nan::Tov8::Int32(info[0]).ToLocalChecked()->Value())); - - return info.GetReturnValue().Set(element->get_child_nodes()); - } -@@ -241,7 +241,7 @@ NAN_METHOD(XmlElement::AddPrevSibling) { - XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(info.Holder()); - assert(element); - -- XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = element->import_node(new_sibling->xml_obj); -@@ -266,7 +266,7 @@ NAN_METHOD(XmlElement::AddNextSibling) { - XmlElement* element = Nan::ObjectWrap::Unwrap<XmlElement>(info.Holder()); - assert(element); - -- XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = element->import_node(new_sibling->xml_obj); -@@ -292,9 +292,9 @@ NAN_METHOD(XmlElement::Replace) { - assert(element); - - if (info[0]->IsString()) { -- element->replace_text(*v8::String::Utf8Value(info[0])); -+ element->replace_text(*Nan::Utf8String(info[0])); - } else { -- XmlElement* new_sibling = Nan::ObjectWrap::Unwrap<XmlElement>(info[0]->ToObject()); -+ XmlElement* new_sibling = Nan::ObjectWrap::Unwrap<XmlElement>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = element->import_node(new_sibling->xml_obj); -@@ -352,11 +352,11 @@ XmlElement::get_attrs() { - - v8::Localv8::Array attributes = Nan::Newv8::Array(); - v8::Localv8::Function push = v8::Localv8::Function::Cast( -- attributes->Get(Nan::Newv8::String("push").ToLocalChecked())); -+ Nan::Get(attributes, Nan::Newv8::String("push").ToLocalChecked()).ToLocalChecked()); - v8::Localv8::Value argv[1]; - do { - argv[0] = XmlAttribute::New(attr); -- push->Call(attributes, 1, argv); -+ Nan::Call(push, attributes, 1, argv); - } while ((attr = attr->next)); - - return scope.Escape(attributes); -@@ -500,7 +500,7 @@ XmlElement::New(xmlNode* node) - } - - XmlElement* element = new XmlElement(node); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - element->Wrap(obj); - return scope.Escape(obj); - } -@@ -553,7 +553,7 @@ XmlElement::prev_sibling_will_merge(xmlNode *child) { - } - - void --XmlElement::Initialize(v8::Handlev8::Object target) -+XmlElement::Initialize(v8::Localv8::Object target) - { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate tmpl = -@@ -623,7 +623,7 @@ XmlElement::Initialize(v8::Handlev8::Object target) - XmlElement::Replace); - - Nan::Set(target, Nan::Newv8::String("Element").ToLocalChecked(), -- tmpl->GetFunction()); -+ Nan::GetFunction(tmpl).ToLocalChecked()); - - } - -diff --git a/src/xml_element.h b/src/xml_element.h -index 808b0a2..43e82e3 100644 ---- a/src/xml_element.h -+++ b/src/xml_element.h -@@ -12,7 +12,7 @@ public: - - explicit XmlElement(xmlNode* node); - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - - static Nan::Persistentv8::FunctionTemplate constructor_template; - -diff --git a/src/xml_namespace.cc b/src/xml_namespace.cc -index 89e9bc6..fc45557 100644 ---- a/src/xml_namespace.cc -+++ b/src/xml_namespace.cc -@@ -23,17 +23,17 @@ NAN_METHOD(XmlNamespace::New) { - if (!info[0]->IsObject()) - return Nan::ThrowError("You must provide a node to attach this namespace to"); - -- XmlNode* node = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* node = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - -- v8::String::Utf8Value* prefix = 0; -- v8::String::Utf8Value* href = 0; -+ Nan::Utf8String* prefix = 0; -+ Nan::Utf8String* href = 0; - - if (info[1]->IsString()) - { -- prefix = new v8::String::Utf8Value(info[1]); -+ prefix = new Nan::Utf8String(info[1]); - } - -- href = new v8::String::Utf8Value(info[2]); -+ href = new Nan::Utf8String(info[2]); - - xmlNs* ns = xmlNewNs(node->xml_obj, - (const xmlChar*)(href->operator*()), -@@ -57,7 +57,7 @@ XmlNamespace::New(xmlNs* node) - } - - XmlNamespace* ns = new XmlNamespace(node); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - ns->Wrap(obj); - return scope.Escape(obj); - } -@@ -146,7 +146,7 @@ XmlNamespace::get_prefix() { - } - - void --XmlNamespace::Initialize(v8::Handlev8::Object target) { -+XmlNamespace::Initialize(v8::Localv8::Object target) { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate tmpl = - Nan::Newv8::FunctionTemplate(New); -@@ -162,6 +162,6 @@ XmlNamespace::Initialize(v8::Handlev8::Object target) { - XmlNamespace::Prefix); - - Nan::Set(target, Nan::Newv8::String("Namespace").ToLocalChecked(), -- tmpl->GetFunction()); -+ Nan::GetFunction(tmpl).ToLocalChecked()); - } - } // namespace libxmljs -diff --git a/src/xml_namespace.h b/src/xml_namespace.h -index 59b0a29..2b31ebe 100644 ---- a/src/xml_namespace.h -+++ b/src/xml_namespace.h -@@ -16,7 +16,7 @@ public: - - xmlDoc* context; // reference-managed context - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - static Nan::Persistentv8::FunctionTemplate constructor_template; - - explicit XmlNamespace(xmlNs* ns); -diff --git a/src/xml_node.cc b/src/xml_node.cc -index 52321e2..e84846c 100644 ---- a/src/xml_node.cc -+++ b/src/xml_node.cc -@@ -43,12 +43,12 @@ NAN_METHOD(XmlNode::Namespace) { - // #namespace(ns) libxml.Namespace object was provided - // TODO(sprsquish): check that it was actually given a namespace obj - if (info[0]->IsObject()) -- ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(info[0]->ToObject()); -+ ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - - // #namespace(href) or #namespace(prefix, href) - // if the namespace has already been defined on the node, just set it - if (info[0]->IsString()) { -- v8::String::Utf8Value ns_to_find(info[0]->ToString()); -+ Nan::Utf8String ns_to_find(Nan::Tov8::String(info[0]).ToLocalChecked()); - xmlNs* found_ns = node->find_namespace(*ns_to_find); - if (found_ns) { - // maybe build -@@ -72,13 +72,13 @@ NAN_METHOD(XmlNode::Namespace) { - } - - v8::Localv8::Function define_namespace = -- Nan::New(XmlNamespace::constructor_template)->GetFunction(); -+ Nan::GetFunction(Nan::New(XmlNamespace::constructor_template)).ToLocalChecked(); - - // will create a new namespace attached to this node - // since we keep the document around, the namespace, like the node, won't be - // garbage collected - v8::Localv8::Value new_ns = Nan::NewInstance(define_namespace, argc, argv).ToLocalChecked(); -- ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(new_ns->ToObject()); -+ ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(Nan::Tov8::Object(new_ns).ToLocalChecked()); - } - - node->set_namespace(ns->xml_obj); -@@ -147,38 +147,38 @@ NAN_METHOD(XmlNode::ToString) { - - if (info.Length() > 0) { - if (info[0]->IsBoolean()) { -- if (info[0]->ToBoolean()->BooleanValue() == true) { -+ if (Nan::Tov8::Boolean(info[0]).ToLocalChecked()->Value() == true) { - options |= XML_SAVE_FORMAT; - } - } else if (info[0]->IsObject()) { -- v8::Localv8::Object obj = info[0]->ToObject(); -+ v8::Localv8::Object obj = Nan::Tov8::Object(info[0]).ToLocalChecked(); - - // drop the xml declaration -- if (obj->Get(Nan::Newv8::String("declaration").ToLocalChecked())->IsFalse()) { -+ if (Nan::Get(obj, Nan::Newv8::String("declaration").ToLocalChecked()).ToLocalChecked()->IsFalse()) { - options |= XML_SAVE_NO_DECL; - } - - // format save output -- if (obj->Get(Nan::Newv8::String("format").ToLocalChecked())->IsTrue()) { -+ if (Nan::Get(obj, Nan::Newv8::String("format").ToLocalChecked()).ToLocalChecked()->IsTrue()) { - options |= XML_SAVE_FORMAT; - } - - // no empty tags (only works with XML) ex: <title></title> becomes <title/> -- if (obj->Get(Nan::Newv8::String("selfCloseEmpty").ToLocalChecked())->IsFalse()) { -+ if (Nan::Get(obj, Nan::Newv8::String("selfCloseEmpty").ToLocalChecked()).ToLocalChecked()->IsFalse()) { - options |= XML_SAVE_NO_EMPTY; - } - - // format with non-significant whitespace -- if (obj->Get(Nan::Newv8::String("whitespace").ToLocalChecked())->IsTrue()) { -+ if (Nan::Get(obj, Nan::Newv8::String("whitespace").ToLocalChecked()).ToLocalChecked()->IsTrue()) { - options |= XML_SAVE_WSNONSIG; - } - -- v8::Localv8::Value type = obj->Get(Nan::Newv8::String("type").ToLocalChecked()); -- if (type->Equals(Nan::Newv8::String("XML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("xml").ToLocalChecked())) { -+ v8::Localv8::Value type = Nan::Get(obj, Nan::Newv8::String("type").ToLocalChecked()).ToLocalChecked(); -+ if (Nan::Equals(type, Nan::Newv8::String("XML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("xml").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_AS_XML; // force XML serialization on HTML doc -- } else if (type->Equals(Nan::Newv8::String("HTML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("html").ToLocalChecked())) { -+ } else if (Nan::Equals(type, Nan::Newv8::String("HTML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("html").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_AS_HTML; // force HTML serialization on XML doc - // if the document is XML and we want formatted HTML output - // we must use the XHTML serializer because the default HTML -@@ -186,8 +186,8 @@ NAN_METHOD(XmlNode::ToString) { - if ((options & XML_SAVE_FORMAT) && (options & XML_SAVE_XHTML) == false) { - options |= XML_SAVE_XHTML; - } -- } else if (type->Equals(Nan::Newv8::String("XHTML").ToLocalChecked()) || -- type->Equals(Nan::Newv8::String("xhtml").ToLocalChecked())) { -+ } else if (Nan::Equals(type, Nan::Newv8::String("XHTML").ToLocalChecked()).ToChecked() || -+ Nan::Equals(type, Nan::Newv8::String("xhtml").ToLocalChecked()).ToChecked()) { - options |= XML_SAVE_XHTML; // force XHTML serialization - } - } -@@ -213,7 +213,7 @@ NAN_METHOD(XmlNode::Clone) { - bool recurse = true; - - if (info.Length() == 1 && info[0]->IsBoolean()) -- recurse = info[0]->ToBoolean()->BooleanValue(); -+ recurse = Nan::Tov8::Boolean(info[0]).ToLocalChecked()->Value(); - - return info.GetReturnValue().Set(node->clone(recurse)); - } -@@ -729,7 +729,7 @@ XmlNode::get_type() { - } - - void --XmlNode::Initialize(v8::Handlev8::Object target) { -+XmlNode::Initialize(v8::Localv8::Object target) { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate tmpl = Nan::Newv8::FunctionTemplate(); - constructor_template.Reset( tmpl); -diff --git a/src/xml_node.h b/src/xml_node.h -index e5c873d..e447ffa 100644 ---- a/src/xml_node.h -+++ b/src/xml_node.h -@@ -29,7 +29,7 @@ public: - explicit XmlNode(xmlNode* node); - virtual ~XmlNode(); - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - static Nan::Persistentv8::FunctionTemplate constructor_template; - - // create new XmlElement, XmlAttribute, etc. to wrap a libxml xmlNode -diff --git a/src/xml_pi.cc b/src/xml_pi.cc -index 1f8f200..788f176 100644 ---- a/src/xml_pi.cc -+++ b/src/xml_pi.cc -@@ -23,16 +23,16 @@ NAN_METHOD(XmlProcessingInstruction::New) { - return info.GetReturnValue().Set(info.Holder()); - } - -- XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(document); - -- v8::String::Utf8Value name(info[1]); -+ Nan::Utf8String name(info[1]); - - v8::Localv8::Value contentOpt; - if (info[2]->IsString()) { - contentOpt = info[2]; - } -- v8::String::Utf8Value contentRaw(contentOpt); -+ Nan::Utf8String contentRaw(contentOpt); - const char* content = (contentRaw.length()) ? *contentRaw : NULL; - - xmlNode* pi = xmlNewDocPI(document->xml_obj, (const xmlChar *) *name, (xmlChar *) content); -@@ -42,7 +42,7 @@ NAN_METHOD(XmlProcessingInstruction::New) { - processing_instruction->Wrap(info.Holder()); - - // this prevents the document from going away -- info.Holder()->Set(Nan::Newv8::String("document").ToLocalChecked(), info[0]); -+ Nan::Set(info.Holder(), Nan::Newv8::String("document").ToLocalChecked(), info[0]); - - return info.GetReturnValue().Set(info.Holder()); - } -@@ -55,7 +55,7 @@ NAN_METHOD(XmlProcessingInstruction::Name) { - if (info.Length() == 0) - return info.GetReturnValue().Set(processing_instruction->get_name()); - -- v8::String::Utf8Value name(info[0]->ToString()); -+ Nan::Utf8String name(Nan::Tov8::String(info[0]).ToLocalChecked()); - processing_instruction->set_name(*name); - return info.GetReturnValue().Set(info.Holder()); - } -@@ -68,7 +68,7 @@ NAN_METHOD(XmlProcessingInstruction::Text) { - if (info.Length() == 0) { - return info.GetReturnValue().Set(processing_instruction->get_content()); - } else { -- processing_instruction->set_content(*v8::String::Utf8Value(info[0])); -+ processing_instruction->set_content(*Nan::Utf8String(info[0])); - } - - return info.GetReturnValue().Set(info.Holder()); -@@ -114,7 +114,7 @@ XmlProcessingInstruction::New(xmlNode* node) - } - - XmlProcessingInstruction* processing_instruction = new XmlProcessingInstruction(node); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - processing_instruction->Wrap(obj); - return scope.Escape(obj); - } -@@ -125,7 +125,7 @@ XmlProcessingInstruction::XmlProcessingInstruction(xmlNode* node) - } - - void --XmlProcessingInstruction::Initialize(v8::Handlev8::Object target) -+XmlProcessingInstruction::Initialize(v8::Localv8::Object target) - { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate t = Nan::Newv8::FunctionTemplate(static_cast<NAN_METHOD((*))>(New)); -@@ -142,7 +142,7 @@ XmlProcessingInstruction::Initialize(v8::Handlev8::Object target) - XmlProcessingInstruction::Text); - - Nan::Set(target, Nan::Newv8::String("ProcessingInstruction").ToLocalChecked(), -- t->GetFunction()); -+ Nan::GetFunction(t).ToLocalChecked()); - } - - } // namespace libxmljs -diff --git a/src/xml_pi.h b/src/xml_pi.h -index 91deb9a..754e84b 100644 ---- a/src/xml_pi.h -+++ b/src/xml_pi.h -@@ -11,7 +11,7 @@ public: - - explicit XmlProcessingInstruction(xmlNode* node); - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - - static Nan::Persistentv8::FunctionTemplate constructor_template; - -diff --git a/src/xml_sax_parser.cc b/src/xml_sax_parser.cc -index be8402f..ac76829 100644 ---- a/src/xml_sax_parser.cc -+++ b/src/xml_sax_parser.cc -@@ -123,7 +123,7 @@ XmlSaxParser::Callback(const char* what, - } - - // get the 'emit' function from ourselves -- v8::Localv8::Value emit_v = this->handle()->Get(Nan::New(emit_symbol)); -+ v8::Localv8::Value emit_v = Nan::Get(this->handle(), Nan::New(emit_symbol)).ToLocalChecked(); - assert(emit_v->IsFunction()); - - // trigger the event -@@ -140,9 +140,9 @@ NAN_METHOD(XmlSaxParser::Push) { - - XmlSaxParser *parser = Nan::ObjectWrap::Unwrap<XmlSaxParser>(info.Holder()); - -- v8::String::Utf8Value parsable(info[0]->ToString()); -+ Nan::Utf8String parsable(Nan::Tov8::String(info[0]).ToLocalChecked()); - -- bool terminate = info.Length() > 1 ? info[1]->ToBoolean()->Value() : false; -+ bool terminate = info.Length() > 1 ? Nan::Tov8::Boolean(info[1]).ToLocalChecked()->Value() : false; - - parser->push(*parsable, parsable.length(), terminate); - -@@ -171,7 +171,7 @@ NAN_METHOD(XmlSaxParser::ParseString) { - - XmlSaxParser *parser = Nan::ObjectWrap::Unwrap<XmlSaxParser>(info.Holder()); - -- v8::String::Utf8Value parsable(info[0]->ToString()); -+ Nan::Utf8String parsable(Nan::Tov8::String(info[0]).ToLocalChecked()); - parser->parse_string(*parsable, parsable.length()); - - // TODO(sprsquish): return based on the parser -@@ -425,7 +425,7 @@ XmlSaxParser::error(void* context, const char* msg, ...) - } - - void --XmlSaxParser::Initialize(v8::Handlev8::Object target) { -+XmlSaxParser::Initialize(v8::Localv8::Object target) { - Nan::HandleScope scope; - - emit_symbol.Reset(Nan::Newv8::String(EMIT_SYMBOL_STRING).ToLocalChecked()); -@@ -445,7 +445,7 @@ XmlSaxParser::Initialize(v8::Handlev8::Object target) { - XmlSaxParser::ParseString); - - Nan::Set(target, Nan::Newv8::String("SaxParser").ToLocalChecked(), -- parser_t->GetFunction()); -+ Nan::GetFunction(parser_t).ToLocalChecked()); - - v8::Localv8::FunctionTemplate push_parser_t = - Nan::Newv8::FunctionTemplate(NewPushParser); -@@ -461,6 +461,6 @@ XmlSaxParser::Initialize(v8::Handlev8::Object target) { - XmlSaxParser::Push); - - Nan::Set(target, Nan::Newv8::String("SaxPushParser").ToLocalChecked(), -- push_parser_t->GetFunction()); -+ Nan::GetFunction(push_parser_t).ToLocalChecked()); - } - } // namespace libxmljs -diff --git a/src/xml_sax_parser.h b/src/xml_sax_parser.h -index 6e1d457..88111c2 100644 ---- a/src/xml_sax_parser.h -+++ b/src/xml_sax_parser.h -@@ -13,7 +13,7 @@ class XmlSaxParser : public Nan::ObjectWrap { - virtual ~XmlSaxParser(); - - static void -- Initialize(v8::Handlev8::Object target); -+ Initialize(v8::Localv8::Object target); - - static NAN_METHOD(NewParser); - -diff --git a/src/xml_syntax_error.cc b/src/xml_syntax_error.cc -index d1f1b8c..8fb82ac 100644 ---- a/src/xml_syntax_error.cc -+++ b/src/xml_syntax_error.cc -@@ -56,10 +56,10 @@ XmlSyntaxError::PushToArray(void* errs, xmlError* error) { - Nan::HandleScope scope; - v8::Localv8::Array errors = *reinterpret_cast<v8::Localv8::Array*>(errs); - // push method for array -- v8::Localv8::Function push = v8::Localv8::Function::Cast(errors->Get(Nan::Newv8::String("push").ToLocalChecked())); -+ v8::Localv8::Function push = v8::Localv8::Function::Cast(Nan::Get(errors, Nan::Newv8::String("push").ToLocalChecked()).ToLocalChecked()); - - v8::Localv8::Value argv[1] = { XmlSyntaxError::BuildSyntaxError(error) }; -- push->Call(errors, 1, argv); -+ Nan::Call(push, errors, 1, argv); - } - - } // namespace libxmljs -diff --git a/src/xml_text.cc b/src/xml_text.cc -index 9dc0662..84c7672 100644 ---- a/src/xml_text.cc -+++ b/src/xml_text.cc -@@ -25,14 +25,14 @@ NAN_METHOD(XmlText::New) { - return info.GetReturnValue().Set(info.Holder()); - } - -- XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(info[0]->ToObject()); -+ XmlDocument* document = Nan::ObjectWrap::Unwrap<XmlDocument>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(document); - - v8::Localv8::Value contentOpt; - if (info[1]->IsString()) { - contentOpt = info[1]; - } -- v8::String::Utf8Value contentRaw(contentOpt); -+ Nan::Utf8String contentRaw(contentOpt); - const char* content = (contentRaw.length()) ? *contentRaw : NULL; - - xmlChar* encodedContent = content ? xmlEncodeSpecialChars(document->xml_obj, (const xmlChar*) content) : NULL; -@@ -47,7 +47,7 @@ NAN_METHOD(XmlText::New) { - element->Wrap(info.Holder()); - - // this prevents the document from going away -- info.Holder()->Set(Nan::Newv8::String("document").ToLocalChecked(), info[0]); -+ Nan::Set(info.Holder(), Nan::Newv8::String("document").ToLocalChecked(), info[0]); - - return info.GetReturnValue().Set(info.Holder()); - } -@@ -76,7 +76,7 @@ NAN_METHOD(XmlText::Text) { - if (info.Length() == 0) { - return info.GetReturnValue().Set(element->get_content()); - } else { -- element->set_content(*v8::String::Utf8Value(info[0])); -+ element->set_content(*Nan::Utf8String(info[0])); - } - - return info.GetReturnValue().Set(info.Holder()); -@@ -86,7 +86,7 @@ NAN_METHOD(XmlText::AddPrevSibling) { - XmlText* text = Nan::ObjectWrap::Unwrap<XmlText>(info.Holder()); - assert(text); - -- XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = text->import_node(new_sibling->xml_obj); -@@ -105,7 +105,7 @@ NAN_METHOD(XmlText::AddNextSibling) { - XmlText* text = Nan::ObjectWrap::Unwrap<XmlText>(info.Holder()); - assert(text); - -- XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(info[0]->ToObject()); -+ XmlNode* new_sibling = Nan::ObjectWrap::Unwrap<XmlNode>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = text->import_node(new_sibling->xml_obj); -@@ -125,9 +125,9 @@ NAN_METHOD(XmlText::Replace) { - assert(element); - - if (info[0]->IsString()) { -- element->replace_text(*v8::String::Utf8Value(info[0])); -+ element->replace_text(*Nan::Utf8String(info[0])); - } else { -- XmlText* new_sibling = Nan::ObjectWrap::Unwrap<XmlText>(info[0]->ToObject()); -+ XmlText* new_sibling = Nan::ObjectWrap::Unwrap<XmlText>(Nan::Tov8::Object(info[0]).ToLocalChecked()); - assert(new_sibling); - - xmlNode *imported_sibling = element->import_node(new_sibling->xml_obj); -@@ -207,7 +207,7 @@ XmlText::New(xmlNode* node) - } - - XmlText* element = new XmlText(node); -- v8::Localv8::Object obj = Nan::NewInstance(Nan::New(constructor_template)->GetFunction()).ToLocalChecked(); -+ v8::Localv8::Object obj = Nan::NewInstance(Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked()).ToLocalChecked(); - element->Wrap(obj); - return scope.Escape(obj); - } -@@ -249,7 +249,7 @@ XmlText::prev_sibling_will_merge(xmlNode *child) { - } - - void --XmlText::Initialize(v8::Handlev8::Object target) -+XmlText::Initialize(v8::Localv8::Object target) - { - Nan::HandleScope scope; - v8::Localv8::FunctionTemplate tmpl = -@@ -277,7 +277,7 @@ XmlText::Initialize(v8::Handlev8::Object target) - XmlText::Replace); - - Nan::Set(target, Nan::Newv8::String("Text").ToLocalChecked(), -- tmpl->GetFunction()); -+ Nan::GetFunction(tmpl).ToLocalChecked()); - - } - -diff --git a/src/xml_text.h b/src/xml_text.h -index d03b008..cc258f2 100644 ---- a/src/xml_text.h -+++ b/src/xml_text.h -@@ -11,7 +11,7 @@ public: - - explicit XmlText(xmlNode* node); - -- static void Initialize(v8::Handlev8::Object target); -+ static void Initialize(v8::Localv8::Object target); - - static Nan::Persistentv8::FunctionTemplate constructor_template; - -diff --git a/test/memory_management.js b/test/memory_management.js -index 2378d10..8b7d1f9 100644 ---- a/test/memory_management.js -+++ b/test/memory_management.js -@@ -6,7 +6,7 @@ if (!global.gc) { - } - - var nodeVersion = process.versions.node --var shouldSkip = semver.satisfies(nodeVersion, '8.x || 9.x || 10.x') -+var shouldSkip = semver.satisfies(nodeVersion, '8.x || 9.x || 10.x || 11.x || 12.x') - - module.exports.setUp = function(done) { - collectGarbage(); diff --git a/nodejs-libxmljs-error.patch b/nodejs-libxmljs-error.patch new file mode 100644 index 0000000..2d866e8 --- /dev/null +++ b/nodejs-libxmljs-error.patch @@ -0,0 +1,19 @@ +commit 08c301396d94007248696f1ebf82f115e0fd3877 +Author: Tom Hughes tom@compton.nu +Date: Fri Feb 7 10:16:24 2020 +0000 + + Adapt to change in error message in libxml2 + +diff --git a/test/xml_sax_parser.js b/test/xml_sax_parser.js +index a7d6b4d..c1546f3 100644 +--- a/test/xml_sax_parser.js ++++ b/test/xml_sax_parser.js +@@ -76,7 +76,7 @@ var callbackControl = { + ], + + error: [ +- ["Premature end of data in tag error line 2\n"] ++ ["EndTag: '</' not found\n"] + ] + }; + diff --git a/nodejs-libxmljs-libxml.patch b/nodejs-libxmljs-libxml.patch new file mode 100644 index 0000000..ac4d675 --- /dev/null +++ b/nodejs-libxmljs-libxml.patch @@ -0,0 +1,79 @@ +commit 7263630a74666720d581488756cd3d350d4f26fa +Author: Tom Hughes tom@compton.nu +Date: Thu Dec 3 00:06:52 2015 +0000 + + Remove dependency on bundled libxml2 + +diff --git a/binding.gyp b/binding.gyp +index a540ecd..37e0f6f 100644 +--- a/binding.gyp ++++ b/binding.gyp +@@ -25,55 +25,29 @@ + 'src/xml_text.cc', + 'src/xml_pi.cc', + 'src/xml_xpath_context.cc', +- 'vendor/libxml/buf.c', +- 'vendor/libxml/catalog.c', +- 'vendor/libxml/chvalid.c', +- 'vendor/libxml/dict.c', +- 'vendor/libxml/encoding.c', +- 'vendor/libxml/entities.c', +- 'vendor/libxml/error.c', +- 'vendor/libxml/globals.c', +- 'vendor/libxml/hash.c', +- 'vendor/libxml/HTMLparser.c', +- 'vendor/libxml/HTMLtree.c', +- 'vendor/libxml/legacy.c', +- 'vendor/libxml/list.c', +- 'vendor/libxml/parser.c', +- 'vendor/libxml/parserInternals.c', +- 'vendor/libxml/pattern.c', +- 'vendor/libxml/relaxng.c', +- 'vendor/libxml/SAX2.c', +- 'vendor/libxml/SAX.c', +- 'vendor/libxml/tree.c', +- 'vendor/libxml/threads.c', +- 'vendor/libxml/uri.c', +- 'vendor/libxml/valid.c', +- 'vendor/libxml/xinclude.c', +- 'vendor/libxml/xlink.c', +- 'vendor/libxml/xmlIO.c', +- 'vendor/libxml/xmlmemory.c', +- 'vendor/libxml/xmlmodule.c', +- 'vendor/libxml/xmlreader.c', +- 'vendor/libxml/xmlregexp.c', +- 'vendor/libxml/xmlsave.c', +- 'vendor/libxml/xmlschemas.c', +- 'vendor/libxml/xmlschemastypes.c', +- 'vendor/libxml/xmlstring.c', +- 'vendor/libxml/xmlunicode.c', +- 'vendor/libxml/xmlwriter.c', +- 'vendor/libxml/xpath.c', +- 'vendor/libxml/xpointer.c' + ], + 'conditions': [ ++ ['OS=="win"', { ++ # no Windows support yet... ++ }, { ++ 'libraries': [ ++ '<!@(xml2-config --libs)' ++ ], ++ }], + ['OS=="mac"', { + # node-gyp 2.x doesn't add this anymore + # https://github.com/TooTallNate/node-gyp/pull/612 + 'xcode_settings': { + 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', + 'OTHER_LDFLAGS': [ +- '-undefined dynamic_lookup' ++ '-undefined dynamic_lookup', ++ '<!@(xml2-config --cflags)' + ], + }, ++ }, { ++ 'cflags': [ ++ '<!@(xml2-config --cflags)' ++ ], + }] + ] + } diff --git a/nodejs-libxmljs.spec b/nodejs-libxmljs.spec index 60796eb..e7a7339 100644 --- a/nodejs-libxmljs.spec +++ b/nodejs-libxmljs.spec @@ -2,25 +2,24 @@
%global enable_tests 1
-Name: nodejs-libxmljs -Version: 0.19.5 -Release: 3%{?dist} -Summary: Node.js module that provides libxml bindings for the v8 javascript engine -License: MIT -URL: https://github.com/polotek/libxmljs -Source0: https://registry.npmjs.org/libxmljs/-/libxmljs-%%7Bversion%7D.tgz - -# binding.gyp contains a dependency on the bundled libxml2 -Patch0: %{name}-0.18.7-remove-bundled-libxml.patch -# https://github.com/libxmljs/libxmljs/pull/552 -Patch1: %{name}-0.19.5-node12.patch +Name: nodejs-libxmljs +Version: 0.19.7 +Release: 1%{?dist} +Summary: Node.js module that provides libxml bindings for the v8 javascript engine + +License: MIT +URL: https://www.npmjs.com/package/libxmljs +Source0: https://registry.npmjs.org/libxmljs/-/libxmljs-%%7Bversion%7D.tgz +# Remove dependency on bundled libxml2 +Patch0: nodejs-libxmljs-libxml.patch +# Adapt to change in error message in libxml2 +Patch1: nodejs-libxmljs-error.patch +ExclusiveArch: %{nodejs_arches}
BuildRequires: nodejs-packaging BuildRequires: node-gyp BuildRequires: libxml2-devel -BuildRequires: npm(nan) >= 2.0.4 - -ExclusiveArch: %{nodejs_arches} +BuildRequires: npm(nan) >= 2.14.0
%if 0%{?enable_tests} BuildRequires: npm(bindings) @@ -36,13 +35,12 @@ BuildRequires: npm(nodeunit) %nodejs_fixdep bindings %nodejs_fixdep --dev --move nan %nodejs_fixdep --remove node-pre-gyp -rm -rf vendor/ +rm -rf node_modules vendor
%build %nodejs_symlink_deps --build -export CXXFLAGS="%{optflags}" -export LDFLAGS="%{?__global_ldflags} -Wl,-z,undefs" +%set_build_flags node-gyp configure node-gyp build
@@ -72,6 +70,9 @@ ln -s Release/lib.target/xmljs.node build/xmljs.node
%changelog +* Fri Feb 7 2020 Tom Hughes tom@compton.nu - 0.19.7-1 +- Update to 0.19.7 upstream release + * Wed Jan 29 2020 Fedora Release Engineering releng@fedoraproject.org - 0.19.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources index 79142c0..433a423 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libxmljs-0.19.5.tgz) = 98a95a7db488b206425dc85aea5a3230dfd0d6471b349e4ddd50bfad2d2fac95dd23df53cc42368b6acfa75d0737f07bd2f48f87a6eaea71e1a024f5f5e1ad4f +SHA512 (libxmljs-0.19.7.tgz) = 9452721bd4f5995c13ccd4f0e9992f22dd0ef8db0847e15313e45c0b640314653c60c9d0ae7c84386ae3e875927b501dc102bbb37ec13a9e0d2fea5c02a7cada