From 52020dc09a8c4fc63e3ab4313685f46eea4492a8 Mon Sep 17 00:00:00 2001 From: Anto Aravinth Date: Sat, 28 Jul 2018 10:00:32 +0530 Subject: [PATCH 001/159] test: refactor test-http2-compat-serverresponse-finished.js PR-URL: https://github.com/nodejs/node/pull/21929 Reviewed-By: Luigi Pinca Reviewed-By: Jon Moss Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- .../test-http2-compat-serverresponse-finished.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/parallel/test-http2-compat-serverresponse-finished.js b/test/parallel/test-http2-compat-serverresponse-finished.js index ceaa6eb5c3cf2c..4da592a5b354b0 100644 --- a/test/parallel/test-http2-compat-serverresponse-finished.js +++ b/test/parallel/test-http2-compat-serverresponse-finished.js @@ -9,14 +9,14 @@ const net = require('net'); // Http2ServerResponse.finished const server = h2.createServer(); -server.listen(0, common.mustCall(function() { +server.listen(0, common.mustCall(() => { const port = server.address().port; - server.once('request', common.mustCall(function(request, response) { + server.once('request', common.mustCall((request, response) => { assert.ok(response.socket instanceof net.Socket); assert.ok(response.connection instanceof net.Socket); assert.strictEqual(response.socket, response.connection); - response.on('finish', common.mustCall(function() { + response.on('finish', common.mustCall(() => { assert.strictEqual(response.socket, undefined); assert.strictEqual(response.connection, undefined); process.nextTick(common.mustCall(() => { @@ -30,7 +30,7 @@ server.listen(0, common.mustCall(function() { })); const url = `http://localhost:${port}`; - const client = h2.connect(url, common.mustCall(function() { + const client = h2.connect(url, common.mustCall(() => { const headers = { ':path': '/', ':method': 'GET', @@ -38,7 +38,7 @@ server.listen(0, common.mustCall(function() { ':authority': `localhost:${port}` }; const request = client.request(headers); - request.on('end', common.mustCall(function() { + request.on('end', common.mustCall(() => { client.close(); })); request.end(); From 7e23080d45dbc00d3acfddb8bdbd5ba36540d088 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 01:14:20 +0200 Subject: [PATCH 002/159] test: pass through stderr in benchmark tests This helps a lot with debugging failing benchmark tests, which would otherwise just print an assertion for the exit code (something like `+1 -0`, which yields almost no information about a failure). PR-URL: https://github.com/nodejs/node/pull/21860 Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Gireesh Punathil Reviewed-By: Trivikram Kamat Reviewed-By: Gabriel Schulhof --- test/common/benchmark.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/common/benchmark.js b/test/common/benchmark.js index f8952a8b9ad647..0894146c4d1443 100644 --- a/test/common/benchmark.js +++ b/test/common/benchmark.js @@ -20,7 +20,10 @@ function runBenchmark(name, args, env) { const mergedEnv = Object.assign({}, process.env, env); - const child = fork(runjs, argv, { env: mergedEnv, stdio: 'pipe' }); + const child = fork(runjs, argv, { + env: mergedEnv, + stdio: ['inherit', 'pipe', 'inherit', 'ipc'] + }); child.stdout.setEncoding('utf8'); let stdout = ''; From ec9d529a3271592a0360d3b7796e72c71a600f8f Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 27 Jul 2018 08:54:53 -0700 Subject: [PATCH 003/159] doc: documentation deprecation of process.binding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is the first step in a long process of deprecating `process.binding()` and replacing it with `internalBinding()`. Eventually, once we have replaced internal uses of `process.binding()` with `internalBinding()`, we can escalate to a runtime deprecation and eventual end-of-life. PR-URL: https://github.com/nodejs/node/pull/22004 Reviewed-By: Gireesh Punathil Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Vladimir de Turckheim Reviewed-By: Anna Henningsen Reviewed-By: Bryan English Reviewed-By: Vse Mozhet Byt Reviewed-By: Gus Caplan Reviewed-By: Сковорода Никита Андреевич Reviewed-By: Ruben Bridgewater Reviewed-By: Tobias Nießen Reviewed-By: Michaël Zasso Reviewed-By: Michael Dawson --- doc/api/deprecations.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index d771a3e0e7a02d..322e73c4c9f11a 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -929,6 +929,9 @@ Type: Documentation-only (supports [`--pending-deprecation`][]) Using `process.binding()` in general should be avoided. The type checking methods in particular can be replaced by using [`util.types`][]. +This deprecation has been superseded by the deprecation of the +`process.binding()` API ([DEP00XX](#DEP00XX)). + ### DEP0104: process.env string coercion @@ -987,6 +990,14 @@ Type: Documentation-only The option `produceCachedData` has been deprecated. Use [`script.createCachedData()`][] instead. + +### DEP00XX: process.binding() + +Type: Documentation-only + +The `process.binding()` API is intended for use by Node.js internal code +only. Use of `process.binding()` by userland code is unsupported. + [`--pending-deprecation`]: cli.html#cli_pending_deprecation [`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_class_method_buffer_allocunsafeslow_size [`Buffer.from(array)`]: buffer.html#buffer_class_method_buffer_from_array From cde0e5f39692a6e2a9374ca7f98d739dbcc8f972 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 16 Jul 2018 23:25:17 +0200 Subject: [PATCH 004/159] src: reduce unnecessary includes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A forward declaration suffices and means that the tracing agent header and its dependencies don’t need to be included in nearly every Node.js file. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/env-inl.h | 1 - src/env.h | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/env-inl.h b/src/env-inl.h index 5c359c04d907cb..bc81400403bb16 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -32,7 +32,6 @@ #include "v8.h" #include "node_perf_common.h" #include "node_context_data.h" -#include "tracing/agent.h" #include "node_worker.h" #include diff --git a/src/env.h b/src/env.h index ede221400b4965..bd29e006e3c256 100644 --- a/src/env.h +++ b/src/env.h @@ -35,7 +35,6 @@ #include "v8.h" #include "node.h" #include "node_http2_state.h" -#include "tracing/agent.h" #include #include @@ -55,6 +54,10 @@ namespace performance { class performance_state; } +namespace tracing { +class Agent; +} + namespace worker { class Worker; } From 4379140dbf0e7dd82de7a76e083f777e13456e02 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 16 Jul 2018 23:32:01 +0200 Subject: [PATCH 005/159] src: minor refactor of node_trace_events.cc Avoid unnecessary copies/extra operations & align with our style guide, and add protection against throwing getters. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/node_trace_events.cc | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc index 684ea41a66cc58..06063a449b93d8 100644 --- a/src/node_trace_events.cc +++ b/src/node_trace_events.cc @@ -25,7 +25,7 @@ class NodeCategorySet : public BaseObject { static void Enable(const FunctionCallbackInfo& args); static void Disable(const FunctionCallbackInfo& args); - const std::set& GetCategories() { return categories_; } + const std::set& GetCategories() const { return categories_; } void MemoryInfo(MemoryTracker* tracker) const override { tracker->TrackThis(this); @@ -37,8 +37,8 @@ class NodeCategorySet : public BaseObject { private: NodeCategorySet(Environment* env, Local wrap, - std::set categories) : - BaseObject(env, wrap), categories_(categories) { + std::set&& categories) : + BaseObject(env, wrap), categories_(std::move(categories)) { MakeWeak(); } @@ -52,12 +52,14 @@ void NodeCategorySet::New(const FunctionCallbackInfo& args) { CHECK(args[0]->IsArray()); Local cats = args[0].As(); for (size_t n = 0; n < cats->Length(); n++) { - Local category = cats->Get(env->context(), n).ToLocalChecked(); + Local category; + if (!cats->Get(env->context(), n).ToLocal(&category)) return; Utf8Value val(env->isolate(), category); + if (!*val) return; categories.emplace(*val); } CHECK_NOT_NULL(env->tracing_agent()); - new NodeCategorySet(env, args.This(), categories); + new NodeCategorySet(env, args.This(), std::move(categories)); } void NodeCategorySet::Enable(const FunctionCallbackInfo& args) { @@ -91,13 +93,15 @@ void GetEnabledCategories(const FunctionCallbackInfo& args) { args.GetReturnValue().Set( String::NewFromUtf8(env->isolate(), categories.c_str(), - v8::NewStringType::kNormal).ToLocalChecked()); + v8::NewStringType::kNormal, + categories.size()).ToLocalChecked()); } } // The tracing APIs require category groups to be pointers to long-lived // strings. Those strings are stored here. -static std::unordered_set categoryGroups; +static std::unordered_set category_groups; +static Mutex category_groups_mutex; // Gets a pointer to the category-enabled flags for a tracing category group, // if tracing is enabled for it. @@ -107,14 +111,15 @@ static const uint8_t* GetCategoryGroupEnabled(const char* category_group) { } static const char* GetCategoryGroup(Environment* env, - const Local categoryValue) { - CHECK(categoryValue->IsString()); + const Local category_value) { + CHECK(category_value->IsString()); - Utf8Value category(env->isolate(), categoryValue); + Utf8Value category(env->isolate(), category_value); + Mutex::ScopedLock lock(category_groups_mutex); // If the value already exists in the set, insertion.first will point // to the existing value. Thus, this will maintain a long lived pointer // to the category c-string. - auto insertion = categoryGroups.insert(category.out()); + auto insertion = category_groups.insert(category.out()); // The returned insertion is a pair whose first item is the object that was // inserted or that blocked the insertion and second item is a boolean @@ -133,7 +138,7 @@ static void Emit(const FunctionCallbackInfo& args) { // enabled. const char* category_group = GetCategoryGroup(env, args[1]); const uint8_t* category_group_enabled = - GetCategoryGroupEnabled(category_group); + GetCategoryGroupEnabled(category_group); if (*category_group_enabled == 0) return; // get trace_event phase @@ -142,8 +147,8 @@ static void Emit(const FunctionCallbackInfo& args) { // get trace_event name CHECK(args[2]->IsString()); - Utf8Value nameValue(env->isolate(), args[2]); - const char* name = nameValue.out(); + Utf8Value name_value(env->isolate(), args[2]); + const char* name = name_value.out(); // get trace_event id int64_t id = 0; @@ -212,7 +217,7 @@ static void CategoryGroupEnabled(const FunctionCallbackInfo& args) { const char* category_group = GetCategoryGroup(env, args[0]); const uint8_t* category_group_enabled = - GetCategoryGroupEnabled(category_group); + GetCategoryGroupEnabled(category_group); args.GetReturnValue().Set(*category_group_enabled > 0); } From daafe6c1953cc50432a20491edeb23d949dd95e2 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 16 Jul 2018 23:34:55 +0200 Subject: [PATCH 006/159] src: refactor tracing agent code Avoid unnecessary operations, add a bit of documentation, and turn the `ClientHandle` smart pointer alias into a real class. This should allow de-coupling the unnecessary combination of a single specific `file_writer` from `Agent`. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/inspector/tracing_agent.cc | 6 +-- src/inspector/tracing_agent.h | 8 +--- src/node.cc | 10 +++-- src/tracing/agent.cc | 46 +++++++++------------ src/tracing/agent.h | 75 ++++++++++++++++++++++++++-------- 5 files changed, 87 insertions(+), 58 deletions(-) diff --git a/src/inspector/tracing_agent.cc b/src/inspector/tracing_agent.cc index c0425aab29d4a0..92c3597590dabf 100644 --- a/src/inspector/tracing_agent.cc +++ b/src/inspector/tracing_agent.cc @@ -46,9 +46,7 @@ class InspectorTraceWriter : public node::tracing::AsyncTraceWriter { } // namespace TracingAgent::TracingAgent(Environment* env) - : env_(env), - trace_writer_( - tracing::Agent::EmptyClientHandle()) { + : env_(env) { } TracingAgent::~TracingAgent() { @@ -62,7 +60,7 @@ void TracingAgent::Wire(UberDispatcher* dispatcher) { DispatchResponse TracingAgent::start( std::unique_ptr traceConfig) { - if (trace_writer_ != nullptr) { + if (!trace_writer_.empty()) { return DispatchResponse::Error( "Call NodeTracing::end to stop tracing before updating the config"); } diff --git a/src/inspector/tracing_agent.h b/src/inspector/tracing_agent.h index 478107c5acdd64..029fce7c191b42 100644 --- a/src/inspector/tracing_agent.h +++ b/src/inspector/tracing_agent.h @@ -2,16 +2,13 @@ #define SRC_INSPECTOR_TRACING_AGENT_H_ #include "node/inspector/protocol/NodeTracing.h" +#include "tracing/agent.h" #include "v8.h" namespace node { class Environment; -namespace tracing { -class Agent; -} // namespace tracing - namespace inspector { namespace protocol { @@ -32,8 +29,7 @@ class TracingAgent : public NodeTracing::Backend { void DisconnectTraceClient(); Environment* env_; - std::unique_ptr, - void (*)(std::pair*)> trace_writer_; + tracing::AgentWriterHandle trace_writer_; std::unique_ptr frontend_; }; diff --git a/src/node.cc b/src/node.cc index 138595ba86834c..f5be3f7954d53d 100644 --- a/src/node.cc +++ b/src/node.cc @@ -387,7 +387,7 @@ class NodeTraceStateObserver : static struct { #if NODE_USE_V8_PLATFORM void Initialize(int thread_pool_size) { - tracing_agent_.reset(new tracing::Agent(trace_file_pattern)); + tracing_agent_.reset(new tracing::Agent()); auto controller = tracing_agent_->GetTracingController(); controller->AddTraceStateObserver(new NodeTraceStateObserver(controller)); tracing::TraceEventHelper::SetTracingController(controller); @@ -427,12 +427,13 @@ static struct { #endif // HAVE_INSPECTOR void StartTracingAgent() { - tracing_agent_->Enable(trace_enabled_categories); + tracing_file_writer_ = tracing_agent_->AddClient( + trace_enabled_categories, + new tracing::NodeTraceWriter(trace_file_pattern)); } void StopTracingAgent() { - if (tracing_agent_) - tracing_agent_->Stop(); + tracing_file_writer_.reset(); } tracing::Agent* GetTracingAgent() const { @@ -444,6 +445,7 @@ static struct { } std::unique_ptr tracing_agent_; + tracing::AgentWriterHandle tracing_file_writer_; NodePlatform* platform_; #else // !NODE_USE_V8_PLATFORM void Initialize(int thread_pool_size) {} diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index a3ddfb61a95328..9cc21863e3ed42 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -44,7 +44,7 @@ using v8::platform::tracing::TraceWriter; using std::string; Agent::Agent(const std::string& log_file_pattern) - : log_file_pattern_(log_file_pattern), file_writer_(EmptyClientHandle()) { + : log_file_pattern_(log_file_pattern) { tracing_controller_ = new TracingController(); tracing_controller_->Initialize(nullptr); } @@ -62,20 +62,23 @@ void Agent::Start() { // This thread should be created *after* async handles are created // (within NodeTraceWriter and NodeTraceBuffer constructors). // Otherwise the thread could shut down prematurely. - CHECK_EQ(0, uv_thread_create(&thread_, ThreadCb, this)); + CHECK_EQ(0, uv_thread_create(&thread_, [](void* arg) { + Agent* agent = static_cast(arg); + uv_run(&agent->tracing_loop_, UV_RUN_DEFAULT); + }, this)); started_ = true; } -Agent::ClientHandle Agent::AddClient(const std::set& categories, - std::unique_ptr writer) { +AgentWriterHandle Agent::AddClient( + const std::set& categories, + std::unique_ptr writer) { Start(); ScopedSuspendTracing suspend(tracing_controller_, this); int id = next_writer_id_++; writers_[id] = std::move(writer); categories_[id] = categories; - auto client_id = new std::pair(this, id); - return ClientHandle(client_id, &DisconnectClient); + return AgentWriterHandle(this, id); } void Agent::Stop() { @@ -101,36 +104,27 @@ void Agent::Disconnect(int client) { categories_.erase(client); } -// static -void Agent::ThreadCb(void* arg) { - Agent* agent = static_cast(arg); - uv_run(&agent->tracing_loop_, UV_RUN_DEFAULT); -} - void Agent::Enable(const std::string& categories) { if (categories.empty()) return; std::set categories_set; - std::stringstream category_list(categories); + std::istringstream category_list(categories); while (category_list.good()) { std::string category; getline(category_list, category, ','); - categories_set.insert(category); + categories_set.emplace(std::move(category)); } Enable(categories_set); } void Agent::Enable(const std::set& categories) { - std::string cats; - for (const std::string cat : categories) - cats += cat + ", "; if (categories.empty()) return; file_writer_categories_.insert(categories.begin(), categories.end()); std::set full_list(file_writer_categories_.begin(), file_writer_categories_.end()); - if (!file_writer_) { + if (file_writer_.empty()) { // Ensure background thread is running Start(); std::unique_ptr writer( @@ -138,24 +132,24 @@ void Agent::Enable(const std::set& categories) { file_writer_ = AddClient(full_list, std::move(writer)); } else { ScopedSuspendTracing suspend(tracing_controller_, this); - categories_[file_writer_->second] = full_list; + categories_[file_writer_.id_] = full_list; } } void Agent::Disable(const std::set& categories) { - for (auto category : categories) { + for (const std::string& category : categories) { auto it = file_writer_categories_.find(category); if (it != file_writer_categories_.end()) file_writer_categories_.erase(it); } - if (!file_writer_) + if (file_writer_.empty()) return; ScopedSuspendTracing suspend(tracing_controller_, this); - categories_[file_writer_->second] = { file_writer_categories_.begin(), - file_writer_categories_.end() }; + categories_[file_writer_.id_] = { file_writer_categories_.begin(), + file_writer_categories_.end() }; } -TraceConfig* Agent::CreateTraceConfig() { +TraceConfig* Agent::CreateTraceConfig() const { if (categories_.empty()) return nullptr; TraceConfig* trace_config = new TraceConfig(); @@ -165,9 +159,9 @@ TraceConfig* Agent::CreateTraceConfig() { return trace_config; } -std::string Agent::GetEnabledCategories() { +std::string Agent::GetEnabledCategories() const { std::string categories; - for (const auto& category : flatten(categories_)) { + for (const std::string& category : flatten(categories_)) { if (!categories.empty()) categories += ','; categories += category; diff --git a/src/tracing/agent.h b/src/tracing/agent.h index fd7984275969ba..022e86f11afba9 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -4,6 +4,7 @@ #include "libplatform/v8-tracing.h" #include "uv.h" #include "v8.h" +#include "util.h" #include #include @@ -15,6 +16,8 @@ namespace tracing { using v8::platform::tracing::TraceConfig; using v8::platform::tracing::TraceObject; +class Agent; + class AsyncTraceWriter { public: virtual ~AsyncTraceWriter() {} @@ -31,42 +34,58 @@ class TracingController : public v8::platform::tracing::TracingController { } }; +class AgentWriterHandle { + public: + inline AgentWriterHandle() {} + inline ~AgentWriterHandle() { reset(); } + + inline AgentWriterHandle(AgentWriterHandle&& other); + inline AgentWriterHandle& operator=(AgentWriterHandle&& other); + inline bool empty() const { return agent_ == nullptr; } + inline void reset(); + + private: + inline AgentWriterHandle(Agent* agent, int id) : agent_(agent), id_(id) {} + + AgentWriterHandle(const AgentWriterHandle& other) = delete; + AgentWriterHandle& operator=(const AgentWriterHandle& other) = delete; + + Agent* agent_ = nullptr; + int id_; + + friend class Agent; +}; class Agent { public: - // Resetting the pointer disconnects client - using ClientHandle = std::unique_ptr, - void (*)(std::pair*)>; - - static ClientHandle EmptyClientHandle() { - return ClientHandle(nullptr, DisconnectClient); - } explicit Agent(const std::string& log_file_pattern); void Stop(); TracingController* GetTracingController() { return tracing_controller_; } // Destroying the handle disconnects the client - ClientHandle AddClient(const std::set& categories, - std::unique_ptr writer); + AgentWriterHandle AddClient(const std::set& categories, + std::unique_ptr writer); // These 3 methods operate on a "default" client, e.g. the file writer void Enable(const std::string& categories); void Enable(const std::set& categories); void Disable(const std::set& categories); - std::string GetEnabledCategories(); + // Returns a comma-separated list of enabled categories. + std::string GetEnabledCategories() const; + + // Writes to all writers registered through AddClient(). void AppendTraceEvent(TraceObject* trace_event); + // Flushes all writers registered through AddClient(). void Flush(bool blocking); - TraceConfig* CreateTraceConfig(); + TraceConfig* CreateTraceConfig() const; private: + friend class AgentWriterHandle; + static void ThreadCb(void* arg); - static void DisconnectClient(std::pair* id_agent) { - id_agent->first->Disconnect(id_agent->second); - delete id_agent; - } void Start(); void StopTracing(); @@ -77,14 +96,34 @@ class Agent { uv_loop_t tracing_loop_; bool started_ = false; - std::unordered_map> categories_; - TracingController* tracing_controller_ = nullptr; - ClientHandle file_writer_; + // Each individual Writer has one id. int next_writer_id_ = 1; + // These maps store the original arguments to AddClient(), by id. + std::unordered_map> categories_; std::unordered_map> writers_; + TracingController* tracing_controller_ = nullptr; + AgentWriterHandle file_writer_; std::multiset file_writer_categories_; }; +void AgentWriterHandle::reset() { + if (agent_ != nullptr) + agent_->Disconnect(id_); + agent_ = nullptr; +} + +AgentWriterHandle& AgentWriterHandle::operator=(AgentWriterHandle&& other) { + reset(); + agent_ = other.agent_; + id_ = other.id_; + other.agent_ = nullptr; + return *this; +} + +AgentWriterHandle::AgentWriterHandle(AgentWriterHandle&& other) { + *this = std::move(other); +} + } // namespace tracing } // namespace node From c101b396aacb9afed790ab2689ddff16774dd5f8 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 17 Jul 2018 02:50:07 +0200 Subject: [PATCH 007/159] src: refactor default trace writer out of agent The agent code is supposed to manage multiple writers/clients. Adding the default writer into the mix breaks that encapsulation. Instead, manage default options through a separate "virtual" default client handle, and keep the file writer management all to the actual users. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/env-inl.h | 4 +- src/env.cc | 4 +- src/env.h | 8 +-- src/inspector/tracing_agent.cc | 5 +- src/node.cc | 26 ++++++--- src/node_trace_events.cc | 9 ++-- src/tracing/agent.cc | 97 +++++++++++++++------------------- src/tracing/agent.h | 47 +++++++++++----- src/util.cc | 14 +++++ src/util.h | 3 ++ 10 files changed, 130 insertions(+), 87 deletions(-) diff --git a/src/env-inl.h b/src/env-inl.h index bc81400403bb16..542cfb6400c0ee 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -333,8 +333,8 @@ inline v8::Isolate* Environment::isolate() const { return isolate_; } -inline tracing::Agent* Environment::tracing_agent() const { - return tracing_agent_; +inline tracing::AgentWriterHandle* Environment::tracing_agent_writer() const { + return tracing_agent_writer_; } inline Environment* Environment::from_immediate_check_handle( diff --git a/src/env.cc b/src/env.cc index 76d1b6dd86d43e..bea42aa10774f8 100644 --- a/src/env.cc +++ b/src/env.cc @@ -103,10 +103,10 @@ void InitThreadLocalOnce() { Environment::Environment(IsolateData* isolate_data, Local context, - tracing::Agent* tracing_agent) + tracing::AgentWriterHandle* tracing_agent_writer) : isolate_(context->GetIsolate()), isolate_data_(isolate_data), - tracing_agent_(tracing_agent), + tracing_agent_writer_(tracing_agent_writer), immediate_info_(context->GetIsolate()), tick_info_(context->GetIsolate()), timer_base_(uv_now(isolate_data->event_loop())), diff --git a/src/env.h b/src/env.h index bd29e006e3c256..73b1c8bd72558d 100644 --- a/src/env.h +++ b/src/env.h @@ -55,7 +55,7 @@ class performance_state; } namespace tracing { -class Agent; +class AgentWriterHandle; } namespace worker { @@ -590,7 +590,7 @@ class Environment { Environment(IsolateData* isolate_data, v8::Local context, - tracing::Agent* tracing_agent); + tracing::AgentWriterHandle* tracing_agent_writer); ~Environment(); void Start(int argc, @@ -628,7 +628,7 @@ class Environment { inline bool profiler_idle_notifier_started() const; inline v8::Isolate* isolate() const; - inline tracing::Agent* tracing_agent() const; + inline tracing::AgentWriterHandle* tracing_agent_writer() const; inline uv_loop_t* event_loop() const; inline uint32_t watched_providers() const; @@ -877,7 +877,7 @@ class Environment { v8::Isolate* const isolate_; IsolateData* const isolate_data_; - tracing::Agent* const tracing_agent_; + tracing::AgentWriterHandle* const tracing_agent_writer_; uv_check_t immediate_check_handle_; uv_idle_t immediate_idle_handle_; uv_prepare_t idle_prepare_handle_; diff --git a/src/inspector/tracing_agent.cc b/src/inspector/tracing_agent.cc index 92c3597590dabf..6e962b289ab36f 100644 --- a/src/inspector/tracing_agent.cc +++ b/src/inspector/tracing_agent.cc @@ -74,10 +74,11 @@ DispatchResponse TracingAgent::start( if (categories_set.empty()) return DispatchResponse::Error("At least one category should be enabled"); - trace_writer_ = env_->tracing_agent()->AddClient( + trace_writer_ = env_->tracing_agent_writer()->agent()->AddClient( categories_set, std::unique_ptr( - new InspectorTraceWriter(frontend_.get()))); + new InspectorTraceWriter(frontend_.get())), + tracing::Agent::kIgnoreDefaultCategories); return DispatchResponse::OK(); } diff --git a/src/node.cc b/src/node.cc index f5be3f7954d53d..784dd157f14314 100644 --- a/src/node.cc +++ b/src/node.cc @@ -61,6 +61,7 @@ #include "req_wrap-inl.h" #include "string_bytes.h" #include "tracing/agent.h" +#include "tracing/node_trace_writer.h" #include "util.h" #include "uv.h" #if NODE_USE_V8_PLATFORM @@ -427,17 +428,24 @@ static struct { #endif // HAVE_INSPECTOR void StartTracingAgent() { - tracing_file_writer_ = tracing_agent_->AddClient( - trace_enabled_categories, - new tracing::NodeTraceWriter(trace_file_pattern)); + if (trace_enabled_categories.empty()) { + tracing_file_writer_ = tracing_agent_->DefaultHandle(); + } else { + tracing_file_writer_ = tracing_agent_->AddClient( + ParseCommaSeparatedSet(trace_enabled_categories), + std::unique_ptr( + new tracing::NodeTraceWriter(trace_file_pattern, + tracing_agent_->loop())), + tracing::Agent::kUseDefaultCategories); + } } void StopTracingAgent() { tracing_file_writer_.reset(); } - tracing::Agent* GetTracingAgent() const { - return tracing_agent_.get(); + tracing::AgentWriterHandle* GetTracingAgentWriter() { + return &tracing_file_writer_; } NodePlatform* Platform() { @@ -466,7 +474,9 @@ static struct { } void StopTracingAgent() {} - tracing::Agent* GetTracingAgent() const { return nullptr; } + tracing::AgentWriterHandle* GetTracingAgentWriter() { + return nullptr; + } NodePlatform* Platform() { return nullptr; @@ -3593,7 +3603,7 @@ Environment* CreateEnvironment(IsolateData* isolate_data, HandleScope handle_scope(isolate); Context::Scope context_scope(context); auto env = new Environment(isolate_data, context, - v8_platform.GetTracingAgent()); + v8_platform.GetTracingAgentWriter()); env->Start(argc, argv, exec_argc, exec_argv, v8_is_profiling); return env; } @@ -3652,7 +3662,7 @@ inline int Start(Isolate* isolate, IsolateData* isolate_data, HandleScope handle_scope(isolate); Local context = NewContext(isolate); Context::Scope context_scope(context); - Environment env(isolate_data, context, v8_platform.GetTracingAgent()); + Environment env(isolate_data, context, v8_platform.GetTracingAgentWriter()); env.Start(argc, argv, exec_argc, exec_argv, v8_is_profiling); const char* path = argc > 1 ? argv[1] : nullptr; diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc index 06063a449b93d8..d59b92555795fb 100644 --- a/src/node_trace_events.cc +++ b/src/node_trace_events.cc @@ -58,7 +58,7 @@ void NodeCategorySet::New(const FunctionCallbackInfo& args) { if (!*val) return; categories.emplace(*val); } - CHECK_NOT_NULL(env->tracing_agent()); + CHECK_NOT_NULL(env->tracing_agent_writer()); new NodeCategorySet(env, args.This(), std::move(categories)); } @@ -69,7 +69,7 @@ void NodeCategorySet::Enable(const FunctionCallbackInfo& args) { CHECK_NOT_NULL(category_set); const auto& categories = category_set->GetCategories(); if (!category_set->enabled_ && !categories.empty()) { - env->tracing_agent()->Enable(categories); + env->tracing_agent_writer()->Enable(categories); category_set->enabled_ = true; } } @@ -81,14 +81,15 @@ void NodeCategorySet::Disable(const FunctionCallbackInfo& args) { CHECK_NOT_NULL(category_set); const auto& categories = category_set->GetCategories(); if (category_set->enabled_ && !categories.empty()) { - env->tracing_agent()->Disable(categories); + env->tracing_agent_writer()->Disable(categories); category_set->enabled_ = false; } } void GetEnabledCategories(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - std::string categories = env->tracing_agent()->GetEnabledCategories(); + std::string categories = + env->tracing_agent_writer()->agent()->GetEnabledCategories(); if (!categories.empty()) { args.GetReturnValue().Set( String::NewFromUtf8(env->isolate(), diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index 9cc21863e3ed42..641c476c1d8df7 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -1,23 +1,24 @@ #include "tracing/agent.h" -#include #include #include "tracing/node_trace_buffer.h" -#include "tracing/node_trace_writer.h" namespace node { namespace tracing { -namespace { - -class ScopedSuspendTracing { +class Agent::ScopedSuspendTracing { public: - ScopedSuspendTracing(TracingController* controller, Agent* agent) - : controller_(controller), agent_(agent) { - controller->StopTracing(); + ScopedSuspendTracing(TracingController* controller, Agent* agent, + bool do_suspend = true) + : controller_(controller), agent_(do_suspend ? agent : nullptr) { + if (do_suspend) { + CHECK(agent_->started_); + controller->StopTracing(); + } } ~ScopedSuspendTracing() { + if (agent_ == nullptr) return; TraceConfig* config = agent_->CreateTraceConfig(); if (config != nullptr) { controller_->StartTracing(config); @@ -29,8 +30,10 @@ class ScopedSuspendTracing { Agent* agent_; }; +namespace { + std::set flatten( - const std::unordered_map>& map) { + const std::unordered_map>& map) { std::set result; for (const auto& id_value : map) result.insert(id_value.second.begin(), id_value.second.end()); @@ -43,18 +46,17 @@ using v8::platform::tracing::TraceConfig; using v8::platform::tracing::TraceWriter; using std::string; -Agent::Agent(const std::string& log_file_pattern) - : log_file_pattern_(log_file_pattern) { +Agent::Agent() { tracing_controller_ = new TracingController(); tracing_controller_->Initialize(nullptr); + + CHECK_EQ(uv_loop_init(&tracing_loop_), 0); } void Agent::Start() { if (started_) return; - CHECK_EQ(uv_loop_init(&tracing_loop_), 0); - NodeTraceBuffer* trace_buffer_ = new NodeTraceBuffer( NodeTraceBuffer::kBufferChunks, this, &tracing_loop_); tracing_controller_->Initialize(trace_buffer_); @@ -71,18 +73,30 @@ void Agent::Start() { AgentWriterHandle Agent::AddClient( const std::set& categories, - std::unique_ptr writer) { + std::unique_ptr writer, + enum UseDefaultCategoryMode mode) { Start(); + + const std::set* use_categories = &categories; + + std::set categories_with_default; + if (mode == kUseDefaultCategories) { + categories_with_default.insert(categories.begin(), categories.end()); + categories_with_default.insert(categories_[kDefaultHandleId].begin(), + categories_[kDefaultHandleId].end()); + use_categories = &categories_with_default; + } + ScopedSuspendTracing suspend(tracing_controller_, this); int id = next_writer_id_++; writers_[id] = std::move(writer); - categories_[id] = categories; + categories_[id] = { use_categories->begin(), use_categories->end() }; return AgentWriterHandle(this, id); } -void Agent::Stop() { - file_writer_.reset(); +AgentWriterHandle Agent::DefaultHandle() { + return AgentWriterHandle(this, kDefaultHandleId); } void Agent::StopTracing() { @@ -99,54 +113,30 @@ void Agent::StopTracing() { } void Agent::Disconnect(int client) { + if (client == kDefaultHandleId) return; ScopedSuspendTracing suspend(tracing_controller_, this); writers_.erase(client); categories_.erase(client); } -void Agent::Enable(const std::string& categories) { +void Agent::Enable(int id, const std::set& categories) { if (categories.empty()) return; - std::set categories_set; - std::istringstream category_list(categories); - while (category_list.good()) { - std::string category; - getline(category_list, category, ','); - categories_set.emplace(std::move(category)); - } - Enable(categories_set); -} -void Agent::Enable(const std::set& categories) { - if (categories.empty()) - return; - - file_writer_categories_.insert(categories.begin(), categories.end()); - std::set full_list(file_writer_categories_.begin(), - file_writer_categories_.end()); - if (file_writer_.empty()) { - // Ensure background thread is running - Start(); - std::unique_ptr writer( - new NodeTraceWriter(log_file_pattern_, &tracing_loop_)); - file_writer_ = AddClient(full_list, std::move(writer)); - } else { - ScopedSuspendTracing suspend(tracing_controller_, this); - categories_[file_writer_.id_] = full_list; - } + ScopedSuspendTracing suspend(tracing_controller_, this, + id != kDefaultHandleId); + categories_[id].insert(categories.begin(), categories.end()); } -void Agent::Disable(const std::set& categories) { +void Agent::Disable(int id, const std::set& categories) { + ScopedSuspendTracing suspend(tracing_controller_, this, + id != kDefaultHandleId); + std::multiset& writer_categories = categories_[id]; for (const std::string& category : categories) { - auto it = file_writer_categories_.find(category); - if (it != file_writer_categories_.end()) - file_writer_categories_.erase(it); + auto it = writer_categories.find(category); + if (it != writer_categories.end()) + writer_categories.erase(it); } - if (file_writer_.empty()) - return; - ScopedSuspendTracing suspend(tracing_controller_, this); - categories_[file_writer_.id_] = { file_writer_categories_.begin(), - file_writer_categories_.end() }; } TraceConfig* Agent::CreateTraceConfig() const { @@ -178,5 +168,6 @@ void Agent::Flush(bool blocking) { for (const auto& id_writer : writers_) id_writer.second->Flush(blocking); } + } // namespace tracing } // namespace node diff --git a/src/tracing/agent.h b/src/tracing/agent.h index 022e86f11afba9..b62dc5fe5bc9d5 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -44,6 +44,11 @@ class AgentWriterHandle { inline bool empty() const { return agent_ == nullptr; } inline void reset(); + inline void Enable(const std::set& categories); + inline void Disable(const std::set& categories); + + inline Agent* agent() { return agent_; } + private: inline AgentWriterHandle(Agent* agent, int id) : agent_(agent), id_(id) {} @@ -58,19 +63,23 @@ class AgentWriterHandle { class Agent { public: - explicit Agent(const std::string& log_file_pattern); - void Stop(); + Agent(); TracingController* GetTracingController() { return tracing_controller_; } + enum UseDefaultCategoryMode { + kUseDefaultCategories, + kIgnoreDefaultCategories + }; + // Destroying the handle disconnects the client AgentWriterHandle AddClient(const std::set& categories, - std::unique_ptr writer); - - // These 3 methods operate on a "default" client, e.g. the file writer - void Enable(const std::string& categories); - void Enable(const std::set& categories); - void Disable(const std::set& categories); + std::unique_ptr writer, + enum UseDefaultCategoryMode mode); + // A handle that is only used for managing the default categories + // (which can then implicitly be used through using `USE_DEFAULT_CATEGORIES` + // when adding a client later). + AgentWriterHandle DefaultHandle(); // Returns a comma-separated list of enabled categories. std::string GetEnabledCategories() const; @@ -82,6 +91,9 @@ class Agent { TraceConfig* CreateTraceConfig() const; + // TODO(addaleax): This design is broken and inherently thread-unsafe. + inline uv_loop_t* loop() { return &tracing_loop_; } + private: friend class AgentWriterHandle; @@ -91,19 +103,22 @@ class Agent { void StopTracing(); void Disconnect(int client); - const std::string& log_file_pattern_; + void Enable(int id, const std::set& categories); + void Disable(int id, const std::set& categories); + uv_thread_t thread_; uv_loop_t tracing_loop_; + bool started_ = false; + class ScopedSuspendTracing; // Each individual Writer has one id. int next_writer_id_ = 1; + enum { kDefaultHandleId = -1 }; // These maps store the original arguments to AddClient(), by id. - std::unordered_map> categories_; + std::unordered_map> categories_; std::unordered_map> writers_; TracingController* tracing_controller_ = nullptr; - AgentWriterHandle file_writer_; - std::multiset file_writer_categories_; }; void AgentWriterHandle::reset() { @@ -124,6 +139,14 @@ AgentWriterHandle::AgentWriterHandle(AgentWriterHandle&& other) { *this = std::move(other); } +void AgentWriterHandle::Enable(const std::set& categories) { + if (agent_ != nullptr) agent_->Enable(id_, categories); +} + +void AgentWriterHandle::Disable(const std::set& categories) { + if (agent_ != nullptr) agent_->Disable(id_, categories); +} + } // namespace tracing } // namespace node diff --git a/src/util.cc b/src/util.cc index 3e808e13fe87d8..66be18eae2d150 100644 --- a/src/util.cc +++ b/src/util.cc @@ -24,6 +24,7 @@ #include "node_internals.h" #include "uv.h" #include +#include namespace node { @@ -118,4 +119,17 @@ void GetHumanReadableProcessName(char (*name)[1024]) { snprintf(*name, sizeof(*name), "%s[%d]", title, uv_os_getpid()); } +std::set ParseCommaSeparatedSet(const std::string& in) { + std::set out; + if (in.empty()) + return out; + std::istringstream in_stream(in); + while (in_stream.good()) { + std::string item; + getline(in_stream, item, ','); + out.emplace(std::move(item)); + } + return out; +} + } // namespace node diff --git a/src/util.h b/src/util.h index f7dcc5ea35abf8..a9fce79ebeaec1 100644 --- a/src/util.h +++ b/src/util.h @@ -36,6 +36,7 @@ #include #include // std::function +#include namespace node { @@ -476,6 +477,8 @@ struct FunctionDeleter { template using DeleteFnPtr = typename FunctionDeleter::Pointer; +std::set ParseCommaSeparatedSet(const std::string& in); + } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS From 4c9c1bbc45eb9dafcbb0080e2fbc061ade3d55ad Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 17 Jul 2018 23:51:09 +0200 Subject: [PATCH 008/159] src: fix tracing if cwd or file path is inaccessible Otherwise this would have crashed the process. In particular, checking the return value of an libuv call against `-1` was invalid to begin with, as libuv uses it to propagate the error code. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/tracing/node_trace_writer.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index a2f7bebfc72f9a..5e3ddc633f153f 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -77,8 +77,13 @@ void NodeTraceWriter::OpenNewFileForStreaming() { fd_ = uv_fs_open(tracing_loop_, &req, filepath.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0644, nullptr); - CHECK_NE(fd_, -1); uv_fs_req_cleanup(&req); + if (fd_ < 0) { + fprintf(stderr, "Could not open trace file %s: %s\n", + filepath.c_str(), + uv_strerror(fd_)); + fd_ = -1; + } } void NodeTraceWriter::AppendTraceEvent(TraceObject* trace_event) { @@ -145,6 +150,7 @@ void NodeTraceWriter::Flush(bool blocking) { } void NodeTraceWriter::WriteToFile(std::string&& str, int highest_request_id) { + if (fd_ == -1) return; WriteRequest* write_req = new WriteRequest(); write_req->str = std::move(str); write_req->writer = this; From 56edd5fc5b3673581690d200e5783655637ab63a Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 01:29:01 +0200 Subject: [PATCH 009/159] src: close tracing event loop Clean up resources when tearing down the tracing agent. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/tracing/agent.cc | 6 ++++++ src/tracing/agent.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index 641c476c1d8df7..ad842db63630dc 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -2,6 +2,8 @@ #include #include "tracing/node_trace_buffer.h" +#include "debug_utils.h" +#include "env-inl.h" namespace node { namespace tracing { @@ -53,6 +55,10 @@ Agent::Agent() { CHECK_EQ(uv_loop_init(&tracing_loop_), 0); } +Agent::~Agent() { + CheckedUvLoopClose(&tracing_loop_); +} + void Agent::Start() { if (started_) return; diff --git a/src/tracing/agent.h b/src/tracing/agent.h index b62dc5fe5bc9d5..e8bf727c505ce3 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -64,6 +64,7 @@ class AgentWriterHandle { class Agent { public: Agent(); + ~Agent(); TracingController* GetTracingController() { return tracing_controller_; } From 89e23021fb7ff0db81a5471ae249b199dc9acf2e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 02:12:14 +0200 Subject: [PATCH 010/159] src: initialize file trace writer on tracing thread MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Run the initialization for the file trace writer’s `uv_async_t`s on the same thread as `uv_run()` for their loop to avoid race conditions. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/node.cc | 3 +-- src/tracing/agent.cc | 31 +++++++++++++++++++++++++++++++ src/tracing/agent.h | 13 ++++++++++--- src/tracing/node_trace_writer.cc | 32 +++++++++++++++++++------------- src/tracing/node_trace_writer.h | 8 +++----- 5 files changed, 64 insertions(+), 23 deletions(-) diff --git a/src/node.cc b/src/node.cc index 784dd157f14314..266c276d3a35d8 100644 --- a/src/node.cc +++ b/src/node.cc @@ -434,8 +434,7 @@ static struct { tracing_file_writer_ = tracing_agent_->AddClient( ParseCommaSeparatedSet(trace_enabled_categories), std::unique_ptr( - new tracing::NodeTraceWriter(trace_file_pattern, - tracing_agent_->loop())), + new tracing::NodeTraceWriter(trace_file_pattern)), tracing::Agent::kUseDefaultCategories); } } diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index ad842db63630dc..9b435b56d2c8ad 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -53,9 +53,27 @@ Agent::Agent() { tracing_controller_->Initialize(nullptr); CHECK_EQ(uv_loop_init(&tracing_loop_), 0); + CHECK_EQ(uv_async_init(&tracing_loop_, + &initialize_writer_async_, + [](uv_async_t* async) { + Agent* agent = ContainerOf(&Agent::initialize_writer_async_, async); + agent->InitializeWritersOnThread(); + }), 0); +} + +void Agent::InitializeWritersOnThread() { + Mutex::ScopedLock lock(initialize_writer_mutex_); + while (!to_be_initialized_.empty()) { + AsyncTraceWriter* head = *to_be_initialized_.begin(); + head->InitializeOnThread(&tracing_loop_); + to_be_initialized_.erase(head); + } + initialize_writer_condvar_.Broadcast(lock); } Agent::~Agent() { + uv_close(reinterpret_cast(&initialize_writer_async_), nullptr); + uv_run(&tracing_loop_, UV_RUN_ONCE); CheckedUvLoopClose(&tracing_loop_); } @@ -95,9 +113,18 @@ AgentWriterHandle Agent::AddClient( ScopedSuspendTracing suspend(tracing_controller_, this); int id = next_writer_id_++; + AsyncTraceWriter* raw = writer.get(); writers_[id] = std::move(writer); categories_[id] = { use_categories->begin(), use_categories->end() }; + { + Mutex::ScopedLock lock(initialize_writer_mutex_); + to_be_initialized_.insert(raw); + uv_async_send(&initialize_writer_async_); + while (to_be_initialized_.count(raw) > 0) + initialize_writer_condvar_.Wait(lock); + } + return AgentWriterHandle(this, id); } @@ -120,6 +147,10 @@ void Agent::StopTracing() { void Agent::Disconnect(int client) { if (client == kDefaultHandleId) return; + { + Mutex::ScopedLock lock(initialize_writer_mutex_); + to_be_initialized_.erase(writers_[client].get()); + } ScopedSuspendTracing suspend(tracing_controller_, this); writers_.erase(client); categories_.erase(client); diff --git a/src/tracing/agent.h b/src/tracing/agent.h index e8bf727c505ce3..045aaef85e8ea6 100644 --- a/src/tracing/agent.h +++ b/src/tracing/agent.h @@ -5,6 +5,7 @@ #include "uv.h" #include "v8.h" #include "util.h" +#include "node_mutex.h" #include #include @@ -23,6 +24,7 @@ class AsyncTraceWriter { virtual ~AsyncTraceWriter() {} virtual void AppendTraceEvent(TraceObject* trace_event) = 0; virtual void Flush(bool blocking) = 0; + virtual void InitializeOnThread(uv_loop_t* loop) {} }; class TracingController : public v8::platform::tracing::TracingController { @@ -92,13 +94,11 @@ class Agent { TraceConfig* CreateTraceConfig() const; - // TODO(addaleax): This design is broken and inherently thread-unsafe. - inline uv_loop_t* loop() { return &tracing_loop_; } - private: friend class AgentWriterHandle; static void ThreadCb(void* arg); + void InitializeWritersOnThread(); void Start(); void StopTracing(); @@ -120,6 +120,13 @@ class Agent { std::unordered_map> categories_; std::unordered_map> writers_; TracingController* tracing_controller_ = nullptr; + + // Variables related to initializing per-event-loop properties of individual + // writers, such as libuv handles. + Mutex initialize_writer_mutex_; + ConditionVariable initialize_writer_condvar_; + uv_async_t initialize_writer_async_; + std::set to_be_initialized_; }; void AgentWriterHandle::reset() { diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index 5e3ddc633f153f..2fdb92972330b5 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -3,16 +3,25 @@ #include #include -#include "util.h" +#include "util-inl.h" namespace node { namespace tracing { -NodeTraceWriter::NodeTraceWriter(const std::string& log_file_pattern, - uv_loop_t* tracing_loop) - : tracing_loop_(tracing_loop), log_file_pattern_(log_file_pattern) { +NodeTraceWriter::NodeTraceWriter(const std::string& log_file_pattern) + : log_file_pattern_(log_file_pattern) {} + +void NodeTraceWriter::InitializeOnThread(uv_loop_t* loop) { + CHECK_NULL(tracing_loop_); + tracing_loop_ = loop; + flush_signal_.data = this; - int err = uv_async_init(tracing_loop_, &flush_signal_, FlushSignalCb); + int err = uv_async_init(tracing_loop_, &flush_signal_, + [](uv_async_t* signal) { + NodeTraceWriter* trace_writer = + ContainerOf(&NodeTraceWriter::flush_signal_, signal); + trace_writer->FlushPrivate(); + }); CHECK_EQ(err, 0); exit_signal_.data = this; @@ -126,11 +135,6 @@ void NodeTraceWriter::FlushPrivate() { WriteToFile(std::move(str), highest_request_id); } -void NodeTraceWriter::FlushSignalCb(uv_async_t* signal) { - NodeTraceWriter* trace_writer = static_cast(signal->data); - trace_writer->FlushPrivate(); -} - void NodeTraceWriter::Flush(bool blocking) { Mutex::ScopedLock scoped_lock(request_mutex_); if (!json_trace_writer_) { @@ -170,7 +174,7 @@ void NodeTraceWriter::WriteToFile(std::string&& str, int highest_request_id) { } void NodeTraceWriter::WriteCb(uv_fs_t* req) { - WriteRequest* write_req = reinterpret_cast(req); + WriteRequest* write_req = ContainerOf(&WriteRequest::req, req); CHECK_GE(write_req->req.result, 0); NodeTraceWriter* writer = write_req->writer; @@ -187,13 +191,15 @@ void NodeTraceWriter::WriteCb(uv_fs_t* req) { // static void NodeTraceWriter::ExitSignalCb(uv_async_t* signal) { - NodeTraceWriter* trace_writer = static_cast(signal->data); + NodeTraceWriter* trace_writer = + ContainerOf(&NodeTraceWriter::exit_signal_, signal); uv_close(reinterpret_cast(&trace_writer->flush_signal_), nullptr); uv_close(reinterpret_cast(&trace_writer->exit_signal_), [](uv_handle_t* signal) { NodeTraceWriter* trace_writer = - static_cast(signal->data); + ContainerOf(&NodeTraceWriter::exit_signal_, + reinterpret_cast(signal)); Mutex::ScopedLock scoped_lock(trace_writer->request_mutex_); trace_writer->exited_ = true; trace_writer->exit_cond_.Signal(scoped_lock); diff --git a/src/tracing/node_trace_writer.h b/src/tracing/node_trace_writer.h index b2d5e7912fa01d..9c4decc8eec3d4 100644 --- a/src/tracing/node_trace_writer.h +++ b/src/tracing/node_trace_writer.h @@ -4,7 +4,6 @@ #include #include -#include "node_mutex.h" #include "libplatform/v8-tracing.h" #include "tracing/agent.h" #include "uv.h" @@ -17,10 +16,10 @@ using v8::platform::tracing::TraceWriter; class NodeTraceWriter : public AsyncTraceWriter { public: - explicit NodeTraceWriter(const std::string& log_file_pattern, - uv_loop_t* tracing_loop); + explicit NodeTraceWriter(const std::string& log_file_pattern); ~NodeTraceWriter(); + void InitializeOnThread(uv_loop_t* loop) override; void AppendTraceEvent(TraceObject* trace_event) override; void Flush(bool blocking) override; @@ -38,11 +37,10 @@ class NodeTraceWriter : public AsyncTraceWriter { void OpenNewFileForStreaming(); void WriteToFile(std::string&& str, int highest_request_id); void WriteSuffix(); - static void FlushSignalCb(uv_async_t* signal); void FlushPrivate(); static void ExitSignalCb(uv_async_t* signal); - uv_loop_t* tracing_loop_; + uv_loop_t* tracing_loop_ = nullptr; // Triggers callback to initiate writing the contents of stream_ to disk. uv_async_t flush_signal_; // Triggers callback to close async objects, ending the tracing thread. From ce489360777e0a664ef60037c78d909122dda13d Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 02:20:51 +0200 Subject: [PATCH 011/159] src: plug trace file file descriptor leak Close existing file descriptors before overriding the field with new ones. Also, use `nullptr` as the loop for these synchronous operations, since they do not run on the same thread as the `uv_run()` call for the previously used loop. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/tracing/node_trace_writer.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index 2fdb92972330b5..2fb7c12a82dace 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -53,7 +53,7 @@ NodeTraceWriter::~NodeTraceWriter() { uv_fs_t req; int err; if (fd_ != -1) { - err = uv_fs_close(tracing_loop_, &req, fd_, nullptr); + err = uv_fs_close(nullptr, &req, fd_, nullptr); CHECK_EQ(err, 0); uv_fs_req_cleanup(&req); } @@ -84,7 +84,12 @@ void NodeTraceWriter::OpenNewFileForStreaming() { replace_substring(&filepath, "${pid}", std::to_string(uv_os_getpid())); replace_substring(&filepath, "${rotation}", std::to_string(file_num_)); - fd_ = uv_fs_open(tracing_loop_, &req, filepath.c_str(), + if (fd_ != -1) { + CHECK_EQ(uv_fs_close(nullptr, &req, fd_, nullptr), 0); + uv_fs_req_cleanup(&req); + } + + fd_ = uv_fs_open(nullptr, &req, filepath.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0644, nullptr); uv_fs_req_cleanup(&req); if (fd_ < 0) { From 6b58746b2e78aae4ea3c68db84bd516184b52708 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 02:15:17 +0200 Subject: [PATCH 012/159] src: use unique_ptr for internal JSON trace writer PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/tracing/node_trace_writer.cc | 8 +++----- src/tracing/node_trace_writer.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index 2fb7c12a82dace..c188495422e029 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -37,9 +37,7 @@ void NodeTraceWriter::WriteSuffix() { { Mutex::ScopedLock scoped_lock(stream_mutex_); if (total_traces_ > 0) { - total_traces_ = 0; // so we don't write it again in FlushPrivate - // Appends "]}" to stream_. - delete json_trace_writer_; + total_traces_ = kTracesPerFile; // Act as if we reached the file limit. should_flush = true; } } @@ -111,7 +109,7 @@ void NodeTraceWriter::AppendTraceEvent(TraceObject* trace_event) { // to a state where we can start writing trace events to it. // Repeatedly constructing and destroying json_trace_writer_ allows // us to use V8's JSON writer instead of implementing our own. - json_trace_writer_ = TraceWriter::CreateJSONTraceWriter(stream_); + json_trace_writer_.reset(TraceWriter::CreateJSONTraceWriter(stream_)); } ++total_traces_; json_trace_writer_->AppendTraceEvent(trace_event); @@ -126,7 +124,7 @@ void NodeTraceWriter::FlushPrivate() { total_traces_ = 0; // Destroying the member JSONTraceWriter object appends "]}" to // stream_ - in other words, ending a JSON file. - delete json_trace_writer_; + json_trace_writer_.reset(); } // str() makes a copy of the contents of the stream. str = stream_.str(); diff --git a/src/tracing/node_trace_writer.h b/src/tracing/node_trace_writer.h index 9c4decc8eec3d4..53311db9922e5e 100644 --- a/src/tracing/node_trace_writer.h +++ b/src/tracing/node_trace_writer.h @@ -63,7 +63,7 @@ class NodeTraceWriter : public AsyncTraceWriter { int file_num_ = 0; const std::string& log_file_pattern_; std::ostringstream stream_; - TraceWriter* json_trace_writer_ = nullptr; + std::unique_ptr json_trace_writer_; bool exited_ = false; }; From ba480d33ce12769bf6fb3ca1485113efd22c86a6 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 18 Jul 2018 12:07:01 +0200 Subject: [PATCH 013/159] src: use only one tracing write fs req at a time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Concurrent writes to the same fd are generally not ideal, since it’s not generally guaranteed that data from those writes will end up on disk in the right order. PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/tracing/node_trace_writer.cc | 71 ++++++++++++++++++++------------ src/tracing/node_trace_writer.h | 8 ++-- 2 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index c188495422e029..a0382e587b3ad7 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -158,38 +158,57 @@ void NodeTraceWriter::Flush(bool blocking) { void NodeTraceWriter::WriteToFile(std::string&& str, int highest_request_id) { if (fd_ == -1) return; - WriteRequest* write_req = new WriteRequest(); - write_req->str = std::move(str); - write_req->writer = this; - write_req->highest_request_id = highest_request_id; - uv_buf_t uv_buf = uv_buf_init(const_cast(write_req->str.c_str()), - write_req->str.length()); - request_mutex_.Lock(); - // Manage a queue of WriteRequest objects because the behavior of uv_write is - // undefined if the same WriteRequest object is used more than once - // between WriteCb calls. In addition, this allows us to keep track of the id - // of the latest write request that actually been completed. - write_req_queue_.push(write_req); - request_mutex_.Unlock(); - int err = uv_fs_write(tracing_loop_, reinterpret_cast(write_req), - fd_, &uv_buf, 1, -1, WriteCb); + + uv_buf_t buf = uv_buf_init(nullptr, 0); + { + Mutex::ScopedLock lock(request_mutex_); + write_req_queue_.emplace(WriteRequest { + std::move(str), highest_request_id + }); + if (write_req_queue_.size() == 1) { + buf = uv_buf_init( + const_cast(write_req_queue_.front().str.c_str()), + write_req_queue_.front().str.length()); + } + } + // Only one write request for the same file descriptor should be active at + // a time. + if (buf.base != nullptr && fd_ != -1) { + StartWrite(buf); + } +} + +void NodeTraceWriter::StartWrite(uv_buf_t buf) { + int err = uv_fs_write( + tracing_loop_, &write_req_, fd_, &buf, 1, -1, + [](uv_fs_t* req) { + NodeTraceWriter* writer = + ContainerOf(&NodeTraceWriter::write_req_, req); + writer->AfterWrite(); + }); CHECK_EQ(err, 0); } -void NodeTraceWriter::WriteCb(uv_fs_t* req) { - WriteRequest* write_req = ContainerOf(&WriteRequest::req, req); - CHECK_GE(write_req->req.result, 0); +void NodeTraceWriter::AfterWrite() { + CHECK_GE(write_req_.result, 0); + uv_fs_req_cleanup(&write_req_); - NodeTraceWriter* writer = write_req->writer; - int highest_request_id = write_req->highest_request_id; + uv_buf_t buf = uv_buf_init(nullptr, 0); { - Mutex::ScopedLock scoped_lock(writer->request_mutex_); - CHECK_EQ(write_req, writer->write_req_queue_.front()); - writer->write_req_queue_.pop(); - writer->highest_request_id_completed_ = highest_request_id; - writer->request_cond_.Broadcast(scoped_lock); + Mutex::ScopedLock scoped_lock(request_mutex_); + int highest_request_id = write_req_queue_.front().highest_request_id; + write_req_queue_.pop(); + highest_request_id_completed_ = highest_request_id; + request_cond_.Broadcast(scoped_lock); + if (!write_req_queue_.empty()) { + buf = uv_buf_init( + const_cast(write_req_queue_.front().str.c_str()), + write_req_queue_.front().str.length()); + } + } + if (buf.base != nullptr && fd_ != -1) { + StartWrite(buf); } - delete write_req; } // static diff --git a/src/tracing/node_trace_writer.h b/src/tracing/node_trace_writer.h index 53311db9922e5e..5e5781479c689f 100644 --- a/src/tracing/node_trace_writer.h +++ b/src/tracing/node_trace_writer.h @@ -27,13 +27,12 @@ class NodeTraceWriter : public AsyncTraceWriter { private: struct WriteRequest { - uv_fs_t req; - NodeTraceWriter* writer; std::string str; int highest_request_id; }; - static void WriteCb(uv_fs_t* req); + void AfterWrite(); + void StartWrite(uv_buf_t buf); void OpenNewFileForStreaming(); void WriteToFile(std::string&& str, int highest_request_id); void WriteSuffix(); @@ -56,7 +55,8 @@ class NodeTraceWriter : public AsyncTraceWriter { // Used to wait until async handles have been closed. ConditionVariable exit_cond_; int fd_ = -1; - std::queue write_req_queue_; + uv_fs_t write_req_; + std::queue write_req_queue_; int num_write_requests_ = 0; int highest_request_id_completed_ = 0; int total_traces_ = 0; From 00c33a5131577901f2155e5690dd1a6c3c798315 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 27 Jul 2018 18:16:35 +0200 Subject: [PATCH 014/159] src: clean up agent loop when exiting through destructor Fixes: https://github.com/nodejs/node/issues/22042 PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Eugene Ostroukhov Reviewed-By: Ali Ijaz Sheikh --- src/node.cc | 2 +- src/tracing/agent.cc | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/node.cc b/src/node.cc index 266c276d3a35d8..ea91bc1ec953bb 100644 --- a/src/node.cc +++ b/src/node.cc @@ -398,10 +398,10 @@ static struct { } void Dispose() { + tracing_agent_.reset(nullptr); platform_->Shutdown(); delete platform_; platform_ = nullptr; - tracing_agent_.reset(nullptr); } void DrainVMTasks(Isolate* isolate) { diff --git a/src/tracing/agent.cc b/src/tracing/agent.cc index 9b435b56d2c8ad..5a4d637bda0356 100644 --- a/src/tracing/agent.cc +++ b/src/tracing/agent.cc @@ -59,6 +59,7 @@ Agent::Agent() { Agent* agent = ContainerOf(&Agent::initialize_writer_async_, async); agent->InitializeWritersOnThread(); }), 0); + uv_unref(reinterpret_cast(&initialize_writer_async_)); } void Agent::InitializeWritersOnThread() { @@ -72,6 +73,11 @@ void Agent::InitializeWritersOnThread() { } Agent::~Agent() { + categories_.clear(); + writers_.clear(); + + StopTracing(); + uv_close(reinterpret_cast(&initialize_writer_async_), nullptr); uv_run(&tracing_loop_, UV_RUN_ONCE); CheckedUvLoopClose(&tracing_loop_); From c2372eac1678a6f0af433dd80be9fbd17c49170a Mon Sep 17 00:00:00 2001 From: Eugene Ostroukhov Date: Wed, 18 Jul 2018 23:12:19 -0700 Subject: [PATCH 015/159] test: add tracing crash regression test PR-URL: https://github.com/nodejs/node/pull/21867 Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Ali Ijaz Sheikh --- test/parallel/test-tracing-no-crash.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/parallel/test-tracing-no-crash.js diff --git a/test/parallel/test-tracing-no-crash.js b/test/parallel/test-tracing-no-crash.js new file mode 100644 index 00000000000000..816bd95df02e29 --- /dev/null +++ b/test/parallel/test-tracing-no-crash.js @@ -0,0 +1,14 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { spawn } = require('child_process'); + +function CheckNoSignalAndErrorCodeOne(code, signal) { + assert.strictEqual(null, signal); + assert.strictEqual(1, code); +} + +const child = spawn(process.execPath, + ['--trace-event-categories', 'madeup', '-e', + 'throw new Error()'], { stdio: 'inherit' }); +child.on('exit', common.mustCall(CheckNoSignalAndErrorCodeOne)); From 29bc55320c32e25594f0c5bd0229a3bd8708307e Mon Sep 17 00:00:00 2001 From: James M Snell Date: Tue, 31 Jul 2018 17:15:45 -0700 Subject: [PATCH 016/159] doc: fixup process.binding deprecation code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/22062 Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig Reviewed-By: Anatoli Papirovski Reviewed-By: Сковорода Никита Андреевич Reviewed-By: Jon Moss --- doc/api/deprecations.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 322e73c4c9f11a..7971488b551450 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -930,7 +930,7 @@ Using `process.binding()` in general should be avoided. The type checking methods in particular can be replaced by using [`util.types`][]. This deprecation has been superseded by the deprecation of the -`process.binding()` API ([DEP00XX](#DEP00XX)). +`process.binding()` API ([DEP0111](#DEP0111)). ### DEP0104: process.env string coercion @@ -990,8 +990,8 @@ Type: Documentation-only The option `produceCachedData` has been deprecated. Use [`script.createCachedData()`][] instead. - -### DEP00XX: process.binding() + +### DEP0111: process.binding() Type: Documentation-only From 0beffc0f3bbe8364e905653f409cc6ac6d81d82d Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 27 Jul 2018 13:36:35 +0200 Subject: [PATCH 017/159] test: remove test/gc, integrate into parallel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There’s no reason to have a separate addon just for testing GC anymore. PR-URL: https://github.com/nodejs/node/pull/22001 Reviewed-By: James M Snell Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig Reviewed-By: Jon Moss Reviewed-By: Benjamin Gruenbaum Reviewed-By: Richard Lau Reviewed-By: Ruben Bridgewater Reviewed-By: Trivikram Kamat --- Makefile | 20 +---- test/README.md | 1 - test/gc/.gitignore | 1 - test/gc/binding.cc | 80 ------------------- test/gc/binding.gyp | 9 --- test/gc/testcfg.py | 6 -- .../test-gc-http-client-connaborted.js} | 8 +- .../test-gc-http-client-onerror.js} | 8 +- .../test-gc-http-client-timeout.js} | 8 +- .../test-gc-http-client.js} | 6 +- .../test-gc-net-timeout.js} | 8 +- tools/test.py | 1 - vcbuild.bat | 19 +---- 13 files changed, 23 insertions(+), 152 deletions(-) delete mode 100644 test/gc/.gitignore delete mode 100644 test/gc/binding.cc delete mode 100644 test/gc/binding.gyp delete mode 100644 test/gc/testcfg.py rename test/{gc/test-http-client-connaborted.js => parallel/test-gc-http-client-connaborted.js} (86%) rename test/{gc/test-http-client-onerror.js => parallel/test-gc-http-client-onerror.js} (88%) rename test/{gc/test-http-client-timeout.js => parallel/test-gc-http-client-timeout.js} (88%) rename test/{gc/test-http-client.js => parallel/test-gc-http-client.js} (90%) rename test/{gc/test-net-timeout.js => parallel/test-gc-net-timeout.js} (88%) diff --git a/Makefile b/Makefile index 81dbd9f4d19434..a76c04b4993b13 100644 --- a/Makefile +++ b/Makefile @@ -314,15 +314,6 @@ benchmark/napi/function_args/build/Release/binding.node: all \ --directory="$(shell pwd)/benchmark/napi/function_args" \ --nodedir="$(shell pwd)" -# Implicitly depends on $(NODE_EXE). We don't depend on it explicitly because -# it always triggers a rebuild due to it being a .PHONY rule. See the comment -# near the build-addons rule for more background. -test/gc/build/Release/binding.node: test/gc/binding.cc test/gc/binding.gyp - $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \ - --python="$(PYTHON)" \ - --directory="$(shell pwd)/test/gc" \ - --nodedir="$(shell pwd)" - DOCBUILDSTAMP_PREREQS = tools/doc/addon-verify.js doc/api/addons.md ifeq ($(OSTYPE),aix) @@ -405,20 +396,12 @@ clear-stalled: echo $${PS_OUT} | xargs kill -9; \ fi -.PHONY: test-gc -test-gc: all test/gc/build/Release/binding.node - $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) gc - -.PHONY: test-gc-clean -test-gc-clean: - $(RM) -r test/gc/build - test-build: | all build-addons build-addons-napi test-build-addons-napi: all build-addons-napi .PHONY: test-all -test-all: test-build test/gc/build/Release/binding.node ## Run everything in test/. +test-all: test-build ## Run everything in test/. $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release test-all-valgrind: test-build @@ -1185,7 +1168,6 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ test/cctest/*.h \ test/addons-napi/*/*.cc \ test/addons-napi/*/*.h \ - test/gc/binding.cc \ tools/icu/*.cc \ tools/icu/*.h \ )) diff --git a/test/README.md b/test/README.md index 302db9d0bb8ad7..df95cedb340b3b 100644 --- a/test/README.md +++ b/test/README.md @@ -21,7 +21,6 @@ GitHub with the `autocrlf` git config flag set to true. |common | |Common modules shared among many tests. [Documentation](./common/README.md)| |es-module |Yes |Test ESM module loading.| |fixtures | |Test fixtures used in various tests throughout the test suite.| -|gc |No |Tests for garbage collection related functionality.| |internet |No |Tests that make real outbound connections (mainly networking related modules). Tests for networking related modules may also be present in other directories, but those tests do not make outbound connections.| |known_issues |Yes |Tests reproducing known issues within the system. All tests inside of this directory are expected to fail consistently. If a test doesn't fail on certain platforms, those should be skipped via `known_issues.status`.| |message |Yes |Tests for messages that are output for various conditions (```console.log```, error messages etc.)| diff --git a/test/gc/.gitignore b/test/gc/.gitignore deleted file mode 100644 index 567609b1234a9b..00000000000000 --- a/test/gc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/test/gc/binding.cc b/test/gc/binding.cc deleted file mode 100644 index 8bde3b8505cf37..00000000000000 --- a/test/gc/binding.cc +++ /dev/null @@ -1,80 +0,0 @@ -#include "node.h" -#include "uv.h" - -#include -#include - -#include - -#ifdef NDEBUG -#define CHECK(x) do { if (!(x)) abort(); } while (false) -#else -#define CHECK assert -#endif - -#define CHECK_EQ(a, b) CHECK((a) == (b)) - -namespace { - -struct Callback { - inline Callback(v8::Isolate* isolate, - v8::Local object, - v8::Local function) - : object(isolate, object), function(isolate, function) {} - - v8::Persistent object; - v8::Persistent function; -}; - -static uv_async_t async_handle; -static std::vector callbacks; - -inline void Prime() { - uv_ref(reinterpret_cast(&async_handle)); - CHECK_EQ(0, uv_async_send(&async_handle)); -} - -inline void AsyncCallback(uv_async_t*) { - auto isolate = v8::Isolate::GetCurrent(); - v8::HandleScope handle_scope(isolate); - auto context = isolate->GetCurrentContext(); - auto global = context->Global(); - while (!callbacks.empty()) { - v8::HandleScope handle_scope(isolate); - auto callback = callbacks.back(); - callbacks.pop_back(); - auto function = v8::Local::New(isolate, callback->function); - delete callback; - if (node::MakeCallback(isolate, global, function, 0, nullptr).IsEmpty()) - return Prime(); // Have exception, flush remainder on next loop tick. - } - uv_unref(reinterpret_cast(&async_handle)); -} - -inline void OnGC(const v8::FunctionCallbackInfo& info) { - CHECK(info[0]->IsObject()); - CHECK(info[1]->IsFunction()); - auto object = info[0].As(); - auto function = info[1].As(); - auto callback = new Callback(info.GetIsolate(), object, function); - auto on_callback = [] (const v8::WeakCallbackInfo& data) { - auto callback = data.GetParameter(); - callbacks.push_back(callback); - callback->object.Reset(); - Prime(); - }; - callback->object.SetWeak(callback, on_callback, - v8::WeakCallbackType::kParameter); -} - -inline void Initialize(v8::Local exports, - v8::Local module, - v8::Local context) { - NODE_SET_METHOD(module->ToObject(context).ToLocalChecked(), "exports", OnGC); - CHECK_EQ(0, uv_async_init(uv_default_loop(), &async_handle, AsyncCallback)); - uv_unref(reinterpret_cast(&async_handle)); -} - -} // anonymous namespace - -NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME, Initialize) diff --git a/test/gc/binding.gyp b/test/gc/binding.gyp deleted file mode 100644 index dc89633601723f..00000000000000 --- a/test/gc/binding.gyp +++ /dev/null @@ -1,9 +0,0 @@ -{ - 'targets': [ - { - 'target_name': 'binding', - 'defines': [ 'V8_DEPRECATION_WARNINGS=1' ], - 'sources': [ 'binding.cc' ], - }, - ], -} diff --git a/test/gc/testcfg.py b/test/gc/testcfg.py deleted file mode 100644 index d6bbcd60fff199..00000000000000 --- a/test/gc/testcfg.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys, os -sys.path.append(os.path.join(os.path.dirname(__file__), '..')) -import testpy - -def GetConfiguration(context, root): - return testpy.SimpleTestConfiguration(context, root, 'gc', ['--expose-gc']) diff --git a/test/gc/test-http-client-connaborted.js b/test/parallel/test-gc-http-client-connaborted.js similarity index 86% rename from test/gc/test-http-client-connaborted.js rename to test/parallel/test-gc-http-client-connaborted.js index 008d75bca5d0b1..3218c054ed4a2a 100644 --- a/test/gc/test-http-client-connaborted.js +++ b/test/parallel/test-gc-http-client-connaborted.js @@ -1,5 +1,6 @@ 'use strict'; -// just like test/gc/http-client.js, +// Flags: --expose-gc +// just like test-gc-http-client.js, // but aborting every connection that comes in. const common = require('../common'); @@ -9,7 +10,6 @@ function serverHandler(req, res) { } const http = require('http'); -const weak = require(`./build/${common.buildType}/binding`); const todo = 500; let done = 0; let count = 0; @@ -36,7 +36,7 @@ function getall() { }, cb).on('error', cb); count++; - weak(req, afterGC); + common.onGC(req, { ongc }); })(); setImmediate(getall); @@ -45,7 +45,7 @@ function getall() { for (let i = 0; i < 10; i++) getall(); -function afterGC() { +function ongc() { countGC++; } diff --git a/test/gc/test-http-client-onerror.js b/test/parallel/test-gc-http-client-onerror.js similarity index 88% rename from test/gc/test-http-client-onerror.js rename to test/parallel/test-gc-http-client-onerror.js index 8b05e941749c63..8842da93c30dcf 100644 --- a/test/gc/test-http-client-onerror.js +++ b/test/parallel/test-gc-http-client-onerror.js @@ -1,5 +1,6 @@ 'use strict'; -// just like test/gc/http-client.js, +// Flags: --expose-gc +// just like test-gc-http-client.js, // but with an on('error') handler that does nothing. const common = require('../common'); @@ -11,7 +12,6 @@ function serverHandler(req, res) { } const http = require('http'); -const weak = require(`./build/${common.buildType}/binding`); const todo = 500; let done = 0; let count = 0; @@ -42,7 +42,7 @@ function getall() { }, cb).on('error', onerror); count++; - weak(req, afterGC); + common.onGC(req, { ongc }); })(); setImmediate(getall); @@ -53,7 +53,7 @@ function runTest() { getall(); } -function afterGC() { +function ongc() { countGC++; } diff --git a/test/gc/test-http-client-timeout.js b/test/parallel/test-gc-http-client-timeout.js similarity index 88% rename from test/gc/test-http-client-timeout.js rename to test/parallel/test-gc-http-client-timeout.js index c396a89032bf0e..e6878021ef9b89 100644 --- a/test/gc/test-http-client-timeout.js +++ b/test/parallel/test-gc-http-client-timeout.js @@ -1,5 +1,6 @@ 'use strict'; -// just like test/gc/http-client.js, +// Flags: --expose-gc +// just like test-gc-http-client.js, // but with a timeout set const common = require('../common'); @@ -13,7 +14,6 @@ function serverHandler(req, res) { } const http = require('http'); -const weak = require(`./build/${common.buildType}/binding`); const todo = 550; let done = 0; let count = 0; @@ -45,7 +45,7 @@ function getall() { }); count++; - weak(req, afterGC); + common.onGC(req, { ongc }); })(); setImmediate(getall); @@ -54,7 +54,7 @@ function getall() { for (let i = 0; i < 10; i++) getall(); -function afterGC() { +function ongc() { countGC++; } diff --git a/test/gc/test-http-client.js b/test/parallel/test-gc-http-client.js similarity index 90% rename from test/gc/test-http-client.js rename to test/parallel/test-gc-http-client.js index 8b50ad5ea4ffce..d31874fa1666c7 100644 --- a/test/gc/test-http-client.js +++ b/test/parallel/test-gc-http-client.js @@ -1,4 +1,5 @@ 'use strict'; +// Flags: --expose-gc // just a simple http server and client. const common = require('../common'); @@ -9,7 +10,6 @@ function serverHandler(req, res) { } const http = require('http'); -const weak = require(`./build/${common.buildType}/binding`); const todo = 500; let done = 0; let count = 0; @@ -40,7 +40,7 @@ function getall() { }, cb); count++; - weak(req, afterGC); + common.onGC(req, { ongc }); })(); setImmediate(getall); @@ -49,7 +49,7 @@ function getall() { for (let i = 0; i < 10; i++) getall(); -function afterGC() { +function ongc() { countGC++; } diff --git a/test/gc/test-net-timeout.js b/test/parallel/test-gc-net-timeout.js similarity index 88% rename from test/gc/test-net-timeout.js rename to test/parallel/test-gc-net-timeout.js index 05d854d18ee7fe..236980efa3d682 100644 --- a/test/gc/test-net-timeout.js +++ b/test/parallel/test-gc-net-timeout.js @@ -1,5 +1,6 @@ 'use strict'; -// just like test/gc/http-client-timeout.js, +// Flags: --expose-gc +// just like test-gc-http-client-timeout.js, // but using a net server/client instead const common = require('../common'); @@ -19,7 +20,6 @@ function serverHandler(sock) { } const net = require('net'); -const weak = require(`./build/${common.buildType}/binding`); const assert = require('assert'); const todo = 500; let done = 0; @@ -44,7 +44,7 @@ function getall() { }); count++; - weak(req, afterGC); + common.onGC(req, { ongc }); setImmediate(getall); } @@ -52,7 +52,7 @@ function getall() { for (let i = 0; i < 10; i++) getall(); -function afterGC() { +function ongc() { countGC++; } diff --git a/tools/test.py b/tools/test.py index 9a0a48043b8b2b..6e96e22192102f 100755 --- a/tools/test.py +++ b/tools/test.py @@ -1538,7 +1538,6 @@ def PrintCrashed(code): 'addons-napi', 'code-cache', 'doctool', - 'gc', 'internet', 'pummel', 'test-known-issues', diff --git a/vcbuild.bat b/vcbuild.bat index 9beb4160c70e3f..bf38ed624f6281 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -33,7 +33,6 @@ set lint_js= set lint_cpp= set lint_md= set lint_md_build= -set build_testgc_addon= set noetw= set noetw_msi_arg= set noperfctr= @@ -88,13 +87,12 @@ if /i "%1"=="test-addons" set test_args=%test_args% addons&set build_addons=1& if /i "%1"=="test-addons-napi" set test_args=%test_args% addons-napi&set build_addons_napi=1&goto arg-ok if /i "%1"=="test-simple" set test_args=%test_args% sequential parallel -J&goto arg-ok if /i "%1"=="test-message" set test_args=%test_args% message&goto arg-ok -if /i "%1"=="test-gc" set test_args=%test_args% gc&set build_testgc_addon=1&goto arg-ok if /i "%1"=="test-tick-processor" set test_args=%test_args% tick-processor&goto arg-ok if /i "%1"=="test-internet" set test_args=%test_args% internet&goto arg-ok if /i "%1"=="test-pummel" set test_args=%test_args% pummel&goto arg-ok if /i "%1"=="test-known-issues" set test_args=%test_args% known_issues&goto arg-ok if /i "%1"=="test-async-hooks" set test_args=%test_args% async-hooks&goto arg-ok -if /i "%1"=="test-all" set test_args=%test_args% gc internet pummel %common_test_suites%&set build_testgc_addon=1&set lint_cpp=1&set lint_js=1&goto arg-ok +if /i "%1"=="test-all" set test_args=%test_args% gc internet pummel %common_test_suites%&set lint_cpp=1&set lint_js=1&goto arg-ok if /i "%1"=="test-node-inspect" set test_node_inspect=1&goto arg-ok if /i "%1"=="test-check-deopts" set test_check_deopts=1&goto arg-ok if /i "%1"=="test-npm" set test_npm=1&goto arg-ok @@ -468,17 +466,6 @@ for %%F in (%config%\doc\api\*.md) do ( :run @rem Run tests if requested. -@rem Build test/gc add-on if required. -if "%build_testgc_addon%"=="" goto build-addons -%node_gyp_exe% rebuild --directory="%~dp0test\gc" --nodedir="%~dp0." -if errorlevel 1 goto build-testgc-addon-failed -goto build-addons - -:build-testgc-addon-failed -echo Failed to build test/gc add-on." -goto exit - -:build-addons if not defined build_addons goto build-addons-napi if not exist "%node_exe%" ( echo Failed to find node.exe @@ -561,7 +548,7 @@ goto lint-cpp :lint-cpp if not defined lint_cpp goto lint-js -call :run-lint-cpp src\*.c src\*.cc src\*.h test\addons\*.cc test\addons\*.h test\addons-napi\*.cc test\addons-napi\*.h test\cctest\*.cc test\cctest\*.h test\gc\binding.cc tools\icu\*.cc tools\icu\*.h +call :run-lint-cpp src\*.c src\*.cc src\*.h test\addons\*.cc test\addons\*.h test\addons-napi\*.cc test\addons-napi\*.h test\cctest\*.cc test\cctest\*.h tools\icu\*.cc tools\icu\*.h python tools/check-imports.py goto lint-js @@ -673,7 +660,7 @@ del .used_configure_flags goto exit :help -echo vcbuild.bat [debug/release] [msi] [doc] [test/test-ci/test-all/test-addons/test-addons-napi/test-internet/test-pummel/test-simple/test-message/test-gc/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [noetw] [noperfctr] [ltcg] [nopch] [licensetf] [sign] [ia32/x86/x64] [vs2017] [download-all] [enable-vtune] [lint/lint-ci/lint-js/lint-js-ci/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [no-cctest] [openssl-no-asm] +echo vcbuild.bat [debug/release] [msi] [doc] [test/test-ci/test-all/test-addons/test-addons-napi/test-internet/test-pummel/test-simple/test-message/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [noetw] [noperfctr] [ltcg] [nopch] [licensetf] [sign] [ia32/x86/x64] [vs2017] [download-all] [enable-vtune] [lint/lint-ci/lint-js/lint-js-ci/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [no-cctest] [openssl-no-asm] echo Examples: echo vcbuild.bat : builds release build echo vcbuild.bat debug : builds debug build From c6a56ae23e8c283c5c516241178a872bca5eba92 Mon Sep 17 00:00:00 2001 From: Brandon Lee <40652534+brandonlwt@users.noreply.github.com> Date: Thu, 2 Aug 2018 02:15:46 +0800 Subject: [PATCH 018/159] doc: correct grammatical error in BUILDING.md Grammatical error corrected. PR-URL: https://github.com/nodejs/node/pull/22067 Reviewed-By: Anna Henningsen Reviewed-By: Vse Mozhet Byt --- BUILDING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index d35211fc43b411..1f73422e69564a 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -4,7 +4,7 @@ Depending on what platform or features you require, the build process may differ slightly. After you've successfully built a binary, running the test suite to validate that the binary works as intended is a good next step. -If you consistently can reproduce a test failure, search for it in the +If you can reproduce a test failure consistently, search for it in the [Node.js issue tracker](https://github.com/nodejs/node/issues) or file a new issue. @@ -34,7 +34,7 @@ Support is divided into three tiers: ### Supported platforms The community does not build or test against end-of-life distributions (EoL). -Thus we do not recommend that you use Node on end-of-life or unsupported +Thus, we do not recommend that you use Node on end-of-life or unsupported platforms in production. | System | Support type | Version | Architectures | Notes | From 94746d6a477c9fd5a4bad455b4faf1b27b3b10cf Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Tue, 22 May 2018 23:49:59 +0400 Subject: [PATCH 019/159] test: remove outdated, non-functioning test The timers directory test, utilizing FakeTime, has not worked in quite a while and is not truly testing Node.js behaviour. If a similar test is necessary it would be better suited to libuv on which Node.js relies for timers functionality. PR-URL: https://github.com/nodejs/node/pull/20894 Fixes: https://github.com/nodejs/node/issues/10154 Reviewed-By: Anna Henningsen Reviewed-By: Ben Noordhuis Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Reviewed-By: Matteo Collina Reviewed-By: Jeremiah Senkpiel Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Gus Caplan Backport-PR-URL: https://github.com/nodejs/node/pull/22039 Reviewed-By: Anna Henningsen Reviewed-By: Minwoo Jung --- .gitignore | 1 - Makefile | 7 -- test/timers/test-timers-reliability.js | 54 ------------- test/timers/testcfg.py | 100 ------------------------- tools/Makefile | 20 ----- 5 files changed, 182 deletions(-) delete mode 100644 test/timers/test-timers-reliability.js delete mode 100644 test/timers/testcfg.py delete mode 100644 tools/Makefile diff --git a/.gitignore b/.gitignore index d8b381203b6a00..e12e4eab6a1700 100644 --- a/.gitignore +++ b/.gitignore @@ -107,7 +107,6 @@ deps/npm/node_modules/.bin/ /SHASUMS*.txt* # test artifacts -tools/faketime tools/remark-cli/node_modules tools/remark-preset-lint-node/node_modules icu_config.gypi diff --git a/Makefile b/Makefile index a76c04b4993b13..351deca594fc66 100644 --- a/Makefile +++ b/Makefile @@ -531,13 +531,6 @@ test-addons-clean: $(RM) test/addons/.buildstamp test/addons/.docbuildstamp $(MAKE) test-addons-napi-clean -test-timers: - $(MAKE) --directory=tools faketime - $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) timers - -test-timers-clean: - $(MAKE) --directory=tools clean - test-async-hooks: $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) async-hooks diff --git a/test/timers/test-timers-reliability.js b/test/timers/test-timers-reliability.js deleted file mode 100644 index 96986a74a6313c..00000000000000 --- a/test/timers/test-timers-reliability.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; -// FaketimeFlags: --exclude-monotonic -f '2014-07-21 09:00:00' - -require('../common'); - -const Timer = process.binding('timer_wrap').Timer; -const assert = require('assert'); - -let timerFired = false; -let intervalFired = false; - -/* - * This test case aims at making sure that timing utilities such - * as setTimeout and setInterval are not vulnerable to time - * drifting or inconsistent time changes (such as ntp time sync - * in the past, etc.). - * - * It is run using faketime so that we change how - * non-monotonic clocks perceive time movement. We freeze - * non-monotonic time, and check if setTimeout and setInterval - * work properly in that situation. - * - * We check this by setting a timer based on a monotonic clock - * to fire after setTimeout's callback is supposed to be called. - * This monotonic timer, by definition, is not subject to time drifting - * and inconsistent time changes, so it can be considered as a solid - * reference. - * - * When the monotonic timer fires, if the setTimeout's callback - * hasn't been called yet, it means that setTimeout's underlying timer - * is vulnerable to time drift or inconsistent time changes. - */ - -const monoTimer = new Timer(); -monoTimer[Timer.kOnTimeout] = function() { - /* - * Make sure that setTimeout's and setInterval's callbacks have - * already fired, otherwise it means that they are vulnerable to - * time drifting or inconsistent time changes. - */ - assert(timerFired); - assert(intervalFired); -}; - -monoTimer.start(300); - -setTimeout(function() { - timerFired = true; -}, 200); - -const interval = setInterval(function() { - intervalFired = true; - clearInterval(interval); -}, 200); diff --git a/test/timers/testcfg.py b/test/timers/testcfg.py deleted file mode 100644 index b766db16910cc5..00000000000000 --- a/test/timers/testcfg.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2008 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import test -import os -from os.path import join, exists -import re -import shlex - -FAKETIME_FLAGS_PATTERN = re.compile(r"//\s+FaketimeFlags:(.*)") -FAKETIME_BIN_PATH = os.path.join("tools", "faketime", "src", "faketime") - -class TimersTestCase(test.TestCase): - - def __init__(self, path, file, arch, mode, context, config): - super(TimersTestCase, self).__init__(context, path, arch, mode) - self.file = file - self.config = config - self.arch = arch - self.mode = mode - - def GetLabel(self): - return "%s %s" % (self.mode, self.GetName()) - - def GetName(self): - return self.path[-1] - - def GetCommand(self): - result = [FAKETIME_BIN_PATH]; - - source = open(self.file).read() - faketime_flags_match = FAKETIME_FLAGS_PATTERN.search(source) - if faketime_flags_match: - result += shlex.split(faketime_flags_match.group(1).strip()) - - result += [self.config.context.GetVm(self.arch, self.mode)] - result += [self.file] - - return result - - def GetSource(self): - return open(self.file).read() - - -class TimersTestConfiguration(test.TestConfiguration): - - def __init__(self, context, root): - super(TimersTestConfiguration, self).__init__(context, root) - - def Ls(self, path): - def SelectTest(name): - return name.startswith('test-') and name.endswith('.js') - return [f[:-3] for f in os.listdir(path) if SelectTest(f)] - - def ListTests(self, current_path, path, arch, mode): - all_tests = [current_path + [t] for t in self.Ls(join(self.root))] - result = [] - for test in all_tests: - if self.Contains(path, test): - file_path = join(self.root, reduce(join, test[1:], "") + ".js") - result.append(TimersTestCase(test, file_path, arch, mode, - self.context, self)) - return result - - def GetBuildRequirements(self): - return ['sample', 'sample=shell'] - - def GetTestStatus(self, sections, defs): - status_file = join(self.root, 'simple.status') - if exists(status_file): - test.ReadConfigurationInto(status_file, sections, defs) - - - -def GetConfiguration(context, root): - return TimersTestConfiguration(context, root) diff --git a/tools/Makefile b/tools/Makefile deleted file mode 100644 index d627c149d6748e..00000000000000 --- a/tools/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -FAKETIME_REPO := git://github.com/wolfcw/libfaketime.git -FAKETIME_LOCAL_REPO := $(CURDIR)/faketime -FAKETIME_BRANCH := master -FAKETIME_BINARY := $(FAKETIME_PREFIX)/bin/faketime - -.PHONY: faketime - -faketime: $(FAKETIME_BINARY) - -clean: - $(RM) -r $(FAKETIME_LOCAL_REPO) - -$(FAKETIME_BINARY): $(FAKETIME_LOCAL_REPO) - cd $(FAKETIME_LOCAL_REPO) && \ - git checkout $(FAKETIME_BRANCH) && \ - PREFIX=$(FAKETIME_LOCAL_REPO)/src make - -$(FAKETIME_LOCAL_REPO): - git clone $(FAKETIME_REPO) $(FAKETIME_LOCAL_REPO) - From 7a7c194f4eb7866b39c6443a2d3762117c646619 Mon Sep 17 00:00:00 2001 From: Jon Moss Date: Fri, 20 Jul 2018 11:21:57 -0400 Subject: [PATCH 020/159] tools: fix docs and run known_issues by default - Updates `test/README.md` with new suites - Fixes some outdated `IGNORED_SUITES` listings - Allows for `test/known_issues` suite to be run by default PR-URL: https://github.com/nodejs/node/pull/21910 Reviewed-By: Vse Mozhet Byt Reviewed-By: James M Snell Reviewed-By: Lance Ball Reviewed-By: Richard Lau Reviewed-By: Rich Trott --- test/README.md | 10 +++++++--- tools/test.py | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/test/README.md b/test/README.md index df95cedb340b3b..510d7c39966c8d 100644 --- a/test/README.md +++ b/test/README.md @@ -16,9 +16,13 @@ GitHub with the `autocrlf` git config flag set to true. |Directory |Runs on CI |Purpose | |-------------------|---------------|---------------| |abort |Yes |Tests for when the ``` --abort-on-uncaught-exception ``` flag is used.| -|addons |Yes |Tests for [addon](https://nodejs.org/api/addons.html) functionality along with some tests that require an addon to function properly.| -|cctest |Yes |C++ test that is run as part of the build process.| +|addons |Yes |Tests for [addon](https://nodejs.org/api/addons.html) functionality along with some tests that require an addon to function properly.| +|addons-napi |Yes |Tests for [n-api](https://nodejs.org/api/n-api.html) functionality.| +|async-hooks |Yes |Tests for [async_hooks](https://nodejs.org/api/async_hooks.html) functionality.| +|cctest |Yes |C++ tests that are run as part of the build process.| +|code-cache |No |Tests for a Node.js binary compiled with V8 code cache.| |common | |Common modules shared among many tests. [Documentation](./common/README.md)| +|doctool |Yes |Tests for the documentation generator.| |es-module |Yes |Test ESM module loading.| |fixtures | |Test fixtures used in various tests throughout the test suite.| |internet |No |Tests that make real outbound connections (mainly networking related modules). Tests for networking related modules may also be present in other directories, but those tests do not make outbound connections.| @@ -30,7 +34,7 @@ GitHub with the `autocrlf` git config flag set to true. |sequential |Yes |Various tests that are run sequentially.| |testpy | |Test configuration utility used by various test suites.| |tick-processor |No |Tests for the V8 tick processor integration. The tests are for the logic in ```lib/internal/v8_prof_processor.js``` and ```lib/internal/v8_prof_polyfill.js```. The tests confirm that the profile processor packages the correct set of scripts from V8 and introduces the correct platform specific logic.| -|timers |No |Tests for [timing utilities](https://nodejs.org/api/timers.html) (```setTimeout``` and ```setInterval```).| +|v8-updates |No |Tests for V8 performance integration.| _When a new test directory is added, make sure to update the `CI_JS_SUITES` variable in the `Makefile` and the `js_test_suites` variable in diff --git a/tools/test.py b/tools/test.py index 6e96e22192102f..b6f91aa1ebdf59 100755 --- a/tools/test.py +++ b/tools/test.py @@ -1540,9 +1540,7 @@ def PrintCrashed(code): 'doctool', 'internet', 'pummel', - 'test-known-issues', 'tick-processor', - 'timers', 'v8-updates' ] From e2d97eeb658b2a7c813a9ff9ff5dca46ad9555a1 Mon Sep 17 00:00:00 2001 From: Jon Moss Date: Fri, 27 Jul 2018 23:31:16 -0400 Subject: [PATCH 021/159] test: remove outdated documentation As noted by @richardlau, `Makefile` and `vcbuild.bat` no longer need to be updated since they run the `default` suite. PR-URL: https://github.com/nodejs/node/pull/22009 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- test/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/README.md b/test/README.md index 510d7c39966c8d..582e5c58367c6f 100644 --- a/test/README.md +++ b/test/README.md @@ -35,7 +35,3 @@ GitHub with the `autocrlf` git config flag set to true. |testpy | |Test configuration utility used by various test suites.| |tick-processor |No |Tests for the V8 tick processor integration. The tests are for the logic in ```lib/internal/v8_prof_processor.js``` and ```lib/internal/v8_prof_polyfill.js```. The tests confirm that the profile processor packages the correct set of scripts from V8 and introduces the correct platform specific logic.| |v8-updates |No |Tests for V8 performance integration.| - -_When a new test directory is added, make sure to update the `CI_JS_SUITES` -variable in the `Makefile` and the `js_test_suites` variable in -`vcbuild.bat`._ From abac0c56b862b57fb7eed0217a18bc6dce4f1508 Mon Sep 17 00:00:00 2001 From: Jon Moss Date: Mon, 30 Jul 2018 13:17:51 -0400 Subject: [PATCH 022/159] doc: mark DEP0004 and DEP0042 as End-of-Life `CryptoStream` was removed via 9301b8a9c69d112b98c7d60e074c845d80342b4e. PR-URL: https://github.com/nodejs/node/pull/22033 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat Reviewed-By: Colin Ihrig --- doc/api/deprecations.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 7971488b551450..42c4717036ccf3 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -64,10 +64,9 @@ The `_writableState.buffer` property is deprecated. Use the ### DEP0004: CryptoStream.prototype.readyState -Type: Documentation-only +Type: End-of-Life -The `CryptoStream.prototype.readyState` property is deprecated and should not -be used. +The `CryptoStream.prototype.readyState` property was removed. ### DEP0005: Buffer() constructor @@ -377,9 +376,9 @@ The `NODE_REPL_HISTORY_FILE` environment variable was removed. Please use ### DEP0042: tls.CryptoStream -Type: Documentation-only +Type: End-of-Life -The [`tls.CryptoStream`][] class is deprecated. Please use +The [`tls.CryptoStream`][] class was removed. Please use [`tls.TLSSocket`][] instead. From d364f9c8e73f04450b9643aa237e0b5a5ac58d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 1 Aug 2018 21:24:50 +0200 Subject: [PATCH 023/159] doc: fix changelog for v10.8.0 Add missing link at the top. PR-URL: https://github.com/nodejs/node/pull/22072 Reviewed-By: Richard Lau Reviewed-By: Vse Mozhet Byt Reviewed-By: Jon Moss Reviewed-By: Luigi Pinca --- doc/changelogs/CHANGELOG_V10.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/changelogs/CHANGELOG_V10.md b/doc/changelogs/CHANGELOG_V10.md index d4b9d3b036c174..f1aa3b7c119725 100644 --- a/doc/changelogs/CHANGELOG_V10.md +++ b/doc/changelogs/CHANGELOG_V10.md @@ -9,6 +9,7 @@ +10.8.0
10.7.0
10.6.0
10.5.0
From a40ee213b315cfe1b384354e4e494e2b4611739c Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 29 Jul 2018 19:26:27 -0700 Subject: [PATCH 024/159] test: improve reliability in http2-session-timeout Use `setImmediate()` instead of `setTimeout()` to improve robustness of test-http2-session-timeout. Fixes: https://github.com/nodejs/node/issues/20628 PR-URL: https://github.com/nodejs/node/pull/22026 Reviewed-By: Anatoli Papirovski Reviewed-By: Jon Moss Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat --- test/sequential/test-http2-session-timeout.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/sequential/test-http2-session-timeout.js b/test/sequential/test-http2-session-timeout.js index 48e98998c700b6..5c4f047b338e9c 100644 --- a/test/sequential/test-http2-session-timeout.js +++ b/test/sequential/test-http2-session-timeout.js @@ -3,13 +3,12 @@ const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); -const h2 = require('http2'); +const http2 = require('http2'); const serverTimeout = common.platformTimeout(200); -const callTimeout = common.platformTimeout(20); const mustNotCall = common.mustNotCall(); -const server = h2.createServer(); +const server = http2.createServer(); server.timeout = serverTimeout; server.on('request', (req, res) => res.end()); @@ -19,7 +18,7 @@ server.listen(0, common.mustCall(() => { const port = server.address().port; const url = `http://localhost:${port}`; - const client = h2.connect(url); + const client = http2.connect(url); const startTime = process.hrtime(); makeReq(); @@ -37,7 +36,7 @@ server.listen(0, common.mustCall(() => { const diff = process.hrtime(startTime); const milliseconds = (diff[0] * 1e3 + diff[1] / 1e6); if (milliseconds < serverTimeout * 2) { - setTimeout(makeReq, callTimeout); + setImmediate(makeReq); } else { server.removeListener('timeout', mustNotCall); server.close(); From 246a94f30132cdf6c70afd97df239abafdac7220 Mon Sep 17 00:00:00 2001 From: Oryan Moshe Date: Wed, 1 Aug 2018 21:31:34 +0300 Subject: [PATCH 025/159] test: see value of "hadError" in tls test The existing implementation created a state that if the assert failed we got an error message without the values of hadError. Removed the default error message and added a comment explaining the assert. PR-URL: https://github.com/nodejs/node/pull/22069 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Benjamin Gruenbaum Reviewed-By: Jon Moss Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater --- test/parallel/test-tls-hello-parser-failure.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/parallel/test-tls-hello-parser-failure.js b/test/parallel/test-tls-hello-parser-failure.js index 4a7d8999c78d39..4b92f6bde3151c 100644 --- a/test/parallel/test-tls-hello-parser-failure.js +++ b/test/parallel/test-tls-hello-parser-failure.js @@ -60,6 +60,7 @@ const server = tls.createServer(options, function(c) { })); client.on('close', common.mustCall(function(hadError) { - assert.strictEqual(hadError, true, 'Client never errored'); + // Confirm that client errored + assert.strictEqual(hadError, true); })); })); From a60060b4995704cdde6813cff9dc179bdc44fb64 Mon Sep 17 00:00:00 2001 From: Michael Sommer Date: Tue, 31 Jul 2018 09:39:33 -0700 Subject: [PATCH 026/159] test: remove third argument from call to assert.strictEqual() PR-URL: https://github.com/nodejs/node/pull/22047 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat Reviewed-By: Ruben Bridgewater --- test/parallel/test-crypto-hash.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-crypto-hash.js b/test/parallel/test-crypto-hash.js index f4f7b0dfe55e24..ec35cad7e8960c 100644 --- a/test/parallel/test-crypto-hash.js +++ b/test/parallel/test-crypto-hash.js @@ -100,9 +100,9 @@ fileStream.on('data', function(data) { sha1Hash.update(data); }); fileStream.on('close', common.mustCall(function() { + // Test SHA1 of sample.png assert.strictEqual(sha1Hash.digest('hex'), - '22723e553129a336ad96e10f6aecdf0f45e4149e', - 'Test SHA1 of sample.png'); + '22723e553129a336ad96e10f6aecdf0f45e4149e'); })); // Issue https://github.com/nodejs/node-v0.x-archive/issues/2227: unknown digest From 76a65921d39f91a96eea3f03d83a8d4484c6cc99 Mon Sep 17 00:00:00 2001 From: Anto Aravinth Date: Sat, 14 Jul 2018 18:52:49 +0530 Subject: [PATCH 027/159] readline,zlib: named anonymous functions PR-URL: https://github.com/nodejs/node/pull/21792 Reviewed-By: Anatoli Papirovski Reviewed-By: Trivikram Kamat Reviewed-By: Colin Ihrig Reviewed-By: Yuta Hiroto Reviewed-By: James M Snell Reviewed-By: Jon Moss --- lib/readline.js | 2 +- lib/zlib.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/readline.js b/lib/readline.js index 89dd1b84f2dde0..cec88845d12cae 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -845,7 +845,7 @@ Interface.prototype._ttyWrite = function(s, key) { if (this.listenerCount('SIGTSTP') > 0) { this.emit('SIGTSTP'); } else { - process.once('SIGCONT', (function(self) { + process.once('SIGCONT', (function continueProcess(self) { return function() { // Don't raise events if stream has already been abandoned. if (!self.paused) { diff --git a/lib/zlib.js b/lib/zlib.js index d8a1cb57c5a892..4e82c6f2459d6b 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -473,7 +473,7 @@ function processChunkSync(self, chunk, flushFlag) { var chunkSize = self._chunkSize; var error; - self.on('error', function(er) { + self.on('error', function onError(er) { error = er; }); @@ -691,11 +691,11 @@ inherits(Unzip, Zlib); function createConvenienceMethod(ctor, sync) { if (sync) { - return function(buffer, opts) { + return function syncBufferWrapper(buffer, opts) { return zlibBufferSync(new ctor(opts), buffer); }; } else { - return function(buffer, opts, callback) { + return function asyncBufferWrapper(buffer, opts, callback) { if (typeof opts === 'function') { callback = opts; opts = {}; From 311ec127024eefd8f210b53a235123c427dd81c8 Mon Sep 17 00:00:00 2001 From: Aleksey Kozyatinskiy Date: Sat, 21 Jul 2018 00:52:48 -0700 Subject: [PATCH 028/159] inspector: fixed V8InspectorClient::currentTimeMS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On inspector side inside V8 we assume that this method should return number of ms since epoch. PR-URL: https://github.com/nodejs/node/pull/21917 Reviewed-By: Michaël Zasso Reviewed-By: Gus Caplan Reviewed-By: Colin Ihrig Reviewed-By: Anna Henningsen Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Jon Moss --- src/inspector_agent.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index ebb8d8a161606d..0b99217d0a3fa8 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -187,8 +187,6 @@ static int StartDebugSignalHandler() { #endif // _WIN32 -// Used in NodeInspectorClient::currentTimeMS() below. -const int NANOS_PER_MSEC = 1000000; const int CONTEXT_GROUP_ID = 1; class ChannelImpl final : public v8_inspector::V8Inspector::Channel, @@ -593,7 +591,7 @@ class NodeInspectorClient : public V8InspectorClient { } double currentTimeMS() override { - return uv_hrtime() * 1.0 / NANOS_PER_MSEC; + return env_->isolate_data()->platform()->CurrentClockTimeMillis(); } node::Environment* env_; From 5a4abbadfe8be5794f092f09c1ea3759f14922d2 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 30 Jul 2018 22:02:36 -0700 Subject: [PATCH 029/159] tools: update to using dmn 1.0.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dmn 1.0.11 is available. Update update-eslint.sh to use it. Update update-babel-eslint.sh to use it too via npx. Add removeNPMAbsolutePaths to the latter while we're at it. PR-URL: https://github.com/nodejs/node/pull/22035 Reviewed-By: Michaël Zasso Reviewed-By: Gireesh Punathil Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann Reviewed-By: Roman Reiss Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau Reviewed-By: Trivikram Kamat --- tools/update-babel-eslint.sh | 10 +++++----- tools/update-eslint.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/update-babel-eslint.sh b/tools/update-babel-eslint.sh index 2b6a4e0ee9825f..6e5971e4ef69ca 100755 --- a/tools/update-babel-eslint.sh +++ b/tools/update-babel-eslint.sh @@ -2,7 +2,7 @@ # Shell script to update babel-eslint in the source tree to the latest release. -# Depends on npm and node being in $PATH. +# Depends on npm, npx, and node being in $PATH. # This script must be be in the tools directory when it runs because it uses # $BASH_SOURCE[0] to determine directories to work in. @@ -15,11 +15,11 @@ npm init --yes npm install --global-style --no-bin-links --production --no-package-lock babel-eslint@latest -# Install dmn if it is not in path. -type -P dmn || npm install -g dmn - # Use dmn to remove some unneeded files. -dmn -f clean +npx dmn@1.0.11 -f clean +# Use removeNPMAbsolutePaths to remove unused data in package.json. +# This avoids churn as absolute paths can change from one dev to another. +npx removeNPMAbsolutePaths@1.0.4 . cd .. mv babel-eslint-tmp/node_modules/babel-eslint node_modules/babel-eslint diff --git a/tools/update-eslint.sh b/tools/update-eslint.sh index 8092b7f0b8e93f..301dd334d84331 100755 --- a/tools/update-eslint.sh +++ b/tools/update-eslint.sh @@ -20,7 +20,7 @@ npm install --no-bin-links --production --no-package-lock eslint-plugin-markdown cd ../.. # Use dmn to remove some unneeded files. -npx dmn@1.0.10 -f clean +npx dmn@1.0.11 -f clean # Use removeNPMAbsolutePaths to remove unused data in package.json. # This avoids churn as absolute paths can change from one dev to another. npx removeNPMAbsolutePaths@1.0.4 . From 168abb580163f32c802d0550d2e6dbaafa72efe3 Mon Sep 17 00:00:00 2001 From: "Eugene Y. Q. Shen" Date: Wed, 1 Aug 2018 16:05:22 -0700 Subject: [PATCH 030/159] doc: rename stackStartFunction in assert.md [assert.js](https://github.com/nodejs/node/blob/master/lib/assert.js) uses `stackStartFn` everywhere instead of `stackStartFunction`. This also increases consistency with `stackStartFn` in the `AssertionError` options. PR-URL: https://github.com/nodejs/node/pull/22077 Reviewed-By: Ruben Bridgewater Reviewed-By: Rich Trott Reviewed-By: Trivikram Kamat Reviewed-By: Vse Mozhet Byt Reviewed-By: Luigi Pinca --- doc/api/assert.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/api/assert.md b/doc/api/assert.md index 57fcc14de2ba90..baa7c2f8aa054a 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -587,7 +587,7 @@ assert.fail(new TypeError('need array')); Using `assert.fail()` with more than two arguments is possible but deprecated. See below for further details. -## assert.fail(actual, expected[, message[, operator[, stackStartFunction]]]) +## assert.fail(actual, expected[, message[, operator[, stackStartFn]]]) -* Returns: {Object} +* Returns: {Object|string} Returns the bound `address`, the address `family` name, and `port` of the server as reported by the operating system if listening on an IP socket From f0c871b0c78bc9d0baeaa1788eb6cba2341b7132 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Fri, 13 Jul 2018 20:19:31 +0800 Subject: [PATCH 034/159] tools: add `make format-cpp` to run clang-format on C++ diffs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds a `make format-cpp` shortcut to the Makefile that runs clang-format on the C++ diffs, and a `make format-cpp-build` to install clang-format from npm. To format staged changes: ``` $ make format-cpp ``` To format HEAD~1...HEAD (latest commit): ``` $ CLANG_FORMAT_START=`git rev-parse HEAD~1` make format-cpp ``` To format diff between master and current branch head (master...HEAD): ``` $ CLANG_FORMAT_START=master make format-cpp ``` Most of the .clang-format file comes from running ``` $ clang-format --dump-config --style=Google ``` with clang-format built with llvm/trunk 328768 (npm version 1.2.3) The clang-format version is fixed because different version of clang-format may format the files differently. PR-URL: https://github.com/nodejs/node/pull/21997 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Gus Caplan Reviewed-By: Michaël Zasso --- .clang-format | 111 ++++++++++++++++++++++++++++++++ .gitignore | 1 + Makefile | 27 ++++++++ tools/clang-format/package.json | 9 +++ 4 files changed, 148 insertions(+) create mode 100644 .clang-format create mode 100644 tools/clang-format/package.json diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000000000..4aad29c328abd4 --- /dev/null +++ b/.clang-format @@ -0,0 +1,111 @@ +--- +Language: Cpp +# BasedOnStyle: Google +AccessModifierOffset: -1 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Right +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^' + Priority: 2 + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 +IncludeIsMainRegex: '([-_](test|unittest))?$' +IndentCaseLabels: true +IndentPPDirectives: None +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: false +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +TabWidth: 8 +UseTab: Never diff --git a/.gitignore b/.gitignore index e12e4eab6a1700..052511cf115191 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ !test/fixtures/**/.* !tools/node_modules/**/.* !tools/doc/node_modules/**/.* +!.clang-format !.editorconfig !.eslintignore !.eslintrc.js diff --git a/Makefile b/Makefile index 351deca594fc66..db15d6867328f6 100644 --- a/Makefile +++ b/Makefile @@ -1169,6 +1169,33 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ # and the actual filename is generated so it won't match header guards ADDON_DOC_LINT_FLAGS=-whitespace/ending_newline,-build/header_guard +format-cpp-build: + cd tools/clang-format && $(call available-node,$(run-npm-install)) + +format-cpp-clean: + $(RM) -r tools/clang-format/node_modules + +CLANG_FORMAT_START ?= HEAD +.PHONY: format-cpp +# To format staged changes: +# $ make format-cpp +# To format HEAD~1...HEAD (latest commit): +# $ CLANG_FORMAT_START=`git rev-parse HEAD~1` make format-cpp +# To format diff between master and current branch head (master...HEAD): +# $ CLANG_FORMAT_START=master make format-cpp +format-cpp: ## Format C++ diff from $CLANG_FORMAT_START to current changes +ifneq ("","$(wildcard tools/clang-format/node_modules/)") + @echo "Formatting C++ diff from $(CLANG_FORMAT_START).." + @$(PYTHON) tools/clang-format/node_modules/.bin/git-clang-format \ + --binary=tools/clang-format/node_modules/.bin/clang-format \ + --style=file \ + $(CLANG_FORMAT_START) -- \ + $(LINT_CPP_FILES) +else + @echo "clang-format is not installed." + @echo "To install (requires internet access) run: $ make format-cpp-build" +endif + .PHONY: lint-cpp # Lints the C++ code with cpplint.py and check-imports.py. lint-cpp: tools/.cpplintstamp diff --git a/tools/clang-format/package.json b/tools/clang-format/package.json new file mode 100644 index 00000000000000..8432296ed6f1fc --- /dev/null +++ b/tools/clang-format/package.json @@ -0,0 +1,9 @@ +{ + "name": "node-core-clang-format", + "version": "1.0.0", + "description": "Formatting C++ files for Node.js core", + "license": "MIT", + "dependencies": { + "clang-format": "1.2.3" + } +} From 6cff57e98df4618bde25d6dfe8620ce08e03872b Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Sun, 29 Jul 2018 20:33:58 -0400 Subject: [PATCH 035/159] test: fix incorrect file mode check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/22023 Reviewed-By: Gus Caplan Reviewed-By: Michaël Zasso Reviewed-By: Minwoo Jung Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- test/parallel/test-net-server-listen-path.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-net-server-listen-path.js b/test/parallel/test-net-server-listen-path.js index 22ad50f11ea2f6..cc73c3fd438abe 100644 --- a/test/parallel/test-net-server-listen-path.js +++ b/test/parallel/test-net-server-listen-path.js @@ -63,8 +63,8 @@ function randomPipePath() { }, common.mustCall(() => { if (process.platform !== 'win32') { const mode = fs.statSync(handlePath).mode; - assert.ok(mode & fs.constants.S_IROTH !== 0); - assert.ok(mode & fs.constants.S_IWOTH !== 0); + assert.notStrictEqual(mode & fs.constants.S_IROTH, 0); + assert.notStrictEqual(mode & fs.constants.S_IWOTH, 0); } srv.close(); })); From 28870a46acf0c274788ca623b022fdc01564db60 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Fri, 3 Aug 2018 13:21:42 -0400 Subject: [PATCH 036/159] doc: add rubys to collaborators PR-URL: https://github.com/nodejs/node/pull/22109 Reviewed-By: Rich Trott Reviewed-By: Vse Mozhet Byt Reviewed-By: Gireesh Punathil Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Bryan English --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1016482d8073fa..925c9e39b8c14c 100644 --- a/README.md +++ b/README.md @@ -471,6 +471,8 @@ For more information about the governance of the Node.js project, see **Ron Korving** <ron@ronkorving.nl> * [RReverser](https://github.com/RReverser) - **Ingvar Stepanyan** <me@rreverser.com> +* [rubys](https://github.com/rubys) - +**Sam Ruby** <rubys@intertwingly.net> * [rvagg](https://github.com/rvagg) - **Rod Vagg** <rod@vagg.org> * [ryzokuken](https://github.com/ryzokuken) - From e4f346892c30e9d21c306e9f679fa90f9c2ab0bb Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Fri, 13 Jul 2018 15:46:21 -0700 Subject: [PATCH 037/159] repl: support mult-line string-keyed objects isRecoverableError is completely reimplemented using acorn and an acorn plugin that examines the state of the parser at the time of the error to determine if the code could be completed on a subsequent line. PR-URL: https://github.com/nodejs/node/pull/21805 Reviewed-By: Ruben Bridgewater Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: John-David Dalton Reviewed-By: James M Snell --- lib/internal/repl/recoverable.js | 79 ++++++++++++++++++++++++++++++++ lib/repl.js | 74 ++---------------------------- node.gyp | 1 + test/parallel/test-repl.js | 21 ++++++--- 4 files changed, 97 insertions(+), 78 deletions(-) create mode 100644 lib/internal/repl/recoverable.js diff --git a/lib/internal/repl/recoverable.js b/lib/internal/repl/recoverable.js new file mode 100644 index 00000000000000..465d77451a5b82 --- /dev/null +++ b/lib/internal/repl/recoverable.js @@ -0,0 +1,79 @@ +'use strict'; + +const acorn = require('internal/deps/acorn/dist/acorn'); +const { tokTypes: tt } = acorn; + +// If the error is that we've unexpectedly ended the input, +// then let the user try to recover by adding more input. +// Note: `e` (the original exception) is not used by the current implemention, +// but may be needed in the future. +function isRecoverableError(e, code) { + let recoverable = false; + + // Determine if the point of the any error raised is at the end of the input. + // There are two cases to consider: + // + // 1. Any error raised after we have encountered the 'eof' token. + // This prevents us from declaring partial tokens (like '2e') as + // recoverable. + // + // 2. Three cases where tokens can legally span lines. This is + // template, comment, and strings with a backslash at the end of + // the line, indicating a continuation. Note that we need to look + // for the specific errors of 'unterminated' kind (not, for example, + // a syntax error in a ${} expression in a template), and the only + // way to do that currently is to look at the message. Should Acorn + // change these messages in the future, this will lead to a test + // failure, indicating that this code needs to be updated. + // + acorn.plugins.replRecoverable = (parser) => { + parser.extend('nextToken', (nextToken) => { + return function() { + Reflect.apply(nextToken, this, []); + + if (this.type === tt.eof) recoverable = true; + }; + }); + + parser.extend('raise', (raise) => { + return function(pos, message) { + switch (message) { + case 'Unterminated template': + case 'Unterminated comment': + recoverable = true; + break; + + case 'Unterminated string constant': + const token = this.input.slice(this.lastTokStart, this.pos); + // see https://www.ecma-international.org/ecma-262/#sec-line-terminators + recoverable = /\\(?:\r\n?|\n|\u2028|\u2029)$/.test(token); + } + + Reflect.apply(raise, this, [pos, message]); + }; + }); + }; + + // For similar reasons as `defaultEval`, wrap expressions starting with a + // curly brace with parenthesis. Note: only the open parenthesis is added + // here as the point is to test for potentially valid but incomplete + // expressions. + if (/^\s*\{/.test(code) && isRecoverableError(e, `(${code}`)) return true; + + // Try to parse the code with acorn. If the parse fails, ignore the acorn + // error and return the recoverable status. + try { + acorn.parse(code, { plugins: { replRecoverable: true } }); + + // Odd case: the underlying JS engine (V8, Chakra) rejected this input + // but Acorn detected no issue. Presume that additional text won't + // address this issue. + return false; + } catch { + return recoverable; + } +} + +module.exports = { + isRecoverableError +}; diff --git a/lib/repl.js b/lib/repl.js index 92c90de7bb1646..4a01595ce1b72b 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -73,6 +73,7 @@ const { } = require('internal/errors').codes; const { sendInspectorCommand } = require('internal/util/inspector'); const { experimentalREPLAwait } = process.binding('config'); +const { isRecoverableError } = require('internal/repl/recoverable'); // Lazy-loaded. let processTopLevelAwait; @@ -227,7 +228,8 @@ function REPLServer(prompt, // It's confusing for `{ a : 1 }` to be interpreted as a block // statement rather than an object literal. So, we first try // to wrap it in parentheses, so that it will be interpreted as - // an expression. + // an expression. Note that if the above condition changes, + // lib/internal/repl/recoverable.js needs to be changed to match. code = `(${code.trim()})\n`; wrappedCmd = true; } @@ -1505,76 +1507,6 @@ function regexpEscape(s) { return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); } -// If the error is that we've unexpectedly ended the input, -// then let the user try to recover by adding more input. -function isRecoverableError(e, code) { - if (e && e.name === 'SyntaxError') { - var message = e.message; - if (message === 'Unterminated template literal' || - message === 'Unexpected end of input') { - return true; - } - - if (message === 'missing ) after argument list') { - const frames = e.stack.split(/\r?\n/); - const pos = frames.findIndex((f) => f.match(/^\s*\^+$/)); - return pos > 0 && frames[pos - 1].length === frames[pos].length; - } - - if (message === 'Invalid or unexpected token') - return isCodeRecoverable(code); - } - return false; -} - -// Check whether a code snippet should be forced to fail in the REPL. -function isCodeRecoverable(code) { - var current, previous, stringLiteral; - var isBlockComment = false; - var isSingleComment = false; - var isRegExpLiteral = false; - var lastChar = code.charAt(code.length - 2); - var prevTokenChar = null; - - for (var i = 0; i < code.length; i++) { - previous = current; - current = code[i]; - - if (previous === '\\' && (stringLiteral || isRegExpLiteral)) { - current = null; - } else if (stringLiteral) { - if (stringLiteral === current) { - stringLiteral = null; - } - } else if (isRegExpLiteral && current === '/') { - isRegExpLiteral = false; - } else if (isBlockComment && previous === '*' && current === '/') { - isBlockComment = false; - } else if (isSingleComment && current === '\n') { - isSingleComment = false; - } else if (!isBlockComment && !isRegExpLiteral && !isSingleComment) { - if (current === '/' && previous === '/') { - isSingleComment = true; - } else if (previous === '/') { - if (current === '*') { - isBlockComment = true; - // Distinguish between a division operator and the start of a regex - // by examining the non-whitespace character that precedes the / - } else if ([null, '(', '[', '{', '}', ';'].includes(prevTokenChar)) { - isRegExpLiteral = true; - } - } else { - if (current.trim()) prevTokenChar = current; - if (current === '\'' || current === '"') { - stringLiteral = current; - } - } - } - } - - return stringLiteral ? lastChar === '\\' : isBlockComment; -} - function Recoverable(err) { this.err = err; } diff --git a/node.gyp b/node.gyp index 82dfadd8e883d4..e1e2e7cd54f636 100644 --- a/node.gyp +++ b/node.gyp @@ -146,6 +146,7 @@ 'lib/internal/readline.js', 'lib/internal/repl.js', 'lib/internal/repl/await.js', + 'lib/internal/repl/recoverable.js', 'lib/internal/socket_list.js', 'lib/internal/test/binding.js', 'lib/internal/test/heap.js', diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index 35cd3e11afab53..8cb4b686b85e40 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -162,13 +162,11 @@ const errorTests = [ // Template expressions { send: '`io.js ${"1.0"', - expect: [ - kSource, - kArrow, - '', - /^SyntaxError: /, - '' - ] + expect: '... ' + }, + { + send: '+ ".2"}`', + expect: '\'io.js 1.0.2\'' }, { send: '`io.js ${', @@ -315,6 +313,15 @@ const errorTests = [ send: '1 }', expect: '{ a: 1 }' }, + // Multiline string-keyed object (e.g. JSON) + { + send: '{ "a": ', + expect: '... ' + }, + { + send: '1 }', + expect: '{ a: 1 }' + }, // Multiline anonymous function with comment { send: '(function() {', From d66e52fb8eef6d597365a83fec4a69f19fcfae68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 21 Jul 2018 11:13:07 +0200 Subject: [PATCH 038/159] test: run ESM tests in parallel PR-URL: https://github.com/nodejs/node/pull/21919 Reviewed-By: Gus Caplan Reviewed-By: Colin Ihrig Reviewed-By: Jon Moss Reviewed-By: Trivikram Kamat --- test/common/index.mjs | 2 -- test/es-module/testcfg.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/test/common/index.mjs b/test/common/index.mjs index 8bf512f6b92f6e..51cf2a31df8f0d 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -3,7 +3,6 @@ import common from './index.js'; const { - PORT, isMainThread, isWindows, isWOW64, @@ -63,7 +62,6 @@ const { } = common; export { - PORT, isMainThread, isWindows, isWOW64, diff --git a/test/es-module/testcfg.py b/test/es-module/testcfg.py index 0d8dfeed463ec8..83ce46ee66728b 100644 --- a/test/es-module/testcfg.py +++ b/test/es-module/testcfg.py @@ -3,4 +3,4 @@ import testpy def GetConfiguration(context, root): - return testpy.SimpleTestConfiguration(context, root, 'es-module') + return testpy.ParallelTestConfiguration(context, root, 'es-module') From 1ca46ab6f4dec15464984bcd201fd26f8a27b974 Mon Sep 17 00:00:00 2001 From: Marco Levrero Date: Tue, 19 Jun 2018 22:03:33 +0100 Subject: [PATCH 039/159] http,tls: name anonymous callbacks This commit is to help in the effort to name all anonymous functions to help when heap debugging. Specifically, this commit fixes some anonymous functions used as listeners in the lib/ folder. PR-URL: https://github.com/nodejs/node/pull/21412 Reviewed-By: Weijia Wang Reviewed-By: Trivikram Kamat Reviewed-By: Benjamin Gruenbaum Reviewed-By: Ruben Bridgewater Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Anatoli Papirovski Reviewed-By: Jon Moss Refs: https://github.com/nodejs/node/issues/8913 --- lib/_http_outgoing.js | 4 ++-- lib/_tls_common.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 913935048680eb..d150a9d93cdf88 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -183,7 +183,7 @@ OutgoingMessage.prototype.setTimeout = function setTimeout(msecs, callback) { } if (!this.socket) { - this.once('socket', function(socket) { + this.once('socket', function socketSetTimeoutOnConnect(socket) { socket.setTimeout(msecs); }); } else { @@ -200,7 +200,7 @@ OutgoingMessage.prototype.destroy = function destroy(error) { if (this.socket) { this.socket.destroy(error); } else { - this.once('socket', function(socket) { + this.once('socket', function socketDestroyOnConnect(socket) { socket.destroy(error); }); } diff --git a/lib/_tls_common.js b/lib/_tls_common.js index d8f6afed0bd8fb..de96fa687dcc02 100644 --- a/lib/_tls_common.js +++ b/lib/_tls_common.js @@ -240,7 +240,7 @@ exports.translatePeerCertificate = function translatePeerCertificate(c) { c.infoAccess = Object.create(null); // XXX: More key validation? - info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function(all, key, val) { + info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, (all, key, val) => { if (key in c.infoAccess) c.infoAccess[key].push(val); else From d38ccaa421b6eedf42198f6cbf07b70b5266dba3 Mon Sep 17 00:00:00 2001 From: Kyle Farnung Date: Fri, 13 Jul 2018 17:54:50 -0700 Subject: [PATCH 040/159] test: fix n-api addon build warnings Fixed an MSVC warning on Windows: * test_general.c - Lossy conversion from int64 to double, explicitly casting to double resolved the warning PR-URL: https://github.com/nodejs/node/pull/21808 Reviewed-By: Michael Dawson Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Colin Ihrig --- test/addons-napi/test_general/test_general.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/addons-napi/test_general/test_general.c b/test/addons-napi/test_general/test_general.c index 8f429f939fb89e..5a363d0b168f89 100644 --- a/test/addons-napi/test_general/test_general.c +++ b/test/addons-napi/test_general/test_general.c @@ -216,7 +216,7 @@ static napi_value testAdjustExternalMemory(napi_env env, napi_callback_info info int64_t adjustedValue; NAPI_CALL(env, napi_adjust_external_memory(env, 1, &adjustedValue)); - NAPI_CALL(env, napi_create_double(env, adjustedValue, &result)); + NAPI_CALL(env, napi_create_double(env, (double)adjustedValue, &result)); return result; } From 0ca831a0ed08d9e4075cfd87b5d4c5d53c7e868e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 27 Jul 2018 00:10:46 +0200 Subject: [PATCH 041/159] src: clean up PackageConfig pseudo-boolean fields PR-URL: https://github.com/nodejs/node/pull/21987 Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater --- src/env.h | 27 ++++++++++----------------- src/module_wrap.cc | 8 ++++++-- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/env.h b/src/env.h index 73b1c8bd72558d..fb025da04aff15 100644 --- a/src/env.h +++ b/src/env.h @@ -65,23 +65,15 @@ class Worker; namespace loader { class ModuleWrap; -struct Exists { - enum Bool { Yes, No }; -}; - -struct IsValid { - enum Bool { Yes, No }; -}; - -struct HasMain { - enum Bool { Yes, No }; -}; - struct PackageConfig { - const Exists::Bool exists; - const IsValid::Bool is_valid; - const HasMain::Bool has_main; - const std::string main; + enum class Exists { Yes, No }; + enum class IsValid { Yes, No }; + enum class HasMain { Yes, No }; + + Exists exists; + IsValid is_valid; + HasMain has_main; + std::string main; }; } // namespace loader @@ -673,7 +665,8 @@ class Environment { std::unordered_multimap module_map; - std::unordered_map package_json_cache; + std::unordered_map + package_json_cache; inline double* heap_statistics_buffer() const; inline void set_heap_statistics_buffer(double* pointer); diff --git a/src/module_wrap.cc b/src/module_wrap.cc index 3aba52dcde7780..d584a5a3f9bc0d 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -488,8 +488,12 @@ Maybe CheckFile(const std::string& path, return Just(fd); } +using Exists = PackageConfig::Exists; +using IsValid = PackageConfig::IsValid; +using HasMain = PackageConfig::HasMain; + const PackageConfig& GetPackageConfig(Environment* env, - const std::string path) { + const std::string& path) { auto existing = env->package_json_cache.find(path); if (existing != env->package_json_cache.end()) { return existing->second; @@ -530,7 +534,7 @@ const PackageConfig& GetPackageConfig(Environment* env, } Local pkg_main; - HasMain::Bool has_main = HasMain::No; + HasMain has_main = HasMain::No; std::string main_std; if (pkg_json->Get(env->context(), env->main_string()).ToLocal(&pkg_main)) { has_main = HasMain::Yes; From 6622ac798d2624eb434b9b51c34a8dc2f9b07149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Fri, 27 Jul 2018 01:14:25 +0300 Subject: [PATCH 042/159] buffer: use FastBuffer when fill is set to 0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A large number of libraries seem to use Buffer.alloc(size, 0) instead of just Buffer.alloc(size). We don't need to follow the "create unsafe buffer and fill it" path (i.e. actually allocate and perform fill) in that situation, that is better handled by Uint8Array constructor. Buffer.alloc(size) and Buffer.alloc(size, 0) are equivalent, so use the same code path. Not performing the zero-fill manually and having the underlying memory allocator do it for us can improve speed and reduce the memory usage for situations where Buffer.alloc(size, 0) is used. PR-URL: https://github.com/nodejs/node/pull/21989 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater Reviewed-By: Trivikram Kamat Reviewed-By: Minwoo Jung Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Gireesh Punathil Reviewed-By: Tobias Nießen --- lib/buffer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/buffer.js b/lib/buffer.js index 061ff7ebe440da..7902fc6fde5dcc 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -276,7 +276,7 @@ function assertSize(size) { */ Buffer.alloc = function alloc(size, fill, encoding) { assertSize(size); - if (fill !== undefined && size > 0) { + if (fill !== undefined && fill !== 0 && size > 0) { return _fill(createUnsafeBuffer(size), fill, encoding); } return new FastBuffer(size); From 34300aaaa4e7c813df0e50ce75c90d06c508288a Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich Date: Tue, 26 Jun 2018 23:49:47 +0200 Subject: [PATCH 043/159] doc: correct crypto.randomFill() and randomFillSync() Correct return type of `crypto.randomFillSync()` which is of same type as passed as `buffer` argument. Correct samples for `randomFill()` and `randomFillSync()` using a `TypeArray` or `DataView` as these types don't support `.toString(encoding)`. PR-URL: https://github.com/nodejs/node/pull/21550 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- doc/api/crypto.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 87f26716af3230..ea718bd1db2e6e 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -2044,7 +2044,7 @@ changes: * `buffer` {Buffer|TypedArray|DataView} Must be supplied. * `offset` {number} **Default:** `0` * `size` {number} **Default:** `buffer.length - offset` -* Returns: {Buffer} +* Returns: {Buffer|TypedArray|DataView} The object passed as `buffer` argument. Synchronous version of [`crypto.randomFill()`][]. @@ -2064,13 +2064,16 @@ Any `TypedArray` or `DataView` instance may be passed as `buffer`. ```js const a = new Uint32Array(10); -console.log(crypto.randomFillSync(a).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(a).buffer, + a.byteOffset, a.byteLength).toString('hex')); const b = new Float64Array(10); -console.log(crypto.randomFillSync(b).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(b).buffer, + b.byteOffset, b.byteLength).toString('hex')); const c = new DataView(new ArrayBuffer(10)); -console.log(crypto.randomFillSync(c).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(c).buffer, + c.byteOffset, c.byteLength).toString('hex')); ``` ### crypto.randomFill(buffer[, offset][, size], callback) @@ -2118,19 +2121,22 @@ Any `TypedArray` or `DataView` instance may be passed as `buffer`. const a = new Uint32Array(10); crypto.randomFill(a, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); const b = new Float64Array(10); crypto.randomFill(b, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); const c = new DataView(new ArrayBuffer(10)); crypto.randomFill(c, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); ``` From 6ca00d7044a865eb2a8274ba1bffb9d0948b474e Mon Sep 17 00:00:00 2001 From: Jon Moss Date: Mon, 30 Jul 2018 17:24:18 -0400 Subject: [PATCH 044/159] src: remove unused env strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit user_string: Usage removed in 4e05952a8a75af6df625415db612d3a9a1322682 onstop_string: Usage removed in 7b46e177ba7f0f8349eb5fd73daf57fe847765ff max_old_space_size_string: Added in 0df031acadcc6490379d72676203a980c8d60592, never used max_semi_space_size_string: Added in 0df031acadcc6490379d72676203a980c8d60592, never used enter_string: Usage removed in eeede3b19c8bdb78605764eec75bea327c9014ff PR-URL: https://github.com/nodejs/node/pull/22137 Reviewed-By: Tobias Nießen Reviewed-By: Gus Caplan Reviewed-By: Anna Henningsen Reviewed-By: Michaël Zasso Reviewed-By: Trivikram Kamat Reviewed-By: Luigi Pinca --- src/env.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/env.h b/src/env.h index fb025da04aff15..1dd479fef7c397 100644 --- a/src/env.h +++ b/src/env.h @@ -150,7 +150,6 @@ struct PackageConfig { V(emit_warning_string, "emitWarning") \ V(exchange_string, "exchange") \ V(encoding_string, "encoding") \ - V(enter_string, "enter") \ V(entries_string, "entries") \ V(env_pairs_string, "envPairs") \ V(errno_string, "errno") \ @@ -190,8 +189,6 @@ struct PackageConfig { V(mac_string, "mac") \ V(main_string, "main") \ V(max_buffer_string, "maxBuffer") \ - V(max_semi_space_size_string, "maxSemiSpaceSize") \ - V(max_old_space_size_string, "maxOldSpaceSize") \ V(message_string, "message") \ V(message_port_string, "messagePort") \ V(message_port_constructor_string, "MessagePort") \ @@ -226,7 +223,6 @@ struct PackageConfig { V(onsettings_string, "onsettings") \ V(onshutdown_string, "onshutdown") \ V(onsignal_string, "onsignal") \ - V(onstop_string, "onstop") \ V(onstreamclose_string, "onstreamclose") \ V(ontrailers_string, "ontrailers") \ V(onunpipe_string, "onunpipe") \ @@ -288,7 +284,6 @@ struct PackageConfig { V(uid_string, "uid") \ V(unknown_string, "") \ V(url_string, "url") \ - V(user_string, "user") \ V(username_string, "username") \ V(valid_from_string, "valid_from") \ V(valid_to_string, "valid_to") \ From 6c7733f58a19a581e37694dbccc25836fc15c4a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Thu, 2 Aug 2018 15:26:39 +0200 Subject: [PATCH 045/159] doc: update recommendations for createCipher PR-URL: https://github.com/nodejs/node/pull/22087 Reviewed-By: Yihong Wang Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat --- doc/api/deprecations.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 42c4717036ccf3..29e97b88adc280 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -959,9 +959,9 @@ Type: Documentation-only Using [`crypto.createCipher()`][] and [`crypto.createDecipher()`][] should be avoided as they use a weak key derivation function (MD5 with no salt) and static initialization vectors. It is recommended to derive a key using -[`crypto.pbkdf2()`][] and to use [`crypto.createCipheriv()`][] and -[`crypto.createDecipheriv()`][] to obtain the [`Cipher`][] and [`Decipher`][] -objects respectively. +[`crypto.pbkdf2()`][] or [`crypto.scrypt()`][] and to use +[`crypto.createCipheriv()`][] and [`crypto.createDecipheriv()`][] to obtain the +[`Cipher`][] and [`Decipher`][] objects respectively. ### DEP0107: tls.convertNPNProtocols() @@ -1024,6 +1024,7 @@ only. Use of `process.binding()` by userland code is unsupported. [`crypto.DEFAULT_ENCODING`]: crypto.html#crypto_crypto_default_encoding [`crypto.fips`]: crypto.html#crypto_crypto_fips [`crypto.pbkdf2()`]: crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback +[`crypto.scrypt()`]: crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback [`decipher.final()`]: crypto.html#crypto_decipher_final_outputencoding [`decipher.setAuthTag()`]: crypto.html#crypto_decipher_setauthtag_buffer [`domain`]: domain.html From 38dd407c8390aeaad4ca100513a200dd4dd2f560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Sun, 24 Jun 2018 01:23:37 +0300 Subject: [PATCH 046/159] doc: remove unused error codes from errors.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This removes two unused error codes: * ERR_STREAM_READ_NOT_IMPLEMENTED, removed in c979488 (PR #18813). * ERR_VALUE_OUT_OF_RANGE, removed in d022cb1 (PR #17648). PR-URL: https://github.com/nodejs/node/pull/21491 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Michael Dawson Reviewed-By: Colin Ihrig Reviewed-By: Joyee Cheung Reviewed-By: Anatoli Papirovski --- doc/api/errors.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/doc/api/errors.md b/doc/api/errors.md index adf9ebdcd49e48..3fefce6e0ff300 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1569,12 +1569,6 @@ or a pipeline ends non gracefully with no explicit error. An attempt was made to call [`stream.push()`][] after a `null`(EOF) had been pushed to the stream. - -### ERR_STREAM_READ_NOT_IMPLEMENTED - -An attempt was made to use a readable stream that did not implement -[`readable._read()`][]. - ### ERR_STREAM_UNSHIFT_AFTER_END_EVENT @@ -1777,11 +1771,6 @@ The V8 `BreakIterator` API was used but the full ICU data set is not installed. While using the Performance Timing API (`perf_hooks`), no valid performance entry types were found. - -### ERR_VALUE_OUT_OF_RANGE - -Superseded by `ERR_OUT_OF_RANGE`. - ### ERR_VM_MODULE_ALREADY_LINKED @@ -1874,7 +1863,6 @@ A module file could not be resolved while attempting a [`require()`][] or [`new URLSearchParams(iterable)`]: url.html#url_constructor_new_urlsearchparams_iterable [`process.send()`]: process.html#process_process_send_message_sendhandle_options_callback [`process.setUncaughtExceptionCaptureCallback()`]: process.html#process_process_setuncaughtexceptioncapturecallback_fn -[`readable._read()`]: stream.html#stream_readable_read_size_1 [`require()`]: modules.html#modules_require [`require('crypto').setEngine()`]: crypto.html#crypto_crypto_setengine_engine_flags [`server.listen()`]: net.html#net_server_listen From 37369eba38fddaeafaee80a0897849d78bb898d5 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Sun, 1 Jul 2018 11:00:24 -0400 Subject: [PATCH 047/159] http: allow url and options to be passed to http*.request and http*.get Fixes: https://github.com/nodejs/node/issues/20795 PR-URL: https://github.com/nodejs/node/pull/21616 Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Ron Korving Reviewed-By: James M Snell Reviewed-By: Matteo Collina Backport-PR-URL: https://github.com/nodejs/node/pull/21880 Reviewed-By: Trivikram Kamat Reviewed-By: Rich Trott Reviewed-By: Matteo Collina --- doc/api/http.md | 19 ++++++++++--- doc/api/https.md | 14 ++++++++-- lib/_http_client.js | 25 +++++++++++------ lib/http.js | 8 +++--- test/parallel/test-http-request-arguments.js | 28 ++++++++++++++++++++ 5 files changed, 77 insertions(+), 17 deletions(-) create mode 100644 test/parallel/test-http-request-arguments.js diff --git a/doc/api/http.md b/doc/api/http.md index e83c507bf2ee0a..9240b40fa8598b 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1794,15 +1794,20 @@ The `requestListener` is a function which is automatically added to the [`'request'`][] event. ## http.get(options[, callback]) +## http.get(url[, options][, callback]) -* `options` {Object | string | URL} Accepts the same `options` as +* `url` {string | URL} +* `options` {Object} Accepts the same `options` as [`http.request()`][], with the `method` always set to `GET`. Properties that are inherited from the prototype are ignored. * `callback` {Function} @@ -1866,15 +1871,20 @@ Global instance of `Agent` which is used as the default for all HTTP client requests. ## http.request(options[, callback]) +## http.request(url[, options][, callback]) -* `options` {Object | string | URL} +* `url` {string | URL} +* `options` {Object} * `protocol` {string} Protocol to use. **Default:** `'http:'`. * `host` {string} A domain name or IP address of the server to issue the request to. **Default:** `'localhost'`. @@ -1916,10 +1926,13 @@ changes: Node.js maintains several connections per server to make HTTP requests. This function allows one to transparently issue requests. -`options` can be an object, a string, or a [`URL`][] object. If `options` is a +`url` can be a string or a [`URL`][] object. If `url` is a string, it is automatically parsed with [`url.parse()`][]. If it is a [`URL`][] object, it will be automatically converted to an ordinary `options` object. +If both `url` and `options` are specified, the objects are merged, with the +`options` properties taking precedence. + The optional `callback` parameter will be added as a one-time listener for the [`'response'`][] event. diff --git a/doc/api/https.md b/doc/api/https.md index 160967d1eb60bf..fdae60c13a7c18 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -112,14 +112,19 @@ https.createServer(options, (req, res) => { ``` ## https.get(options[, callback]) +## https.get(url[, options][, callback]) -- `options` {Object | string | URL} Accepts the same `options` as +- `url` {string | URL} +- `options` {Object} Accepts the same `options` as [`https.request()`][], with the `method` always set to `GET`. - `callback` {Function} @@ -155,9 +160,13 @@ added: v0.5.9 Global instance of [`https.Agent`][] for all HTTPS client requests. ## https.request(options[, callback]) +## https.request(url[, options][, callback]) -- `options` {Object | string | URL} Accepts all `options` from +- `url` {string | URL} +- `options` {Object} Accepts all `options` from [`http.request()`][], with some differences in default values: - `protocol` **Default:** `'https:'` - `port` **Default:** `443` diff --git a/lib/_http_client.js b/lib/_http_client.js index 0612f5822a303f..462245174ed6f6 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -60,22 +60,31 @@ function validateHost(host, name) { return host; } -function ClientRequest(options, cb) { +function ClientRequest(input, options, cb) { OutgoingMessage.call(this); - if (typeof options === 'string') { - options = url.parse(options); - if (!options.hostname) { + if (typeof input === 'string') { + input = url.parse(input); + if (!input.hostname) { throw new ERR_INVALID_DOMAIN_NAME(); } - } else if (options && options[searchParamsSymbol] && - options[searchParamsSymbol][searchParamsSymbol]) { + } else if (input && input[searchParamsSymbol] && + input[searchParamsSymbol][searchParamsSymbol]) { // url.URL instance - options = urlToOptions(options); + input = urlToOptions(input); } else { - options = util._extend({}, options); + cb = options; + options = input; + input = null; } + if (typeof options === 'function') { + cb = options; + options = null; + } + + options = util._extend(input || {}, options || {}); + var agent = options.agent; var defaultAgent = options._defaultAgent || Agent.globalAgent; if (agent === false) { diff --git a/lib/http.js b/lib/http.js index 9ed6b3d1de8721..660de78650f45c 100644 --- a/lib/http.js +++ b/lib/http.js @@ -37,12 +37,12 @@ function createServer(opts, requestListener) { return new Server(opts, requestListener); } -function request(options, cb) { - return new ClientRequest(options, cb); +function request(url, options, cb) { + return new ClientRequest(url, options, cb); } -function get(options, cb) { - var req = request(options, cb); +function get(url, options, cb) { + var req = request(url, options, cb); req.end(); return req; } diff --git a/test/parallel/test-http-request-arguments.js b/test/parallel/test-http-request-arguments.js new file mode 100644 index 00000000000000..5cdd514fd50685 --- /dev/null +++ b/test/parallel/test-http-request-arguments.js @@ -0,0 +1,28 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); + +// Test providing both a url and options, with the options partially +// replacing address and port portions of the URL provided. +{ + const server = http.createServer( + common.mustCall((req, res) => { + assert.strictEqual(req.url, '/testpath'); + res.end(); + server.close(); + }) + ); + server.listen( + 0, + common.mustCall(() => { + http.get( + 'http://example.com/testpath', + { hostname: 'localhost', port: server.address().port }, + common.mustCall((res) => { + res.resume(); + }) + ); + }) + ); +} From 2bf9a4a09e599a6c9e551c67f6f3344598216853 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Sun, 29 Jul 2018 01:00:28 -0400 Subject: [PATCH 048/159] https: allow url and options to be passed to https.request PR-URL: https://github.com/nodejs/node/pull/22003 Reviewed-By: Matteo Collina Reviewed-By: James M Snell Backport-PR-URL: https://github.com/nodejs/node/pull/21880 Reviewed-By: Rich Trott Reviewed-By: Matteo Collina --- lib/https.js | 30 +++++++----- test/parallel/test-https-request-arguments.js | 46 +++++++++++++++++++ 2 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 test/parallel/test-https-request-arguments.js diff --git a/lib/https.js b/lib/https.js index 195a33fb0de4bc..15970c182ea56f 100644 --- a/lib/https.js +++ b/lib/https.js @@ -255,25 +255,33 @@ Agent.prototype._evictSession = function _evictSession(key) { const globalAgent = new Agent(); -function request(options, cb) { - if (typeof options === 'string') { - options = url.parse(options); +function request(...args) { + let options = {}; + + if (typeof args[0] === 'string') { + const urlStr = args.shift(); + options = url.parse(urlStr); if (!options.hostname) { throw new ERR_INVALID_DOMAIN_NAME(); } - } else if (options && options[searchParamsSymbol] && - options[searchParamsSymbol][searchParamsSymbol]) { + } else if (args[0] && args[0][searchParamsSymbol] && + args[0][searchParamsSymbol][searchParamsSymbol]) { // url.URL instance - options = urlToOptions(options); - } else { - options = util._extend({}, options); + options = urlToOptions(args.shift()); + } + + if (args[0] && typeof args[0] !== 'function') { + options = util._extend(options, args.shift()); } + options._defaultAgent = globalAgent; - return new ClientRequest(options, cb); + args.unshift(options); + + return new ClientRequest(...args); } -function get(options, cb) { - const req = request(options, cb); +function get(input, options, cb) { + const req = request(input, options, cb); req.end(); return req; } diff --git a/test/parallel/test-https-request-arguments.js b/test/parallel/test-https-request-arguments.js new file mode 100644 index 00000000000000..44037ddd6de90b --- /dev/null +++ b/test/parallel/test-https-request-arguments.js @@ -0,0 +1,46 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const https = require('https'); +const fixtures = require('../common/fixtures'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const options = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem'), + ca: fixtures.readKey('ca1-cert.pem') +}; + +// Test providing both a url and options, with the options partially +// replacing address and port portions of the URL provided. +{ + const server = https.createServer( + options, + common.mustCall((req, res) => { + assert.strictEqual(req.url, '/testpath'); + res.end(); + server.close(); + }) + ); + + server.listen( + 0, + common.mustCall(() => { + https.get( + 'https://example.com/testpath', + + { + hostname: 'localhost', + port: server.address().port, + rejectUnauthorized: false + }, + + common.mustCall((res) => { + res.resume(); + }) + ); + }) + ); +} From 40af9767a287d2c40832d93dd3ffee49dab24bfb Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Thu, 12 Jul 2018 13:48:11 -0400 Subject: [PATCH 049/159] doc: declare all parameter types PR-URL: https://github.com/nodejs/node/pull/21782 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater Reviewed-By: Luigi Pinca Reviewed-By: Vse Mozhet Byt --- doc/api/console.md | 1 + doc/api/crypto.md | 368 ++++++++++++++++++++++----------------------- doc/api/dgram.md | 1 + doc/api/dns.md | 114 +++++++------- doc/api/events.md | 36 ++--- doc/api/http.md | 4 +- doc/api/http2.md | 6 +- doc/api/https.md | 18 +-- doc/api/net.md | 30 +++- doc/api/process.md | 1 + doc/api/stream.md | 2 + doc/api/tty.md | 10 +- doc/api/util.md | 46 +++++- doc/api/v8.md | 4 + doc/api/zlib.md | 76 +++++++++- 15 files changed, 427 insertions(+), 290 deletions(-) diff --git a/doc/api/console.md b/doc/api/console.md index efc06eacd313b6..42968d2eb9ab0d 100644 --- a/doc/api/console.md +++ b/doc/api/console.md @@ -503,6 +503,7 @@ console.profileEnd('MyLabel'); +* `label` {string} This method does not display anything unless used in the inspector. Stops the current JavaScript CPU profiling session if one has been started and prints diff --git a/doc/api/crypto.md b/doc/api/crypto.md index ea718bd1db2e6e..a82a9831738182 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -55,8 +55,8 @@ data. The most common usage is handling output generated by the HTML5 -- `spkac` {string | Buffer | TypedArray | DataView} -- Returns: {Buffer} The challenge component of the `spkac` data structure, which +* `spkac` {string | Buffer | TypedArray | DataView} +* Returns: {Buffer} The challenge component of the `spkac` data structure, which includes a public key and a challenge. ```js @@ -71,9 +71,9 @@ console.log(challenge.toString('utf8')); -- `spkac` {string | Buffer | TypedArray | DataView} -- `encoding` {string} -- Returns: {Buffer} The public key component of the `spkac` data structure, +* `spkac` {string | Buffer | TypedArray | DataView} +* `encoding` {string} +* Returns: {Buffer} The public key component of the `spkac` data structure, which includes a public key and a challenge. ```js @@ -88,8 +88,8 @@ console.log(publicKey); -- `spkac` {Buffer | TypedArray | DataView} -- Returns: {boolean} `true` if the given `spkac` data structure is valid, +* `spkac` {Buffer | TypedArray | DataView} +* Returns: {boolean} `true` if the given `spkac` data structure is valid, `false` otherwise. ```js @@ -121,8 +121,8 @@ const cert2 = crypto.Certificate(); -- `spkac` {string | Buffer | TypedArray | DataView} -- Returns: {Buffer} The challenge component of the `spkac` data structure, which +* `spkac` {string | Buffer | TypedArray | DataView} +* Returns: {Buffer} The challenge component of the `spkac` data structure, which includes a public key and a challenge. ```js @@ -137,8 +137,8 @@ console.log(challenge.toString('utf8')); -- `spkac` {string | Buffer | TypedArray | DataView} -- Returns: {Buffer} The public key component of the `spkac` data structure, +* `spkac` {string | Buffer | TypedArray | DataView} +* Returns: {Buffer} The public key component of the `spkac` data structure, which includes a public key and a challenge. ```js @@ -153,8 +153,8 @@ console.log(publicKey); -- `spkac` {Buffer | TypedArray | DataView} -- Returns: {boolean} `true` if the given `spkac` data structure is valid, +* `spkac` {Buffer | TypedArray | DataView} +* Returns: {boolean} `true` if the given `spkac` data structure is valid, `false` otherwise. ```js @@ -231,8 +231,8 @@ console.log(encrypted); -- `outputEncoding` {string} -- Returns: {Buffer | string} Any remaining enciphered contents. +* `outputEncoding` {string} +* Returns: {Buffer | string} Any remaining enciphered contents. If `outputEncoding` is one of `'latin1'`, `'base64'` or `'hex'`, a string is returned. If an `outputEncoding` is not provided, a [`Buffer`][] is returned. @@ -244,10 +244,10 @@ once will result in an error being thrown. -- `buffer` {Buffer} -- `options` {Object} [`stream.transform` options][] +* `buffer` {Buffer} +* `options` {Object} [`stream.transform` options][] - `plaintextLength` {number} -- Returns: {Cipher} for method chaining. +* Returns: {Cipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `cipher.setAAD()` method sets the value used for the @@ -263,7 +263,7 @@ The `cipher.setAAD()` method must be called before [`cipher.update()`][]. -- Returns: {Buffer} When using an authenticated encryption mode (only `GCM` and +* Returns: {Buffer} When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `cipher.getAuthTag()` method returns a [`Buffer`][] containing the _authentication tag_ that has been computed from the given data. @@ -275,8 +275,8 @@ been completed using the [`cipher.final()`][] method. -- `autoPadding` {boolean} **Default:** `true` -- Returns: {Cipher} for method chaining. +* `autoPadding` {boolean} **Default:** `true` +* Returns: {Cipher} for method chaining. When using block encryption algorithms, the `Cipher` class will automatically add padding to the input data to the appropriate block size. To disable the @@ -298,10 +298,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} -- `outputEncoding` {string} -- Returns: {Buffer | string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} +* `outputEncoding` {string} +* Returns: {Buffer | string} Updates the cipher with `data`. If the `inputEncoding` argument is given, its value must be one of `'utf8'`, `'ascii'`, or `'latin1'` and the `data` @@ -390,8 +390,8 @@ console.log(decrypted); -- `outputEncoding` {string} -- Returns: {Buffer | string} Any remaining deciphered contents. +* `outputEncoding` {string} +* Returns: {Buffer | string} Any remaining deciphered contents. If `outputEncoding` is one of `'latin1'`, `'ascii'` or `'utf8'`, a string is returned. If an `outputEncoding` is not provided, a [`Buffer`][] is returned. @@ -407,10 +407,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/9398 description: This method now returns a reference to `decipher`. --> -- `buffer` {Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] +* `buffer` {Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] - `plaintextLength` {number} -- Returns: {Decipher} for method chaining. +* Returns: {Decipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `decipher.setAAD()` method sets the value used for the @@ -430,8 +430,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/9398 description: This method now returns a reference to `decipher`. --> -- `buffer` {Buffer | TypedArray | DataView} -- Returns: {Decipher} for method chaining. +* `buffer` {Buffer | TypedArray | DataView} +* Returns: {Decipher} for method chaining. When using an authenticated encryption mode (only `GCM` and `CCM` are currently supported), the `decipher.setAuthTag()` method is used to pass in the @@ -454,8 +454,8 @@ The `decipher.setAuthTag()` method must be called before -- `autoPadding` {boolean} **Default:** `true` -- Returns: {Decipher} for method chaining. +* `autoPadding` {boolean} **Default:** `true` +* Returns: {Decipher} for method chaining. When data has been encrypted without standard block padding, calling `decipher.setAutoPadding(false)` will disable automatic padding to prevent @@ -475,10 +475,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} -- `outputEncoding` {string} -- Returns: {Buffer | string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} +* `outputEncoding` {string} +* Returns: {Buffer | string} Updates the decipher with `data`. If the `inputEncoding` argument is given, its value must be one of `'latin1'`, `'base64'`, or `'hex'` and the `data` @@ -530,10 +530,10 @@ assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); -- `otherPublicKey` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} -- `outputEncoding` {string} -- Returns: {Buffer | string} +* `otherPublicKey` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} +* `outputEncoding` {string} +* Returns: {Buffer | string} Computes the shared secret using `otherPublicKey` as the other party's public key and returns the computed shared secret. The supplied @@ -550,8 +550,8 @@ If `outputEncoding` is given a string is returned; otherwise, a -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Generates private and public Diffie-Hellman key values, and returns the public key in the specified `encoding`. This key should be @@ -563,8 +563,8 @@ or `'base64'`. If `encoding` is provided a string is returned; otherwise a -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Returns the Diffie-Hellman generator in the specified `encoding`, which can be `'latin1'`, `'hex'`, or `'base64'`. If `encoding` is provided a string is @@ -574,8 +574,8 @@ returned; otherwise a [`Buffer`][] is returned. -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Returns the Diffie-Hellman prime in the specified `encoding`, which can be `'latin1'`, `'hex'`, or `'base64'`. If `encoding` is provided a string is @@ -585,8 +585,8 @@ returned; otherwise a [`Buffer`][] is returned. -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Returns the Diffie-Hellman private key in the specified `encoding`, which can be `'latin1'`, `'hex'`, or `'base64'`. If `encoding` is provided a @@ -596,8 +596,8 @@ string is returned; otherwise a [`Buffer`][] is returned. -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Returns the Diffie-Hellman public key in the specified `encoding`, which can be `'latin1'`, `'hex'`, or `'base64'`. If `encoding` is provided a @@ -607,8 +607,8 @@ string is returned; otherwise a [`Buffer`][] is returned. -- `privateKey` {string | Buffer | TypedArray | DataView} -- `encoding` {string} +* `privateKey` {string | Buffer | TypedArray | DataView} +* `encoding` {string} Sets the Diffie-Hellman private key. If the `encoding` argument is provided and is either `'latin1'`, `'hex'`, or `'base64'`, `privateKey` is expected @@ -619,8 +619,8 @@ to be a [`Buffer`][], `TypedArray`, or `DataView`. -- `publicKey` {string | Buffer | TypedArray | DataView} -- `encoding` {string} +* `publicKey` {string | Buffer | TypedArray | DataView} +* `encoding` {string} Sets the Diffie-Hellman public key. If the `encoding` argument is provided and is either `'latin1'`, `'hex'` or `'base64'`, `publicKey` is expected @@ -679,12 +679,12 @@ assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); added: v10.0.0 --> -- `key` {string | Buffer | TypedArray | DataView} -- `curve` {string} -- `inputEncoding` {string} -- `outputEncoding` {string} -- `format` {string} **Default:** `'uncompressed'` -- Returns: {Buffer | string} +* `key` {string | Buffer | TypedArray | DataView} +* `curve` {string} +* `inputEncoding` {string} +* `outputEncoding` {string} +* `format` {string} **Default:** `'uncompressed'` +* Returns: {Buffer | string} Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the format specified by `format`. The `format` argument specifies point encoding @@ -735,10 +735,10 @@ changes: description: Changed error format to better support invalid public key error --> -- `otherPublicKey` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} -- `outputEncoding` {string} -- Returns: {Buffer | string} +* `otherPublicKey` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} +* `outputEncoding` {string} +* Returns: {Buffer | string} Computes the shared secret using `otherPublicKey` as the other party's public key and returns the computed shared secret. The supplied @@ -761,9 +761,9 @@ its recommended for developers to handle this exception accordingly. -- `encoding` {string} -- `format` {string} **Default:** `'uncompressed'` -- Returns: {Buffer | string} +* `encoding` {string} +* `format` {string} **Default:** `'uncompressed'` +* Returns: {Buffer | string} Generates private and public EC Diffie-Hellman key values, and returns the public key in the specified `format` and `encoding`. This key should be @@ -781,8 +781,8 @@ is returned. -- `encoding` {string} -- Returns: {Buffer | string} The EC Diffie-Hellman private key in the specified +* `encoding` {string} +* Returns: {Buffer | string} The EC Diffie-Hellman private key in the specified `encoding`, which can be `'latin1'`, `'hex'`, or `'base64'`. If `encoding` is provided a string is returned; otherwise a [`Buffer`][] is returned. @@ -790,9 +790,9 @@ added: v0.11.14 -- `encoding` {string} -- `format` {string} **Default:** `'uncompressed'` -- Returns: {Buffer | string} The EC Diffie-Hellman public key in the specified +* `encoding` {string} +* `format` {string} **Default:** `'uncompressed'` +* Returns: {Buffer | string} The EC Diffie-Hellman public key in the specified `encoding` and `format`. The `format` argument specifies point encoding and can be `'compressed'` or @@ -807,8 +807,8 @@ returned. -- `privateKey` {string | Buffer | TypedArray | DataView} -- `encoding` {string} +* `privateKey` {string | Buffer | TypedArray | DataView} +* `encoding` {string} Sets the EC Diffie-Hellman private key. The `encoding` can be `'latin1'`, `'hex'` or `'base64'`. If `encoding` is provided, `privateKey` is expected @@ -827,8 +827,8 @@ deprecated: v5.2.0 > Stability: 0 - Deprecated -- `publicKey` {string | Buffer | TypedArray | DataView} -- `encoding` {string} +* `publicKey` {string | Buffer | TypedArray | DataView} +* `encoding` {string} Sets the EC Diffie-Hellman public key. Key encoding can be `'latin1'`, `'hex'` or `'base64'`. If `encoding` is provided `publicKey` is expected to @@ -928,8 +928,8 @@ console.log(hash.digest('hex')); -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Calculates the digest of all of the data passed to be hashed (using the [`hash.update()`][] method). The `encoding` can be `'hex'`, `'latin1'` or @@ -947,8 +947,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} Updates the hash content with the given `data`, the encoding of which is given in `inputEncoding` and can be `'utf8'`, `'ascii'` or @@ -1020,8 +1020,8 @@ console.log(hmac.digest('hex')); -- `encoding` {string} -- Returns: {Buffer | string} +* `encoding` {string} +* Returns: {Buffer | string} Calculates the HMAC digest of all of the data passed using [`hmac.update()`][]. The `encoding` can be `'hex'`, `'latin1'` or `'base64'`. If `encoding` is @@ -1038,8 +1038,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} Updates the `Hmac` content with the given `data`, the encoding of which is given in `inputEncoding` and can be `'utf8'`, `'ascii'` or @@ -1121,11 +1121,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/11705 description: Support for RSASSA-PSS and additional options was added. --> -- `privateKey` {string | Object} +* `privateKey` {string | Object} - `key` {string} - `passphrase` {string} -- `outputFormat` {string} -- Returns: {Buffer | string} +* `outputFormat` {string} +* Returns: {Buffer | string} Calculates the signature on all the data passed through using either [`sign.update()`][] or [`sign.write()`][stream-writable-write]. @@ -1163,8 +1163,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} Updates the `Sign` content with the given `data`, the encoding of which is given in `inputEncoding` and can be `'utf8'`, `'ascii'` or @@ -1227,8 +1227,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/5522 description: The default `inputEncoding` changed from `binary` to `utf8`. --> -- `data` {string | Buffer | TypedArray | DataView} -- `inputEncoding` {string} +* `data` {string | Buffer | TypedArray | DataView} +* `inputEncoding` {string} Updates the `Verify` content with the given `data`, the encoding of which is given in `inputEncoding` and can be `'utf8'`, `'ascii'` or @@ -1246,10 +1246,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/11705 description: Support for RSASSA-PSS and additional options was added. --> -- `object` {string | Object} -- `signature` {string | Buffer | TypedArray | DataView} -- `signatureFormat` {string} -- Returns: {boolean} `true` or `false` depending on the validity of the +* `object` {string | Object} +* `signature` {string | Buffer | TypedArray | DataView} +* `signatureFormat` {string} +* Returns: {boolean} `true` or `false` depending on the validity of the signature for the data and public key. Verifies the provided data using the given `object` and `signature`. @@ -1286,7 +1286,7 @@ thrown. -- Returns: {Object} An object containing commonly used constants for crypto and +* Returns: {Object} An object containing commonly used constants for crypto and security related operations. The specific constants currently defined are described in [Crypto Constants][]. @@ -1332,10 +1332,10 @@ changes: > Stability: 0 - Deprecated: Use [`crypto.createCipheriv()`][] instead. -- `algorithm` {string} -- `password` {string | Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] -- Returns: {Cipher} +* `algorithm` {string} +* `password` {string | Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] +* Returns: {Cipher} Creates and returns a `Cipher` object that uses the given `algorithm` and `password`. @@ -1385,11 +1385,11 @@ changes: description: The `iv` parameter may now be `null` for ciphers which do not need an initialization vector. --> -- `algorithm` {string} -- `key` {string | Buffer | TypedArray | DataView} -- `iv` {string | Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] -- Returns: {Cipher} +* `algorithm` {string} +* `key` {string | Buffer | TypedArray | DataView} +* `iv` {string | Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] +* Returns: {Cipher} Creates and returns a `Cipher` object, with the given `algorithm`, `key` and initialization vector (`iv`). @@ -1445,10 +1445,10 @@ deprecated: v10.0.0 > Stability: 0 - Deprecated: Use [`crypto.createDecipheriv()`][] instead. -- `algorithm` {string} -- `password` {string | Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] -- Returns: {Decipher} +* `algorithm` {string} +* `password` {string | Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] +* Returns: {Decipher} Creates and returns a `Decipher` object that uses the given `algorithm` and `password` (key). @@ -1483,11 +1483,11 @@ changes: description: The `iv` parameter may now be `null` for ciphers which do not need an initialization vector. --> -- `algorithm` {string} -- `key` {string | Buffer | TypedArray | DataView} -- `iv` {string | Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] -- Returns: {Decipher} +* `algorithm` {string} +* `key` {string | Buffer | TypedArray | DataView} +* `iv` {string | Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] +* Returns: {Decipher} Creates and returns a `Decipher` object that uses the given `algorithm`, `key` and initialization vector (`iv`). @@ -1531,11 +1531,11 @@ changes: description: The default for the encoding parameters changed from `binary` to `utf8`. --> -- `prime` {string | Buffer | TypedArray | DataView} -- `primeEncoding` {string} -- `generator` {number | string | Buffer | TypedArray | DataView} **Default:** +* `prime` {string | Buffer | TypedArray | DataView} +* `primeEncoding` {string} +* `generator` {number | string | Buffer | TypedArray | DataView} **Default:** `2` -- `generatorEncoding` {string} +* `generatorEncoding` {string} Creates a `DiffieHellman` key exchange object using the supplied `prime` and an optional specific `generator`. @@ -1556,8 +1556,8 @@ otherwise a number, [`Buffer`][], `TypedArray`, or `DataView` is expected. -- `primeLength` {number} -- `generator` {number | string | Buffer | TypedArray | DataView} **Default:** +* `primeLength` {number} +* `generator` {number | string | Buffer | TypedArray | DataView} **Default:** `2` Creates a `DiffieHellman` key exchange object and generates a prime of @@ -1568,7 +1568,7 @@ If `generator` is not specified, the value `2` is used. -- `curveName` {string} +* `curveName` {string} Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a predefined curve specified by the `curveName` string. Use @@ -1580,9 +1580,9 @@ and description of each available elliptic curve. -- `algorithm` {string} -- `options` {Object} [`stream.transform` options][] -- Returns: {Hash} +* `algorithm` {string} +* `options` {Object} [`stream.transform` options][] +* Returns: {Hash} Creates and returns a `Hash` object that can be used to generate hash digests using the given `algorithm`. Optional `options` argument controls stream @@ -1618,10 +1618,10 @@ input.on('readable', () => { -- `algorithm` {string} -- `key` {string | Buffer | TypedArray | DataView} -- `options` {Object} [`stream.transform` options][] -- Returns: {Hmac} +* `algorithm` {string} +* `key` {string | Buffer | TypedArray | DataView} +* `options` {Object} [`stream.transform` options][] +* Returns: {Hmac} Creates and returns an `Hmac` object that uses the given `algorithm` and `key`. Optional `options` argument controls stream behavior. @@ -1658,9 +1658,9 @@ input.on('readable', () => { -- `algorithm` {string} -- `options` {Object} [`stream.Writable` options][] -- Returns: {Sign} +* `algorithm` {string} +* `options` {Object} [`stream.Writable` options][] +* Returns: {Sign} Creates and returns a `Sign` object that uses the given `algorithm`. Use [`crypto.getHashes()`][] to obtain an array of names of the available @@ -1671,9 +1671,9 @@ signing algorithms. Optional `options` argument controls the -- `algorithm` {string} -- `options` {Object} [`stream.Writable` options][] -- Returns: {Verify} +* `algorithm` {string} +* `options` {Object} [`stream.Writable` options][] +* Returns: {Verify} Creates and returns a `Verify` object that uses the given algorithm. Use [`crypto.getHashes()`][] to obtain an array of names of the available @@ -1684,7 +1684,7 @@ signing algorithms. Optional `options` argument controls the -- Returns: {string[]} An array with the names of the supported cipher +* Returns: {string[]} An array with the names of the supported cipher algorithms. Example: @@ -1698,7 +1698,7 @@ console.log(ciphers); // ['aes-128-cbc', 'aes-128-ccm', ...] -- Returns: {string[]} An array with the names of the supported elliptic curves. +* Returns: {string[]} An array with the names of the supported elliptic curves. Example: @@ -1711,8 +1711,8 @@ console.log(curves); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...] -- `groupName` {string} -- Returns: {Object} +* `groupName` {string} +* Returns: {Object} Creates a predefined `DiffieHellman` key exchange object. The supported groups are: `'modp1'`, `'modp2'`, `'modp5'` (defined in @@ -1746,14 +1746,14 @@ console.log(aliceSecret === bobSecret); -- Returns: {boolean} `true` if and only if a FIPS compliant crypto provider is +* Returns: {boolean} `true` if and only if a FIPS compliant crypto provider is currently in use. ### crypto.getHashes() -- Returns: {string[]} An array of the names of the supported hash algorithms, +* Returns: {string[]} An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Example: @@ -1779,12 +1779,12 @@ changes: description: The default encoding for `password` if it is a string changed from `binary` to `utf8`. --> -- `password` {string|Buffer|TypedArray|DataView} -- `salt` {string|Buffer|TypedArray|DataView} -- `iterations` {number} -- `keylen` {number} -- `digest` {string} -- `callback` {Function} +* `password` {string|Buffer|TypedArray|DataView} +* `salt` {string|Buffer|TypedArray|DataView} +* `iterations` {number} +* `keylen` {number} +* `digest` {string} +* `callback` {Function} - `err` {Error} - `derivedKey` {Buffer} @@ -1849,12 +1849,12 @@ changes: description: The default encoding for `password` if it is a string changed from `binary` to `utf8`. --> -- `password` {string|Buffer|TypedArray|DataView} -- `salt` {string|Buffer|TypedArray|DataView} -- `iterations` {number} -- `keylen` {number} -- `digest` {string} -- Returns: {Buffer} +* `password` {string|Buffer|TypedArray|DataView} +* `salt` {string|Buffer|TypedArray|DataView} +* `iterations` {number} +* `keylen` {number} +* `digest` {string} +* Returns: {Buffer} Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2) implementation. A selected HMAC digest algorithm specified by `digest` is @@ -1897,15 +1897,15 @@ An array of supported digest functions can be retrieved using -- `privateKey` {Object | string} +* `privateKey` {Object | string} - `key` {string} A PEM encoded private key. - `passphrase` {string} An optional passphrase for the private key. - `padding` {crypto.constants} An optional padding value defined in `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`, `crypto.constants.RSA_PKCS1_PADDING`, or `crypto.constants.RSA_PKCS1_OAEP_PADDING`. -- `buffer` {Buffer | TypedArray | DataView} -- Returns: {Buffer} A new `Buffer` with the decrypted content. +* `buffer` {Buffer | TypedArray | DataView} +* Returns: {Buffer} A new `Buffer` with the decrypted content. Decrypts `buffer` with `privateKey`. @@ -1916,14 +1916,14 @@ treated as the key with no passphrase and will use `RSA_PKCS1_OAEP_PADDING`. -- `privateKey` {Object | string} +* `privateKey` {Object | string} - `key` {string} A PEM encoded private key. - `passphrase` {string} An optional passphrase for the private key. - `padding` {crypto.constants} An optional padding value defined in `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or `crypto.constants.RSA_PKCS1_PADDING`. -- `buffer` {Buffer | TypedArray | DataView} -- Returns: {Buffer} A new `Buffer` with the encrypted content. +* `buffer` {Buffer | TypedArray | DataView} +* Returns: {Buffer} A new `Buffer` with the encrypted content. Encrypts `buffer` with `privateKey`. @@ -1934,14 +1934,14 @@ treated as the key with no passphrase and will use `RSA_PKCS1_PADDING`. -- `key` {Object | string} +* `key` {Object | string} - `key` {string} A PEM encoded public or private key. - `passphrase` {string} An optional passphrase for the private key. - `padding` {crypto.constants} An optional padding value defined in `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING` or `crypto.constants.RSA_PKCS1_PADDING`. -- `buffer` {Buffer | TypedArray | DataView} -- Returns: {Buffer} A new `Buffer` with the decrypted content. +* `buffer` {Buffer | TypedArray | DataView} +* Returns: {Buffer} A new `Buffer` with the decrypted content. Decrypts `buffer` with `key`. @@ -1955,15 +1955,15 @@ be passed instead of a public key. -- `key` {Object | string} +* `key` {Object | string} - `key` {string} A PEM encoded public or private key. - `passphrase` {string} An optional passphrase for the private key. - `padding` {crypto.constants} An optional padding value defined in `crypto.constants`, which may be: `crypto.constants.RSA_NO_PADDING`, `crypto.constants.RSA_PKCS1_PADDING`, or `crypto.constants.RSA_PKCS1_OAEP_PADDING`. -- `buffer` {Buffer | TypedArray | DataView} -- Returns: {Buffer} A new `Buffer` with the encrypted content. +* `buffer` {Buffer | TypedArray | DataView} +* Returns: {Buffer} A new `Buffer` with the encrypted content. Encrypts the content of `buffer` with `key` and returns a new [`Buffer`][] with encrypted content. @@ -1983,11 +1983,11 @@ changes: description: Passing `null` as the `callback` argument now throws `ERR_INVALID_CALLBACK`. --> -- `size` {number} -- `callback` {Function} +* `size` {number} +* `callback` {Function} - `err` {Error} - `buf` {Buffer} -- Returns: {Buffer} if the `callback` function is not provided. +* Returns: {Buffer} if the `callback` function is not provided. Generates cryptographically strong pseudo-random data. The `size` argument is a number indicating the number of bytes to generate. @@ -2153,17 +2153,17 @@ request. -- `password` {string|Buffer|TypedArray|DataView} -- `salt` {string|Buffer|TypedArray|DataView} -- `keylen` {number} -- `options` {Object} +* `password` {string|Buffer|TypedArray|DataView} +* `salt` {string|Buffer|TypedArray|DataView} +* `keylen` {number} +* `options` {Object} - `N` {number} CPU/memory cost parameter. Must be a power of two greater than one. **Default:** `16384`. - `r` {number} Block size parameter. **Default:** `8`. - `p` {number} Parallelization parameter. **Default:** `1`. - `maxmem` {number} Memory upper bound. It is an error when (approximately) `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. -- `callback` {Function} +* `callback` {Function} - `err` {Error} - `derivedKey` {Buffer} @@ -2199,17 +2199,17 @@ crypto.scrypt('secret', 'salt', 64, { N: 1024 }, (err, derivedKey) => { -- `password` {string|Buffer|TypedArray|DataView} -- `salt` {string|Buffer|TypedArray|DataView} -- `keylen` {number} -- `options` {Object} +* `password` {string|Buffer|TypedArray|DataView} +* `salt` {string|Buffer|TypedArray|DataView} +* `keylen` {number} +* `options` {Object} - `N` {number} CPU/memory cost parameter. Must be a power of two greater than one. **Default:** `16384`. - `r` {number} Block size parameter. **Default:** `8`. - `p` {number} Parallelization parameter. **Default:** `1`. - `maxmem` {number} Memory upper bound. It is an error when (approximately) `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. -- Returns: {Buffer} +* Returns: {Buffer} Provides a synchronous [scrypt][] implementation. Scrypt is a password-based key derivation function that is designed to be expensive computationally and @@ -2238,8 +2238,8 @@ console.log(key2.toString('hex')); // '3745e48...aa39b34' -- `engine` {string} -- `flags` {crypto.constants} **Default:** `crypto.constants.ENGINE_METHOD_ALL` +* `engine` {string} +* `flags` {crypto.constants} **Default:** `crypto.constants.ENGINE_METHOD_ALL` Load and set the `engine` for some or all OpenSSL functions (selected by flags). @@ -2280,9 +2280,9 @@ Throws an error if FIPS mode is not available. -- `a` {Buffer | TypedArray | DataView} -- `b` {Buffer | TypedArray | DataView} -- Returns: {boolean} +* `a` {Buffer | TypedArray | DataView} +* `b` {Buffer | TypedArray | DataView} +* Returns: {boolean} This function is based on a constant-time algorithm. Returns true if `a` is equal to `b`, without leaking timing information that diff --git a/doc/api/dgram.md b/doc/api/dgram.md index f4db86d5ea8b71..50fd5db5a671e1 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -208,6 +208,7 @@ socket.bind({ +* `callback` {Function} Called when the socket has been closed. Close the underlying socket and stop listening for data on it. If a callback is provided, it is added as a listener for the [`'close'`][] event. diff --git a/doc/api/dns.md b/doc/api/dns.md index 82ee2442a03d59..1d988d8b574e23 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -134,8 +134,8 @@ changes: pr-url: https://github.com/nodejs/node/pull/744 description: The `all` option is supported now. --> -- `hostname` {string} -- `options` {integer | Object} +* `hostname` {string} +* `options` {integer | Object} - `family` {integer} The record family. Must be `4` or `6`. IPv4 and IPv6 addresses are both returned by default. - `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple @@ -148,7 +148,7 @@ changes: **Default:** currently `false` (addresses are reordered) but this is expected to change in the not too distant future. New code should use `{ verbatim: true }`. -- `callback` {Function} +* `callback` {Function} - `err` {Error} - `address` {string} A string representation of an IPv4 or IPv6 address. - `family` {integer} `4` or `6`, denoting the family of `address`. @@ -213,9 +213,9 @@ on some operating systems (e.g FreeBSD 10.1). -- `address` {string} -- `port` {number} -- `callback` {Function} +* `address` {string} +* `port` {number} +* `callback` {Function} - `err` {Error} - `hostname` {string} e.g. `example.com` - `service` {string} e.g. `http` @@ -244,9 +244,9 @@ If this method is invoked as its [`util.promisify()`][]ed version, it returns a -- `hostname` {string} Hostname to resolve. -- `rrtype` {string} Resource record type. **Default:** `'A'`. -- `callback` {Function} +* `hostname` {string} Hostname to resolve. +* `rrtype` {string} Resource record type. **Default:** `'A'`. +* `callback` {Function} - `err` {Error} - `records` {string[] | Object[] | Object} @@ -281,13 +281,13 @@ changes: description: This method now supports passing `options`, specifically `options.ttl`. --> -- `hostname` {string} Hostname to resolve. -- `options` {Object} +* `hostname` {string} Hostname to resolve. +* `options` {Object} - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. When `true`, the callback receives an array of `{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings, with the TTL expressed in seconds. -- `callback` {Function} +* `callback` {Function} - `err` {Error} - `addresses` {string[] | Object[]} @@ -305,13 +305,13 @@ changes: description: This method now supports passing `options`, specifically `options.ttl`. --> -- `hostname` {string} Hostname to resolve. -- `options` {Object} +* `hostname` {string} Hostname to resolve. +* `options` {Object} - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. When `true`, the callback receives an array of `{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of strings, with the TTL expressed in seconds. -- `callback` {Function} +* `callback` {Function} - `err` {Error} - `addresses` {string[] | Object[]} @@ -321,8 +321,8 @@ will contain an array of IPv6 addresses. ## dns.resolveAny(hostname, callback) -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `ret` {Object[]} @@ -368,8 +368,8 @@ Here is an example of the `ret` object passed to the callback: -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {string[]} @@ -382,8 +382,8 @@ will contain an array of canonical name records available for the `hostname` -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {Object[]} @@ -396,8 +396,8 @@ property (e.g. `[{priority: 10, exchange: 'mx.example.com'}, ...]`). -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {Object[]} @@ -428,8 +428,8 @@ function will contain an array of objects with the following properties: -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {string[]} @@ -442,8 +442,8 @@ contain an array of name server records available for `hostname` -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {string[]} @@ -455,8 +455,8 @@ be an array of strings containing the reply records. -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `address` {Object} @@ -489,8 +489,8 @@ be an object with the following properties: -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `addresses` {Object[]} @@ -517,8 +517,8 @@ be an array of objects with the following properties: -- `hostname` {string} -- `callback` {Function} +* `hostname` {string} +* `callback` {Function} - `err` {Error} - `records` {string[][]} @@ -533,8 +533,8 @@ treated separately. -- `ip` {string} -- `callback` {Function} +* `ip` {string} +* `callback` {Function} - `err` {Error} - `hostnames` {string[]} @@ -548,7 +548,7 @@ one of the [DNS error codes][]. -- `servers` {string[]} array of [rfc5952][] formatted addresses +* `servers` {string[]} array of [rfc5952][] formatted addresses Sets the IP address and port of servers to be used when performing DNS resolution. The `servers` argument is an array of [rfc5952][] formatted @@ -654,8 +654,8 @@ section if a custom port is used. -- `hostname` {string} -- `options` {integer | Object} +* `hostname` {string} +* `options` {integer | Object} - `family` {integer} The record family. Must be `4` or `6`. IPv4 and IPv6 addresses are both returned by default. - `hints` {number} One or more [supported `getaddrinfo` flags][]. Multiple @@ -717,8 +717,8 @@ dnsPromises.lookup('example.com', options).then((result) => { -- `address` {string} -- `port` {number} +* `address` {string} +* `port` {number} Resolves the given `address` and `port` into a hostname and service using the operating system's underlying `getnameinfo` implementation. @@ -742,8 +742,8 @@ dnsPromises.lookupService('127.0.0.1', 22).then((result) => { -- `hostname` {string} Hostname to resolve. -- `rrtype` {string} Resource record type. **Default:** `'A'`. +* `hostname` {string} Hostname to resolve. +* `rrtype` {string} Resource record type. **Default:** `'A'`. Uses the DNS protocol to resolve a hostname (e.g. `'nodejs.org'`) into an array of the resource records. When successful, the `Promise` is resolved with an @@ -771,8 +771,8 @@ is one of the [DNS error codes](#dns_error_codes). -- `hostname` {string} Hostname to resolve. -- `options` {Object} +* `hostname` {string} Hostname to resolve. +* `options` {Object} - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. When `true`, the `Promise` is resolved with an array of `{ address: '1.2.3.4', ttl: 60 }` objects rather than an array of strings, @@ -786,8 +786,8 @@ addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`). -- `hostname` {string} Hostname to resolve. -- `options` {Object} +* `hostname` {string} Hostname to resolve. +* `options` {Object} - `ttl` {boolean} Retrieve the Time-To-Live value (TTL) of each record. When `true`, the `Promise` is resolved with an array of `{ address: '0:1:2:3:4:5:6:7', ttl: 60 }` objects rather than an array of @@ -801,7 +801,7 @@ addresses. -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). On success, the `Promise` is resolved with an array containing various types of @@ -845,7 +845,7 @@ Here is an example of the result object: -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success, the `Promise` is resolved with an array of canonical name records available for @@ -855,7 +855,7 @@ the `hostname` (e.g. `['bar.example.com']`). -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve mail exchange records (`MX` records) for the `hostname`. On success, the `Promise` is resolved with an array of objects @@ -866,7 +866,7 @@ containing both a `priority` and `exchange` property (e.g. -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve regular expression based records (`NAPTR` records) for the `hostname`. On success, the `Promise` is resolved with an array @@ -895,7 +895,7 @@ of objects with the following properties: -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve name server records (`NS` records) for the `hostname`. On success, the `Promise` is resolved with an array of name server @@ -906,7 +906,7 @@ records available for `hostname` (e.g. -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve pointer records (`PTR` records) for the `hostname`. On success, the `Promise` is resolved with an array of strings @@ -916,7 +916,7 @@ containing the reply records. -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve a start of authority record (`SOA` record) for the `hostname`. On success, the `Promise` is resolved with an object with the @@ -947,7 +947,7 @@ following properties: -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve service records (`SRV` records) for the `hostname`. On success, the `Promise` is resolved with an array of objects with @@ -972,7 +972,7 @@ the following properties: -- `hostname` {string} +* `hostname` {string} Uses the DNS protocol to resolve text queries (`TXT` records) for the `hostname`. On success, the `Promise` is resolved with a two-dimensional array @@ -985,7 +985,7 @@ treated separately. -- `ip` {string} +* `ip` {string} Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an array of hostnames. @@ -997,7 +997,7 @@ is one of the [DNS error codes](#dns_error_codes). -- `servers` {string[]} array of [rfc5952][] formatted addresses +* `servers` {string[]} array of [rfc5952][] formatted addresses Sets the IP address and port of servers to be used when performing DNS resolution. The `servers` argument is an array of [rfc5952][] formatted diff --git a/doc/api/events.md b/doc/api/events.md index bf57572f594d70..edb4daa2fbc3b4 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -228,6 +228,8 @@ The `'removeListener'` event is emitted *after* the `listener` is removed. added: v0.9.12 deprecated: v4.0.0 --> +* `emitter` {EventEmitter} The emitter to query +* `eventName` {string|symbol} The event name > Stability: 0 - Deprecated: Use [`emitter.listenerCount()`][] instead. @@ -286,8 +288,8 @@ Its `name` property is set to `'MaxListenersExceededWarning'`. -- `eventName` {string|symbol} -- `listener` {Function} +* `eventName` {string|symbol} +* `listener` {Function} Alias for `emitter.on(eventName, listener)`. @@ -295,9 +297,9 @@ Alias for `emitter.on(eventName, listener)`. -- `eventName` {string|symbol} +* `eventName` {string|symbol} - `...args` {any} -- Returns: {boolean} +* Returns: {boolean} Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments @@ -310,7 +312,7 @@ Returns `true` if the event had listeners, `false` otherwise. added: v6.0.0 --> -- Returns: {Array} +* Returns: {Array} Returns an array listing the events for which the emitter has registered listeners. The values in the array will be strings or `Symbol`s. @@ -333,7 +335,7 @@ console.log(myEE.eventNames()); added: v1.0.0 --> -- Returns: {integer} +* Returns: {integer} Returns the current max listener value for the `EventEmitter` which is either set by [`emitter.setMaxListeners(n)`][] or defaults to @@ -358,8 +360,8 @@ changes: description: For listeners attached using `.once()` this returns the original listeners instead of wrapper functions now. --> -- `eventName` {string|symbol} -- Returns: {Function[]} +* `eventName` {string|symbol} +* Returns: {Function[]} Returns a copy of the array of listeners for the event named `eventName`. @@ -501,8 +503,8 @@ Returns a reference to the `EventEmitter`, so that calls can be chained. -- `eventName` {string|symbol} -- Returns: {EventEmitter} +* `eventName` {string|symbol} +* Returns: {EventEmitter} Removes all listeners, or those of the specified `eventName`. @@ -516,9 +518,9 @@ Returns a reference to the `EventEmitter`, so that calls can be chained. -- `eventName` {string|symbol} -- `listener` {Function} -- Returns: {EventEmitter} +* `eventName` {string|symbol} +* `listener` {Function} +* Returns: {EventEmitter} Removes the specified `listener` from the listener array for the event named `eventName`. @@ -585,8 +587,8 @@ Returns a reference to the `EventEmitter`, so that calls can be chained. -- `n` {integer} -- Returns: {EventEmitter} +* `n` {integer} +* Returns: {EventEmitter} By default `EventEmitter`s will print a warning if more than `10` listeners are added for a particular event. This is a useful default that helps finding @@ -601,8 +603,8 @@ Returns a reference to the `EventEmitter`, so that calls can be chained. -- `eventName` {string|symbol} -- Returns: {Function[]} +* `eventName` {string|symbol} +* Returns: {Function[]} Returns a copy of the array of listeners for the event named `eventName`, including any wrappers (such as those created by `.once()`). diff --git a/doc/api/http.md b/doc/api/http.md index 9240b40fa8598b..90a19a7888ab1a 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1777,14 +1777,14 @@ changes: pr-url: https://github.com/nodejs/node/pull/15752 description: The `options` argument is supported now. --> -- `options` {Object} +* `options` {Object} * `IncomingMessage` {http.IncomingMessage} Specifies the `IncomingMessage` class to be used. Useful for extending the original `IncomingMessage`. **Default:** `IncomingMessage`. * `ServerResponse` {http.ServerResponse} Specifies the `ServerResponse` class to be used. Useful for extending the original `ServerResponse`. **Default:** `ServerResponse`. -- `requestListener` {Function} +* `requestListener` {Function} * Returns: {http.Server} diff --git a/doc/api/http2.md b/doc/api/http2.md index f24e13eeb03309..354877dba08781 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -1614,7 +1614,7 @@ a given number of milliseconds set using `http2server.setTimeout()`. -- `callback` {Function} +* `callback` {Function} Stops the server from accepting new connections. See [`net.Server.close()`][]. @@ -1733,7 +1733,7 @@ the connection is terminated. See the [Compatibility API][]. -- `callback` {Function} +* `callback` {Function} Stops the server from accepting new connections. See [`tls.Server.close()`][]. @@ -3145,6 +3145,8 @@ will result in a [`TypeError`][] being thrown. +* `headers` {HTTP/2 Headers Object} An object describing the headers +* `callback` {Function} Call [`http2stream.pushStream()`][] with the given headers, and wraps the given newly created [`Http2Stream`] on `Http2ServerResponse`. diff --git a/doc/api/https.md b/doc/api/https.md index fdae60c13a7c18..c6445f5f9b11cb 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -27,7 +27,7 @@ This class is a subclass of `tls.Server` and emits events same as -- `callback` {Function} +* `callback` {Function} See [`server.close()`][`http.close()`] from the HTTP module for details. @@ -47,8 +47,8 @@ See [`http.Server#maxHeadersCount`][]. -- `msecs` {number} **Default:** `120000` (2 minutes) -- `callback` {Function} +* `msecs` {number} **Default:** `120000` (2 minutes) +* `callback` {Function} See [`http.Server#setTimeout()`][]. @@ -72,9 +72,9 @@ See [`http.Server#keepAliveTimeout`][]. -- `options` {Object} Accepts `options` from [`tls.createServer()`][], +* `options` {Object} Accepts `options` from [`tls.createServer()`][], [`tls.createSecureContext()`][] and [`http.createServer()`][]. -- `requestListener` {Function} A listener to be added to the `'request'` event. +* `requestListener` {Function} A listener to be added to the `'request'` event. Example: @@ -124,9 +124,9 @@ changes: description: The `options` parameter can be a WHATWG `URL` object. --> - `url` {string | URL} -- `options` {Object} Accepts the same `options` as +* `options` {Object | string | URL} Accepts the same `options` as [`https.request()`][], with the `method` always set to `GET`. -- `callback` {Function} +* `callback` {Function} Like [`http.get()`][] but for HTTPS. @@ -175,12 +175,12 @@ changes: description: The `options` parameter can be a WHATWG `URL` object. --> - `url` {string | URL} -- `options` {Object} Accepts all `options` from +* `options` {Object | string | URL} Accepts all `options` from [`http.request()`][], with some differences in default values: - `protocol` **Default:** `'https:'` - `port` **Default:** `443` - `agent` **Default:** `https.globalAgent` -- `callback` {Function} +* `callback` {Function} Makes a request to a secure web server. diff --git a/doc/api/net.md b/doc/api/net.md index 5c56365b1649fa..428ac172142d6a 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -64,10 +64,12 @@ This class is used to create a TCP or [IPC][] server. ### new net.Server([options][, connectionListener]) +* `options` {Object} See + [`net.createServer([options][, connectionListener])`][`net.createServer()`]. +* `connectionListener` {Function} Automatically set as a listener for the + [`'connection'`][] event. * Returns: {net.Server} -See [`net.createServer([options][, connectionListener])`][`net.createServer()`]. - `net.Server` is an [`EventEmitter`][] with the following events: ### Event: 'close' @@ -145,6 +147,7 @@ Don't call `server.address()` until the `'listening'` event has been emitted. added: v0.1.90 --> +* `callback` {Function} Called when the server is closed * Returns: {net.Server} Stops the server from accepting new connections and keeps existing @@ -173,6 +176,7 @@ connections use asynchronous [`server.getConnections()`][] instead. added: v0.9.7 --> +* `callback` {Function} * Returns: {net.Server} Asynchronously get the number of concurrent connections on the server. Works @@ -394,8 +398,6 @@ it to interact with the client. added: v0.3.4 --> -Creates a new socket object. - * `options` {Object} Available options are: * `fd` {number} If specified, wrap around an existing socket with the given file descriptor, otherwise a new socket will be created. @@ -408,6 +410,8 @@ Creates a new socket object. otherwise ignored. **Default:** `false`. * Returns: {net.Socket} +Creates a new socket object. + The newly created socket can be either a TCP socket or a streaming [IPC][] endpoint, depending on what it [`connect()`][`socket.connect()`] to. @@ -668,6 +672,7 @@ callback. added: v0.1.90 --> +* `exception` {Object} * Returns: {net.Socket} Ensures that no more I/O activity happens on this socket. Only necessary in @@ -686,6 +691,8 @@ listeners for that event will receive `exception` as an argument. added: v0.1.90 --> +* `data` {string|Buffer|Uint8Array} +* `encoding` {string} Only used when data is `string`. **Default:** `'utf8'`. * Returns: {net.Socket} The socket itself. Half-closes the socket. i.e., it sends a FIN packet. It is possible the @@ -765,6 +772,7 @@ Resumes reading after a call to [`socket.pause()`][]. added: v0.1.90 --> +* `encoding` {string} * Returns: {net.Socket} The socket itself. Set the encoding for the socket as a [Readable Stream][]. See @@ -804,6 +812,8 @@ algorithm, they buffer data before sending it off. Setting `true` for added: v0.1.90 --> +* `timeout` {number} +* `callback` {Function} * Returns: {net.Socket} The socket itself. Sets the socket to timeout after `timeout` milliseconds of inactivity on @@ -877,6 +887,8 @@ Possible signatures: +* `options` {Object} +* `connectListener` {Function} Alias to [`net.createConnection(options[, connectListener])`][`net.createConnection(options)`]. @@ -884,6 +896,8 @@ Alias to +* `path` {string} +* `connectListener` {Function} Alias to [`net.createConnection(path[, connectListener])`][`net.createConnection(path)`]. @@ -892,6 +906,9 @@ Alias to +* `port` {number} +* `host` {string} +* `connectListener` {Function} Alias to [`net.createConnection(port[, host][, connectListener])`][`net.createConnection(port, host)`]. @@ -1014,6 +1031,8 @@ then returns the `net.Socket` that starts the connection. +* `options` {Object} +* `connectionListener` {Function} Creates a new TCP or [IPC][] server. @@ -1089,6 +1108,7 @@ $ nc -U /tmp/echo.sock added: v0.3.0 --> +* `input` {string} * Returns: {integer} Tests if input is an IP address. Returns `0` for invalid strings, @@ -1100,6 +1120,7 @@ addresses. added: v0.3.0 --> +* `input` {string} * Returns: {boolean} Returns `true` if input is a version 4 IP address, otherwise returns `false`. @@ -1109,6 +1130,7 @@ Returns `true` if input is a version 4 IP address, otherwise returns `false`. added: v0.3.0 --> +* `input` {string} * Returns: {boolean} Returns `true` if input is a version 6 IP address, otherwise returns `false`. diff --git a/doc/api/process.md b/doc/api/process.md index dd0314cf6c3c1d..0c35007103c253 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1695,6 +1695,7 @@ This feature is not available in [`Worker`][] threads. +* `id` {integer | string} The `process.setuid(id)` method sets the user identity of the process. (See setuid(2).) The `id` can be passed as either a numeric ID or a username string. diff --git a/doc/api/stream.md b/doc/api/stream.md index 5ca713a27b6e0f..d87748db9ebe68 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -363,6 +363,7 @@ See also: [`writable.uncork()`][]. added: v8.0.0 --> +* `error` {Error} * Returns: {this} Destroy the stream, and emit the passed `'error'` and a `'close'` event. @@ -1285,6 +1286,7 @@ Examples of `Transform` streams include: +* `error` {Error} Destroy the stream, and emit `'error'`. After this call, the transform stream would release any internal resources. diff --git a/doc/api/tty.md b/doc/api/tty.md index 91bca8284d9378..cc95bfa9ae86ba 100644 --- a/doc/api/tty.md +++ b/doc/api/tty.md @@ -60,6 +60,11 @@ A `boolean` that is always `true` for `tty.ReadStream` instances. added: v0.7.7 --> +* `mode` {boolean} If `true`, configures the `tty.ReadStream` to operate as a + raw device. If `false`, configures the `tty.ReadStream` to operate in its + default mode. The `readStream.isRaw` property will be set to the resulting + mode. + Allows configuration of `tty.ReadStream` so that it operates as a raw device. When in raw mode, input is always available character-by-character, not @@ -67,11 +72,6 @@ including modifiers. Additionally, all special processing of characters by the terminal is disabled, including echoing input characters. Note that `CTRL`+`C` will no longer cause a `SIGINT` when in this mode. -* `mode` {boolean} If `true`, configures the `tty.ReadStream` to operate as a - raw device. If `false`, configures the `tty.ReadStream` to operate in its - default mode. The `readStream.isRaw` property will be set to the resulting - mode. - ## Class: tty.WriteStream +* `constructor` {Function} +* `superConstructor` {Function} + Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and `extends` keywords to get language level inheritance support. Also note that the two styles are [semantically incompatible][]. -* `constructor` {Function} -* `superConstructor` {Function} - Inherit the prototype methods from one [constructor][] into another. The prototype of `constructor` will be set to a new object created from `superConstructor`. @@ -944,6 +944,7 @@ useful for addon developers who prefer to do type checking in JavaScript. added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`ArrayBuffer`][] or @@ -964,6 +965,7 @@ util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an `arguments` object. @@ -982,6 +984,7 @@ function foo() { added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`ArrayBuffer`][] instance. @@ -1000,6 +1003,7 @@ util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an [async function][]. @@ -1019,6 +1023,7 @@ util.types.isAsyncFunction(async function foo() {}); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a `BigInt64Array` instance. The @@ -1038,6 +1043,7 @@ util.types.isBigInt64Array(new BigUint64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a `BigUint64Array` instance. The @@ -1057,6 +1063,7 @@ util.types.isBigUint64Array(new BigUint64Array()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a boolean object, e.g. created @@ -1078,6 +1085,7 @@ util.types.isBooleanObject(Boolean(true)); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`DataView`][] instance. @@ -1097,6 +1105,7 @@ See also [`ArrayBuffer.isView()`][]. added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Date`][] instance. @@ -1112,6 +1121,7 @@ util.types.isDate(new Date()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a native `External` value. @@ -1121,6 +1131,7 @@ Returns `true` if the value is a native `External` value. added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Float32Array`][] instance. @@ -1138,6 +1149,7 @@ util.types.isFloat32Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Float64Array`][] instance. @@ -1155,6 +1167,7 @@ util.types.isFloat64Array(new Float64Array()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a generator function. @@ -1174,6 +1187,7 @@ util.types.isGeneratorFunction(function* foo() {}); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a generator object as returned from a @@ -1195,6 +1209,7 @@ util.types.isGeneratorObject(generator); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Int8Array`][] instance. @@ -1212,6 +1227,7 @@ util.types.isInt8Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Int16Array`][] instance. @@ -1229,6 +1245,7 @@ util.types.isInt16Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Int32Array`][] instance. @@ -1246,6 +1263,7 @@ util.types.isInt32Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Map`][] instance. @@ -1261,6 +1279,7 @@ util.types.isMap(new Map()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an iterator returned for a built-in @@ -1281,6 +1300,7 @@ util.types.isMapIterator(map[Symbol.iterator]()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an instance of a [Module Namespace Object][]. @@ -1299,6 +1319,7 @@ util.types.isModuleNamespaceObject(ns); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an instance of a built-in [`Error`][] type. @@ -1316,6 +1337,7 @@ util.types.isNativeError(new RangeError()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a number object, e.g. created @@ -1333,6 +1355,7 @@ util.types.isNumberObject(new Number(0)); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Promise`][]. @@ -1348,6 +1371,7 @@ util.types.isPromise(Promise.resolve(42)); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a [`Proxy`][] instance. @@ -1366,6 +1390,7 @@ util.types.isProxy(proxy); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a regular expression object. @@ -1382,6 +1407,7 @@ util.types.isRegExp(new RegExp('abc')); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Set`][] instance. @@ -1397,6 +1423,7 @@ util.types.isSet(new Set()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is an iterator returned for a built-in @@ -1417,6 +1444,7 @@ util.types.isSetIterator(set[Symbol.iterator]()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`SharedArrayBuffer`][] instance. @@ -1435,6 +1463,7 @@ util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a string object, e.g. created @@ -1452,6 +1481,7 @@ util.types.isStringObject(new String('foo')); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a symbol object, created @@ -1470,6 +1500,7 @@ util.types.isSymbolObject(Object(symbol)); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`TypedArray`][] instance. @@ -1489,6 +1520,7 @@ See also [`ArrayBuffer.isView()`][]. added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Uint8Array`][] instance. @@ -1506,6 +1538,7 @@ util.types.isUint8Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Uint8ClampedArray`][] instance. @@ -1523,6 +1556,7 @@ util.types.isUint8ClampedArray(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Uint16Array`][] instance. @@ -1540,6 +1574,7 @@ util.types.isUint16Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`Uint32Array`][] instance. @@ -1557,6 +1592,7 @@ util.types.isUint32Array(new Float64Array()); // Returns false added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`WeakMap`][] instance. @@ -1572,6 +1608,7 @@ util.types.isWeakMap(new WeakMap()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`WeakSet`][] instance. @@ -1587,6 +1624,7 @@ util.types.isWeakSet(new WeakSet()); // Returns true added: v10.0.0 --> +* `value` {any} * Returns: {boolean} Returns `true` if the value is a built-in [`WebAssembly.Module`][] instance. @@ -1608,6 +1646,8 @@ applications and modules should be updated to find alternative approaches. added: v0.7.5 deprecated: v6.0.0 --> +* `target` {Object} +* `source` {Object} > Stability: 0 - Deprecated: Use [`Object.assign()`] instead. diff --git a/doc/api/v8.md b/doc/api/v8.md index c9afa93f89d4ec..6536451e3a3157 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -175,6 +175,7 @@ changes to the API or wire format) may occur until this warning is removed. added: v8.0.0 --> +* `value` {any} * Returns: {Buffer} Uses a [`DefaultSerializer`][] to serialize `value` into a buffer. @@ -203,6 +204,8 @@ Writes out a header, which includes the serialization format version. #### serializer.writeValue(value) +* `value` {any} + Serializes a JavaScript value and adds the serialized representation to the internal buffer. @@ -362,6 +365,7 @@ For use inside of a custom [`deserializer._readHostObject()`][]. #### deserializer.readRawBytes(length) +* `length` {integer} * Returns: {Buffer} Read raw bytes from the deserializer’s internal buffer. The `length` parameter diff --git a/doc/api/zlib.md b/doc/api/zlib.md index e6c5504bff5dbb..89ce111e2243df 100644 --- a/doc/api/zlib.md +++ b/doc/api/zlib.md @@ -428,6 +428,8 @@ as appropriate for the derived class). added: v0.9.4 --> +* `callback` {Function} + Close the underlying handle. ### zlib.flush([kind], callback) @@ -436,6 +438,7 @@ added: v0.5.8 --> * `kind` **Default:** `zlib.constants.Z_FULL_FLUSH` +* `callback` {Function} Flush pending data. Don't call this frivolously, premature flushes negatively impact the effectiveness of the compression algorithm. @@ -450,6 +453,10 @@ writes and will only produce output when data is being read from the stream. added: v0.11.4 --> +* `level` {integer} +* `strategy` {integer} +* `callback` {Function} + Dynamically update the compression level and compression strategy. Only applicable to deflate algorithm. @@ -473,6 +480,8 @@ Provides an object enumerating Zlib-related constants. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`Deflate`][] object with the given [`options`][]. ## zlib.createDeflateRaw([options]) @@ -480,6 +489,8 @@ Creates and returns a new [`Deflate`][] object with the given [`options`][]. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`DeflateRaw`][] object with the given [`options`][]. An upgrade of zlib from 1.2.8 to 1.2.11 changed behavior when `windowBits` @@ -494,6 +505,8 @@ that effectively uses an 8-bit window only. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`Gunzip`][] object with the given [`options`][]. ## zlib.createGzip([options]) @@ -501,6 +514,8 @@ Creates and returns a new [`Gunzip`][] object with the given [`options`][]. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`Gzip`][] object with the given [`options`][]. ## zlib.createInflate([options]) @@ -508,6 +523,8 @@ Creates and returns a new [`Gzip`][] object with the given [`options`][]. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`Inflate`][] object with the given [`options`][]. ## zlib.createInflateRaw([options]) @@ -515,6 +532,8 @@ Creates and returns a new [`Inflate`][] object with the given [`options`][]. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`InflateRaw`][] object with the given [`options`][]. ## zlib.createUnzip([options]) @@ -522,6 +541,8 @@ Creates and returns a new [`InflateRaw`][] object with the given [`options`][]. added: v0.5.8 --> +* `options` {Object} + Creates and returns a new [`Unzip`][] object with the given [`options`][]. ## Convenience Methods @@ -550,6 +571,10 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.deflateSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Compress a chunk of data with [`Deflate`][]. @@ -580,6 +606,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.deflateRawSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Compress a chunk of data with [`DeflateRaw`][]. @@ -613,6 +645,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.gunzipSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Decompress a chunk of data with [`Gunzip`][]. @@ -646,6 +684,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.gzipSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Compress a chunk of data with [`Gzip`][]. @@ -679,6 +723,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.inflateSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Decompress a chunk of data with [`Inflate`][]. @@ -712,6 +762,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.inflateRawSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Decompress a chunk of data with [`InflateRaw`][]. @@ -745,6 +801,11 @@ changes: pr-url: https://github.com/nodejs/node/pull/12001 description: The `buffer` parameter can be an `Uint8Array` now. --> + +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} +* `callback` {Function} + ### zlib.unzipSync(buffer[, options]) -- `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} +* `options` {Object} Decompress a chunk of data with [`Unzip`][]. From c85d00b786b16878c02f88582e78fd4fbbb4708f Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Fri, 6 Jul 2018 21:46:38 -0400 Subject: [PATCH 050/159] tools: produce JSON documentation using unified/remark/rehype PR-URL: https://github.com/nodejs/node/pull/21697 Reviewed-By: Vse Mozhet Byt Reviewed-By: Rich Trott Reviewed-By: Trivikram Kamat --- .gitignore | 3 + Makefile | 16 +- doc/api/https.md | 4 +- test/doctool/test-doctool-html.js | 30 +- test/doctool/test-doctool-json.js | 44 +- tools/doc/generate.js | 59 +- tools/doc/html.js | 25 +- tools/doc/json.js | 740 +- tools/doc/node_modules/.bin/esparse | 1 - tools/doc/node_modules/.bin/esvalidate | 1 - tools/doc/node_modules/.bin/js-yaml | 1 - tools/doc/node_modules/argparse/LICENSE | 21 - tools/doc/node_modules/argparse/README.md | 255 - tools/doc/node_modules/argparse/index.js | 3 - tools/doc/node_modules/argparse/lib/action.js | 146 - .../argparse/lib/action/append.js | 53 - .../argparse/lib/action/append/constant.js | 47 - .../node_modules/argparse/lib/action/count.js | 40 - .../node_modules/argparse/lib/action/help.js | 47 - .../node_modules/argparse/lib/action/store.js | 50 - .../argparse/lib/action/store/constant.js | 43 - .../argparse/lib/action/store/false.js | 27 - .../argparse/lib/action/store/true.js | 26 - .../argparse/lib/action/subparsers.js | 149 - .../argparse/lib/action/version.js | 47 - .../argparse/lib/action_container.js | 482 -- .../doc/node_modules/argparse/lib/argparse.js | 14 - .../argparse/lib/argument/error.js | 50 - .../argparse/lib/argument/exclusive.js | 53 - .../argparse/lib/argument/group.js | 74 - .../argparse/lib/argument_parser.js | 1161 --- tools/doc/node_modules/argparse/lib/const.js | 21 - .../argparse/lib/help/added_formatters.js | 87 - .../argparse/lib/help/formatter.js | 795 -- .../node_modules/argparse/lib/namespace.js | 76 - tools/doc/node_modules/argparse/lib/utils.js | 57 - tools/doc/node_modules/argparse/package.json | 74 - tools/doc/node_modules/esprima/LICENSE.BSD | 21 - tools/doc/node_modules/esprima/README.md | 46 - tools/doc/node_modules/esprima/bin/esparse.js | 139 - .../node_modules/esprima/bin/esvalidate.js | 236 - .../doc/node_modules/esprima/dist/esprima.js | 6700 ----------------- tools/doc/node_modules/esprima/package.json | 141 - tools/doc/node_modules/js-yaml/LICENSE | 21 - tools/doc/node_modules/js-yaml/README.md | 313 - tools/doc/node_modules/js-yaml/bin/js-yaml.js | 132 - .../doc/node_modules/js-yaml/dist/js-yaml.js | 3905 ---------- .../node_modules/js-yaml/dist/js-yaml.min.js | 1 - tools/doc/node_modules/js-yaml/index.js | 7 - tools/doc/node_modules/js-yaml/lib/js-yaml.js | 39 - .../js-yaml/lib/js-yaml/common.js | 59 - .../js-yaml/lib/js-yaml/dumper.js | 819 -- .../js-yaml/lib/js-yaml/exception.js | 43 - .../js-yaml/lib/js-yaml/loader.js | 1598 ---- .../node_modules/js-yaml/lib/js-yaml/mark.js | 76 - .../js-yaml/lib/js-yaml/schema.js | 108 - .../js-yaml/lib/js-yaml/schema/core.js | 18 - .../lib/js-yaml/schema/default_full.js | 25 - .../lib/js-yaml/schema/default_safe.js | 28 - .../js-yaml/lib/js-yaml/schema/failsafe.js | 17 - .../js-yaml/lib/js-yaml/schema/json.js | 25 - .../node_modules/js-yaml/lib/js-yaml/type.js | 61 - .../js-yaml/lib/js-yaml/type/binary.js | 138 - .../js-yaml/lib/js-yaml/type/bool.js | 35 - .../js-yaml/lib/js-yaml/type/float.js | 116 - .../js-yaml/lib/js-yaml/type/int.js | 173 - .../js-yaml/lib/js-yaml/type/js/function.js | 86 - .../js-yaml/lib/js-yaml/type/js/regexp.js | 60 - .../js-yaml/lib/js-yaml/type/js/undefined.js | 28 - .../js-yaml/lib/js-yaml/type/map.js | 8 - .../js-yaml/lib/js-yaml/type/merge.js | 12 - .../js-yaml/lib/js-yaml/type/null.js | 34 - .../js-yaml/lib/js-yaml/type/omap.js | 44 - .../js-yaml/lib/js-yaml/type/pairs.js | 53 - .../js-yaml/lib/js-yaml/type/seq.js | 8 - .../js-yaml/lib/js-yaml/type/set.js | 29 - .../js-yaml/lib/js-yaml/type/str.js | 8 - .../js-yaml/lib/js-yaml/type/timestamp.js | 88 - tools/doc/node_modules/js-yaml/package.json | 96 - tools/doc/node_modules/marked/LICENSE | 19 - tools/doc/node_modules/marked/Makefile | 12 - tools/doc/node_modules/marked/README.md | 406 - tools/doc/node_modules/marked/bin/marked | 187 - tools/doc/node_modules/marked/index.js | 1 - tools/doc/node_modules/marked/lib/marked.js | 1286 ---- tools/doc/node_modules/marked/man/marked.1 | 91 - tools/doc/node_modules/marked/marked.min.js | 6 - tools/doc/node_modules/marked/package.json | 71 - tools/doc/node_modules/sprintf-js/LICENSE | 24 - tools/doc/node_modules/sprintf-js/README.md | 88 - .../sprintf-js/dist/angular-sprintf.min.js | 4 - .../dist/angular-sprintf.min.js.map | 1 - .../sprintf-js/dist/angular-sprintf.min.map | 1 - .../sprintf-js/dist/sprintf.min.js | 4 - .../sprintf-js/dist/sprintf.min.js.map | 1 - .../sprintf-js/dist/sprintf.min.map | 1 - .../doc/node_modules/sprintf-js/package.json | 58 - .../sprintf-js/src/angular-sprintf.js | 18 - .../node_modules/sprintf-js/src/sprintf.js | 208 - tools/doc/package-lock.json | 711 +- tools/doc/package.json | 4 +- vcbuild.bat | 3 +- 102 files changed, 494 insertions(+), 23127 deletions(-) delete mode 120000 tools/doc/node_modules/.bin/esparse delete mode 120000 tools/doc/node_modules/.bin/esvalidate delete mode 120000 tools/doc/node_modules/.bin/js-yaml delete mode 100644 tools/doc/node_modules/argparse/LICENSE delete mode 100644 tools/doc/node_modules/argparse/README.md delete mode 100644 tools/doc/node_modules/argparse/index.js delete mode 100644 tools/doc/node_modules/argparse/lib/action.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/append.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/append/constant.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/count.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/help.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/store.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/store/constant.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/store/false.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/store/true.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/subparsers.js delete mode 100644 tools/doc/node_modules/argparse/lib/action/version.js delete mode 100644 tools/doc/node_modules/argparse/lib/action_container.js delete mode 100644 tools/doc/node_modules/argparse/lib/argparse.js delete mode 100644 tools/doc/node_modules/argparse/lib/argument/error.js delete mode 100644 tools/doc/node_modules/argparse/lib/argument/exclusive.js delete mode 100644 tools/doc/node_modules/argparse/lib/argument/group.js delete mode 100644 tools/doc/node_modules/argparse/lib/argument_parser.js delete mode 100644 tools/doc/node_modules/argparse/lib/const.js delete mode 100644 tools/doc/node_modules/argparse/lib/help/added_formatters.js delete mode 100644 tools/doc/node_modules/argparse/lib/help/formatter.js delete mode 100644 tools/doc/node_modules/argparse/lib/namespace.js delete mode 100644 tools/doc/node_modules/argparse/lib/utils.js delete mode 100644 tools/doc/node_modules/argparse/package.json delete mode 100644 tools/doc/node_modules/esprima/LICENSE.BSD delete mode 100644 tools/doc/node_modules/esprima/README.md delete mode 100755 tools/doc/node_modules/esprima/bin/esparse.js delete mode 100755 tools/doc/node_modules/esprima/bin/esvalidate.js delete mode 100644 tools/doc/node_modules/esprima/dist/esprima.js delete mode 100644 tools/doc/node_modules/esprima/package.json delete mode 100644 tools/doc/node_modules/js-yaml/LICENSE delete mode 100644 tools/doc/node_modules/js-yaml/README.md delete mode 100755 tools/doc/node_modules/js-yaml/bin/js-yaml.js delete mode 100644 tools/doc/node_modules/js-yaml/dist/js-yaml.js delete mode 100644 tools/doc/node_modules/js-yaml/dist/js-yaml.min.js delete mode 100644 tools/doc/node_modules/js-yaml/index.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/common.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/dumper.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/exception.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/loader.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/mark.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema/core.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_full.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/schema/json.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/binary.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/bool.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/float.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/int.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/function.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/map.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/merge.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/null.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/omap.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/pairs.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/seq.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/set.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/str.js delete mode 100644 tools/doc/node_modules/js-yaml/lib/js-yaml/type/timestamp.js delete mode 100644 tools/doc/node_modules/js-yaml/package.json delete mode 100644 tools/doc/node_modules/marked/LICENSE delete mode 100644 tools/doc/node_modules/marked/Makefile delete mode 100644 tools/doc/node_modules/marked/README.md delete mode 100755 tools/doc/node_modules/marked/bin/marked delete mode 100644 tools/doc/node_modules/marked/index.js delete mode 100644 tools/doc/node_modules/marked/lib/marked.js delete mode 100644 tools/doc/node_modules/marked/man/marked.1 delete mode 100644 tools/doc/node_modules/marked/marked.min.js delete mode 100644 tools/doc/node_modules/marked/package.json delete mode 100644 tools/doc/node_modules/sprintf-js/LICENSE delete mode 100644 tools/doc/node_modules/sprintf-js/README.md delete mode 100644 tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js delete mode 100644 tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js.map delete mode 100644 tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.map delete mode 100644 tools/doc/node_modules/sprintf-js/dist/sprintf.min.js delete mode 100644 tools/doc/node_modules/sprintf-js/dist/sprintf.min.js.map delete mode 100644 tools/doc/node_modules/sprintf-js/dist/sprintf.min.map delete mode 100644 tools/doc/node_modules/sprintf-js/package.json delete mode 100644 tools/doc/node_modules/sprintf-js/src/angular-sprintf.js delete mode 100644 tools/doc/node_modules/sprintf-js/src/sprintf.js diff --git a/.gitignore b/.gitignore index 052511cf115191..255a4c5a4bc62b 100644 --- a/.gitignore +++ b/.gitignore @@ -107,6 +107,9 @@ deps/npm/node_modules/.bin/ /*.pkg /SHASUMS*.txt* +# api docs artifacts +tools/doc/node_modules + # test artifacts tools/remark-cli/node_modules tools/remark-preset-lint-node/node_modules diff --git a/Makefile b/Makefile index db15d6867328f6..fc4a094656a452 100644 --- a/Makefile +++ b/Makefile @@ -320,7 +320,7 @@ ifeq ($(OSTYPE),aix) DOCBUILDSTAMP_PREREQS := $(DOCBUILDSTAMP_PREREQS) out/$(BUILDTYPE)/node.exp endif -test/addons/.docbuildstamp: $(DOCBUILDSTAMP_PREREQS) +test/addons/.docbuildstamp: $(DOCBUILDSTAMP_PREREQS) tools/doc/node_modules $(RM) -r test/addons/??_*/ [ -x $(NODE) ] && $(NODE) $< || node $< touch $@ @@ -633,15 +633,15 @@ available-node = \ run-npm-install = $(PWD)/$(NPM) install --production --no-package-lock run-npm-ci = $(PWD)/$(NPM) ci -gen-json = tools/doc/generate.js --format=json $< > $@ -gen-html = tools/doc/generate.js --node-version=$(FULLVERSION) --format=html \ - --analytics=$(DOCS_ANALYTICS) $< > $@ +tools/doc/node_modules/js-yaml/package.json: + cd tools/doc && $(call available-node,$(run-npm-install)) -out/doc/api/%.json: doc/api/%.md tools/doc/generate.js tools/doc/json.js - $(call available-node, $(gen-json)) +gen-api = tools/doc/generate.js --node-version=$(FULLVERSION) \ + --analytics=$(DOCS_ANALYTICS) $< --output-directory=out/doc/api -out/doc/api/%.html: doc/api/%.md tools/doc/generate.js tools/doc/html.js - $(call available-node, $(gen-html)) +out/doc/api/%.json out/doc/api/%.html: doc/api/%.md tools/doc/generate.js \ + tools/doc/html.js tools/doc/json.js + $(call available-node, $(gen-api)) out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.js $(call available-node, tools/doc/allhtml.js) diff --git a/doc/api/https.md b/doc/api/https.md index c6445f5f9b11cb..dc1220c699afdd 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -123,7 +123,7 @@ changes: pr-url: https://github.com/nodejs/node/pull/10638 description: The `options` parameter can be a WHATWG `URL` object. --> -- `url` {string | URL} +* `url` {string | URL} * `options` {Object | string | URL} Accepts the same `options` as [`https.request()`][], with the `method` always set to `GET`. * `callback` {Function} @@ -174,7 +174,7 @@ changes: pr-url: https://github.com/nodejs/node/pull/10638 description: The `options` parameter can be a WHATWG `URL` object. --> -- `url` {string | URL} +* `url` {string | URL} * `options` {Object | string | URL} Accepts all `options` from [`http.request()`][], with some differences in default values: - `protocol` **Default:** `'https:'` diff --git a/test/doctool/test-doctool-html.js b/test/doctool/test-doctool-html.js index c895df087c4bfa..8c05ea6a0b3229 100644 --- a/test/doctool/test-doctool-html.js +++ b/test/doctool/test-doctool-html.js @@ -11,7 +11,34 @@ try { const assert = require('assert'); const { readFile } = require('fs'); const fixtures = require('../common/fixtures'); -const toHTML = require('../../tools/doc/html.js'); +const html = require('../../tools/doc/html.js'); +const path = require('path'); + +module.paths.unshift( + path.join(__dirname, '..', '..', 'tools', 'doc', 'node_modules')); +const unified = require('unified'); +const markdown = require('remark-parse'); +const remark2rehype = require('remark-rehype'); +const raw = require('rehype-raw'); +const htmlStringify = require('rehype-stringify'); + +function toHTML({ input, filename, nodeVersion, analytics }, cb) { + const content = unified() + .use(markdown) + .use(html.firstHeader) + .use(html.preprocessText) + .use(html.preprocessElements, { filename }) + .use(html.buildToc, { filename }) + .use(remark2rehype, { allowDangerousHTML: true }) + .use(raw) + .use(htmlStringify) + .processSync(input); + + html.toHTML( + { input, content, filename, nodeVersion, analytics }, + cb + ); +} // Test data is a list of objects with two properties. // The file property is the file path. @@ -80,7 +107,6 @@ testData.forEach(({ file, html, analyticsId }) => { readFile(file, 'utf8', common.mustCall((err, input) => { assert.ifError(err); - toHTML( { input: input, diff --git a/test/doctool/test-doctool-json.js b/test/doctool/test-doctool-json.js index e295014071a3c5..cdd3664cf1c33a 100644 --- a/test/doctool/test-doctool-json.js +++ b/test/doctool/test-doctool-json.js @@ -10,9 +10,27 @@ try { const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const fixtures = require('../common/fixtures'); const json = require('../../tools/doc/json.js'); +module.paths.unshift( + path.join(__dirname, '..', '..', 'tools', 'doc', 'node_modules')); +const unified = require('unified'); +const markdown = require('remark-parse'); + +function toJSON(input, filename, cb) { + function nullCompiler() { + this.Compiler = (tree) => tree; + } + + unified() + .use(markdown) + .use(json.jsonAPI, { filename }) + .use(nullCompiler) + .process(input, cb); +} + // Outputs valid json with the expected fields when given simple markdown // Test data is a list of objects with two properties. // The file property is the file path. @@ -21,6 +39,7 @@ const testData = [ { file: fixtures.path('sample_document.md'), json: { + type: 'module', source: 'foo', modules: [{ textRaw: 'Sample Markdown', @@ -28,8 +47,8 @@ const testData = [ modules: [{ textRaw: 'Seussian Rhymes', name: 'seussian_rhymes', - desc: '
    \n
  1. fish
  2. \n
  3. fish

    \n
  4. \n
  5. ' + - '

    Red fish

    \n
  6. \n
  7. Blue fish
  8. \n
\n', + desc: '
    \n
  1. fish
  2. \n
  3. fish
  4. \n
\n' + + '
    \n
  • Red fish
  • \n
  • Blue fish
  • \n
', type: 'module', displayName: 'Seussian Rhymes' }], @@ -41,6 +60,7 @@ const testData = [ { file: fixtures.path('order_of_end_tags_5873.md'), json: { + type: 'module', source: 'foo', modules: [{ textRaw: 'Title', @@ -55,15 +75,10 @@ const testData = [ signatures: [ { params: [{ - textRaw: '`array` {Array} ', + textRaw: '`array` {Array}', name: 'array', type: 'Array' }] - }, - { - params: [{ - name: 'array' - }] } ] }], @@ -78,6 +93,7 @@ const testData = [ { file: fixtures.path('doc_with_yaml.md'), json: { + type: 'module', source: 'foo', modules: [ { @@ -92,7 +108,7 @@ const testData = [ changes: [] }, desc: '

Describe Foobar in more detail ' + - 'here.

\n', + 'here.

', type: 'module', displayName: 'Foobar' }, @@ -110,7 +126,7 @@ const testData = [ ] }, desc: '

Describe Foobar II in more detail ' + - 'here. fg(1)

\n', + 'here. fg(1)

', type: 'module', displayName: 'Foobar II' }, @@ -123,7 +139,7 @@ const testData = [ changes: [] }, desc: '

Describe Deprecated thingy in more ' + - 'detail here. fg(1p)

\n', + 'detail here. fg(1p)

', type: 'module', displayName: 'Deprecated thingy' }, @@ -131,7 +147,7 @@ const testData = [ textRaw: 'Something', name: 'something', desc: '\n

' + - 'Describe Something in more detail here.

\n', + 'Describe Something in more detail here.

', type: 'module', displayName: 'Something' } @@ -147,9 +163,9 @@ const testData = [ testData.forEach((item) => { fs.readFile(item.file, 'utf8', common.mustCall((err, input) => { assert.ifError(err); - json(input, 'foo', common.mustCall((err, output) => { + toJSON(input, 'foo', common.mustCall((err, output) => { assert.ifError(err); - assert.deepStrictEqual(output, item.json); + assert.deepStrictEqual(output.json, item.json); })); })); }); diff --git a/tools/doc/generate.js b/tools/doc/generate.js index 8ed97610cf3bc2..99dce4122a0733 100644 --- a/tools/doc/generate.js +++ b/tools/doc/generate.js @@ -22,25 +22,34 @@ 'use strict'; const fs = require('fs'); +const path = require('path'); +const unified = require('unified'); +const markdown = require('remark-parse'); +const remark2rehype = require('remark-rehype'); +const raw = require('rehype-raw'); +const htmlStringify = require('rehype-stringify'); + +const html = require('./html'); +const json = require('./json'); // Parse the args. // Don't use nopt or whatever for this. It's simple enough. const args = process.argv.slice(2); -let format = 'json'; let filename = null; let nodeVersion = null; let analytics = null; +let outputDir = null; args.forEach(function(arg) { if (!arg.startsWith('--')) { filename = arg; - } else if (arg.startsWith('--format=')) { - format = arg.replace(/^--format=/, ''); } else if (arg.startsWith('--node-version=')) { nodeVersion = arg.replace(/^--node-version=/, ''); } else if (arg.startsWith('--analytics=')) { analytics = arg.replace(/^--analytics=/, ''); + } else if (arg.startsWith('--output-directory=')) { + outputDir = arg.replace(/^--output-directory=/, ''); } }); @@ -48,27 +57,37 @@ nodeVersion = nodeVersion || process.version; if (!filename) { throw new Error('No input file specified'); +} else if (!outputDir) { + throw new Error('No output directory specified'); } + fs.readFile(filename, 'utf8', (er, input) => { if (er) throw er; - switch (format) { - case 'json': - require('./json.js')(input, filename, (er, obj) => { - if (er) throw er; - console.log(JSON.stringify(obj, null, 2)); - }); - break; - case 'html': - require('./html')({ input, filename, nodeVersion, analytics }, - (err, html) => { - if (err) throw err; - console.log(html); - }); - break; + const content = unified() + .use(markdown) + .use(json.jsonAPI, { filename }) + .use(html.firstHeader) + .use(html.preprocessText) + .use(html.preprocessElements, { filename }) + .use(html.buildToc, { filename }) + .use(remark2rehype, { allowDangerousHTML: true }) + .use(raw) + .use(htmlStringify) + .processSync(input); - default: - throw new Error(`Invalid format: ${format}`); - } + const basename = path.basename(filename, '.md'); + + html.toHTML( + { input, content, filename, nodeVersion, analytics }, + (err, html) => { + const target = path.join(outputDir, `${basename}.html`); + if (err) throw err; + fs.writeFileSync(target, html); + } + ); + + const target = path.join(outputDir, `${basename}.json`); + fs.writeFileSync(target, JSON.stringify(content.json, null, 2)); }); diff --git a/tools/doc/html.js b/tools/doc/html.js index d759270e0f838d..ce137f5d115162 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -29,11 +29,13 @@ const visit = require('unist-util-visit'); const markdown = require('remark-parse'); const remark2rehype = require('remark-rehype'); const raw = require('rehype-raw'); -const html = require('rehype-stringify'); +const htmlStringify = require('rehype-stringify'); const path = require('path'); const typeParser = require('./type-parser.js'); -module.exports = toHTML; +module.exports = { + toHTML, firstHeader, preprocessText, preprocessElements, buildToc +}; const docPath = path.resolve(__dirname, '..', '..', 'doc'); @@ -54,26 +56,15 @@ const gtocHTML = unified() .use(remark2rehype, { allowDangerousHTML: true }) .use(raw) .use(navClasses) - .use(html) + .use(htmlStringify) .processSync(gtocMD).toString(); const templatePath = path.join(docPath, 'template.html'); const template = fs.readFileSync(templatePath, 'utf8'); -function toHTML({ input, filename, nodeVersion, analytics }, cb) { +function toHTML({ input, content, filename, nodeVersion, analytics }, cb) { filename = path.basename(filename, '.md'); - const content = unified() - .use(markdown) - .use(firstHeader) - .use(preprocessText) - .use(preprocessElements, { filename }) - .use(buildToc, { filename }) - .use(remark2rehype, { allowDangerousHTML: true }) - .use(raw) - .use(html) - .processSync(input); - const id = filename.replace(/\W+/g, '-'); let HTML = template.replace('__ID__', id) @@ -296,7 +287,7 @@ function parseYAML(text) { .use(markdown) .use(remark2rehype, { allowDangerousHTML: true }) .use(raw) - .use(html) + .use(htmlStringify) .processSync(change.description).toString(); result += `${change.version}\n` + @@ -381,7 +372,7 @@ function buildToc({ filename }) { .use(markdown) .use(remark2rehype, { allowDangerousHTML: true }) .use(raw) - .use(html) + .use(htmlStringify) .processSync(toc).toString(); }; } diff --git a/tools/doc/json.js b/tools/doc/json.js index 44b67e3e284b17..e07486265cf0dd 100644 --- a/tools/doc/json.js +++ b/tools/doc/json.js @@ -21,304 +21,267 @@ 'use strict'; -module.exports = doJSON; - -// Take the lexed input, and return a JSON-encoded object. -// A module looks like this: https://gist.github.com/1777387. - +const unified = require('unified'); const common = require('./common.js'); -const marked = require('marked'); - -// Customized heading without id attribute. -const renderer = new marked.Renderer(); -renderer.heading = (text, level) => `${text}\n`; -marked.setOptions({ renderer }); - - -function doJSON(input, filename, cb) { - const root = { source: filename }; - const stack = [root]; - let depth = 0; - let current = root; - let state = null; - - const exampleHeading = /^example/i; - const metaExpr = /\n*/g; - const stabilityExpr = /^Stability: ([0-5])(?:\s*-\s*)?(.*)$/; - - const lexed = marked.lexer(input); - lexed.forEach((tok) => { - const { type } = tok; - let { text } = tok; - - // - // This is for cases where the markdown semantic structure is lacking. - if (type === 'paragraph' || type === 'html') { - text = text.replace(metaExpr, (_0, key, value) => { - current[key.trim()] = value.trim(); - return ''; - }); - text = text.trim(); - if (!text) return; +const html = require('remark-html'); +const select = require('unist-util-select'); + +module.exports = { jsonAPI }; + +// Unified processor: input is https://github.com/syntax-tree/mdast, +// output is: https://gist.github.com/1777387. +function jsonAPI({ filename }) { + return (tree, file) => { + + const exampleHeading = /^example/i; + const metaExpr = /\n*/g; + const stabilityExpr = /^Stability: ([0-5])(?:\s*-\s*)?(.*)$/s; + + // Extract definitions. + const definitions = select(tree, 'definition'); + + // Determine the start, stop, and depth of each section. + const sections = []; + let section = null; + tree.children.forEach((node, i) => { + if (node.type === 'heading' && + !exampleHeading.test(textJoin(node.children, file))) { + if (section) section.stop = i - 1; + section = { start: i, stop: tree.children.length, depth: node.depth }; + sections.push(section); + } + }); + + // Collect and capture results. + const result = { type: 'module', source: filename }; + while (sections.length > 0) { + doSection(sections.shift(), result); } + file.json = result; - if (type === 'heading' && !exampleHeading.test(text.trim())) { - if (tok.depth - depth > 1) { - return cb( - new Error(`Inappropriate heading level\n${JSON.stringify(tok)}`)); + // Process a single section (recursively, including subsections). + function doSection(section, parent) { + if (section.depth - parent.depth > 1) { + throw new Error('Inappropriate heading level\n' + + JSON.stringify(section)); } + const current = newSection(tree.children[section.start], file); + let nodes = tree.children.slice(section.start + 1, section.stop + 1); + // Sometimes we have two headings with a single blob of description. // Treat as a clone. - if (state === 'AFTERHEADING' && depth === tok.depth) { - const clone = current; - current = newSection(tok); - current.clone = clone; - // Don't keep it around on the stack. - stack.pop(); - } else { - // If the level is greater than the current depth, - // then it's a child, so we should just leave the stack as it is. - // However, if it's a sibling or higher, then it implies - // the closure of the other sections that came before. - // root is always considered the level=0 section, - // and the lowest heading is 1, so this should always - // result in having a valid parent node. - let closingDepth = tok.depth; - while (closingDepth <= depth) { - finishSection(stack.pop(), stack[stack.length - 1]); - closingDepth++; - } - current = newSection(tok); + if ( + nodes.length === 0 && sections.length > 0 && + section.depth === sections[0].depth + ) { + nodes = tree.children.slice(sections[0].start + 1, + sections[0].stop + 1); } - ({ depth } = tok); - stack.push(current); - state = 'AFTERHEADING'; - return; - } + // Extract (and remove) metadata that is not directly inferable + // from the markdown itself. + nodes.forEach((node, i) => { + // Input: ; output: {name: module}. + if (node.type === 'html') { + node.value = node.value.replace(metaExpr, (_0, key, value) => { + current[key.trim()] = value.trim(); + return ''; + }); + if (!node.value.trim()) delete nodes[i]; + } - // Immediately after a heading, we can expect the following: - // - // { type: 'blockquote_start' }, - // { type: 'paragraph', text: 'Stability: ...' }, - // { type: 'blockquote_end' }, - // - // A list: starting with list_start, ending with list_end, - // maybe containing other nested lists in each item. - // - // A metadata: - // - // - // If one of these isn't found, then anything that comes - // between here and the next heading should be parsed as the desc. - if (state === 'AFTERHEADING') { - if (type === 'blockquote_start') { - state = 'AFTERHEADING_BLOCKQUOTE'; - return; - } else if (type === 'list_start' && !tok.ordered) { - state = 'AFTERHEADING_LIST'; - current.list = current.list || []; - current.list.push(tok); - current.list.level = 1; - } else if (type === 'html' && common.isYAMLBlock(tok.text)) { - current.meta = common.extractAndParseYAML(tok.text); - } else { - current.desc = current.desc || []; - if (!Array.isArray(current.desc)) { - current.shortDesc = current.desc; - current.desc = []; + // Process metadata: + // + if (node.type === 'html' && common.isYAMLBlock(node.value)) { + current.meta = common.extractAndParseYAML(node.value); + delete nodes[i]; } - current.desc.links = lexed.links; - current.desc.push(tok); - state = 'DESC'; - } - return; - } - if (state === 'AFTERHEADING_LIST') { - current.list.push(tok); - if (type === 'list_start') { - current.list.level++; - } else if (type === 'list_end') { - current.list.level--; - } - if (current.list.level === 0) { - state = 'AFTERHEADING'; - processList(current); - } - return; - } + // Stability marker: > Stability: ... + if ( + node.type === 'blockquote' && node.children.length === 1 && + node.children[0].type === 'paragraph' && + nodes.slice(0, i).every((node) => node.type === 'list') + ) { + const text = textJoin(node.children[0].children, file); + const stability = text.match(stabilityExpr); + if (stability) { + current.stability = parseInt(stability[1], 10); + current.stabilityText = stability[2].trim(); + delete nodes[i]; + } + } + }); - if (state === 'AFTERHEADING_BLOCKQUOTE') { - if (type === 'blockquote_end') { - state = 'AFTERHEADING'; - return; - } + // Compress the node array. + nodes = nodes.filter(() => true); + + // If the first node is a list, extract it. + const list = nodes[0] && nodes[0].type === 'list' ? + nodes.shift() : null; + + // Now figure out what this list actually means. + // Depending on the section type, the list could be different things. + const values = list ? + list.children.map((child) => parseListItem(child, file)) : []; + + switch (current.type) { + case 'ctor': + case 'classMethod': + case 'method': + // Each item is an argument, unless the name is 'return', + // in which case it's the return value. + const sig = {}; + sig.params = values.filter((value) => { + if (value.name === 'return') { + sig.return = value; + return false; + } + return true; + }); + parseSignature(current.textRaw, sig); + current.signatures = [sig]; + break; + + case 'property': + // There should be only one item, which is the value. + // Copy the data up to the section. + if (values.length) { + const signature = values[0]; + + // Shove the name in there for properties, + // since they are always just going to be the value etc. + signature.textRaw = `\`${current.name}\` ${signature.textRaw}`; + + for (const key in signature) { + if (signature[key]) { + if (key === 'type') { + current.typeof = signature.type; + } else { + current[key] = signature[key]; + } + } + } + } + break; - let stability; - if (type === 'paragraph' && (stability = text.match(stabilityExpr))) { - current.stability = parseInt(stability[1], 10); - current.stabilityText = stability[2].trim(); - return; - } - } + case 'event': + // Event: each item is an argument. + current.params = values; + break; - current.desc = current.desc || []; - current.desc.links = lexed.links; - current.desc.push(tok); - }); + default: + // If list wasn't consumed, put it back in the nodes list. + if (list) nodes.unshift(list); + } - // Finish any sections left open. - while (root !== (current = stack.pop())) { - finishSection(current, stack[stack.length - 1]); - } + // Convert remaining nodes to a 'desc'. + // Unified expects to process a string; but we ignore that as we + // already have pre-parsed input that we can inject. + if (nodes.length) { + if (current.desc) current.shortDesc = current.desc; + + current.desc = unified() + .use(function() { + this.Parser = () => ( + { type: 'root', children: nodes.concat(definitions) } + ); + }) + .use(html) + .processSync('').toString().trim(); + if (!current.desc) delete current.desc; + } - return cb(null, root); -} + // Process subsections. + while (sections.length > 0 && sections[0].depth > section.depth) { + doSection(sections.shift(), current); + } + // If type is not set, default type based on parent type, and + // set displayName and name properties. + if (!current.type) { + current.type = (parent.type === 'misc' ? 'misc' : 'module'); + current.displayName = current.name; + current.name = current.name.toLowerCase() + .trim().replace(/\s+/g, '_'); + } -// Go from something like this: -// -// [ { type: "list_item_start" }, -// { type: "text", -// text: "`options` {Object|string}" }, -// { type: "list_start", -// ordered: false }, -// { type: "list_item_start" }, -// { type: "text", -// text: "`encoding` {string|null} **Default:** `'utf8'`" }, -// { type: "list_item_end" }, -// { type: "list_item_start" }, -// { type: "text", -// text: "`mode` {integer} **Default:** `0o666`" }, -// { type: "list_item_end" }, -// { type: "list_item_start" }, -// { type: "text", -// text: "`flag` {string} **Default:** `'a'`" }, -// { type: "space" }, -// { type: "list_item_end" }, -// { type: "list_end" }, -// { type: "list_item_end" } ] -// -// to something like: -// -// [ { textRaw: "`options` {Object|string} ", -// options: [ -// { textRaw: "`encoding` {string|null} **Default:** `'utf8'` ", -// name: "encoding", -// type: "string|null", -// default: "`'utf8'`" }, -// { textRaw: "`mode` {integer} **Default:** `0o666` ", -// name: "mode", -// type: "integer", -// default: "`0o666`" }, -// { textRaw: "`flag` {string} **Default:** `'a'` ", -// name: "flag", -// type: "string", -// default: "`'a'`" } ], -// name: "options", -// type: "Object|string", -// optional: true } ] - -function processList(section) { - const { list } = section; - const values = []; - const stack = []; - let current; - - // For now, *just* build the hierarchical list. - list.forEach((tok) => { - const { type } = tok; - if (type === 'space') return; - if (type === 'list_item_start' || type === 'loose_item_start') { - const item = {}; - if (!current) { - values.push(item); - current = item; + // Pluralize type to determine which 'bucket' to put this section in. + let plur; + if (current.type.slice(-1) === 's') { + plur = `${current.type}es`; + } else if (current.type.slice(-1) === 'y') { + plur = current.type.replace(/y$/, 'ies'); } else { - current.options = current.options || []; - stack.push(current); - current.options.push(item); - current = item; - } - } else if (type === 'list_item_end') { - if (!current) { - throw new Error('invalid list - end without current item\n' + - `${JSON.stringify(tok)}\n` + - JSON.stringify(list)); + plur = `${current.type}s`; } - current = stack.pop(); - } else if (type === 'text') { - if (!current) { - throw new Error('invalid list - text without current item\n' + - `${JSON.stringify(tok)}\n` + - JSON.stringify(list)); - } - current.textRaw = `${current.textRaw || ''}${tok.text} `; - } - }); - // Shove the name in there for properties, - // since they are always just going to be the value etc. - if (section.type === 'property' && values[0]) { - values[0].textRaw = `\`${section.name}\` ${values[0].textRaw}`; - } + // Classes sometimes have various 'ctor' children + // which are actually just descriptions of a constructor class signature. + // Merge them into the parent. + if (current.type === 'class' && current.ctors) { + current.signatures = current.signatures || []; + const sigs = current.signatures; + current.ctors.forEach((ctor) => { + ctor.signatures = ctor.signatures || [{}]; + ctor.signatures.forEach((sig) => { + sig.desc = ctor.desc; + }); + sigs.push(...ctor.signatures); + }); + delete current.ctors; + } - // Now pull the actual values out of the text bits. - values.forEach(parseListItem); - - // Now figure out what this list actually means. - // Depending on the section type, the list could be different things. - - switch (section.type) { - case 'ctor': - case 'classMethod': - case 'method': { - // Each item is an argument, unless the name is 'return', - // in which case it's the return value. - section.signatures = section.signatures || []; - const sig = {}; - section.signatures.push(sig); - sig.params = values.filter((value) => { - if (value.name === 'return') { - sig.return = value; - return false; + // Properties are a bit special. + // Their "type" is the type of object, not "property". + if (current.type === 'property') { + if (current.typeof) { + current.type = current.typeof; + delete current.typeof; + } else { + delete current.type; } - return true; - }); - parseSignature(section.textRaw, sig); - break; - } - - case 'property': { - // There should be only one item, which is the value. - // Copy the data up to the section. - const value = values[0] || {}; - delete value.name; - section.typeof = value.type || section.typeof; - delete value.type; - Object.keys(value).forEach((key) => { - section[key] = value[key]; - }); - break; - } - - case 'event': - // Event: each item is an argument. - section.params = values; - break; + } - default: - if (section.list.length > 0) { - section.desc = section.desc || []; - section.desc.push(...section.list); + // If the parent's type is 'misc', then it's just a random + // collection of stuff, like the "globals" section. + // Make the children top-level items. + if (current.type === 'misc') { + Object.keys(current).forEach((key) => { + switch (key) { + case 'textRaw': + case 'name': + case 'type': + case 'desc': + case 'miscs': + return; + default: + if (parent.type === 'misc') { + return; + } + if (parent[key] && Array.isArray(parent[key])) { + parent[key] = parent[key].concat(current[key]); + } else if (!parent[key]) { + parent[key] = current[key]; + } + } + }); } - } - delete section.list; + // Add this section to the parent. Sometimes we have two headings with a + // single blob of description. If the preceding entry at this level + // shares a name and is lacking a description, copy it backwards. + if (!parent[plur]) parent[plur] = []; + const prev = parent[plur].slice(-1)[0]; + if (prev && prev.name === current.name && !prev.desc) { + prev.desc = current.desc; + } + parent[plur].push(current); + } + }; } @@ -326,6 +289,8 @@ const paramExpr = /\((.+)\);?$/; // text: "someobject.someMethod(a[, b=100][, c])" function parseSignature(text, sig) { + const list = []; + let [, sigParams] = text.match(paramExpr) || []; if (!sigParams) return; sigParams = sigParams.split(','); @@ -361,20 +326,45 @@ function parseSignature(text, sig) { defaultValue = sigParam.substr(eq + 1); sigParam = sigParam.substr(0, eq); } - if (!listParam) { - listParam = sig.params[i] = { name: sigParam }; - } - // At this point, the name should match. - if (sigParam !== listParam.name) { - throw new Error( - `Warning: invalid param "${sigParam}"\n` + - ` > ${JSON.stringify(listParam)}\n` + - ` > ${text}` - ); + + // At this point, the name should match. If it doesn't find one that does. + // Example: shared signatures for: + // ### new Console(stdout[, stderr][, ignoreErrors]) + // ### new Console(options) + if (!listParam || sigParam !== listParam.name) { + listParam = null; + for (const param of sig.params) { + if (param.name === sigParam) { + listParam = param; + } else if (param.options) { + for (const option of param.options) { + if (option.name === sigParam) { + listParam = Object.assign({}, option); + } + } + } + } + + if (!listParam) { + if (sigParam.startsWith('...')) { + listParam = { name: sigParam }; + } else { + throw new Error( + `Invalid param "${sigParam}"\n` + + ` > ${JSON.stringify(listParam)}\n` + + ` > ${text}` + ); + } + } } + if (optional) listParam.optional = true; if (defaultValue !== undefined) listParam.default = defaultValue.trim(); + + list.push(listParam); }); + + sig.params = list; } @@ -384,30 +374,37 @@ const typeExpr = /^\{([^}]+)\}\s*/; const leadingHyphen = /^-\s*/; const defaultExpr = /\s*\*\*Default:\*\*\s*([^]+)$/i; -function parseListItem(item) { - if (item.options) item.options.forEach(parseListItem); - if (!item.textRaw) { +function parseListItem(item, file) { + const current = {}; + + current.textRaw = item.children.filter((node) => node.type !== 'list') + .map((node) => ( + file.contents.slice(node.position.start.offset, node.position.end.offset)) + ) + .join('').replace(/\s+/g, ' ').replace(//sg, ''); + let text = current.textRaw; + + if (!text) { throw new Error(`Empty list item: ${JSON.stringify(item)}`); } - // The goal here is to find the name, type, default, and optional. + // The goal here is to find the name, type, default. // Anything left over is 'desc'. - let text = item.textRaw.trim(); if (returnExpr.test(text)) { - item.name = 'return'; + current.name = 'return'; text = text.replace(returnExpr, ''); } else { const [, name] = text.match(nameExpr) || []; if (name) { - item.name = name; + current.name = name; text = text.replace(nameExpr, ''); } } const [, type] = text.match(typeExpr) || []; if (type) { - item.type = type; + current.type = type; text = text.replace(typeExpr, ''); } @@ -415,147 +412,25 @@ function parseListItem(item) { const [, defaultValue] = text.match(defaultExpr) || []; if (defaultValue) { - item.default = defaultValue.replace(/\.$/, ''); + current.default = defaultValue.replace(/\.$/, ''); text = text.replace(defaultExpr, ''); } - if (text) item.desc = text; -} - - -function finishSection(section, parent) { - if (!section || !parent) { - throw new Error('Invalid finishSection call\n' + - `${JSON.stringify(section)}\n` + - JSON.stringify(parent)); - } - - if (!section.type) { - section.type = 'module'; - if (parent.type === 'misc') { - section.type = 'misc'; - } - section.displayName = section.name; - section.name = section.name.toLowerCase() - .trim().replace(/\s+/g, '_'); - } - - if (section.desc && Array.isArray(section.desc)) { - section.desc.links = section.desc.links || []; - section.desc = marked.parser(section.desc); - } - - if (!section.list) section.list = []; - processList(section); - - // Classes sometimes have various 'ctor' children - // which are actually just descriptions of a constructor class signature. - // Merge them into the parent. - if (section.type === 'class' && section.ctors) { - section.signatures = section.signatures || []; - const sigs = section.signatures; - section.ctors.forEach((ctor) => { - ctor.signatures = ctor.signatures || [{}]; - ctor.signatures.forEach((sig) => { - sig.desc = ctor.desc; - }); - sigs.push(...ctor.signatures); - }); - delete section.ctors; - } - - // Properties are a bit special. - // Their "type" is the type of object, not "property". - if (section.properties) { - section.properties.forEach((prop) => { - if (prop.typeof) { - prop.type = prop.typeof; - delete prop.typeof; - } else { - delete prop.type; - } - }); - } - - // Handle clones. - if (section.clone) { - const { clone } = section; - delete section.clone; - delete clone.clone; - deepCopy(section, clone); - finishSection(clone, parent); - } - - let plur; - if (section.type.slice(-1) === 's') { - plur = `${section.type}es`; - } else if (section.type.slice(-1) === 'y') { - plur = section.type.replace(/y$/, 'ies'); - } else { - plur = `${section.type}s`; - } + if (text) current.desc = text; - // If the parent's type is 'misc', then it's just a random - // collection of stuff, like the "globals" section. - // Make the children top-level items. - if (section.type === 'misc') { - Object.keys(section).forEach((key) => { - switch (key) { - case 'textRaw': - case 'name': - case 'type': - case 'desc': - case 'miscs': - return; - default: - if (parent.type === 'misc') { - return; - } - if (parent[key] && Array.isArray(parent[key])) { - parent[key] = parent[key].concat(section[key]); - } else if (!parent[key]) { - parent[key] = section[key]; - } - } - }); + const options = item.children.find((child) => child.type === 'list'); + if (options) { + current.options = options.children.map((child) => ( + parseListItem(child, file) + )); } - parent[plur] = parent[plur] || []; - parent[plur].push(section); + return current; } +// This section parses out the contents of an H# tag. -// Not a general purpose deep copy. -// But sufficient for these basic things. -function deepCopy(src, dest) { - Object.keys(src) - .filter((key) => !dest.hasOwnProperty(key)) - .forEach((key) => { dest[key] = cloneValue(src[key]); }); -} - -function cloneValue(src) { - if (!src) return src; - if (Array.isArray(src)) { - const clone = new Array(src.length); - src.forEach((value, i) => { - clone[i] = cloneValue(value); - }); - return clone; - } - if (typeof src === 'object') { - const clone = {}; - Object.keys(src).forEach((key) => { - clone[key] = cloneValue(src[key]); - }); - return clone; - } - return src; -} - - -// This section parse out the contents of an H# tag. - -// To reduse escape slashes in RegExp string components. +// To reduce escape slashes in RegExp string components. const r = String.raw; const eventPrefix = '^Event: +'; @@ -603,7 +478,9 @@ const headingExpressions = [ `^${maybeClassPropertyPrefix}${ancestors}(${id})${noCallOrProp}$`, 'i') }, ]; -function newSection({ text }) { +function newSection(header, file) { + const text = textJoin(header.children, file); + // Infer the type from the text. for (const { type, re } of headingExpressions) { const [, name] = text.match(re) || []; @@ -613,3 +490,22 @@ function newSection({ text }) { } return { textRaw: text, name: text }; } + +function textJoin(nodes, file) { + return nodes.map((node) => { + if (node.type === 'linkReference') { + return file.contents.slice(node.position.start.offset, + node.position.end.offset); + } else if (node.type === 'inlineCode') { + return `\`${node.value}\``; + } else if (node.type === 'strong') { + return `**${textJoin(node.children, file)}**`; + } else if (node.type === 'emphasis') { + return `_${textJoin(node.children, file)}_`; + } else if (node.children) { + return textJoin(node.children, file); + } else { + return node.value; + } + }).join(''); +} diff --git a/tools/doc/node_modules/.bin/esparse b/tools/doc/node_modules/.bin/esparse deleted file mode 120000 index 7423b18b24efb0..00000000000000 --- a/tools/doc/node_modules/.bin/esparse +++ /dev/null @@ -1 +0,0 @@ -../esprima/bin/esparse.js \ No newline at end of file diff --git a/tools/doc/node_modules/.bin/esvalidate b/tools/doc/node_modules/.bin/esvalidate deleted file mode 120000 index 16069effbc99a3..00000000000000 --- a/tools/doc/node_modules/.bin/esvalidate +++ /dev/null @@ -1 +0,0 @@ -../esprima/bin/esvalidate.js \ No newline at end of file diff --git a/tools/doc/node_modules/.bin/js-yaml b/tools/doc/node_modules/.bin/js-yaml deleted file mode 120000 index 9dbd010d470368..00000000000000 --- a/tools/doc/node_modules/.bin/js-yaml +++ /dev/null @@ -1 +0,0 @@ -../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/tools/doc/node_modules/argparse/LICENSE b/tools/doc/node_modules/argparse/LICENSE deleted file mode 100644 index 1afdae5584056a..00000000000000 --- a/tools/doc/node_modules/argparse/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -(The MIT License) - -Copyright (C) 2012 by Vitaly Puzrin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/tools/doc/node_modules/argparse/README.md b/tools/doc/node_modules/argparse/README.md deleted file mode 100644 index 90dfd2c662c50e..00000000000000 --- a/tools/doc/node_modules/argparse/README.md +++ /dev/null @@ -1,255 +0,0 @@ -argparse -======== - -[![Build Status](https://secure.travis-ci.org/nodeca/argparse.svg?branch=master)](http://travis-ci.org/nodeca/argparse) -[![NPM version](https://img.shields.io/npm/v/argparse.svg)](https://www.npmjs.org/package/argparse) - -CLI arguments parser for node.js. Javascript port of python's -[argparse](http://docs.python.org/dev/library/argparse.html) module -(original version 3.2). That's a full port, except some very rare options, -recorded in issue tracker. - -**NB. Difference with original.** - -- Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/). -- Use `defaultValue` instead of `default`. -- Use `argparse.Const.REMAINDER` instead of `argparse.REMAINDER`, and - similarly for constant values `OPTIONAL`, `ZERO_OR_MORE`, and `ONE_OR_MORE` - (aliases for `nargs` values `'?'`, `'*'`, `'+'`, respectively), and - `SUPPRESS`. - - -Example -======= - -test.js file: - -```javascript -#!/usr/bin/env node -'use strict'; - -var ArgumentParser = require('../lib/argparse').ArgumentParser; -var parser = new ArgumentParser({ - version: '0.0.1', - addHelp:true, - description: 'Argparse example' -}); -parser.addArgument( - [ '-f', '--foo' ], - { - help: 'foo bar' - } -); -parser.addArgument( - [ '-b', '--bar' ], - { - help: 'bar foo' - } -); -parser.addArgument( - '--baz', - { - help: 'baz bar' - } -); -var args = parser.parseArgs(); -console.dir(args); -``` - -Display help: - -``` -$ ./test.js -h -usage: example.js [-h] [-v] [-f FOO] [-b BAR] [--baz BAZ] - -Argparse example - -Optional arguments: - -h, --help Show this help message and exit. - -v, --version Show program's version number and exit. - -f FOO, --foo FOO foo bar - -b BAR, --bar BAR bar foo - --baz BAZ baz bar -``` - -Parse arguments: - -``` -$ ./test.js -f=3 --bar=4 --baz 5 -{ foo: '3', bar: '4', baz: '5' } -``` - -More [examples](https://github.com/nodeca/argparse/tree/master/examples). - - -ArgumentParser objects -====================== - -``` -new ArgumentParser({parameters hash}); -``` - -Creates a new ArgumentParser object. - -**Supported params:** - -- ```description``` - Text to display before the argument help. -- ```epilog``` - Text to display after the argument help. -- ```addHelp``` - Add a -h/–help option to the parser. (default: true) -- ```argumentDefault``` - Set the global default value for arguments. (default: null) -- ```parents``` - A list of ArgumentParser objects whose arguments should also be included. -- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘) -- ```formatterClass``` - A class for customizing the help output. -- ```prog``` - The name of the program (default: `path.basename(process.argv[1])`) -- ```usage``` - The string describing the program usage (default: generated) -- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals. - -**Not supported yet** - -- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read. - - -Details in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects) - - -addArgument() method -==================== - -``` -ArgumentParser.addArgument(name or flag or [name] or [flags...], {options}) -``` - -Defines how a single command-line argument should be parsed. - -- ```name or flag or [name] or [flags...]``` - Either a positional name - (e.g., `'foo'`), a single option (e.g., `'-f'` or `'--foo'`), an array - of a single positional name (e.g., `['foo']`), or an array of options - (e.g., `['-f', '--foo']`). - -Options: - -- ```action``` - The basic type of action to be taken when this argument is encountered at the command line. -- ```nargs```- The number of command-line arguments that should be consumed. -- ```constant``` - A constant value required by some action and nargs selections. -- ```defaultValue``` - The value produced if the argument is absent from the command line. -- ```type``` - The type to which the command-line argument should be converted. -- ```choices``` - A container of the allowable values for the argument. -- ```required``` - Whether or not the command-line option may be omitted (optionals only). -- ```help``` - A brief description of what the argument does. -- ```metavar``` - A name for the argument in usage messages. -- ```dest``` - The name of the attribute to be added to the object returned by parseArgs(). - -Details in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method) - - -Action (some details) -================ - -ArgumentParser objects associate command-line arguments with actions. -These actions can do just about anything with the command-line arguments associated -with them, though most actions simply add an attribute to the object returned by -parseArgs(). The action keyword argument specifies how the command-line arguments -should be handled. The supported actions are: - -- ```store``` - Just stores the argument’s value. This is the default action. -- ```storeConst``` - Stores value, specified by the const keyword argument. - (Note that the const keyword argument defaults to the rather unhelpful None.) - The 'storeConst' action is most commonly used with optional arguments, that - specify some sort of flag. -- ```storeTrue``` and ```storeFalse``` - Stores values True and False - respectively. These are special cases of 'storeConst'. -- ```append``` - Stores a list, and appends each argument value to the list. - This is useful to allow an option to be specified multiple times. -- ```appendConst``` - Stores a list, and appends value, specified by the - const keyword argument to the list. (Note, that the const keyword argument defaults - is None.) The 'appendConst' action is typically used when multiple arguments need - to store constants to the same list. -- ```count``` - Counts the number of times a keyword argument occurs. For example, - used for increasing verbosity levels. -- ```help``` - Prints a complete help message for all the options in the current - parser and then exits. By default a help action is automatically added to the parser. - See ArgumentParser for details of how the output is created. -- ```version``` - Prints version information and exit. Expects a `version=` - keyword argument in the addArgument() call. - -Details in [original action guide](http://docs.python.org/dev/library/argparse.html#action) - - -Sub-commands -============ - -ArgumentParser.addSubparsers() - -Many programs split their functionality into a number of sub-commands, for -example, the svn program can invoke sub-commands like `svn checkout`, `svn update`, -and `svn commit`. Splitting up functionality this way can be a particularly good -idea when a program performs several different functions which require different -kinds of command-line arguments. `ArgumentParser` supports creation of such -sub-commands with `addSubparsers()` method. The `addSubparsers()` method is -normally called with no arguments and returns an special action object. -This object has a single method `addParser()`, which takes a command name and -any `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object -that can be modified as usual. - -Example: - -sub_commands.js -```javascript -#!/usr/bin/env node -'use strict'; - -var ArgumentParser = require('../lib/argparse').ArgumentParser; -var parser = new ArgumentParser({ - version: '0.0.1', - addHelp:true, - description: 'Argparse examples: sub-commands', -}); - -var subparsers = parser.addSubparsers({ - title:'subcommands', - dest:"subcommand_name" -}); - -var bar = subparsers.addParser('c1', {addHelp:true}); -bar.addArgument( - [ '-f', '--foo' ], - { - action: 'store', - help: 'foo3 bar3' - } -); -var bar = subparsers.addParser( - 'c2', - {aliases:['co'], addHelp:true} -); -bar.addArgument( - [ '-b', '--bar' ], - { - action: 'store', - type: 'int', - help: 'foo3 bar3' - } -); - -var args = parser.parseArgs(); -console.dir(args); - -``` - -Details in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands) - - -Contributors -============ - -- [Eugene Shkuropat](https://github.com/shkuropat) -- [Paul Jacobson](https://github.com/hpaulj) - -[others](https://github.com/nodeca/argparse/graphs/contributors) - -License -======= - -Copyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin). -Released under the MIT license. See -[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details. diff --git a/tools/doc/node_modules/argparse/index.js b/tools/doc/node_modules/argparse/index.js deleted file mode 100644 index 3bbc143200483c..00000000000000 --- a/tools/doc/node_modules/argparse/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./lib/argparse'); diff --git a/tools/doc/node_modules/argparse/lib/action.js b/tools/doc/node_modules/argparse/lib/action.js deleted file mode 100644 index 1483c79ffa53d6..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action.js +++ /dev/null @@ -1,146 +0,0 @@ -/** - * class Action - * - * Base class for all actions - * Do not call in your code, use this class only for inherits your own action - * - * Information about how to convert command line strings to Javascript objects. - * Action objects are used by an ArgumentParser to represent the information - * needed to parse a single argument from one or more strings from the command - * line. The keyword arguments to the Action constructor are also all attributes - * of Action instances. - * - * ##### Allowed keywords: - * - * - `store` - * - `storeConstant` - * - `storeTrue` - * - `storeFalse` - * - `append` - * - `appendConstant` - * - `count` - * - `help` - * - `version` - * - * Information about action options see [[Action.new]] - * - * See also [original guide](http://docs.python.org/dev/library/argparse.html#action) - * - **/ - -'use strict'; - - -// Constants -var c = require('./const'); - - -/** - * new Action(options) - * - * Base class for all actions. Used only for inherits - * - * - * ##### Options: - * - * - `optionStrings` A list of command-line option strings for the action. - * - `dest` Attribute to hold the created object(s) - * - `nargs` The number of command-line arguments that should be consumed. - * By default, one argument will be consumed and a single value will be - * produced. - * - `constant` Default value for an action with no value. - * - `defaultValue` The value to be produced if the option is not specified. - * - `type` Cast to 'string'|'int'|'float'|'complex'|function (string). If - * None, 'string'. - * - `choices` The choices available. - * - `required` True if the action must always be specified at the command - * line. - * - `help` The help describing the argument. - * - `metavar` The name to be used for the option's argument with the help - * string. If None, the 'dest' value will be used as the name. - * - * ##### nargs supported values: - * - * - `N` (an integer) consumes N arguments (and produces a list) - * - `?` consumes zero or one arguments - * - `*` consumes zero or more arguments (and produces a list) - * - `+` consumes one or more arguments (and produces a list) - * - * Note: that the difference between the default and nargs=1 is that with the - * default, a single value will be produced, while with nargs=1, a list - * containing a single value will be produced. - **/ -var Action = module.exports = function Action(options) { - options = options || {}; - this.optionStrings = options.optionStrings || []; - this.dest = options.dest; - this.nargs = typeof options.nargs !== 'undefined' ? options.nargs : null; - this.constant = typeof options.constant !== 'undefined' ? options.constant : null; - this.defaultValue = options.defaultValue; - this.type = typeof options.type !== 'undefined' ? options.type : null; - this.choices = typeof options.choices !== 'undefined' ? options.choices : null; - this.required = typeof options.required !== 'undefined' ? options.required : false; - this.help = typeof options.help !== 'undefined' ? options.help : null; - this.metavar = typeof options.metavar !== 'undefined' ? options.metavar : null; - - if (!(this.optionStrings instanceof Array)) { - throw new Error('optionStrings should be an array'); - } - if (typeof this.required !== 'undefined' && typeof this.required !== 'boolean') { - throw new Error('required should be a boolean'); - } -}; - -/** - * Action#getName -> String - * - * Tells action name - **/ -Action.prototype.getName = function () { - if (this.optionStrings.length > 0) { - return this.optionStrings.join('/'); - } else if (this.metavar !== null && this.metavar !== c.SUPPRESS) { - return this.metavar; - } else if (typeof this.dest !== 'undefined' && this.dest !== c.SUPPRESS) { - return this.dest; - } - return null; -}; - -/** - * Action#isOptional -> Boolean - * - * Return true if optional - **/ -Action.prototype.isOptional = function () { - return !this.isPositional(); -}; - -/** - * Action#isPositional -> Boolean - * - * Return true if positional - **/ -Action.prototype.isPositional = function () { - return (this.optionStrings.length === 0); -}; - -/** - * Action#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Should be implemented in inherited classes - * - * ##### Example - * - * ActionCount.prototype.call = function (parser, namespace, values, optionString) { - * namespace.set(this.dest, (namespace[this.dest] || 0) + 1); - * }; - * - **/ -Action.prototype.call = function () { - throw new Error('.call() not defined');// Not Implemented error -}; diff --git a/tools/doc/node_modules/argparse/lib/action/append.js b/tools/doc/node_modules/argparse/lib/action/append.js deleted file mode 100644 index b5da0de2327504..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/append.js +++ /dev/null @@ -1,53 +0,0 @@ -/*:nodoc:* - * class ActionAppend - * - * This action stores a list, and appends each argument value to the list. - * This is useful to allow an option to be specified multiple times. - * This class inherided from [[Action]] - * - **/ - -'use strict'; - -var util = require('util'); - -var Action = require('../action'); - -// Constants -var c = require('../const'); - -/*:nodoc:* - * new ActionAppend(options) - * - options (object): options hash see [[Action.new]] - * - * Note: options.nargs should be optional for constants - * and more then zero for other - **/ -var ActionAppend = module.exports = function ActionAppend(options) { - options = options || {}; - if (this.nargs <= 0) { - throw new Error('nargs for append actions must be > 0; if arg ' + - 'strings are not supplying the value to append, ' + - 'the append const action may be more appropriate'); - } - if (!!this.constant && this.nargs !== c.OPTIONAL) { - throw new Error('nargs must be OPTIONAL to supply const'); - } - Action.call(this, options); -}; -util.inherits(ActionAppend, Action); - -/*:nodoc:* - * ActionAppend#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Save result in namespace object - **/ -ActionAppend.prototype.call = function (parser, namespace, values) { - var items = (namespace[this.dest] || []).slice(); - items.push(values); - namespace.set(this.dest, items); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/append/constant.js b/tools/doc/node_modules/argparse/lib/action/append/constant.js deleted file mode 100644 index 313f5d2efcb03f..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/append/constant.js +++ /dev/null @@ -1,47 +0,0 @@ -/*:nodoc:* - * class ActionAppendConstant - * - * This stores a list, and appends the value specified by - * the const keyword argument to the list. - * (Note that the const keyword argument defaults to null.) - * The 'appendConst' action is typically useful when multiple - * arguments need to store constants to the same list. - * - * This class inherited from [[Action]] - **/ - -'use strict'; - -var util = require('util'); - -var Action = require('../../action'); - -/*:nodoc:* - * new ActionAppendConstant(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionAppendConstant = module.exports = function ActionAppendConstant(options) { - options = options || {}; - options.nargs = 0; - if (typeof options.constant === 'undefined') { - throw new Error('constant option is required for appendAction'); - } - Action.call(this, options); -}; -util.inherits(ActionAppendConstant, Action); - -/*:nodoc:* - * ActionAppendConstant#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Save result in namespace object - **/ -ActionAppendConstant.prototype.call = function (parser, namespace) { - var items = [].concat(namespace[this.dest] || []); - items.push(this.constant); - namespace.set(this.dest, items); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/count.js b/tools/doc/node_modules/argparse/lib/action/count.js deleted file mode 100644 index d6a5899d07ef24..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/count.js +++ /dev/null @@ -1,40 +0,0 @@ -/*:nodoc:* - * class ActionCount - * - * This counts the number of times a keyword argument occurs. - * For example, this is useful for increasing verbosity levels - * - * This class inherided from [[Action]] - * - **/ -'use strict'; - -var util = require('util'); - -var Action = require('../action'); - -/*:nodoc:* - * new ActionCount(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionCount = module.exports = function ActionCount(options) { - options = options || {}; - options.nargs = 0; - - Action.call(this, options); -}; -util.inherits(ActionCount, Action); - -/*:nodoc:* - * ActionCount#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Save result in namespace object - **/ -ActionCount.prototype.call = function (parser, namespace) { - namespace.set(this.dest, (namespace[this.dest] || 0) + 1); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/help.js b/tools/doc/node_modules/argparse/lib/action/help.js deleted file mode 100644 index b40e05a6f0b3eb..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/help.js +++ /dev/null @@ -1,47 +0,0 @@ -/*:nodoc:* - * class ActionHelp - * - * Support action for printing help - * This class inherided from [[Action]] - **/ -'use strict'; - -var util = require('util'); - -var Action = require('../action'); - -// Constants -var c = require('../const'); - -/*:nodoc:* - * new ActionHelp(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionHelp = module.exports = function ActionHelp(options) { - options = options || {}; - if (options.defaultValue !== null) { - options.defaultValue = options.defaultValue; - } else { - options.defaultValue = c.SUPPRESS; - } - options.dest = (options.dest !== null ? options.dest : c.SUPPRESS); - options.nargs = 0; - Action.call(this, options); - -}; -util.inherits(ActionHelp, Action); - -/*:nodoc:* - * ActionHelp#call(parser, namespace, values, optionString) - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Print help and exit - **/ -ActionHelp.prototype.call = function (parser) { - parser.printHelp(); - parser.exit(); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/store.js b/tools/doc/node_modules/argparse/lib/action/store.js deleted file mode 100644 index 283b8609217561..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/store.js +++ /dev/null @@ -1,50 +0,0 @@ -/*:nodoc:* - * class ActionStore - * - * This action just stores the argument’s value. This is the default action. - * - * This class inherited from [[Action]] - * - **/ -'use strict'; - -var util = require('util'); - -var Action = require('../action'); - -// Constants -var c = require('../const'); - - -/*:nodoc:* - * new ActionStore(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionStore = module.exports = function ActionStore(options) { - options = options || {}; - if (this.nargs <= 0) { - throw new Error('nargs for store actions must be > 0; if you ' + - 'have nothing to store, actions such as store ' + - 'true or store const may be more appropriate'); - - } - if (typeof this.constant !== 'undefined' && this.nargs !== c.OPTIONAL) { - throw new Error('nargs must be OPTIONAL to supply const'); - } - Action.call(this, options); -}; -util.inherits(ActionStore, Action); - -/*:nodoc:* - * ActionStore#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Save result in namespace object - **/ -ActionStore.prototype.call = function (parser, namespace, values) { - namespace.set(this.dest, values); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/store/constant.js b/tools/doc/node_modules/argparse/lib/action/store/constant.js deleted file mode 100644 index 23caa897b375d4..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/store/constant.js +++ /dev/null @@ -1,43 +0,0 @@ -/*:nodoc:* - * class ActionStoreConstant - * - * This action stores the value specified by the const keyword argument. - * (Note that the const keyword argument defaults to the rather unhelpful null.) - * The 'store_const' action is most commonly used with optional - * arguments that specify some sort of flag. - * - * This class inherited from [[Action]] - **/ -'use strict'; - -var util = require('util'); - -var Action = require('../../action'); - -/*:nodoc:* - * new ActionStoreConstant(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionStoreConstant = module.exports = function ActionStoreConstant(options) { - options = options || {}; - options.nargs = 0; - if (typeof options.constant === 'undefined') { - throw new Error('constant option is required for storeAction'); - } - Action.call(this, options); -}; -util.inherits(ActionStoreConstant, Action); - -/*:nodoc:* - * ActionStoreConstant#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Save result in namespace object - **/ -ActionStoreConstant.prototype.call = function (parser, namespace) { - namespace.set(this.dest, this.constant); -}; diff --git a/tools/doc/node_modules/argparse/lib/action/store/false.js b/tools/doc/node_modules/argparse/lib/action/store/false.js deleted file mode 100644 index 9924f461dadfe6..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/store/false.js +++ /dev/null @@ -1,27 +0,0 @@ -/*:nodoc:* - * class ActionStoreFalse - * - * This action store the values False respectively. - * This is special cases of 'storeConst' - * - * This class inherited from [[Action]] - **/ - -'use strict'; - -var util = require('util'); - -var ActionStoreConstant = require('./constant'); - -/*:nodoc:* - * new ActionStoreFalse(options) - * - options (object): hash of options see [[Action.new]] - * - **/ -var ActionStoreFalse = module.exports = function ActionStoreFalse(options) { - options = options || {}; - options.constant = false; - options.defaultValue = options.defaultValue !== null ? options.defaultValue : true; - ActionStoreConstant.call(this, options); -}; -util.inherits(ActionStoreFalse, ActionStoreConstant); diff --git a/tools/doc/node_modules/argparse/lib/action/store/true.js b/tools/doc/node_modules/argparse/lib/action/store/true.js deleted file mode 100644 index 9e22f7d4419eea..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/store/true.js +++ /dev/null @@ -1,26 +0,0 @@ -/*:nodoc:* - * class ActionStoreTrue - * - * This action store the values True respectively. - * This isspecial cases of 'storeConst' - * - * This class inherited from [[Action]] - **/ -'use strict'; - -var util = require('util'); - -var ActionStoreConstant = require('./constant'); - -/*:nodoc:* - * new ActionStoreTrue(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionStoreTrue = module.exports = function ActionStoreTrue(options) { - options = options || {}; - options.constant = true; - options.defaultValue = options.defaultValue !== null ? options.defaultValue : false; - ActionStoreConstant.call(this, options); -}; -util.inherits(ActionStoreTrue, ActionStoreConstant); diff --git a/tools/doc/node_modules/argparse/lib/action/subparsers.js b/tools/doc/node_modules/argparse/lib/action/subparsers.js deleted file mode 100644 index 99dfedd0f1aa02..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/subparsers.js +++ /dev/null @@ -1,149 +0,0 @@ -/** internal - * class ActionSubparsers - * - * Support the creation of such sub-commands with the addSubparsers() - * - * This class inherited from [[Action]] - **/ -'use strict'; - -var util = require('util'); -var format = require('util').format; - - -var Action = require('../action'); - -// Constants -var c = require('../const'); - -// Errors -var argumentErrorHelper = require('../argument/error'); - - -/*:nodoc:* - * new ChoicesPseudoAction(name, help) - * - * Create pseudo action for correct help text - * - **/ -function ChoicesPseudoAction(name, help) { - var options = { - optionStrings: [], - dest: name, - help: help - }; - - Action.call(this, options); -} - -util.inherits(ChoicesPseudoAction, Action); - -/** - * new ActionSubparsers(options) - * - options (object): options hash see [[Action.new]] - * - **/ -function ActionSubparsers(options) { - options = options || {}; - options.dest = options.dest || c.SUPPRESS; - options.nargs = c.PARSER; - - this.debug = (options.debug === true); - - this._progPrefix = options.prog; - this._parserClass = options.parserClass; - this._nameParserMap = {}; - this._choicesActions = []; - - options.choices = this._nameParserMap; - Action.call(this, options); -} - -util.inherits(ActionSubparsers, Action); - -/*:nodoc:* - * ActionSubparsers#addParser(name, options) -> ArgumentParser - * - name (string): sub-command name - * - options (object): see [[ArgumentParser.new]] - * - * Note: - * addParser supports an additional aliases option, - * which allows multiple strings to refer to the same subparser. - * This example, like svn, aliases co as a shorthand for checkout - * - **/ -ActionSubparsers.prototype.addParser = function (name, options) { - var parser; - - var self = this; - - options = options || {}; - - options.debug = (this.debug === true); - - // set program from the existing prefix - if (!options.prog) { - options.prog = this._progPrefix + ' ' + name; - } - - var aliases = options.aliases || []; - - // create a pseudo-action to hold the choice help - if (!!options.help || typeof options.help === 'string') { - var help = options.help; - delete options.help; - - var choiceAction = new ChoicesPseudoAction(name, help); - this._choicesActions.push(choiceAction); - } - - // create the parser and add it to the map - parser = new this._parserClass(options); - this._nameParserMap[name] = parser; - - // make parser available under aliases also - aliases.forEach(function (alias) { - self._nameParserMap[alias] = parser; - }); - - return parser; -}; - -ActionSubparsers.prototype._getSubactions = function () { - return this._choicesActions; -}; - -/*:nodoc:* - * ActionSubparsers#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Call the action. Parse input aguments - **/ -ActionSubparsers.prototype.call = function (parser, namespace, values) { - var parserName = values[0]; - var argStrings = values.slice(1); - - // set the parser name if requested - if (this.dest !== c.SUPPRESS) { - namespace[this.dest] = parserName; - } - - // select the parser - if (this._nameParserMap[parserName]) { - parser = this._nameParserMap[parserName]; - } else { - throw argumentErrorHelper(format( - 'Unknown parser "%s" (choices: [%s]).', - parserName, - Object.keys(this._nameParserMap).join(', ') - )); - } - - // parse all the remaining options into the namespace - parser.parseArgs(argStrings, namespace); -}; - -module.exports = ActionSubparsers; diff --git a/tools/doc/node_modules/argparse/lib/action/version.js b/tools/doc/node_modules/argparse/lib/action/version.js deleted file mode 100644 index 8053328cdef446..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action/version.js +++ /dev/null @@ -1,47 +0,0 @@ -/*:nodoc:* - * class ActionVersion - * - * Support action for printing program version - * This class inherited from [[Action]] - **/ -'use strict'; - -var util = require('util'); - -var Action = require('../action'); - -// -// Constants -// -var c = require('../const'); - -/*:nodoc:* - * new ActionVersion(options) - * - options (object): options hash see [[Action.new]] - * - **/ -var ActionVersion = module.exports = function ActionVersion(options) { - options = options || {}; - options.defaultValue = (options.defaultValue ? options.defaultValue : c.SUPPRESS); - options.dest = (options.dest || c.SUPPRESS); - options.nargs = 0; - this.version = options.version; - Action.call(this, options); -}; -util.inherits(ActionVersion, Action); - -/*:nodoc:* - * ActionVersion#call(parser, namespace, values, optionString) -> Void - * - parser (ArgumentParser): current parser - * - namespace (Namespace): namespace for output data - * - values (Array): parsed values - * - optionString (Array): input option string(not parsed) - * - * Print version and exit - **/ -ActionVersion.prototype.call = function (parser) { - var version = this.version || parser.version; - var formatter = parser._getFormatter(); - formatter.addText(version); - parser.exit(0, formatter.formatHelp()); -}; diff --git a/tools/doc/node_modules/argparse/lib/action_container.js b/tools/doc/node_modules/argparse/lib/action_container.js deleted file mode 100644 index 6f1237bea23d59..00000000000000 --- a/tools/doc/node_modules/argparse/lib/action_container.js +++ /dev/null @@ -1,482 +0,0 @@ -/** internal - * class ActionContainer - * - * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]] - **/ - -'use strict'; - -var format = require('util').format; - -// Constants -var c = require('./const'); - -var $$ = require('./utils'); - -//Actions -var ActionHelp = require('./action/help'); -var ActionAppend = require('./action/append'); -var ActionAppendConstant = require('./action/append/constant'); -var ActionCount = require('./action/count'); -var ActionStore = require('./action/store'); -var ActionStoreConstant = require('./action/store/constant'); -var ActionStoreTrue = require('./action/store/true'); -var ActionStoreFalse = require('./action/store/false'); -var ActionVersion = require('./action/version'); -var ActionSubparsers = require('./action/subparsers'); - -// Errors -var argumentErrorHelper = require('./argument/error'); - -/** - * new ActionContainer(options) - * - * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]] - * - * ##### Options: - * - * - `description` -- A description of what the program does - * - `prefixChars` -- Characters that prefix optional arguments - * - `argumentDefault` -- The default value for all arguments - * - `conflictHandler` -- The conflict handler to use for duplicate arguments - **/ -var ActionContainer = module.exports = function ActionContainer(options) { - options = options || {}; - - this.description = options.description; - this.argumentDefault = options.argumentDefault; - this.prefixChars = options.prefixChars || ''; - this.conflictHandler = options.conflictHandler; - - // set up registries - this._registries = {}; - - // register actions - this.register('action', null, ActionStore); - this.register('action', 'store', ActionStore); - this.register('action', 'storeConst', ActionStoreConstant); - this.register('action', 'storeTrue', ActionStoreTrue); - this.register('action', 'storeFalse', ActionStoreFalse); - this.register('action', 'append', ActionAppend); - this.register('action', 'appendConst', ActionAppendConstant); - this.register('action', 'count', ActionCount); - this.register('action', 'help', ActionHelp); - this.register('action', 'version', ActionVersion); - this.register('action', 'parsers', ActionSubparsers); - - // raise an exception if the conflict handler is invalid - this._getHandler(); - - // action storage - this._actions = []; - this._optionStringActions = {}; - - // groups - this._actionGroups = []; - this._mutuallyExclusiveGroups = []; - - // defaults storage - this._defaults = {}; - - // determines whether an "option" looks like a negative number - // -1, -1.5 -5e+4 - this._regexpNegativeNumber = new RegExp('^[-]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$'); - - // whether or not there are any optionals that look like negative - // numbers -- uses a list so it can be shared and edited - this._hasNegativeNumberOptionals = []; -}; - -// Groups must be required, then ActionContainer already defined -var ArgumentGroup = require('./argument/group'); -var MutuallyExclusiveGroup = require('./argument/exclusive'); - -// -// Registration methods -// - -/** - * ActionContainer#register(registryName, value, object) -> Void - * - registryName (String) : object type action|type - * - value (string) : keyword - * - object (Object|Function) : handler - * - * Register handlers - **/ -ActionContainer.prototype.register = function (registryName, value, object) { - this._registries[registryName] = this._registries[registryName] || {}; - this._registries[registryName][value] = object; -}; - -ActionContainer.prototype._registryGet = function (registryName, value, defaultValue) { - if (arguments.length < 3) { - defaultValue = null; - } - return this._registries[registryName][value] || defaultValue; -}; - -// -// Namespace default accessor methods -// - -/** - * ActionContainer#setDefaults(options) -> Void - * - options (object):hash of options see [[Action.new]] - * - * Set defaults - **/ -ActionContainer.prototype.setDefaults = function (options) { - options = options || {}; - for (var property in options) { - if ($$.has(options, property)) { - this._defaults[property] = options[property]; - } - } - - // if these defaults match any existing arguments, replace the previous - // default on the object with the new one - this._actions.forEach(function (action) { - if ($$.has(options, action.dest)) { - action.defaultValue = options[action.dest]; - } - }); -}; - -/** - * ActionContainer#getDefault(dest) -> Mixed - * - dest (string): action destination - * - * Return action default value - **/ -ActionContainer.prototype.getDefault = function (dest) { - var result = $$.has(this._defaults, dest) ? this._defaults[dest] : null; - - this._actions.forEach(function (action) { - if (action.dest === dest && $$.has(action, 'defaultValue')) { - result = action.defaultValue; - } - }); - - return result; -}; -// -// Adding argument actions -// - -/** - * ActionContainer#addArgument(args, options) -> Object - * - args (String|Array): argument key, or array of argument keys - * - options (Object): action objects see [[Action.new]] - * - * #### Examples - * - addArgument([ '-f', '--foo' ], { action: 'store', defaultValue: 1, ... }) - * - addArgument([ 'bar' ], { action: 'store', nargs: 1, ... }) - * - addArgument('--baz', { action: 'store', nargs: 1, ... }) - **/ -ActionContainer.prototype.addArgument = function (args, options) { - args = args; - options = options || {}; - - if (typeof args === 'string') { - args = [ args ]; - } - if (!Array.isArray(args)) { - throw new TypeError('addArgument first argument should be a string or an array'); - } - if (typeof options !== 'object' || Array.isArray(options)) { - throw new TypeError('addArgument second argument should be a hash'); - } - - // if no positional args are supplied or only one is supplied and - // it doesn't look like an option string, parse a positional argument - if (!args || args.length === 1 && this.prefixChars.indexOf(args[0][0]) < 0) { - if (args && !!options.dest) { - throw new Error('dest supplied twice for positional argument'); - } - options = this._getPositional(args, options); - - // otherwise, we're adding an optional argument - } else { - options = this._getOptional(args, options); - } - - // if no default was supplied, use the parser-level default - if (typeof options.defaultValue === 'undefined') { - var dest = options.dest; - if ($$.has(this._defaults, dest)) { - options.defaultValue = this._defaults[dest]; - } else if (typeof this.argumentDefault !== 'undefined') { - options.defaultValue = this.argumentDefault; - } - } - - // create the action object, and add it to the parser - var ActionClass = this._popActionClass(options); - if (typeof ActionClass !== 'function') { - throw new Error(format('Unknown action "%s".', ActionClass)); - } - var action = new ActionClass(options); - - // throw an error if the action type is not callable - var typeFunction = this._registryGet('type', action.type, action.type); - if (typeof typeFunction !== 'function') { - throw new Error(format('"%s" is not callable', typeFunction)); - } - - return this._addAction(action); -}; - -/** - * ActionContainer#addArgumentGroup(options) -> ArgumentGroup - * - options (Object): hash of options see [[ArgumentGroup.new]] - * - * Create new arguments groups - **/ -ActionContainer.prototype.addArgumentGroup = function (options) { - var group = new ArgumentGroup(this, options); - this._actionGroups.push(group); - return group; -}; - -/** - * ActionContainer#addMutuallyExclusiveGroup(options) -> ArgumentGroup - * - options (Object): {required: false} - * - * Create new mutual exclusive groups - **/ -ActionContainer.prototype.addMutuallyExclusiveGroup = function (options) { - var group = new MutuallyExclusiveGroup(this, options); - this._mutuallyExclusiveGroups.push(group); - return group; -}; - -ActionContainer.prototype._addAction = function (action) { - var self = this; - - // resolve any conflicts - this._checkConflict(action); - - // add to actions list - this._actions.push(action); - action.container = this; - - // index the action by any option strings it has - action.optionStrings.forEach(function (optionString) { - self._optionStringActions[optionString] = action; - }); - - // set the flag if any option strings look like negative numbers - action.optionStrings.forEach(function (optionString) { - if (optionString.match(self._regexpNegativeNumber)) { - if (!self._hasNegativeNumberOptionals.some(Boolean)) { - self._hasNegativeNumberOptionals.push(true); - } - } - }); - - // return the created action - return action; -}; - -ActionContainer.prototype._removeAction = function (action) { - var actionIndex = this._actions.indexOf(action); - if (actionIndex >= 0) { - this._actions.splice(actionIndex, 1); - } -}; - -ActionContainer.prototype._addContainerActions = function (container) { - // collect groups by titles - var titleGroupMap = {}; - this._actionGroups.forEach(function (group) { - if (titleGroupMap[group.title]) { - throw new Error(format('Cannot merge actions - two groups are named "%s".', group.title)); - } - titleGroupMap[group.title] = group; - }); - - // map each action to its group - var groupMap = {}; - function actionHash(action) { - // unique (hopefully?) string suitable as dictionary key - return action.getName(); - } - container._actionGroups.forEach(function (group) { - // if a group with the title exists, use that, otherwise - // create a new group matching the container's group - if (!titleGroupMap[group.title]) { - titleGroupMap[group.title] = this.addArgumentGroup({ - title: group.title, - description: group.description - }); - } - - // map the actions to their new group - group._groupActions.forEach(function (action) { - groupMap[actionHash(action)] = titleGroupMap[group.title]; - }); - }, this); - - // add container's mutually exclusive groups - // NOTE: if add_mutually_exclusive_group ever gains title= and - // description= then this code will need to be expanded as above - var mutexGroup; - container._mutuallyExclusiveGroups.forEach(function (group) { - mutexGroup = this.addMutuallyExclusiveGroup({ - required: group.required - }); - // map the actions to their new mutex group - group._groupActions.forEach(function (action) { - groupMap[actionHash(action)] = mutexGroup; - }); - }, this); // forEach takes a 'this' argument - - // add all actions to this container or their group - container._actions.forEach(function (action) { - var key = actionHash(action); - if (groupMap[key]) { - groupMap[key]._addAction(action); - } else { - this._addAction(action); - } - }); -}; - -ActionContainer.prototype._getPositional = function (dest, options) { - if (Array.isArray(dest)) { - dest = dest[0]; - } - // make sure required is not specified - if (options.required) { - throw new Error('"required" is an invalid argument for positionals.'); - } - - // mark positional arguments as required if at least one is - // always required - if (options.nargs !== c.OPTIONAL && options.nargs !== c.ZERO_OR_MORE) { - options.required = true; - } - if (options.nargs === c.ZERO_OR_MORE && typeof options.defaultValue === 'undefined') { - options.required = true; - } - - // return the keyword arguments with no option strings - options.dest = dest; - options.optionStrings = []; - return options; -}; - -ActionContainer.prototype._getOptional = function (args, options) { - var prefixChars = this.prefixChars; - var optionStrings = []; - var optionStringsLong = []; - - // determine short and long option strings - args.forEach(function (optionString) { - // error on strings that don't start with an appropriate prefix - if (prefixChars.indexOf(optionString[0]) < 0) { - throw new Error(format('Invalid option string "%s": must start with a "%s".', - optionString, - prefixChars - )); - } - - // strings starting with two prefix characters are long options - optionStrings.push(optionString); - if (optionString.length > 1 && prefixChars.indexOf(optionString[1]) >= 0) { - optionStringsLong.push(optionString); - } - }); - - // infer dest, '--foo-bar' -> 'foo_bar' and '-x' -> 'x' - var dest = options.dest || null; - delete options.dest; - - if (!dest) { - var optionStringDest = optionStringsLong.length ? optionStringsLong[0] : optionStrings[0]; - dest = $$.trimChars(optionStringDest, this.prefixChars); - - if (dest.length === 0) { - throw new Error( - format('dest= is required for options like "%s"', optionStrings.join(', ')) - ); - } - dest = dest.replace(/-/g, '_'); - } - - // return the updated keyword arguments - options.dest = dest; - options.optionStrings = optionStrings; - - return options; -}; - -ActionContainer.prototype._popActionClass = function (options, defaultValue) { - defaultValue = defaultValue || null; - - var action = (options.action || defaultValue); - delete options.action; - - var actionClass = this._registryGet('action', action, action); - return actionClass; -}; - -ActionContainer.prototype._getHandler = function () { - var handlerString = this.conflictHandler; - var handlerFuncName = '_handleConflict' + $$.capitalize(handlerString); - var func = this[handlerFuncName]; - if (typeof func === 'undefined') { - var msg = 'invalid conflict resolution value: ' + handlerString; - throw new Error(msg); - } else { - return func; - } -}; - -ActionContainer.prototype._checkConflict = function (action) { - var optionStringActions = this._optionStringActions; - var conflictOptionals = []; - - // find all options that conflict with this option - // collect pairs, the string, and an existing action that it conflicts with - action.optionStrings.forEach(function (optionString) { - var conflOptional = optionStringActions[optionString]; - if (typeof conflOptional !== 'undefined') { - conflictOptionals.push([ optionString, conflOptional ]); - } - }); - - if (conflictOptionals.length > 0) { - var conflictHandler = this._getHandler(); - conflictHandler.call(this, action, conflictOptionals); - } -}; - -ActionContainer.prototype._handleConflictError = function (action, conflOptionals) { - var conflicts = conflOptionals.map(function (pair) { return pair[0]; }); - conflicts = conflicts.join(', '); - throw argumentErrorHelper( - action, - format('Conflicting option string(s): %s', conflicts) - ); -}; - -ActionContainer.prototype._handleConflictResolve = function (action, conflOptionals) { - // remove all conflicting options - var self = this; - conflOptionals.forEach(function (pair) { - var optionString = pair[0]; - var conflictingAction = pair[1]; - // remove the conflicting option string - var i = conflictingAction.optionStrings.indexOf(optionString); - if (i >= 0) { - conflictingAction.optionStrings.splice(i, 1); - } - delete self._optionStringActions[optionString]; - // if the option now has no option string, remove it from the - // container holding it - if (conflictingAction.optionStrings.length === 0) { - conflictingAction.container._removeAction(conflictingAction); - } - }); -}; diff --git a/tools/doc/node_modules/argparse/lib/argparse.js b/tools/doc/node_modules/argparse/lib/argparse.js deleted file mode 100644 index f2a2c51d9a8917..00000000000000 --- a/tools/doc/node_modules/argparse/lib/argparse.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports.ArgumentParser = require('./argument_parser.js'); -module.exports.Namespace = require('./namespace'); -module.exports.Action = require('./action'); -module.exports.HelpFormatter = require('./help/formatter.js'); -module.exports.Const = require('./const.js'); - -module.exports.ArgumentDefaultsHelpFormatter = - require('./help/added_formatters.js').ArgumentDefaultsHelpFormatter; -module.exports.RawDescriptionHelpFormatter = - require('./help/added_formatters.js').RawDescriptionHelpFormatter; -module.exports.RawTextHelpFormatter = - require('./help/added_formatters.js').RawTextHelpFormatter; diff --git a/tools/doc/node_modules/argparse/lib/argument/error.js b/tools/doc/node_modules/argparse/lib/argument/error.js deleted file mode 100644 index c8a02a08b8fbaf..00000000000000 --- a/tools/doc/node_modules/argparse/lib/argument/error.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - - -var format = require('util').format; - - -var ERR_CODE = 'ARGError'; - -/*:nodoc:* - * argumentError(argument, message) -> TypeError - * - argument (Object): action with broken argument - * - message (String): error message - * - * Error format helper. An error from creating or using an argument - * (optional or positional). The string value of this exception - * is the message, augmented with information - * about the argument that caused it. - * - * #####Example - * - * var argumentErrorHelper = require('./argument/error'); - * if (conflictOptionals.length > 0) { - * throw argumentErrorHelper( - * action, - * format('Conflicting option string(s): %s', conflictOptionals.join(', ')) - * ); - * } - * - **/ -module.exports = function (argument, message) { - var argumentName = null; - var errMessage; - var err; - - if (argument.getName) { - argumentName = argument.getName(); - } else { - argumentName = '' + argument; - } - - if (!argumentName) { - errMessage = message; - } else { - errMessage = format('argument "%s": %s', argumentName, message); - } - - err = new TypeError(errMessage); - err.code = ERR_CODE; - return err; -}; diff --git a/tools/doc/node_modules/argparse/lib/argument/exclusive.js b/tools/doc/node_modules/argparse/lib/argument/exclusive.js deleted file mode 100644 index deaca28b8303dc..00000000000000 --- a/tools/doc/node_modules/argparse/lib/argument/exclusive.js +++ /dev/null @@ -1,53 +0,0 @@ -/** internal - * class MutuallyExclusiveGroup - * - * Group arguments. - * By default, ArgumentParser groups command-line arguments - * into “positional arguments” and “optional arguments” - * when displaying help messages. When there is a better - * conceptual grouping of arguments than this default one, - * appropriate groups can be created using the addArgumentGroup() method - * - * This class inherited from [[ArgumentContainer]] - **/ -'use strict'; - -var util = require('util'); - -var ArgumentGroup = require('./group'); - -/** - * new MutuallyExclusiveGroup(container, options) - * - container (object): main container - * - options (object): options.required -> true/false - * - * `required` could be an argument itself, but making it a property of - * the options argument is more consistent with the JS adaptation of the Python) - **/ -var MutuallyExclusiveGroup = module.exports = function MutuallyExclusiveGroup(container, options) { - var required; - options = options || {}; - required = options.required || false; - ArgumentGroup.call(this, container); - this.required = required; - -}; -util.inherits(MutuallyExclusiveGroup, ArgumentGroup); - - -MutuallyExclusiveGroup.prototype._addAction = function (action) { - var msg; - if (action.required) { - msg = 'mutually exclusive arguments must be optional'; - throw new Error(msg); - } - action = this._container._addAction(action); - this._groupActions.push(action); - return action; -}; - - -MutuallyExclusiveGroup.prototype._removeAction = function (action) { - this._container._removeAction(action); - this._groupActions.remove(action); -}; diff --git a/tools/doc/node_modules/argparse/lib/argument/group.js b/tools/doc/node_modules/argparse/lib/argument/group.js deleted file mode 100644 index ad7693869bc4e5..00000000000000 --- a/tools/doc/node_modules/argparse/lib/argument/group.js +++ /dev/null @@ -1,74 +0,0 @@ -/** internal - * class ArgumentGroup - * - * Group arguments. - * By default, ArgumentParser groups command-line arguments - * into “positional arguments” and “optional arguments” - * when displaying help messages. When there is a better - * conceptual grouping of arguments than this default one, - * appropriate groups can be created using the addArgumentGroup() method - * - * This class inherited from [[ArgumentContainer]] - **/ -'use strict'; - -var util = require('util'); - -var ActionContainer = require('../action_container'); - - -/** - * new ArgumentGroup(container, options) - * - container (object): main container - * - options (object): hash of group options - * - * #### options - * - **prefixChars** group name prefix - * - **argumentDefault** default argument value - * - **title** group title - * - **description** group description - * - **/ -var ArgumentGroup = module.exports = function ArgumentGroup(container, options) { - - options = options || {}; - - // add any missing keyword arguments by checking the container - options.conflictHandler = (options.conflictHandler || container.conflictHandler); - options.prefixChars = (options.prefixChars || container.prefixChars); - options.argumentDefault = (options.argumentDefault || container.argumentDefault); - - ActionContainer.call(this, options); - - // group attributes - this.title = options.title; - this._groupActions = []; - - // share most attributes with the container - this._container = container; - this._registries = container._registries; - this._actions = container._actions; - this._optionStringActions = container._optionStringActions; - this._defaults = container._defaults; - this._hasNegativeNumberOptionals = container._hasNegativeNumberOptionals; - this._mutuallyExclusiveGroups = container._mutuallyExclusiveGroups; -}; -util.inherits(ArgumentGroup, ActionContainer); - - -ArgumentGroup.prototype._addAction = function (action) { - // Parent add action - action = ActionContainer.prototype._addAction.call(this, action); - this._groupActions.push(action); - return action; -}; - - -ArgumentGroup.prototype._removeAction = function (action) { - // Parent remove action - ActionContainer.prototype._removeAction.call(this, action); - var actionIndex = this._groupActions.indexOf(action); - if (actionIndex >= 0) { - this._groupActions.splice(actionIndex, 1); - } -}; diff --git a/tools/doc/node_modules/argparse/lib/argument_parser.js b/tools/doc/node_modules/argparse/lib/argument_parser.js deleted file mode 100644 index bd9a59a453c946..00000000000000 --- a/tools/doc/node_modules/argparse/lib/argument_parser.js +++ /dev/null @@ -1,1161 +0,0 @@ -/** - * class ArgumentParser - * - * Object for parsing command line strings into js objects. - * - * Inherited from [[ActionContainer]] - **/ -'use strict'; - -var util = require('util'); -var format = require('util').format; -var Path = require('path'); -var sprintf = require('sprintf-js').sprintf; - -// Constants -var c = require('./const'); - -var $$ = require('./utils'); - -var ActionContainer = require('./action_container'); - -// Errors -var argumentErrorHelper = require('./argument/error'); - -var HelpFormatter = require('./help/formatter'); - -var Namespace = require('./namespace'); - - -/** - * new ArgumentParser(options) - * - * Create a new ArgumentParser object. - * - * ##### Options: - * - `prog` The name of the program (default: Path.basename(process.argv[1])) - * - `usage` A usage message (default: auto-generated from arguments) - * - `description` A description of what the program does - * - `epilog` Text following the argument descriptions - * - `parents` Parsers whose arguments should be copied into this one - * - `formatterClass` HelpFormatter class for printing help messages - * - `prefixChars` Characters that prefix optional arguments - * - `fromfilePrefixChars` Characters that prefix files containing additional arguments - * - `argumentDefault` The default value for all arguments - * - `addHelp` Add a -h/-help option - * - `conflictHandler` Specifies how to handle conflicting argument names - * - `debug` Enable debug mode. Argument errors throw exception in - * debug mode and process.exit in normal. Used for development and - * testing (default: false) - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#argumentparser-objects - **/ -function ArgumentParser(options) { - if (!(this instanceof ArgumentParser)) { - return new ArgumentParser(options); - } - var self = this; - options = options || {}; - - options.description = (options.description || null); - options.argumentDefault = (options.argumentDefault || null); - options.prefixChars = (options.prefixChars || '-'); - options.conflictHandler = (options.conflictHandler || 'error'); - ActionContainer.call(this, options); - - options.addHelp = typeof options.addHelp === 'undefined' || !!options.addHelp; - options.parents = options.parents || []; - // default program name - options.prog = (options.prog || Path.basename(process.argv[1])); - this.prog = options.prog; - this.usage = options.usage; - this.epilog = options.epilog; - this.version = options.version; - - this.debug = (options.debug === true); - - this.formatterClass = (options.formatterClass || HelpFormatter); - this.fromfilePrefixChars = options.fromfilePrefixChars || null; - this._positionals = this.addArgumentGroup({ title: 'Positional arguments' }); - this._optionals = this.addArgumentGroup({ title: 'Optional arguments' }); - this._subparsers = null; - - // register types - function FUNCTION_IDENTITY(o) { - return o; - } - this.register('type', 'auto', FUNCTION_IDENTITY); - this.register('type', null, FUNCTION_IDENTITY); - this.register('type', 'int', function (x) { - var result = parseInt(x, 10); - if (isNaN(result)) { - throw new Error(x + ' is not a valid integer.'); - } - return result; - }); - this.register('type', 'float', function (x) { - var result = parseFloat(x); - if (isNaN(result)) { - throw new Error(x + ' is not a valid float.'); - } - return result; - }); - this.register('type', 'string', function (x) { - return '' + x; - }); - - // add help and version arguments if necessary - var defaultPrefix = (this.prefixChars.indexOf('-') > -1) ? '-' : this.prefixChars[0]; - if (options.addHelp) { - this.addArgument( - [ defaultPrefix + 'h', defaultPrefix + defaultPrefix + 'help' ], - { - action: 'help', - defaultValue: c.SUPPRESS, - help: 'Show this help message and exit.' - } - ); - } - if (typeof this.version !== 'undefined') { - this.addArgument( - [ defaultPrefix + 'v', defaultPrefix + defaultPrefix + 'version' ], - { - action: 'version', - version: this.version, - defaultValue: c.SUPPRESS, - help: "Show program's version number and exit." - } - ); - } - - // add parent arguments and defaults - options.parents.forEach(function (parent) { - self._addContainerActions(parent); - if (typeof parent._defaults !== 'undefined') { - for (var defaultKey in parent._defaults) { - if (parent._defaults.hasOwnProperty(defaultKey)) { - self._defaults[defaultKey] = parent._defaults[defaultKey]; - } - } - } - }); -} - -util.inherits(ArgumentParser, ActionContainer); - -/** - * ArgumentParser#addSubparsers(options) -> [[ActionSubparsers]] - * - options (object): hash of options see [[ActionSubparsers.new]] - * - * See also [subcommands][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#sub-commands - **/ -ArgumentParser.prototype.addSubparsers = function (options) { - if (this._subparsers) { - this.error('Cannot have multiple subparser arguments.'); - } - - options = options || {}; - options.debug = (this.debug === true); - options.optionStrings = []; - options.parserClass = (options.parserClass || ArgumentParser); - - - if (!!options.title || !!options.description) { - - this._subparsers = this.addArgumentGroup({ - title: (options.title || 'subcommands'), - description: options.description - }); - delete options.title; - delete options.description; - - } else { - this._subparsers = this._positionals; - } - - // prog defaults to the usage message of this parser, skipping - // optional arguments and with no "usage:" prefix - if (!options.prog) { - var formatter = this._getFormatter(); - var positionals = this._getPositionalActions(); - var groups = this._mutuallyExclusiveGroups; - formatter.addUsage(this.usage, positionals, groups, ''); - options.prog = formatter.formatHelp().trim(); - } - - // create the parsers action and add it to the positionals list - var ParsersClass = this._popActionClass(options, 'parsers'); - var action = new ParsersClass(options); - this._subparsers._addAction(action); - - // return the created parsers action - return action; -}; - -ArgumentParser.prototype._addAction = function (action) { - if (action.isOptional()) { - this._optionals._addAction(action); - } else { - this._positionals._addAction(action); - } - return action; -}; - -ArgumentParser.prototype._getOptionalActions = function () { - return this._actions.filter(function (action) { - return action.isOptional(); - }); -}; - -ArgumentParser.prototype._getPositionalActions = function () { - return this._actions.filter(function (action) { - return action.isPositional(); - }); -}; - - -/** - * ArgumentParser#parseArgs(args, namespace) -> Namespace|Object - * - args (array): input elements - * - namespace (Namespace|Object): result object - * - * Parsed args and throws error if some arguments are not recognized - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#the-parse-args-method - **/ -ArgumentParser.prototype.parseArgs = function (args, namespace) { - var argv; - var result = this.parseKnownArgs(args, namespace); - - args = result[0]; - argv = result[1]; - if (argv && argv.length > 0) { - this.error( - format('Unrecognized arguments: %s.', argv.join(' ')) - ); - } - return args; -}; - -/** - * ArgumentParser#parseKnownArgs(args, namespace) -> array - * - args (array): input options - * - namespace (Namespace|Object): result object - * - * Parse known arguments and return tuple of result object - * and unknown args - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#partial-parsing - **/ -ArgumentParser.prototype.parseKnownArgs = function (args, namespace) { - var self = this; - - // args default to the system args - args = args || process.argv.slice(2); - - // default Namespace built from parser defaults - namespace = namespace || new Namespace(); - - self._actions.forEach(function (action) { - if (action.dest !== c.SUPPRESS) { - if (!$$.has(namespace, action.dest)) { - if (action.defaultValue !== c.SUPPRESS) { - var defaultValue = action.defaultValue; - if (typeof action.defaultValue === 'string') { - defaultValue = self._getValue(action, defaultValue); - } - namespace[action.dest] = defaultValue; - } - } - } - }); - - Object.keys(self._defaults).forEach(function (dest) { - namespace[dest] = self._defaults[dest]; - }); - - // parse the arguments and exit if there are any errors - try { - var res = this._parseKnownArgs(args, namespace); - - namespace = res[0]; - args = res[1]; - if ($$.has(namespace, c._UNRECOGNIZED_ARGS_ATTR)) { - args = $$.arrayUnion(args, namespace[c._UNRECOGNIZED_ARGS_ATTR]); - delete namespace[c._UNRECOGNIZED_ARGS_ATTR]; - } - return [ namespace, args ]; - } catch (e) { - this.error(e); - } -}; - -ArgumentParser.prototype._parseKnownArgs = function (argStrings, namespace) { - var self = this; - - var extras = []; - - // replace arg strings that are file references - if (this.fromfilePrefixChars !== null) { - argStrings = this._readArgsFromFiles(argStrings); - } - // map all mutually exclusive arguments to the other arguments - // they can't occur with - // Python has 'conflicts = action_conflicts.setdefault(mutex_action, [])' - // though I can't conceive of a way in which an action could be a member - // of two different mutually exclusive groups. - - function actionHash(action) { - // some sort of hashable key for this action - // action itself cannot be a key in actionConflicts - // I think getName() (join of optionStrings) is unique enough - return action.getName(); - } - - var conflicts, key; - var actionConflicts = {}; - - this._mutuallyExclusiveGroups.forEach(function (mutexGroup) { - mutexGroup._groupActions.forEach(function (mutexAction, i, groupActions) { - key = actionHash(mutexAction); - if (!$$.has(actionConflicts, key)) { - actionConflicts[key] = []; - } - conflicts = actionConflicts[key]; - conflicts.push.apply(conflicts, groupActions.slice(0, i)); - conflicts.push.apply(conflicts, groupActions.slice(i + 1)); - }); - }); - - // find all option indices, and determine the arg_string_pattern - // which has an 'O' if there is an option at an index, - // an 'A' if there is an argument, or a '-' if there is a '--' - var optionStringIndices = {}; - - var argStringPatternParts = []; - - argStrings.forEach(function (argString, argStringIndex) { - if (argString === '--') { - argStringPatternParts.push('-'); - while (argStringIndex < argStrings.length) { - argStringPatternParts.push('A'); - argStringIndex++; - } - } else { - // otherwise, add the arg to the arg strings - // and note the index if it was an option - var pattern; - var optionTuple = self._parseOptional(argString); - if (!optionTuple) { - pattern = 'A'; - } else { - optionStringIndices[argStringIndex] = optionTuple; - pattern = 'O'; - } - argStringPatternParts.push(pattern); - } - }); - var argStringsPattern = argStringPatternParts.join(''); - - var seenActions = []; - var seenNonDefaultActions = []; - - - function takeAction(action, argumentStrings, optionString) { - seenActions.push(action); - var argumentValues = self._getValues(action, argumentStrings); - - // error if this argument is not allowed with other previously - // seen arguments, assuming that actions that use the default - // value don't really count as "present" - if (argumentValues !== action.defaultValue) { - seenNonDefaultActions.push(action); - if (actionConflicts[actionHash(action)]) { - actionConflicts[actionHash(action)].forEach(function (actionConflict) { - if (seenNonDefaultActions.indexOf(actionConflict) >= 0) { - throw argumentErrorHelper( - action, - format('Not allowed with argument "%s".', actionConflict.getName()) - ); - } - }); - } - } - - if (argumentValues !== c.SUPPRESS) { - action.call(self, namespace, argumentValues, optionString); - } - } - - function consumeOptional(startIndex) { - // get the optional identified at this index - var optionTuple = optionStringIndices[startIndex]; - var action = optionTuple[0]; - var optionString = optionTuple[1]; - var explicitArg = optionTuple[2]; - - // identify additional optionals in the same arg string - // (e.g. -xyz is the same as -x -y -z if no args are required) - var actionTuples = []; - - var args, argCount, start, stop; - - for (;;) { - if (!action) { - extras.push(argStrings[startIndex]); - return startIndex + 1; - } - if (explicitArg) { - argCount = self._matchArgument(action, 'A'); - - // if the action is a single-dash option and takes no - // arguments, try to parse more single-dash options out - // of the tail of the option string - var chars = self.prefixChars; - if (argCount === 0 && chars.indexOf(optionString[1]) < 0) { - actionTuples.push([ action, [], optionString ]); - optionString = optionString[0] + explicitArg[0]; - var newExplicitArg = explicitArg.slice(1) || null; - var optionalsMap = self._optionStringActions; - - if (Object.keys(optionalsMap).indexOf(optionString) >= 0) { - action = optionalsMap[optionString]; - explicitArg = newExplicitArg; - } else { - throw argumentErrorHelper(action, sprintf('ignored explicit argument %r', explicitArg)); - } - } else if (argCount === 1) { - // if the action expect exactly one argument, we've - // successfully matched the option; exit the loop - stop = startIndex + 1; - args = [ explicitArg ]; - actionTuples.push([ action, args, optionString ]); - break; - } else { - // error if a double-dash option did not use the - // explicit argument - throw argumentErrorHelper(action, sprintf('ignored explicit argument %r', explicitArg)); - } - } else { - // if there is no explicit argument, try to match the - // optional's string arguments with the following strings - // if successful, exit the loop - - start = startIndex + 1; - var selectedPatterns = argStringsPattern.substr(start); - - argCount = self._matchArgument(action, selectedPatterns); - stop = start + argCount; - - - args = argStrings.slice(start, stop); - - actionTuples.push([ action, args, optionString ]); - break; - } - - } - - // add the Optional to the list and return the index at which - // the Optional's string args stopped - if (actionTuples.length < 1) { - throw new Error('length should be > 0'); - } - for (var i = 0; i < actionTuples.length; i++) { - takeAction.apply(self, actionTuples[i]); - } - return stop; - } - - // the list of Positionals left to be parsed; this is modified - // by consume_positionals() - var positionals = self._getPositionalActions(); - - function consumePositionals(startIndex) { - // match as many Positionals as possible - var selectedPattern = argStringsPattern.substr(startIndex); - var argCounts = self._matchArgumentsPartial(positionals, selectedPattern); - - // slice off the appropriate arg strings for each Positional - // and add the Positional and its args to the list - for (var i = 0; i < positionals.length; i++) { - var action = positionals[i]; - var argCount = argCounts[i]; - if (typeof argCount === 'undefined') { - continue; - } - var args = argStrings.slice(startIndex, startIndex + argCount); - - startIndex += argCount; - takeAction(action, args); - } - - // slice off the Positionals that we just parsed and return the - // index at which the Positionals' string args stopped - positionals = positionals.slice(argCounts.length); - return startIndex; - } - - // consume Positionals and Optionals alternately, until we have - // passed the last option string - var startIndex = 0; - var position; - - var maxOptionStringIndex = -1; - - Object.keys(optionStringIndices).forEach(function (position) { - maxOptionStringIndex = Math.max(maxOptionStringIndex, parseInt(position, 10)); - }); - - var positionalsEndIndex, nextOptionStringIndex; - - while (startIndex <= maxOptionStringIndex) { - // consume any Positionals preceding the next option - nextOptionStringIndex = null; - for (position in optionStringIndices) { - if (!optionStringIndices.hasOwnProperty(position)) { continue; } - - position = parseInt(position, 10); - if (position >= startIndex) { - if (nextOptionStringIndex !== null) { - nextOptionStringIndex = Math.min(nextOptionStringIndex, position); - } else { - nextOptionStringIndex = position; - } - } - } - - if (startIndex !== nextOptionStringIndex) { - positionalsEndIndex = consumePositionals(startIndex); - // only try to parse the next optional if we didn't consume - // the option string during the positionals parsing - if (positionalsEndIndex > startIndex) { - startIndex = positionalsEndIndex; - continue; - } else { - startIndex = positionalsEndIndex; - } - } - - // if we consumed all the positionals we could and we're not - // at the index of an option string, there were extra arguments - if (!optionStringIndices[startIndex]) { - var strings = argStrings.slice(startIndex, nextOptionStringIndex); - extras = extras.concat(strings); - startIndex = nextOptionStringIndex; - } - // consume the next optional and any arguments for it - startIndex = consumeOptional(startIndex); - } - - // consume any positionals following the last Optional - var stopIndex = consumePositionals(startIndex); - - // if we didn't consume all the argument strings, there were extras - extras = extras.concat(argStrings.slice(stopIndex)); - - // if we didn't use all the Positional objects, there were too few - // arg strings supplied. - if (positionals.length > 0) { - self.error('too few arguments'); - } - - // make sure all required actions were present - self._actions.forEach(function (action) { - if (action.required) { - if (seenActions.indexOf(action) < 0) { - self.error(format('Argument "%s" is required', action.getName())); - } - } - }); - - // make sure all required groups have one option present - var actionUsed = false; - self._mutuallyExclusiveGroups.forEach(function (group) { - if (group.required) { - actionUsed = group._groupActions.some(function (action) { - return seenNonDefaultActions.indexOf(action) !== -1; - }); - - // if no actions were used, report the error - if (!actionUsed) { - var names = []; - group._groupActions.forEach(function (action) { - if (action.help !== c.SUPPRESS) { - names.push(action.getName()); - } - }); - names = names.join(' '); - var msg = 'one of the arguments ' + names + ' is required'; - self.error(msg); - } - } - }); - - // return the updated namespace and the extra arguments - return [ namespace, extras ]; -}; - -ArgumentParser.prototype._readArgsFromFiles = function (argStrings) { - // expand arguments referencing files - var self = this; - var fs = require('fs'); - var newArgStrings = []; - argStrings.forEach(function (argString) { - if (self.fromfilePrefixChars.indexOf(argString[0]) < 0) { - // for regular arguments, just add them back into the list - newArgStrings.push(argString); - } else { - // replace arguments referencing files with the file content - try { - var argstrs = []; - var filename = argString.slice(1); - var content = fs.readFileSync(filename, 'utf8'); - content = content.trim().split('\n'); - content.forEach(function (argLine) { - self.convertArgLineToArgs(argLine).forEach(function (arg) { - argstrs.push(arg); - }); - argstrs = self._readArgsFromFiles(argstrs); - }); - newArgStrings.push.apply(newArgStrings, argstrs); - } catch (error) { - return self.error(error.message); - } - } - }); - return newArgStrings; -}; - -ArgumentParser.prototype.convertArgLineToArgs = function (argLine) { - return [ argLine ]; -}; - -ArgumentParser.prototype._matchArgument = function (action, regexpArgStrings) { - - // match the pattern for this action to the arg strings - var regexpNargs = new RegExp('^' + this._getNargsPattern(action)); - var matches = regexpArgStrings.match(regexpNargs); - var message; - - // throw an exception if we weren't able to find a match - if (!matches) { - switch (action.nargs) { - /*eslint-disable no-undefined*/ - case undefined: - case null: - message = 'Expected one argument.'; - break; - case c.OPTIONAL: - message = 'Expected at most one argument.'; - break; - case c.ONE_OR_MORE: - message = 'Expected at least one argument.'; - break; - default: - message = 'Expected %s argument(s)'; - } - - throw argumentErrorHelper( - action, - format(message, action.nargs) - ); - } - // return the number of arguments matched - return matches[1].length; -}; - -ArgumentParser.prototype._matchArgumentsPartial = function (actions, regexpArgStrings) { - // progressively shorten the actions list by slicing off the - // final actions until we find a match - var self = this; - var result = []; - var actionSlice, pattern, matches; - var i, j; - - function getLength(string) { - return string.length; - } - - for (i = actions.length; i > 0; i--) { - pattern = ''; - actionSlice = actions.slice(0, i); - for (j = 0; j < actionSlice.length; j++) { - pattern += self._getNargsPattern(actionSlice[j]); - } - - pattern = new RegExp('^' + pattern); - matches = regexpArgStrings.match(pattern); - - if (matches && matches.length > 0) { - // need only groups - matches = matches.splice(1); - result = result.concat(matches.map(getLength)); - break; - } - } - - // return the list of arg string counts - return result; -}; - -ArgumentParser.prototype._parseOptional = function (argString) { - var action, optionString, argExplicit, optionTuples; - - // if it's an empty string, it was meant to be a positional - if (!argString) { - return null; - } - - // if it doesn't start with a prefix, it was meant to be positional - if (this.prefixChars.indexOf(argString[0]) < 0) { - return null; - } - - // if the option string is present in the parser, return the action - if (this._optionStringActions[argString]) { - return [ this._optionStringActions[argString], argString, null ]; - } - - // if it's just a single character, it was meant to be positional - if (argString.length === 1) { - return null; - } - - // if the option string before the "=" is present, return the action - if (argString.indexOf('=') >= 0) { - optionString = argString.split('=', 1)[0]; - argExplicit = argString.slice(optionString.length + 1); - - if (this._optionStringActions[optionString]) { - action = this._optionStringActions[optionString]; - return [ action, optionString, argExplicit ]; - } - } - - // search through all possible prefixes of the option string - // and all actions in the parser for possible interpretations - optionTuples = this._getOptionTuples(argString); - - // if multiple actions match, the option string was ambiguous - if (optionTuples.length > 1) { - var optionStrings = optionTuples.map(function (optionTuple) { - return optionTuple[1]; - }); - this.error(format( - 'Ambiguous option: "%s" could match %s.', - argString, optionStrings.join(', ') - )); - // if exactly one action matched, this segmentation is good, - // so return the parsed action - } else if (optionTuples.length === 1) { - return optionTuples[0]; - } - - // if it was not found as an option, but it looks like a negative - // number, it was meant to be positional - // unless there are negative-number-like options - if (argString.match(this._regexpNegativeNumber)) { - if (!this._hasNegativeNumberOptionals.some(Boolean)) { - return null; - } - } - // if it contains a space, it was meant to be a positional - if (argString.search(' ') >= 0) { - return null; - } - - // it was meant to be an optional but there is no such option - // in this parser (though it might be a valid option in a subparser) - return [ null, argString, null ]; -}; - -ArgumentParser.prototype._getOptionTuples = function (optionString) { - var result = []; - var chars = this.prefixChars; - var optionPrefix; - var argExplicit; - var action; - var actionOptionString; - - // option strings starting with two prefix characters are only split at - // the '=' - if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) >= 0) { - if (optionString.indexOf('=') >= 0) { - var optionStringSplit = optionString.split('=', 1); - - optionPrefix = optionStringSplit[0]; - argExplicit = optionStringSplit[1]; - } else { - optionPrefix = optionString; - argExplicit = null; - } - - for (actionOptionString in this._optionStringActions) { - if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) { - action = this._optionStringActions[actionOptionString]; - result.push([ action, actionOptionString, argExplicit ]); - } - } - - // single character options can be concatenated with their arguments - // but multiple character options always have to have their argument - // separate - } else if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) < 0) { - optionPrefix = optionString; - argExplicit = null; - var optionPrefixShort = optionString.substr(0, 2); - var argExplicitShort = optionString.substr(2); - - for (actionOptionString in this._optionStringActions) { - if (!$$.has(this._optionStringActions, actionOptionString)) continue; - - action = this._optionStringActions[actionOptionString]; - if (actionOptionString === optionPrefixShort) { - result.push([ action, actionOptionString, argExplicitShort ]); - } else if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) { - result.push([ action, actionOptionString, argExplicit ]); - } - } - - // shouldn't ever get here - } else { - throw new Error(format('Unexpected option string: %s.', optionString)); - } - // return the collected option tuples - return result; -}; - -ArgumentParser.prototype._getNargsPattern = function (action) { - // in all examples below, we have to allow for '--' args - // which are represented as '-' in the pattern - var regexpNargs; - - switch (action.nargs) { - // the default (null) is assumed to be a single argument - case undefined: - case null: - regexpNargs = '(-*A-*)'; - break; - // allow zero or more arguments - case c.OPTIONAL: - regexpNargs = '(-*A?-*)'; - break; - // allow zero or more arguments - case c.ZERO_OR_MORE: - regexpNargs = '(-*[A-]*)'; - break; - // allow one or more arguments - case c.ONE_OR_MORE: - regexpNargs = '(-*A[A-]*)'; - break; - // allow any number of options or arguments - case c.REMAINDER: - regexpNargs = '([-AO]*)'; - break; - // allow one argument followed by any number of options or arguments - case c.PARSER: - regexpNargs = '(-*A[-AO]*)'; - break; - // all others should be integers - default: - regexpNargs = '(-*' + $$.repeat('-*A', action.nargs) + '-*)'; - } - - // if this is an optional action, -- is not allowed - if (action.isOptional()) { - regexpNargs = regexpNargs.replace(/-\*/g, ''); - regexpNargs = regexpNargs.replace(/-/g, ''); - } - - // return the pattern - return regexpNargs; -}; - -// -// Value conversion methods -// - -ArgumentParser.prototype._getValues = function (action, argStrings) { - var self = this; - - // for everything but PARSER args, strip out '--' - if (action.nargs !== c.PARSER && action.nargs !== c.REMAINDER) { - argStrings = argStrings.filter(function (arrayElement) { - return arrayElement !== '--'; - }); - } - - var value, argString; - - // optional argument produces a default when not present - if (argStrings.length === 0 && action.nargs === c.OPTIONAL) { - - value = (action.isOptional()) ? action.constant : action.defaultValue; - - if (typeof (value) === 'string') { - value = this._getValue(action, value); - this._checkValue(action, value); - } - - // when nargs='*' on a positional, if there were no command-line - // args, use the default if it is anything other than None - } else if (argStrings.length === 0 && action.nargs === c.ZERO_OR_MORE && - action.optionStrings.length === 0) { - - value = (action.defaultValue || argStrings); - this._checkValue(action, value); - - // single argument or optional argument produces a single value - } else if (argStrings.length === 1 && - (!action.nargs || action.nargs === c.OPTIONAL)) { - - argString = argStrings[0]; - value = this._getValue(action, argString); - this._checkValue(action, value); - - // REMAINDER arguments convert all values, checking none - } else if (action.nargs === c.REMAINDER) { - value = argStrings.map(function (v) { - return self._getValue(action, v); - }); - - // PARSER arguments convert all values, but check only the first - } else if (action.nargs === c.PARSER) { - value = argStrings.map(function (v) { - return self._getValue(action, v); - }); - this._checkValue(action, value[0]); - - // all other types of nargs produce a list - } else { - value = argStrings.map(function (v) { - return self._getValue(action, v); - }); - value.forEach(function (v) { - self._checkValue(action, v); - }); - } - - // return the converted value - return value; -}; - -ArgumentParser.prototype._getValue = function (action, argString) { - var result; - - var typeFunction = this._registryGet('type', action.type, action.type); - if (typeof typeFunction !== 'function') { - var message = format('%s is not callable', typeFunction); - throw argumentErrorHelper(action, message); - } - - // convert the value to the appropriate type - try { - result = typeFunction(argString); - - // ArgumentTypeErrors indicate errors - // If action.type is not a registered string, it is a function - // Try to deduce its name for inclusion in the error message - // Failing that, include the error message it raised. - } catch (e) { - var name = null; - if (typeof action.type === 'string') { - name = action.type; - } else { - name = action.type.name || action.type.displayName || ''; - } - var msg = format('Invalid %s value: %s', name, argString); - if (name === '') { msg += '\n' + e.message; } - throw argumentErrorHelper(action, msg); - } - // return the converted value - return result; -}; - -ArgumentParser.prototype._checkValue = function (action, value) { - // converted value must be one of the choices (if specified) - var choices = action.choices; - if (choices) { - // choise for argument can by array or string - if ((typeof choices === 'string' || Array.isArray(choices)) && - choices.indexOf(value) !== -1) { - return; - } - // choise for subparsers can by only hash - if (typeof choices === 'object' && !Array.isArray(choices) && choices[value]) { - return; - } - - if (typeof choices === 'string') { - choices = choices.split('').join(', '); - } else if (Array.isArray(choices)) { - choices = choices.join(', '); - } else { - choices = Object.keys(choices).join(', '); - } - var message = format('Invalid choice: %s (choose from [%s])', value, choices); - throw argumentErrorHelper(action, message); - } -}; - -// -// Help formatting methods -// - -/** - * ArgumentParser#formatUsage -> string - * - * Return usage string - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help - **/ -ArgumentParser.prototype.formatUsage = function () { - var formatter = this._getFormatter(); - formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups); - return formatter.formatHelp(); -}; - -/** - * ArgumentParser#formatHelp -> string - * - * Return help - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help - **/ -ArgumentParser.prototype.formatHelp = function () { - var formatter = this._getFormatter(); - - // usage - formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups); - - // description - formatter.addText(this.description); - - // positionals, optionals and user-defined groups - this._actionGroups.forEach(function (actionGroup) { - formatter.startSection(actionGroup.title); - formatter.addText(actionGroup.description); - formatter.addArguments(actionGroup._groupActions); - formatter.endSection(); - }); - - // epilog - formatter.addText(this.epilog); - - // determine help from format above - return formatter.formatHelp(); -}; - -ArgumentParser.prototype._getFormatter = function () { - var FormatterClass = this.formatterClass; - var formatter = new FormatterClass({ prog: this.prog }); - return formatter; -}; - -// -// Print functions -// - -/** - * ArgumentParser#printUsage() -> Void - * - * Print usage - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help - **/ -ArgumentParser.prototype.printUsage = function () { - this._printMessage(this.formatUsage()); -}; - -/** - * ArgumentParser#printHelp() -> Void - * - * Print help - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#printing-help - **/ -ArgumentParser.prototype.printHelp = function () { - this._printMessage(this.formatHelp()); -}; - -ArgumentParser.prototype._printMessage = function (message, stream) { - if (!stream) { - stream = process.stdout; - } - if (message) { - stream.write('' + message); - } -}; - -// -// Exit functions -// - -/** - * ArgumentParser#exit(status=0, message) -> Void - * - status (int): exit status - * - message (string): message - * - * Print message in stderr/stdout and exit program - **/ -ArgumentParser.prototype.exit = function (status, message) { - if (message) { - if (status === 0) { - this._printMessage(message); - } else { - this._printMessage(message, process.stderr); - } - } - - process.exit(status); -}; - -/** - * ArgumentParser#error(message) -> Void - * - err (Error|string): message - * - * Error method Prints a usage message incorporating the message to stderr and - * exits. If you override this in a subclass, - * it should not return -- it should - * either exit or throw an exception. - * - **/ -ArgumentParser.prototype.error = function (err) { - var message; - if (err instanceof Error) { - if (this.debug === true) { - throw err; - } - message = err.message; - } else { - message = err; - } - var msg = format('%s: error: %s', this.prog, message) + c.EOL; - - if (this.debug === true) { - throw new Error(msg); - } - - this.printUsage(process.stderr); - - return this.exit(2, msg); -}; - -module.exports = ArgumentParser; diff --git a/tools/doc/node_modules/argparse/lib/const.js b/tools/doc/node_modules/argparse/lib/const.js deleted file mode 100644 index b1fd4ced4e888b..00000000000000 --- a/tools/doc/node_modules/argparse/lib/const.js +++ /dev/null @@ -1,21 +0,0 @@ -// -// Constants -// - -'use strict'; - -module.exports.EOL = '\n'; - -module.exports.SUPPRESS = '==SUPPRESS=='; - -module.exports.OPTIONAL = '?'; - -module.exports.ZERO_OR_MORE = '*'; - -module.exports.ONE_OR_MORE = '+'; - -module.exports.PARSER = 'A...'; - -module.exports.REMAINDER = '...'; - -module.exports._UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args'; diff --git a/tools/doc/node_modules/argparse/lib/help/added_formatters.js b/tools/doc/node_modules/argparse/lib/help/added_formatters.js deleted file mode 100644 index f8e42998e9bf58..00000000000000 --- a/tools/doc/node_modules/argparse/lib/help/added_formatters.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict'; - -var util = require('util'); - -// Constants -var c = require('../const'); - -var $$ = require('../utils'); -var HelpFormatter = require('./formatter.js'); - -/** - * new RawDescriptionHelpFormatter(options) - * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...}) - * - * Help message formatter which adds default values to argument help. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - **/ - -function ArgumentDefaultsHelpFormatter(options) { - HelpFormatter.call(this, options); -} - -util.inherits(ArgumentDefaultsHelpFormatter, HelpFormatter); - -ArgumentDefaultsHelpFormatter.prototype._getHelpString = function (action) { - var help = action.help; - if (action.help.indexOf('%(defaultValue)s') === -1) { - if (action.defaultValue !== c.SUPPRESS) { - var defaulting_nargs = [ c.OPTIONAL, c.ZERO_OR_MORE ]; - if (action.isOptional() || (defaulting_nargs.indexOf(action.nargs) >= 0)) { - help += ' (default: %(defaultValue)s)'; - } - } - } - return help; -}; - -module.exports.ArgumentDefaultsHelpFormatter = ArgumentDefaultsHelpFormatter; - -/** - * new RawDescriptionHelpFormatter(options) - * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...}) - * - * Help message formatter which retains any formatting in descriptions. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - **/ - -function RawDescriptionHelpFormatter(options) { - HelpFormatter.call(this, options); -} - -util.inherits(RawDescriptionHelpFormatter, HelpFormatter); - -RawDescriptionHelpFormatter.prototype._fillText = function (text, width, indent) { - var lines = text.split('\n'); - lines = lines.map(function (line) { - return $$.trimEnd(indent + line); - }); - return lines.join('\n'); -}; -module.exports.RawDescriptionHelpFormatter = RawDescriptionHelpFormatter; - -/** - * new RawTextHelpFormatter(options) - * new ArgumentParser({formatterClass: argparse.RawTextHelpFormatter, ...}) - * - * Help message formatter which retains formatting of all help text. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - **/ - -function RawTextHelpFormatter(options) { - RawDescriptionHelpFormatter.call(this, options); -} - -util.inherits(RawTextHelpFormatter, RawDescriptionHelpFormatter); - -RawTextHelpFormatter.prototype._splitLines = function (text) { - return text.split('\n'); -}; - -module.exports.RawTextHelpFormatter = RawTextHelpFormatter; diff --git a/tools/doc/node_modules/argparse/lib/help/formatter.js b/tools/doc/node_modules/argparse/lib/help/formatter.js deleted file mode 100644 index 29036c14b2e156..00000000000000 --- a/tools/doc/node_modules/argparse/lib/help/formatter.js +++ /dev/null @@ -1,795 +0,0 @@ -/** - * class HelpFormatter - * - * Formatter for generating usage messages and argument help strings. Only the - * name of this class is considered a public API. All the methods provided by - * the class are considered an implementation detail. - * - * Do not call in your code, use this class only for inherits your own forvatter - * - * ToDo add [additonal formatters][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#formatter-class - **/ -'use strict'; - -var sprintf = require('sprintf-js').sprintf; - -// Constants -var c = require('../const'); - -var $$ = require('../utils'); - - -/*:nodoc:* internal - * new Support(parent, heding) - * - parent (object): parent section - * - heading (string): header string - * - **/ -function Section(parent, heading) { - this._parent = parent; - this._heading = heading; - this._items = []; -} - -/*:nodoc:* internal - * Section#addItem(callback) -> Void - * - callback (array): tuple with function and args - * - * Add function for single element - **/ -Section.prototype.addItem = function (callback) { - this._items.push(callback); -}; - -/*:nodoc:* internal - * Section#formatHelp(formatter) -> string - * - formatter (HelpFormatter): current formatter - * - * Form help section string - * - **/ -Section.prototype.formatHelp = function (formatter) { - var itemHelp, heading; - - // format the indented section - if (this._parent) { - formatter._indent(); - } - - itemHelp = this._items.map(function (item) { - var obj, func, args; - - obj = formatter; - func = item[0]; - args = item[1]; - return func.apply(obj, args); - }); - itemHelp = formatter._joinParts(itemHelp); - - if (this._parent) { - formatter._dedent(); - } - - // return nothing if the section was empty - if (!itemHelp) { - return ''; - } - - // add the heading if the section was non-empty - heading = ''; - if (this._heading && this._heading !== c.SUPPRESS) { - var currentIndent = formatter.currentIndent; - heading = $$.repeat(' ', currentIndent) + this._heading + ':' + c.EOL; - } - - // join the section-initialize newline, the heading and the help - return formatter._joinParts([ c.EOL, heading, itemHelp, c.EOL ]); -}; - -/** - * new HelpFormatter(options) - * - * #### Options: - * - `prog`: program name - * - `indentIncriment`: indent step, default value 2 - * - `maxHelpPosition`: max help position, default value = 24 - * - `width`: line width - * - **/ -var HelpFormatter = module.exports = function HelpFormatter(options) { - options = options || {}; - - this._prog = options.prog; - - this._maxHelpPosition = options.maxHelpPosition || 24; - this._width = (options.width || ((process.env.COLUMNS || 80) - 2)); - - this._currentIndent = 0; - this._indentIncriment = options.indentIncriment || 2; - this._level = 0; - this._actionMaxLength = 0; - - this._rootSection = new Section(null); - this._currentSection = this._rootSection; - - this._whitespaceMatcher = new RegExp('\\s+', 'g'); - this._longBreakMatcher = new RegExp(c.EOL + c.EOL + c.EOL + '+', 'g'); -}; - -HelpFormatter.prototype._indent = function () { - this._currentIndent += this._indentIncriment; - this._level += 1; -}; - -HelpFormatter.prototype._dedent = function () { - this._currentIndent -= this._indentIncriment; - this._level -= 1; - if (this._currentIndent < 0) { - throw new Error('Indent decreased below 0.'); - } -}; - -HelpFormatter.prototype._addItem = function (func, args) { - this._currentSection.addItem([ func, args ]); -}; - -// -// Message building methods -// - -/** - * HelpFormatter#startSection(heading) -> Void - * - heading (string): header string - * - * Start new help section - * - * See alse [code example][1] - * - * ##### Example - * - * formatter.startSection(actionGroup.title); - * formatter.addText(actionGroup.description); - * formatter.addArguments(actionGroup._groupActions); - * formatter.endSection(); - * - **/ -HelpFormatter.prototype.startSection = function (heading) { - this._indent(); - var section = new Section(this._currentSection, heading); - var func = section.formatHelp.bind(section); - this._addItem(func, [ this ]); - this._currentSection = section; -}; - -/** - * HelpFormatter#endSection -> Void - * - * End help section - * - * ##### Example - * - * formatter.startSection(actionGroup.title); - * formatter.addText(actionGroup.description); - * formatter.addArguments(actionGroup._groupActions); - * formatter.endSection(); - **/ -HelpFormatter.prototype.endSection = function () { - this._currentSection = this._currentSection._parent; - this._dedent(); -}; - -/** - * HelpFormatter#addText(text) -> Void - * - text (string): plain text - * - * Add plain text into current section - * - * ##### Example - * - * formatter.startSection(actionGroup.title); - * formatter.addText(actionGroup.description); - * formatter.addArguments(actionGroup._groupActions); - * formatter.endSection(); - * - **/ -HelpFormatter.prototype.addText = function (text) { - if (text && text !== c.SUPPRESS) { - this._addItem(this._formatText, [ text ]); - } -}; - -/** - * HelpFormatter#addUsage(usage, actions, groups, prefix) -> Void - * - usage (string): usage text - * - actions (array): actions list - * - groups (array): groups list - * - prefix (string): usage prefix - * - * Add usage data into current section - * - * ##### Example - * - * formatter.addUsage(this.usage, this._actions, []); - * return formatter.formatHelp(); - * - **/ -HelpFormatter.prototype.addUsage = function (usage, actions, groups, prefix) { - if (usage !== c.SUPPRESS) { - this._addItem(this._formatUsage, [ usage, actions, groups, prefix ]); - } -}; - -/** - * HelpFormatter#addArgument(action) -> Void - * - action (object): action - * - * Add argument into current section - * - * Single variant of [[HelpFormatter#addArguments]] - **/ -HelpFormatter.prototype.addArgument = function (action) { - if (action.help !== c.SUPPRESS) { - var self = this; - - // find all invocations - var invocations = [ this._formatActionInvocation(action) ]; - var invocationLength = invocations[0].length; - - var actionLength; - - if (action._getSubactions) { - this._indent(); - action._getSubactions().forEach(function (subaction) { - - var invocationNew = self._formatActionInvocation(subaction); - invocations.push(invocationNew); - invocationLength = Math.max(invocationLength, invocationNew.length); - - }); - this._dedent(); - } - - // update the maximum item length - actionLength = invocationLength + this._currentIndent; - this._actionMaxLength = Math.max(this._actionMaxLength, actionLength); - - // add the item to the list - this._addItem(this._formatAction, [ action ]); - } -}; - -/** - * HelpFormatter#addArguments(actions) -> Void - * - actions (array): actions list - * - * Mass add arguments into current section - * - * ##### Example - * - * formatter.startSection(actionGroup.title); - * formatter.addText(actionGroup.description); - * formatter.addArguments(actionGroup._groupActions); - * formatter.endSection(); - * - **/ -HelpFormatter.prototype.addArguments = function (actions) { - var self = this; - actions.forEach(function (action) { - self.addArgument(action); - }); -}; - -// -// Help-formatting methods -// - -/** - * HelpFormatter#formatHelp -> string - * - * Format help - * - * ##### Example - * - * formatter.addText(this.epilog); - * return formatter.formatHelp(); - * - **/ -HelpFormatter.prototype.formatHelp = function () { - var help = this._rootSection.formatHelp(this); - if (help) { - help = help.replace(this._longBreakMatcher, c.EOL + c.EOL); - help = $$.trimChars(help, c.EOL) + c.EOL; - } - return help; -}; - -HelpFormatter.prototype._joinParts = function (partStrings) { - return partStrings.filter(function (part) { - return (part && part !== c.SUPPRESS); - }).join(''); -}; - -HelpFormatter.prototype._formatUsage = function (usage, actions, groups, prefix) { - if (!prefix && typeof prefix !== 'string') { - prefix = 'usage: '; - } - - actions = actions || []; - groups = groups || []; - - - // if usage is specified, use that - if (usage) { - usage = sprintf(usage, { prog: this._prog }); - - // if no optionals or positionals are available, usage is just prog - } else if (!usage && actions.length === 0) { - usage = this._prog; - - // if optionals and positionals are available, calculate usage - } else if (!usage) { - var prog = this._prog; - var optionals = []; - var positionals = []; - var actionUsage; - var textWidth; - - // split optionals from positionals - actions.forEach(function (action) { - if (action.isOptional()) { - optionals.push(action); - } else { - positionals.push(action); - } - }); - - // build full usage string - actionUsage = this._formatActionsUsage([].concat(optionals, positionals), groups); - usage = [ prog, actionUsage ].join(' '); - - // wrap the usage parts if it's too long - textWidth = this._width - this._currentIndent; - if ((prefix.length + usage.length) > textWidth) { - - // break usage into wrappable parts - var regexpPart = new RegExp('\\(.*?\\)+|\\[.*?\\]+|\\S+', 'g'); - var optionalUsage = this._formatActionsUsage(optionals, groups); - var positionalUsage = this._formatActionsUsage(positionals, groups); - - - var optionalParts = optionalUsage.match(regexpPart); - var positionalParts = positionalUsage.match(regexpPart) || []; - - if (optionalParts.join(' ') !== optionalUsage) { - throw new Error('assert "optionalParts.join(\' \') === optionalUsage"'); - } - if (positionalParts.join(' ') !== positionalUsage) { - throw new Error('assert "positionalParts.join(\' \') === positionalUsage"'); - } - - // helper for wrapping lines - /*eslint-disable func-style*/ // node 0.10 compat - var _getLines = function (parts, indent, prefix) { - var lines = []; - var line = []; - - var lineLength = prefix ? prefix.length - 1 : indent.length - 1; - - parts.forEach(function (part) { - if (lineLength + 1 + part.length > textWidth) { - lines.push(indent + line.join(' ')); - line = []; - lineLength = indent.length - 1; - } - line.push(part); - lineLength += part.length + 1; - }); - - if (line) { - lines.push(indent + line.join(' ')); - } - if (prefix) { - lines[0] = lines[0].substr(indent.length); - } - return lines; - }; - - var lines, indent, parts; - // if prog is short, follow it with optionals or positionals - if (prefix.length + prog.length <= 0.75 * textWidth) { - indent = $$.repeat(' ', (prefix.length + prog.length + 1)); - if (optionalParts) { - lines = [].concat( - _getLines([ prog ].concat(optionalParts), indent, prefix), - _getLines(positionalParts, indent) - ); - } else if (positionalParts) { - lines = _getLines([ prog ].concat(positionalParts), indent, prefix); - } else { - lines = [ prog ]; - } - - // if prog is long, put it on its own line - } else { - indent = $$.repeat(' ', prefix.length); - parts = optionalParts.concat(positionalParts); - lines = _getLines(parts, indent); - if (lines.length > 1) { - lines = [].concat( - _getLines(optionalParts, indent), - _getLines(positionalParts, indent) - ); - } - lines = [ prog ].concat(lines); - } - // join lines into usage - usage = lines.join(c.EOL); - } - } - - // prefix with 'usage:' - return prefix + usage + c.EOL + c.EOL; -}; - -HelpFormatter.prototype._formatActionsUsage = function (actions, groups) { - // find group indices and identify actions in groups - var groupActions = []; - var inserts = []; - var self = this; - - groups.forEach(function (group) { - var end; - var i; - - var start = actions.indexOf(group._groupActions[0]); - if (start >= 0) { - end = start + group._groupActions.length; - - //if (actions.slice(start, end) === group._groupActions) { - if ($$.arrayEqual(actions.slice(start, end), group._groupActions)) { - group._groupActions.forEach(function (action) { - groupActions.push(action); - }); - - if (!group.required) { - if (inserts[start]) { - inserts[start] += ' ['; - } else { - inserts[start] = '['; - } - inserts[end] = ']'; - } else { - if (inserts[start]) { - inserts[start] += ' ('; - } else { - inserts[start] = '('; - } - inserts[end] = ')'; - } - for (i = start + 1; i < end; i += 1) { - inserts[i] = '|'; - } - } - } - }); - - // collect all actions format strings - var parts = []; - - actions.forEach(function (action, actionIndex) { - var part; - var optionString; - var argsDefault; - var argsString; - - // suppressed arguments are marked with None - // remove | separators for suppressed arguments - if (action.help === c.SUPPRESS) { - parts.push(null); - if (inserts[actionIndex] === '|') { - inserts.splice(actionIndex, actionIndex); - } else if (inserts[actionIndex + 1] === '|') { - inserts.splice(actionIndex + 1, actionIndex + 1); - } - - // produce all arg strings - } else if (!action.isOptional()) { - part = self._formatArgs(action, action.dest); - - // if it's in a group, strip the outer [] - if (groupActions.indexOf(action) >= 0) { - if (part[0] === '[' && part[part.length - 1] === ']') { - part = part.slice(1, -1); - } - } - // add the action string to the list - parts.push(part); - - // produce the first way to invoke the option in brackets - } else { - optionString = action.optionStrings[0]; - - // if the Optional doesn't take a value, format is: -s or --long - if (action.nargs === 0) { - part = '' + optionString; - - // if the Optional takes a value, format is: -s ARGS or --long ARGS - } else { - argsDefault = action.dest.toUpperCase(); - argsString = self._formatArgs(action, argsDefault); - part = optionString + ' ' + argsString; - } - // make it look optional if it's not required or in a group - if (!action.required && groupActions.indexOf(action) < 0) { - part = '[' + part + ']'; - } - // add the action string to the list - parts.push(part); - } - }); - - // insert things at the necessary indices - for (var i = inserts.length - 1; i >= 0; --i) { - if (inserts[i] !== null) { - parts.splice(i, 0, inserts[i]); - } - } - - // join all the action items with spaces - var text = parts.filter(function (part) { - return !!part; - }).join(' '); - - // clean up separators for mutually exclusive groups - text = text.replace(/([\[(]) /g, '$1'); // remove spaces - text = text.replace(/ ([\])])/g, '$1'); - text = text.replace(/\[ *\]/g, ''); // remove empty groups - text = text.replace(/\( *\)/g, ''); - text = text.replace(/\(([^|]*)\)/g, '$1'); // remove () from single action groups - - text = text.trim(); - - // return the text - return text; -}; - -HelpFormatter.prototype._formatText = function (text) { - text = sprintf(text, { prog: this._prog }); - var textWidth = this._width - this._currentIndent; - var indentIncriment = $$.repeat(' ', this._currentIndent); - return this._fillText(text, textWidth, indentIncriment) + c.EOL + c.EOL; -}; - -HelpFormatter.prototype._formatAction = function (action) { - var self = this; - - var helpText; - var helpLines; - var parts; - var indentFirst; - - // determine the required width and the entry label - var helpPosition = Math.min(this._actionMaxLength + 2, this._maxHelpPosition); - var helpWidth = this._width - helpPosition; - var actionWidth = helpPosition - this._currentIndent - 2; - var actionHeader = this._formatActionInvocation(action); - - // no help; start on same line and add a final newline - if (!action.help) { - actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL; - - // short action name; start on the same line and pad two spaces - } else if (actionHeader.length <= actionWidth) { - actionHeader = $$.repeat(' ', this._currentIndent) + - actionHeader + - ' ' + - $$.repeat(' ', actionWidth - actionHeader.length); - indentFirst = 0; - - // long action name; start on the next line - } else { - actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL; - indentFirst = helpPosition; - } - - // collect the pieces of the action help - parts = [ actionHeader ]; - - // if there was help for the action, add lines of help text - if (action.help) { - helpText = this._expandHelp(action); - helpLines = this._splitLines(helpText, helpWidth); - parts.push($$.repeat(' ', indentFirst) + helpLines[0] + c.EOL); - helpLines.slice(1).forEach(function (line) { - parts.push($$.repeat(' ', helpPosition) + line + c.EOL); - }); - - // or add a newline if the description doesn't end with one - } else if (actionHeader.charAt(actionHeader.length - 1) !== c.EOL) { - parts.push(c.EOL); - } - // if there are any sub-actions, add their help as well - if (action._getSubactions) { - this._indent(); - action._getSubactions().forEach(function (subaction) { - parts.push(self._formatAction(subaction)); - }); - this._dedent(); - } - // return a single string - return this._joinParts(parts); -}; - -HelpFormatter.prototype._formatActionInvocation = function (action) { - if (!action.isOptional()) { - var format_func = this._metavarFormatter(action, action.dest); - var metavars = format_func(1); - return metavars[0]; - } - - var parts = []; - var argsDefault; - var argsString; - - // if the Optional doesn't take a value, format is: -s, --long - if (action.nargs === 0) { - parts = parts.concat(action.optionStrings); - - // if the Optional takes a value, format is: -s ARGS, --long ARGS - } else { - argsDefault = action.dest.toUpperCase(); - argsString = this._formatArgs(action, argsDefault); - action.optionStrings.forEach(function (optionString) { - parts.push(optionString + ' ' + argsString); - }); - } - return parts.join(', '); -}; - -HelpFormatter.prototype._metavarFormatter = function (action, metavarDefault) { - var result; - - if (action.metavar || action.metavar === '') { - result = action.metavar; - } else if (action.choices) { - var choices = action.choices; - - if (typeof choices === 'string') { - choices = choices.split('').join(', '); - } else if (Array.isArray(choices)) { - choices = choices.join(','); - } else { - choices = Object.keys(choices).join(','); - } - result = '{' + choices + '}'; - } else { - result = metavarDefault; - } - - return function (size) { - if (Array.isArray(result)) { - return result; - } - - var metavars = []; - for (var i = 0; i < size; i += 1) { - metavars.push(result); - } - return metavars; - }; -}; - -HelpFormatter.prototype._formatArgs = function (action, metavarDefault) { - var result; - var metavars; - - var buildMetavar = this._metavarFormatter(action, metavarDefault); - - switch (action.nargs) { - /*eslint-disable no-undefined*/ - case undefined: - case null: - metavars = buildMetavar(1); - result = '' + metavars[0]; - break; - case c.OPTIONAL: - metavars = buildMetavar(1); - result = '[' + metavars[0] + ']'; - break; - case c.ZERO_OR_MORE: - metavars = buildMetavar(2); - result = '[' + metavars[0] + ' [' + metavars[1] + ' ...]]'; - break; - case c.ONE_OR_MORE: - metavars = buildMetavar(2); - result = '' + metavars[0] + ' [' + metavars[1] + ' ...]'; - break; - case c.REMAINDER: - result = '...'; - break; - case c.PARSER: - metavars = buildMetavar(1); - result = metavars[0] + ' ...'; - break; - default: - metavars = buildMetavar(action.nargs); - result = metavars.join(' '); - } - return result; -}; - -HelpFormatter.prototype._expandHelp = function (action) { - var params = { prog: this._prog }; - - Object.keys(action).forEach(function (actionProperty) { - var actionValue = action[actionProperty]; - - if (actionValue !== c.SUPPRESS) { - params[actionProperty] = actionValue; - } - }); - - if (params.choices) { - if (typeof params.choices === 'string') { - params.choices = params.choices.split('').join(', '); - } else if (Array.isArray(params.choices)) { - params.choices = params.choices.join(', '); - } else { - params.choices = Object.keys(params.choices).join(', '); - } - } - - return sprintf(this._getHelpString(action), params); -}; - -HelpFormatter.prototype._splitLines = function (text, width) { - var lines = []; - var delimiters = [ ' ', '.', ',', '!', '?' ]; - var re = new RegExp('[' + delimiters.join('') + '][^' + delimiters.join('') + ']*$'); - - text = text.replace(/[\n\|\t]/g, ' '); - - text = text.trim(); - text = text.replace(this._whitespaceMatcher, ' '); - - // Wraps the single paragraph in text (a string) so every line - // is at most width characters long. - text.split(c.EOL).forEach(function (line) { - if (width >= line.length) { - lines.push(line); - return; - } - - var wrapStart = 0; - var wrapEnd = width; - var delimiterIndex = 0; - while (wrapEnd <= line.length) { - if (wrapEnd !== line.length && delimiters.indexOf(line[wrapEnd] < -1)) { - delimiterIndex = (re.exec(line.substring(wrapStart, wrapEnd)) || {}).index; - wrapEnd = wrapStart + delimiterIndex + 1; - } - lines.push(line.substring(wrapStart, wrapEnd)); - wrapStart = wrapEnd; - wrapEnd += width; - } - if (wrapStart < line.length) { - lines.push(line.substring(wrapStart, wrapEnd)); - } - }); - - return lines; -}; - -HelpFormatter.prototype._fillText = function (text, width, indent) { - var lines = this._splitLines(text, width); - lines = lines.map(function (line) { - return indent + line; - }); - return lines.join(c.EOL); -}; - -HelpFormatter.prototype._getHelpString = function (action) { - return action.help; -}; diff --git a/tools/doc/node_modules/argparse/lib/namespace.js b/tools/doc/node_modules/argparse/lib/namespace.js deleted file mode 100644 index a860de9ecc48dd..00000000000000 --- a/tools/doc/node_modules/argparse/lib/namespace.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * class Namespace - * - * Simple object for storing attributes. Implements equality by attribute names - * and values, and provides a simple string representation. - * - * See also [original guide][1] - * - * [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object - **/ -'use strict'; - -var $$ = require('./utils'); - -/** - * new Namespace(options) - * - options(object): predefined propertis for result object - * - **/ -var Namespace = module.exports = function Namespace(options) { - $$.extend(this, options); -}; - -/** - * Namespace#isset(key) -> Boolean - * - key (string|number): property name - * - * Tells whenever `namespace` contains given `key` or not. - **/ -Namespace.prototype.isset = function (key) { - return $$.has(this, key); -}; - -/** - * Namespace#set(key, value) -> self - * -key (string|number|object): propery name - * -value (mixed): new property value - * - * Set the property named key with value. - * If key object then set all key properties to namespace object - **/ -Namespace.prototype.set = function (key, value) { - if (typeof (key) === 'object') { - $$.extend(this, key); - } else { - this[key] = value; - } - return this; -}; - -/** - * Namespace#get(key, defaultValue) -> mixed - * - key (string|number): property name - * - defaultValue (mixed): default value - * - * Return the property key or defaulValue if not set - **/ -Namespace.prototype.get = function (key, defaultValue) { - return !this[key] ? defaultValue : this[key]; -}; - -/** - * Namespace#unset(key, defaultValue) -> mixed - * - key (string|number): property name - * - defaultValue (mixed): default value - * - * Return data[key](and delete it) or defaultValue - **/ -Namespace.prototype.unset = function (key, defaultValue) { - var value = this[key]; - if (value !== null) { - delete this[key]; - return value; - } - return defaultValue; -}; diff --git a/tools/doc/node_modules/argparse/lib/utils.js b/tools/doc/node_modules/argparse/lib/utils.js deleted file mode 100644 index 4a9cf3edb615ce..00000000000000 --- a/tools/doc/node_modules/argparse/lib/utils.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -exports.repeat = function (str, num) { - var result = ''; - for (var i = 0; i < num; i++) { result += str; } - return result; -}; - -exports.arrayEqual = function (a, b) { - if (a.length !== b.length) { return false; } - for (var i = 0; i < a.length; i++) { - if (a[i] !== b[i]) { return false; } - } - return true; -}; - -exports.trimChars = function (str, chars) { - var start = 0; - var end = str.length - 1; - while (chars.indexOf(str.charAt(start)) >= 0) { start++; } - while (chars.indexOf(str.charAt(end)) >= 0) { end--; } - return str.slice(start, end + 1); -}; - -exports.capitalize = function (str) { - return str.charAt(0).toUpperCase() + str.slice(1); -}; - -exports.arrayUnion = function () { - var result = []; - for (var i = 0, values = {}; i < arguments.length; i++) { - var arr = arguments[i]; - for (var j = 0; j < arr.length; j++) { - if (!values[arr[j]]) { - values[arr[j]] = true; - result.push(arr[j]); - } - } - } - return result; -}; - -function has(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -exports.has = has; - -exports.extend = function (dest, src) { - for (var i in src) { - if (has(src, i)) { dest[i] = src[i]; } - } -}; - -exports.trimEnd = function (str) { - return str.replace(/\s+$/g, ''); -}; diff --git a/tools/doc/node_modules/argparse/package.json b/tools/doc/node_modules/argparse/package.json deleted file mode 100644 index 24313f5e3c2af9..00000000000000 --- a/tools/doc/node_modules/argparse/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_args": [ - [ - "argparse@1.0.10", - "/Users/rubys/git/node/tools/doc" - ] - ], - "_development": true, - "_from": "argparse@1.0.10", - "_id": "argparse@1.0.10", - "_inBundle": false, - "_integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "_location": "/argparse", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "argparse@1.0.10", - "name": "argparse", - "escapedName": "argparse", - "rawSpec": "1.0.10", - "saveSpec": null, - "fetchSpec": "1.0.10" - }, - "_requiredBy": [ - "/js-yaml" - ], - "_resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "_spec": "1.0.10", - "_where": "/Users/rubys/git/node/tools/doc", - "bugs": { - "url": "https://github.com/nodeca/argparse/issues" - }, - "contributors": [ - { - "name": "Eugene Shkuropat" - }, - { - "name": "Paul Jacobson" - } - ], - "dependencies": { - "sprintf-js": "~1.0.2" - }, - "description": "Very powerful CLI arguments parser. Native port of argparse - python's options parsing library", - "devDependencies": { - "eslint": "^2.13.1", - "istanbul": "^0.4.5", - "mocha": "^3.1.0", - "ndoc": "^5.0.1" - }, - "files": [ - "index.js", - "lib/" - ], - "homepage": "https://github.com/nodeca/argparse#readme", - "keywords": [ - "cli", - "parser", - "argparse", - "option", - "args" - ], - "license": "MIT", - "name": "argparse", - "repository": { - "type": "git", - "url": "git+https://github.com/nodeca/argparse.git" - }, - "scripts": { - "test": "make test" - }, - "version": "1.0.10" -} diff --git a/tools/doc/node_modules/esprima/LICENSE.BSD b/tools/doc/node_modules/esprima/LICENSE.BSD deleted file mode 100644 index 7a55160f562ddb..00000000000000 --- a/tools/doc/node_modules/esprima/LICENSE.BSD +++ /dev/null @@ -1,21 +0,0 @@ -Copyright JS Foundation and other contributors, https://js.foundation/ - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/doc/node_modules/esprima/README.md b/tools/doc/node_modules/esprima/README.md deleted file mode 100644 index 1ee10bfa0d1df6..00000000000000 --- a/tools/doc/node_modules/esprima/README.md +++ /dev/null @@ -1,46 +0,0 @@ -[![NPM version](https://img.shields.io/npm/v/esprima.svg)](https://www.npmjs.com/package/esprima) -[![npm download](https://img.shields.io/npm/dm/esprima.svg)](https://www.npmjs.com/package/esprima) -[![Build Status](https://img.shields.io/travis/jquery/esprima/master.svg)](https://travis-ci.org/jquery/esprima) -[![Coverage Status](https://img.shields.io/codecov/c/github/jquery/esprima/master.svg)](https://codecov.io/github/jquery/esprima) - -**Esprima** ([esprima.org](http://esprima.org), BSD license) is a high performance, -standard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) -parser written in ECMAScript (also popularly known as -[JavaScript](https://en.wikipedia.org/wiki/JavaScript)). -Esprima is created and maintained by [Ariya Hidayat](https://twitter.com/ariyahidayat), -with the help of [many contributors](https://github.com/jquery/esprima/contributors). - -### Features - -- Full support for ECMAScript 2017 ([ECMA-262 8th Edition](http://www.ecma-international.org/publications/standards/Ecma-262.htm)) -- Sensible [syntax tree format](https://github.com/estree/estree/blob/master/es5.md) as standardized by [ESTree project](https://github.com/estree/estree) -- Experimental support for [JSX](https://facebook.github.io/jsx/), a syntax extension for [React](https://facebook.github.io/react/) -- Optional tracking of syntax node location (index-based and line-column) -- [Heavily tested](http://esprima.org/test/ci.html) (~1500 [unit tests](https://github.com/jquery/esprima/tree/master/test/fixtures) with [full code coverage](https://codecov.io/github/jquery/esprima)) - -### API - -Esprima can be used to perform [lexical analysis](https://en.wikipedia.org/wiki/Lexical_analysis) (tokenization) or [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program. - -A simple example on Node.js REPL: - -```javascript -> var esprima = require('esprima'); -> var program = 'const answer = 42'; - -> esprima.tokenize(program); -[ { type: 'Keyword', value: 'const' }, - { type: 'Identifier', value: 'answer' }, - { type: 'Punctuator', value: '=' }, - { type: 'Numeric', value: '42' } ] - -> esprima.parseScript(program); -{ type: 'Program', - body: - [ { type: 'VariableDeclaration', - declarations: [Object], - kind: 'const' } ], - sourceType: 'script' } -``` - -For more information, please read the [complete documentation](http://esprima.org/doc). \ No newline at end of file diff --git a/tools/doc/node_modules/esprima/bin/esparse.js b/tools/doc/node_modules/esprima/bin/esparse.js deleted file mode 100755 index 45d05fbb732673..00000000000000 --- a/tools/doc/node_modules/esprima/bin/esparse.js +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/env node -/* - Copyright JS Foundation and other contributors, https://js.foundation/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*jslint sloppy:true node:true rhino:true */ - -var fs, esprima, fname, forceFile, content, options, syntax; - -if (typeof require === 'function') { - fs = require('fs'); - try { - esprima = require('esprima'); - } catch (e) { - esprima = require('../'); - } -} else if (typeof load === 'function') { - try { - load('esprima.js'); - } catch (e) { - load('../esprima.js'); - } -} - -// Shims to Node.js objects when running under Rhino. -if (typeof console === 'undefined' && typeof process === 'undefined') { - console = { log: print }; - fs = { readFileSync: readFile }; - process = { argv: arguments, exit: quit }; - process.argv.unshift('esparse.js'); - process.argv.unshift('rhino'); -} - -function showUsage() { - console.log('Usage:'); - console.log(' esparse [options] [file.js]'); - console.log(); - console.log('Available options:'); - console.log(); - console.log(' --comment Gather all line and block comments in an array'); - console.log(' --loc Include line-column location info for each syntax node'); - console.log(' --range Include index-based range for each syntax node'); - console.log(' --raw Display the raw value of literals'); - console.log(' --tokens List all tokens in an array'); - console.log(' --tolerant Tolerate errors on a best-effort basis (experimental)'); - console.log(' -v, --version Shows program version'); - console.log(); - process.exit(1); -} - -options = {}; - -process.argv.splice(2).forEach(function (entry) { - - if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') { - if (typeof fname === 'string') { - console.log('Error: more than one input file.'); - process.exit(1); - } else { - fname = entry; - } - } else if (entry === '-h' || entry === '--help') { - showUsage(); - } else if (entry === '-v' || entry === '--version') { - console.log('ECMAScript Parser (using Esprima version', esprima.version, ')'); - console.log(); - process.exit(0); - } else if (entry === '--comment') { - options.comment = true; - } else if (entry === '--loc') { - options.loc = true; - } else if (entry === '--range') { - options.range = true; - } else if (entry === '--raw') { - options.raw = true; - } else if (entry === '--tokens') { - options.tokens = true; - } else if (entry === '--tolerant') { - options.tolerant = true; - } else if (entry === '--') { - forceFile = true; - } else { - console.log('Error: unknown option ' + entry + '.'); - process.exit(1); - } -}); - -// Special handling for regular expression literal since we need to -// convert it to a string literal, otherwise it will be decoded -// as object "{}" and the regular expression would be lost. -function adjustRegexLiteral(key, value) { - if (key === 'value' && value instanceof RegExp) { - value = value.toString(); - } - return value; -} - -function run(content) { - syntax = esprima.parse(content, options); - console.log(JSON.stringify(syntax, adjustRegexLiteral, 4)); -} - -try { - if (fname && (fname !== '-' || forceFile)) { - run(fs.readFileSync(fname, 'utf-8')); - } else { - var content = ''; - process.stdin.resume(); - process.stdin.on('data', function(chunk) { - content += chunk; - }); - process.stdin.on('end', function() { - run(content); - }); - } -} catch (e) { - console.log('Error: ' + e.message); - process.exit(1); -} diff --git a/tools/doc/node_modules/esprima/bin/esvalidate.js b/tools/doc/node_modules/esprima/bin/esvalidate.js deleted file mode 100755 index d49a7e40a8c3d4..00000000000000 --- a/tools/doc/node_modules/esprima/bin/esvalidate.js +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env node -/* - Copyright JS Foundation and other contributors, https://js.foundation/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*jslint sloppy:true plusplus:true node:true rhino:true */ -/*global phantom:true */ - -var fs, system, esprima, options, fnames, forceFile, count; - -if (typeof esprima === 'undefined') { - // PhantomJS can only require() relative files - if (typeof phantom === 'object') { - fs = require('fs'); - system = require('system'); - esprima = require('./esprima'); - } else if (typeof require === 'function') { - fs = require('fs'); - try { - esprima = require('esprima'); - } catch (e) { - esprima = require('../'); - } - } else if (typeof load === 'function') { - try { - load('esprima.js'); - } catch (e) { - load('../esprima.js'); - } - } -} - -// Shims to Node.js objects when running under PhantomJS 1.7+. -if (typeof phantom === 'object') { - fs.readFileSync = fs.read; - process = { - argv: [].slice.call(system.args), - exit: phantom.exit, - on: function (evt, callback) { - callback(); - } - }; - process.argv.unshift('phantomjs'); -} - -// Shims to Node.js objects when running under Rhino. -if (typeof console === 'undefined' && typeof process === 'undefined') { - console = { log: print }; - fs = { readFileSync: readFile }; - process = { - argv: arguments, - exit: quit, - on: function (evt, callback) { - callback(); - } - }; - process.argv.unshift('esvalidate.js'); - process.argv.unshift('rhino'); -} - -function showUsage() { - console.log('Usage:'); - console.log(' esvalidate [options] [file.js...]'); - console.log(); - console.log('Available options:'); - console.log(); - console.log(' --format=type Set the report format, plain (default) or junit'); - console.log(' -v, --version Print program version'); - console.log(); - process.exit(1); -} - -options = { - format: 'plain' -}; - -fnames = []; - -process.argv.splice(2).forEach(function (entry) { - - if (forceFile || entry === '-' || entry.slice(0, 1) !== '-') { - fnames.push(entry); - } else if (entry === '-h' || entry === '--help') { - showUsage(); - } else if (entry === '-v' || entry === '--version') { - console.log('ECMAScript Validator (using Esprima version', esprima.version, ')'); - console.log(); - process.exit(0); - } else if (entry.slice(0, 9) === '--format=') { - options.format = entry.slice(9); - if (options.format !== 'plain' && options.format !== 'junit') { - console.log('Error: unknown report format ' + options.format + '.'); - process.exit(1); - } - } else if (entry === '--') { - forceFile = true; - } else { - console.log('Error: unknown option ' + entry + '.'); - process.exit(1); - } -}); - -if (fnames.length === 0) { - fnames.push(''); -} - -if (options.format === 'junit') { - console.log(''); - console.log(''); -} - -count = 0; - -function run(fname, content) { - var timestamp, syntax, name; - try { - if (typeof content !== 'string') { - throw content; - } - - if (content[0] === '#' && content[1] === '!') { - content = '//' + content.substr(2, content.length); - } - - timestamp = Date.now(); - syntax = esprima.parse(content, { tolerant: true }); - - if (options.format === 'junit') { - - name = fname; - if (name.lastIndexOf('/') >= 0) { - name = name.slice(name.lastIndexOf('/') + 1); - } - - console.log(''); - - syntax.errors.forEach(function (error) { - var msg = error.message; - msg = msg.replace(/^Line\ [0-9]*\:\ /, ''); - console.log(' '); - console.log(' ' + - error.message + '(' + name + ':' + error.lineNumber + ')' + - ''); - console.log(' '); - }); - - console.log(''); - - } else if (options.format === 'plain') { - - syntax.errors.forEach(function (error) { - var msg = error.message; - msg = msg.replace(/^Line\ [0-9]*\:\ /, ''); - msg = fname + ':' + error.lineNumber + ': ' + msg; - console.log(msg); - ++count; - }); - - } - } catch (e) { - ++count; - if (options.format === 'junit') { - console.log(''); - console.log(' '); - console.log(' ' + - e.message + '(' + fname + ((e.lineNumber) ? ':' + e.lineNumber : '') + - ')'); - console.log(' '); - console.log(''); - } else { - console.log(fname + ':' + e.lineNumber + ': ' + e.message.replace(/^Line\ [0-9]*\:\ /, '')); - } - } -} - -fnames.forEach(function (fname) { - var content = ''; - try { - if (fname && (fname !== '-' || forceFile)) { - content = fs.readFileSync(fname, 'utf-8'); - } else { - fname = ''; - process.stdin.resume(); - process.stdin.on('data', function(chunk) { - content += chunk; - }); - process.stdin.on('end', function() { - run(fname, content); - }); - return; - } - } catch (e) { - content = e; - } - run(fname, content); -}); - -process.on('exit', function () { - if (options.format === 'junit') { - console.log(''); - } - - if (count > 0) { - process.exit(1); - } - - if (count === 0 && typeof phantom === 'object') { - process.exit(0); - } -}); diff --git a/tools/doc/node_modules/esprima/dist/esprima.js b/tools/doc/node_modules/esprima/dist/esprima.js deleted file mode 100644 index 2c2f93cbd34ddd..00000000000000 --- a/tools/doc/node_modules/esprima/dist/esprima.js +++ /dev/null @@ -1,6700 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { -/* istanbul ignore next */ - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); -/* istanbul ignore next */ - else if(typeof exports === 'object') - exports["esprima"] = factory(); - else - root["esprima"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/* istanbul ignore if */ -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /* - Copyright JS Foundation and other contributors, https://js.foundation/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var comment_handler_1 = __webpack_require__(1); - var jsx_parser_1 = __webpack_require__(3); - var parser_1 = __webpack_require__(8); - var tokenizer_1 = __webpack_require__(15); - function parse(code, options, delegate) { - var commentHandler = null; - var proxyDelegate = function (node, metadata) { - if (delegate) { - delegate(node, metadata); - } - if (commentHandler) { - commentHandler.visit(node, metadata); - } - }; - var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null; - var collectComment = false; - if (options) { - collectComment = (typeof options.comment === 'boolean' && options.comment); - var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment); - if (collectComment || attachComment) { - commentHandler = new comment_handler_1.CommentHandler(); - commentHandler.attach = attachComment; - options.comment = true; - parserDelegate = proxyDelegate; - } - } - var isModule = false; - if (options && typeof options.sourceType === 'string') { - isModule = (options.sourceType === 'module'); - } - var parser; - if (options && typeof options.jsx === 'boolean' && options.jsx) { - parser = new jsx_parser_1.JSXParser(code, options, parserDelegate); - } - else { - parser = new parser_1.Parser(code, options, parserDelegate); - } - var program = isModule ? parser.parseModule() : parser.parseScript(); - var ast = program; - if (collectComment && commentHandler) { - ast.comments = commentHandler.comments; - } - if (parser.config.tokens) { - ast.tokens = parser.tokens; - } - if (parser.config.tolerant) { - ast.errors = parser.errorHandler.errors; - } - return ast; - } - exports.parse = parse; - function parseModule(code, options, delegate) { - var parsingOptions = options || {}; - parsingOptions.sourceType = 'module'; - return parse(code, parsingOptions, delegate); - } - exports.parseModule = parseModule; - function parseScript(code, options, delegate) { - var parsingOptions = options || {}; - parsingOptions.sourceType = 'script'; - return parse(code, parsingOptions, delegate); - } - exports.parseScript = parseScript; - function tokenize(code, options, delegate) { - var tokenizer = new tokenizer_1.Tokenizer(code, options); - var tokens; - tokens = []; - try { - while (true) { - var token = tokenizer.getNextToken(); - if (!token) { - break; - } - if (delegate) { - token = delegate(token); - } - tokens.push(token); - } - } - catch (e) { - tokenizer.errorHandler.tolerate(e); - } - if (tokenizer.errorHandler.tolerant) { - tokens.errors = tokenizer.errors(); - } - return tokens; - } - exports.tokenize = tokenize; - var syntax_1 = __webpack_require__(2); - exports.Syntax = syntax_1.Syntax; - // Sync with *.json manifests. - exports.version = '4.0.0'; - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var syntax_1 = __webpack_require__(2); - var CommentHandler = (function () { - function CommentHandler() { - this.attach = false; - this.comments = []; - this.stack = []; - this.leading = []; - this.trailing = []; - } - CommentHandler.prototype.insertInnerComments = function (node, metadata) { - // innnerComments for properties empty block - // `function a() {/** comments **\/}` - if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) { - var innerComments = []; - for (var i = this.leading.length - 1; i >= 0; --i) { - var entry = this.leading[i]; - if (metadata.end.offset >= entry.start) { - innerComments.unshift(entry.comment); - this.leading.splice(i, 1); - this.trailing.splice(i, 1); - } - } - if (innerComments.length) { - node.innerComments = innerComments; - } - } - }; - CommentHandler.prototype.findTrailingComments = function (metadata) { - var trailingComments = []; - if (this.trailing.length > 0) { - for (var i = this.trailing.length - 1; i >= 0; --i) { - var entry_1 = this.trailing[i]; - if (entry_1.start >= metadata.end.offset) { - trailingComments.unshift(entry_1.comment); - } - } - this.trailing.length = 0; - return trailingComments; - } - var entry = this.stack[this.stack.length - 1]; - if (entry && entry.node.trailingComments) { - var firstComment = entry.node.trailingComments[0]; - if (firstComment && firstComment.range[0] >= metadata.end.offset) { - trailingComments = entry.node.trailingComments; - delete entry.node.trailingComments; - } - } - return trailingComments; - }; - CommentHandler.prototype.findLeadingComments = function (metadata) { - var leadingComments = []; - var target; - while (this.stack.length > 0) { - var entry = this.stack[this.stack.length - 1]; - if (entry && entry.start >= metadata.start.offset) { - target = entry.node; - this.stack.pop(); - } - else { - break; - } - } - if (target) { - var count = target.leadingComments ? target.leadingComments.length : 0; - for (var i = count - 1; i >= 0; --i) { - var comment = target.leadingComments[i]; - if (comment.range[1] <= metadata.start.offset) { - leadingComments.unshift(comment); - target.leadingComments.splice(i, 1); - } - } - if (target.leadingComments && target.leadingComments.length === 0) { - delete target.leadingComments; - } - return leadingComments; - } - for (var i = this.leading.length - 1; i >= 0; --i) { - var entry = this.leading[i]; - if (entry.start <= metadata.start.offset) { - leadingComments.unshift(entry.comment); - this.leading.splice(i, 1); - } - } - return leadingComments; - }; - CommentHandler.prototype.visitNode = function (node, metadata) { - if (node.type === syntax_1.Syntax.Program && node.body.length > 0) { - return; - } - this.insertInnerComments(node, metadata); - var trailingComments = this.findTrailingComments(metadata); - var leadingComments = this.findLeadingComments(metadata); - if (leadingComments.length > 0) { - node.leadingComments = leadingComments; - } - if (trailingComments.length > 0) { - node.trailingComments = trailingComments; - } - this.stack.push({ - node: node, - start: metadata.start.offset - }); - }; - CommentHandler.prototype.visitComment = function (node, metadata) { - var type = (node.type[0] === 'L') ? 'Line' : 'Block'; - var comment = { - type: type, - value: node.value - }; - if (node.range) { - comment.range = node.range; - } - if (node.loc) { - comment.loc = node.loc; - } - this.comments.push(comment); - if (this.attach) { - var entry = { - comment: { - type: type, - value: node.value, - range: [metadata.start.offset, metadata.end.offset] - }, - start: metadata.start.offset - }; - if (node.loc) { - entry.comment.loc = node.loc; - } - node.type = type; - this.leading.push(entry); - this.trailing.push(entry); - } - }; - CommentHandler.prototype.visit = function (node, metadata) { - if (node.type === 'LineComment') { - this.visitComment(node, metadata); - } - else if (node.type === 'BlockComment') { - this.visitComment(node, metadata); - } - else if (this.attach) { - this.visitNode(node, metadata); - } - }; - return CommentHandler; - }()); - exports.CommentHandler = CommentHandler; - - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Syntax = { - AssignmentExpression: 'AssignmentExpression', - AssignmentPattern: 'AssignmentPattern', - ArrayExpression: 'ArrayExpression', - ArrayPattern: 'ArrayPattern', - ArrowFunctionExpression: 'ArrowFunctionExpression', - AwaitExpression: 'AwaitExpression', - BlockStatement: 'BlockStatement', - BinaryExpression: 'BinaryExpression', - BreakStatement: 'BreakStatement', - CallExpression: 'CallExpression', - CatchClause: 'CatchClause', - ClassBody: 'ClassBody', - ClassDeclaration: 'ClassDeclaration', - ClassExpression: 'ClassExpression', - ConditionalExpression: 'ConditionalExpression', - ContinueStatement: 'ContinueStatement', - DoWhileStatement: 'DoWhileStatement', - DebuggerStatement: 'DebuggerStatement', - EmptyStatement: 'EmptyStatement', - ExportAllDeclaration: 'ExportAllDeclaration', - ExportDefaultDeclaration: 'ExportDefaultDeclaration', - ExportNamedDeclaration: 'ExportNamedDeclaration', - ExportSpecifier: 'ExportSpecifier', - ExpressionStatement: 'ExpressionStatement', - ForStatement: 'ForStatement', - ForOfStatement: 'ForOfStatement', - ForInStatement: 'ForInStatement', - FunctionDeclaration: 'FunctionDeclaration', - FunctionExpression: 'FunctionExpression', - Identifier: 'Identifier', - IfStatement: 'IfStatement', - ImportDeclaration: 'ImportDeclaration', - ImportDefaultSpecifier: 'ImportDefaultSpecifier', - ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', - ImportSpecifier: 'ImportSpecifier', - Literal: 'Literal', - LabeledStatement: 'LabeledStatement', - LogicalExpression: 'LogicalExpression', - MemberExpression: 'MemberExpression', - MetaProperty: 'MetaProperty', - MethodDefinition: 'MethodDefinition', - NewExpression: 'NewExpression', - ObjectExpression: 'ObjectExpression', - ObjectPattern: 'ObjectPattern', - Program: 'Program', - Property: 'Property', - RestElement: 'RestElement', - ReturnStatement: 'ReturnStatement', - SequenceExpression: 'SequenceExpression', - SpreadElement: 'SpreadElement', - Super: 'Super', - SwitchCase: 'SwitchCase', - SwitchStatement: 'SwitchStatement', - TaggedTemplateExpression: 'TaggedTemplateExpression', - TemplateElement: 'TemplateElement', - TemplateLiteral: 'TemplateLiteral', - ThisExpression: 'ThisExpression', - ThrowStatement: 'ThrowStatement', - TryStatement: 'TryStatement', - UnaryExpression: 'UnaryExpression', - UpdateExpression: 'UpdateExpression', - VariableDeclaration: 'VariableDeclaration', - VariableDeclarator: 'VariableDeclarator', - WhileStatement: 'WhileStatement', - WithStatement: 'WithStatement', - YieldExpression: 'YieldExpression' - }; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; -/* istanbul ignore next */ - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var character_1 = __webpack_require__(4); - var JSXNode = __webpack_require__(5); - var jsx_syntax_1 = __webpack_require__(6); - var Node = __webpack_require__(7); - var parser_1 = __webpack_require__(8); - var token_1 = __webpack_require__(13); - var xhtml_entities_1 = __webpack_require__(14); - token_1.TokenName[100 /* Identifier */] = 'JSXIdentifier'; - token_1.TokenName[101 /* Text */] = 'JSXText'; - // Fully qualified element name, e.g. returns "svg:path" - function getQualifiedElementName(elementName) { - var qualifiedName; - switch (elementName.type) { - case jsx_syntax_1.JSXSyntax.JSXIdentifier: - var id = elementName; - qualifiedName = id.name; - break; - case jsx_syntax_1.JSXSyntax.JSXNamespacedName: - var ns = elementName; - qualifiedName = getQualifiedElementName(ns.namespace) + ':' + - getQualifiedElementName(ns.name); - break; - case jsx_syntax_1.JSXSyntax.JSXMemberExpression: - var expr = elementName; - qualifiedName = getQualifiedElementName(expr.object) + '.' + - getQualifiedElementName(expr.property); - break; - /* istanbul ignore next */ - default: - break; - } - return qualifiedName; - } - var JSXParser = (function (_super) { - __extends(JSXParser, _super); - function JSXParser(code, options, delegate) { - return _super.call(this, code, options, delegate) || this; - } - JSXParser.prototype.parsePrimaryExpression = function () { - return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this); - }; - JSXParser.prototype.startJSX = function () { - // Unwind the scanner before the lookahead token. - this.scanner.index = this.startMarker.index; - this.scanner.lineNumber = this.startMarker.line; - this.scanner.lineStart = this.startMarker.index - this.startMarker.column; - }; - JSXParser.prototype.finishJSX = function () { - // Prime the next lookahead. - this.nextToken(); - }; - JSXParser.prototype.reenterJSX = function () { - this.startJSX(); - this.expectJSX('}'); - // Pop the closing '}' added from the lookahead. - if (this.config.tokens) { - this.tokens.pop(); - } - }; - JSXParser.prototype.createJSXNode = function () { - this.collectComments(); - return { - index: this.scanner.index, - line: this.scanner.lineNumber, - column: this.scanner.index - this.scanner.lineStart - }; - }; - JSXParser.prototype.createJSXChildNode = function () { - return { - index: this.scanner.index, - line: this.scanner.lineNumber, - column: this.scanner.index - this.scanner.lineStart - }; - }; - JSXParser.prototype.scanXHTMLEntity = function (quote) { - var result = '&'; - var valid = true; - var terminated = false; - var numeric = false; - var hex = false; - while (!this.scanner.eof() && valid && !terminated) { - var ch = this.scanner.source[this.scanner.index]; - if (ch === quote) { - break; - } - terminated = (ch === ';'); - result += ch; - ++this.scanner.index; - if (!terminated) { - switch (result.length) { - case 2: - // e.g. '{' - numeric = (ch === '#'); - break; - case 3: - if (numeric) { - // e.g. 'A' - hex = (ch === 'x'); - valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0)); - numeric = numeric && !hex; - } - break; - default: - valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0))); - valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0))); - break; - } - } - } - if (valid && terminated && result.length > 2) { - // e.g. 'A' becomes just '#x41' - var str = result.substr(1, result.length - 2); - if (numeric && str.length > 1) { - result = String.fromCharCode(parseInt(str.substr(1), 10)); - } - else if (hex && str.length > 2) { - result = String.fromCharCode(parseInt('0' + str.substr(1), 16)); - } - else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) { - result = xhtml_entities_1.XHTMLEntities[str]; - } - } - return result; - }; - // Scan the next JSX token. This replaces Scanner#lex when in JSX mode. - JSXParser.prototype.lexJSX = function () { - var cp = this.scanner.source.charCodeAt(this.scanner.index); - // < > / : = { } - if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) { - var value = this.scanner.source[this.scanner.index++]; - return { - type: 7 /* Punctuator */, - value: value, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: this.scanner.index - 1, - end: this.scanner.index - }; - } - // " ' - if (cp === 34 || cp === 39) { - var start = this.scanner.index; - var quote = this.scanner.source[this.scanner.index++]; - var str = ''; - while (!this.scanner.eof()) { - var ch = this.scanner.source[this.scanner.index++]; - if (ch === quote) { - break; - } - else if (ch === '&') { - str += this.scanXHTMLEntity(quote); - } - else { - str += ch; - } - } - return { - type: 8 /* StringLiteral */, - value: str, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: start, - end: this.scanner.index - }; - } - // ... or . - if (cp === 46) { - var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1); - var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2); - var value = (n1 === 46 && n2 === 46) ? '...' : '.'; - var start = this.scanner.index; - this.scanner.index += value.length; - return { - type: 7 /* Punctuator */, - value: value, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: start, - end: this.scanner.index - }; - } - // ` - if (cp === 96) { - // Only placeholder, since it will be rescanned as a real assignment expression. - return { - type: 10 /* Template */, - value: '', - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: this.scanner.index, - end: this.scanner.index - }; - } - // Identifer can not contain backslash (char code 92). - if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) { - var start = this.scanner.index; - ++this.scanner.index; - while (!this.scanner.eof()) { - var ch = this.scanner.source.charCodeAt(this.scanner.index); - if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) { - ++this.scanner.index; - } - else if (ch === 45) { - // Hyphen (char code 45) can be part of an identifier. - ++this.scanner.index; - } - else { - break; - } - } - var id = this.scanner.source.slice(start, this.scanner.index); - return { - type: 100 /* Identifier */, - value: id, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: start, - end: this.scanner.index - }; - } - return this.scanner.lex(); - }; - JSXParser.prototype.nextJSXToken = function () { - this.collectComments(); - this.startMarker.index = this.scanner.index; - this.startMarker.line = this.scanner.lineNumber; - this.startMarker.column = this.scanner.index - this.scanner.lineStart; - var token = this.lexJSX(); - this.lastMarker.index = this.scanner.index; - this.lastMarker.line = this.scanner.lineNumber; - this.lastMarker.column = this.scanner.index - this.scanner.lineStart; - if (this.config.tokens) { - this.tokens.push(this.convertToken(token)); - } - return token; - }; - JSXParser.prototype.nextJSXText = function () { - this.startMarker.index = this.scanner.index; - this.startMarker.line = this.scanner.lineNumber; - this.startMarker.column = this.scanner.index - this.scanner.lineStart; - var start = this.scanner.index; - var text = ''; - while (!this.scanner.eof()) { - var ch = this.scanner.source[this.scanner.index]; - if (ch === '{' || ch === '<') { - break; - } - ++this.scanner.index; - text += ch; - if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) { - ++this.scanner.lineNumber; - if (ch === '\r' && this.scanner.source[this.scanner.index] === '\n') { - ++this.scanner.index; - } - this.scanner.lineStart = this.scanner.index; - } - } - this.lastMarker.index = this.scanner.index; - this.lastMarker.line = this.scanner.lineNumber; - this.lastMarker.column = this.scanner.index - this.scanner.lineStart; - var token = { - type: 101 /* Text */, - value: text, - lineNumber: this.scanner.lineNumber, - lineStart: this.scanner.lineStart, - start: start, - end: this.scanner.index - }; - if ((text.length > 0) && this.config.tokens) { - this.tokens.push(this.convertToken(token)); - } - return token; - }; - JSXParser.prototype.peekJSXToken = function () { - var state = this.scanner.saveState(); - this.scanner.scanComments(); - var next = this.lexJSX(); - this.scanner.restoreState(state); - return next; - }; - // Expect the next JSX token to match the specified punctuator. - // If not, an exception will be thrown. - JSXParser.prototype.expectJSX = function (value) { - var token = this.nextJSXToken(); - if (token.type !== 7 /* Punctuator */ || token.value !== value) { - this.throwUnexpectedToken(token); - } - }; - // Return true if the next JSX token matches the specified punctuator. - JSXParser.prototype.matchJSX = function (value) { - var next = this.peekJSXToken(); - return next.type === 7 /* Punctuator */ && next.value === value; - }; - JSXParser.prototype.parseJSXIdentifier = function () { - var node = this.createJSXNode(); - var token = this.nextJSXToken(); - if (token.type !== 100 /* Identifier */) { - this.throwUnexpectedToken(token); - } - return this.finalize(node, new JSXNode.JSXIdentifier(token.value)); - }; - JSXParser.prototype.parseJSXElementName = function () { - var node = this.createJSXNode(); - var elementName = this.parseJSXIdentifier(); - if (this.matchJSX(':')) { - var namespace = elementName; - this.expectJSX(':'); - var name_1 = this.parseJSXIdentifier(); - elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1)); - } - else if (this.matchJSX('.')) { - while (this.matchJSX('.')) { - var object = elementName; - this.expectJSX('.'); - var property = this.parseJSXIdentifier(); - elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property)); - } - } - return elementName; - }; - JSXParser.prototype.parseJSXAttributeName = function () { - var node = this.createJSXNode(); - var attributeName; - var identifier = this.parseJSXIdentifier(); - if (this.matchJSX(':')) { - var namespace = identifier; - this.expectJSX(':'); - var name_2 = this.parseJSXIdentifier(); - attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2)); - } - else { - attributeName = identifier; - } - return attributeName; - }; - JSXParser.prototype.parseJSXStringLiteralAttribute = function () { - var node = this.createJSXNode(); - var token = this.nextJSXToken(); - if (token.type !== 8 /* StringLiteral */) { - this.throwUnexpectedToken(token); - } - var raw = this.getTokenRaw(token); - return this.finalize(node, new Node.Literal(token.value, raw)); - }; - JSXParser.prototype.parseJSXExpressionAttribute = function () { - var node = this.createJSXNode(); - this.expectJSX('{'); - this.finishJSX(); - if (this.match('}')) { - this.tolerateError('JSX attributes must only be assigned a non-empty expression'); - } - var expression = this.parseAssignmentExpression(); - this.reenterJSX(); - return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); - }; - JSXParser.prototype.parseJSXAttributeValue = function () { - return this.matchJSX('{') ? this.parseJSXExpressionAttribute() : - this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute(); - }; - JSXParser.prototype.parseJSXNameValueAttribute = function () { - var node = this.createJSXNode(); - var name = this.parseJSXAttributeName(); - var value = null; - if (this.matchJSX('=')) { - this.expectJSX('='); - value = this.parseJSXAttributeValue(); - } - return this.finalize(node, new JSXNode.JSXAttribute(name, value)); - }; - JSXParser.prototype.parseJSXSpreadAttribute = function () { - var node = this.createJSXNode(); - this.expectJSX('{'); - this.expectJSX('...'); - this.finishJSX(); - var argument = this.parseAssignmentExpression(); - this.reenterJSX(); - return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument)); - }; - JSXParser.prototype.parseJSXAttributes = function () { - var attributes = []; - while (!this.matchJSX('/') && !this.matchJSX('>')) { - var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() : - this.parseJSXNameValueAttribute(); - attributes.push(attribute); - } - return attributes; - }; - JSXParser.prototype.parseJSXOpeningElement = function () { - var node = this.createJSXNode(); - this.expectJSX('<'); - var name = this.parseJSXElementName(); - var attributes = this.parseJSXAttributes(); - var selfClosing = this.matchJSX('/'); - if (selfClosing) { - this.expectJSX('/'); - } - this.expectJSX('>'); - return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); - }; - JSXParser.prototype.parseJSXBoundaryElement = function () { - var node = this.createJSXNode(); - this.expectJSX('<'); - if (this.matchJSX('/')) { - this.expectJSX('/'); - var name_3 = this.parseJSXElementName(); - this.expectJSX('>'); - return this.finalize(node, new JSXNode.JSXClosingElement(name_3)); - } - var name = this.parseJSXElementName(); - var attributes = this.parseJSXAttributes(); - var selfClosing = this.matchJSX('/'); - if (selfClosing) { - this.expectJSX('/'); - } - this.expectJSX('>'); - return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); - }; - JSXParser.prototype.parseJSXEmptyExpression = function () { - var node = this.createJSXChildNode(); - this.collectComments(); - this.lastMarker.index = this.scanner.index; - this.lastMarker.line = this.scanner.lineNumber; - this.lastMarker.column = this.scanner.index - this.scanner.lineStart; - return this.finalize(node, new JSXNode.JSXEmptyExpression()); - }; - JSXParser.prototype.parseJSXExpressionContainer = function () { - var node = this.createJSXNode(); - this.expectJSX('{'); - var expression; - if (this.matchJSX('}')) { - expression = this.parseJSXEmptyExpression(); - this.expectJSX('}'); - } - else { - this.finishJSX(); - expression = this.parseAssignmentExpression(); - this.reenterJSX(); - } - return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); - }; - JSXParser.prototype.parseJSXChildren = function () { - var children = []; - while (!this.scanner.eof()) { - var node = this.createJSXChildNode(); - var token = this.nextJSXText(); - if (token.start < token.end) { - var raw = this.getTokenRaw(token); - var child = this.finalize(node, new JSXNode.JSXText(token.value, raw)); - children.push(child); - } - if (this.scanner.source[this.scanner.index] === '{') { - var container = this.parseJSXExpressionContainer(); - children.push(container); - } - else { - break; - } - } - return children; - }; - JSXParser.prototype.parseComplexJSXElement = function (el) { - var stack = []; - while (!this.scanner.eof()) { - el.children = el.children.concat(this.parseJSXChildren()); - var node = this.createJSXChildNode(); - var element = this.parseJSXBoundaryElement(); - if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) { - var opening = element; - if (opening.selfClosing) { - var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null)); - el.children.push(child); - } - else { - stack.push(el); - el = { node: node, opening: opening, closing: null, children: [] }; - } - } - if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) { - el.closing = element; - var open_1 = getQualifiedElementName(el.opening.name); - var close_1 = getQualifiedElementName(el.closing.name); - if (open_1 !== close_1) { - this.tolerateError('Expected corresponding JSX closing tag for %0', open_1); - } - if (stack.length > 0) { - var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing)); - el = stack[stack.length - 1]; - el.children.push(child); - stack.pop(); - } - else { - break; - } - } - } - return el; - }; - JSXParser.prototype.parseJSXElement = function () { - var node = this.createJSXNode(); - var opening = this.parseJSXOpeningElement(); - var children = []; - var closing = null; - if (!opening.selfClosing) { - var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children }); - children = el.children; - closing = el.closing; - } - return this.finalize(node, new JSXNode.JSXElement(opening, children, closing)); - }; - JSXParser.prototype.parseJSXRoot = function () { - // Pop the opening '<' added from the lookahead. - if (this.config.tokens) { - this.tokens.pop(); - } - this.startJSX(); - var element = this.parseJSXElement(); - this.finishJSX(); - return element; - }; - JSXParser.prototype.isStartOfExpression = function () { - return _super.prototype.isStartOfExpression.call(this) || this.match('<'); - }; - return JSXParser; - }(parser_1.Parser)); - exports.JSXParser = JSXParser; - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // See also tools/generate-unicode-regex.js. - var Regex = { - // Unicode v8.0.0 NonAsciiIdentifierStart: - NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, - // Unicode v8.0.0 NonAsciiIdentifierPart: - NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ - }; - exports.Character = { - /* tslint:disable:no-bitwise */ - fromCodePoint: function (cp) { - return (cp < 0x10000) ? String.fromCharCode(cp) : - String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) + - String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023)); - }, - // https://tc39.github.io/ecma262/#sec-white-space - isWhiteSpace: function (cp) { - return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) || - (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0); - }, - // https://tc39.github.io/ecma262/#sec-line-terminators - isLineTerminator: function (cp) { - return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029); - }, - // https://tc39.github.io/ecma262/#sec-names-and-keywords - isIdentifierStart: function (cp) { - return (cp === 0x24) || (cp === 0x5F) || - (cp >= 0x41 && cp <= 0x5A) || - (cp >= 0x61 && cp <= 0x7A) || - (cp === 0x5C) || - ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp))); - }, - isIdentifierPart: function (cp) { - return (cp === 0x24) || (cp === 0x5F) || - (cp >= 0x41 && cp <= 0x5A) || - (cp >= 0x61 && cp <= 0x7A) || - (cp >= 0x30 && cp <= 0x39) || - (cp === 0x5C) || - ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp))); - }, - // https://tc39.github.io/ecma262/#sec-literals-numeric-literals - isDecimalDigit: function (cp) { - return (cp >= 0x30 && cp <= 0x39); // 0..9 - }, - isHexDigit: function (cp) { - return (cp >= 0x30 && cp <= 0x39) || - (cp >= 0x41 && cp <= 0x46) || - (cp >= 0x61 && cp <= 0x66); // a..f - }, - isOctalDigit: function (cp) { - return (cp >= 0x30 && cp <= 0x37); // 0..7 - } - }; - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var jsx_syntax_1 = __webpack_require__(6); - /* tslint:disable:max-classes-per-file */ - var JSXClosingElement = (function () { - function JSXClosingElement(name) { - this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement; - this.name = name; - } - return JSXClosingElement; - }()); - exports.JSXClosingElement = JSXClosingElement; - var JSXElement = (function () { - function JSXElement(openingElement, children, closingElement) { - this.type = jsx_syntax_1.JSXSyntax.JSXElement; - this.openingElement = openingElement; - this.children = children; - this.closingElement = closingElement; - } - return JSXElement; - }()); - exports.JSXElement = JSXElement; - var JSXEmptyExpression = (function () { - function JSXEmptyExpression() { - this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression; - } - return JSXEmptyExpression; - }()); - exports.JSXEmptyExpression = JSXEmptyExpression; - var JSXExpressionContainer = (function () { - function JSXExpressionContainer(expression) { - this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer; - this.expression = expression; - } - return JSXExpressionContainer; - }()); - exports.JSXExpressionContainer = JSXExpressionContainer; - var JSXIdentifier = (function () { - function JSXIdentifier(name) { - this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier; - this.name = name; - } - return JSXIdentifier; - }()); - exports.JSXIdentifier = JSXIdentifier; - var JSXMemberExpression = (function () { - function JSXMemberExpression(object, property) { - this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression; - this.object = object; - this.property = property; - } - return JSXMemberExpression; - }()); - exports.JSXMemberExpression = JSXMemberExpression; - var JSXAttribute = (function () { - function JSXAttribute(name, value) { - this.type = jsx_syntax_1.JSXSyntax.JSXAttribute; - this.name = name; - this.value = value; - } - return JSXAttribute; - }()); - exports.JSXAttribute = JSXAttribute; - var JSXNamespacedName = (function () { - function JSXNamespacedName(namespace, name) { - this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName; - this.namespace = namespace; - this.name = name; - } - return JSXNamespacedName; - }()); - exports.JSXNamespacedName = JSXNamespacedName; - var JSXOpeningElement = (function () { - function JSXOpeningElement(name, selfClosing, attributes) { - this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement; - this.name = name; - this.selfClosing = selfClosing; - this.attributes = attributes; - } - return JSXOpeningElement; - }()); - exports.JSXOpeningElement = JSXOpeningElement; - var JSXSpreadAttribute = (function () { - function JSXSpreadAttribute(argument) { - this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute; - this.argument = argument; - } - return JSXSpreadAttribute; - }()); - exports.JSXSpreadAttribute = JSXSpreadAttribute; - var JSXText = (function () { - function JSXText(value, raw) { - this.type = jsx_syntax_1.JSXSyntax.JSXText; - this.value = value; - this.raw = raw; - } - return JSXText; - }()); - exports.JSXText = JSXText; - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.JSXSyntax = { - JSXAttribute: 'JSXAttribute', - JSXClosingElement: 'JSXClosingElement', - JSXElement: 'JSXElement', - JSXEmptyExpression: 'JSXEmptyExpression', - JSXExpressionContainer: 'JSXExpressionContainer', - JSXIdentifier: 'JSXIdentifier', - JSXMemberExpression: 'JSXMemberExpression', - JSXNamespacedName: 'JSXNamespacedName', - JSXOpeningElement: 'JSXOpeningElement', - JSXSpreadAttribute: 'JSXSpreadAttribute', - JSXText: 'JSXText' - }; - - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var syntax_1 = __webpack_require__(2); - /* tslint:disable:max-classes-per-file */ - var ArrayExpression = (function () { - function ArrayExpression(elements) { - this.type = syntax_1.Syntax.ArrayExpression; - this.elements = elements; - } - return ArrayExpression; - }()); - exports.ArrayExpression = ArrayExpression; - var ArrayPattern = (function () { - function ArrayPattern(elements) { - this.type = syntax_1.Syntax.ArrayPattern; - this.elements = elements; - } - return ArrayPattern; - }()); - exports.ArrayPattern = ArrayPattern; - var ArrowFunctionExpression = (function () { - function ArrowFunctionExpression(params, body, expression) { - this.type = syntax_1.Syntax.ArrowFunctionExpression; - this.id = null; - this.params = params; - this.body = body; - this.generator = false; - this.expression = expression; - this.async = false; - } - return ArrowFunctionExpression; - }()); - exports.ArrowFunctionExpression = ArrowFunctionExpression; - var AssignmentExpression = (function () { - function AssignmentExpression(operator, left, right) { - this.type = syntax_1.Syntax.AssignmentExpression; - this.operator = operator; - this.left = left; - this.right = right; - } - return AssignmentExpression; - }()); - exports.AssignmentExpression = AssignmentExpression; - var AssignmentPattern = (function () { - function AssignmentPattern(left, right) { - this.type = syntax_1.Syntax.AssignmentPattern; - this.left = left; - this.right = right; - } - return AssignmentPattern; - }()); - exports.AssignmentPattern = AssignmentPattern; - var AsyncArrowFunctionExpression = (function () { - function AsyncArrowFunctionExpression(params, body, expression) { - this.type = syntax_1.Syntax.ArrowFunctionExpression; - this.id = null; - this.params = params; - this.body = body; - this.generator = false; - this.expression = expression; - this.async = true; - } - return AsyncArrowFunctionExpression; - }()); - exports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression; - var AsyncFunctionDeclaration = (function () { - function AsyncFunctionDeclaration(id, params, body) { - this.type = syntax_1.Syntax.FunctionDeclaration; - this.id = id; - this.params = params; - this.body = body; - this.generator = false; - this.expression = false; - this.async = true; - } - return AsyncFunctionDeclaration; - }()); - exports.AsyncFunctionDeclaration = AsyncFunctionDeclaration; - var AsyncFunctionExpression = (function () { - function AsyncFunctionExpression(id, params, body) { - this.type = syntax_1.Syntax.FunctionExpression; - this.id = id; - this.params = params; - this.body = body; - this.generator = false; - this.expression = false; - this.async = true; - } - return AsyncFunctionExpression; - }()); - exports.AsyncFunctionExpression = AsyncFunctionExpression; - var AwaitExpression = (function () { - function AwaitExpression(argument) { - this.type = syntax_1.Syntax.AwaitExpression; - this.argument = argument; - } - return AwaitExpression; - }()); - exports.AwaitExpression = AwaitExpression; - var BinaryExpression = (function () { - function BinaryExpression(operator, left, right) { - var logical = (operator === '||' || operator === '&&'); - this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression; - this.operator = operator; - this.left = left; - this.right = right; - } - return BinaryExpression; - }()); - exports.BinaryExpression = BinaryExpression; - var BlockStatement = (function () { - function BlockStatement(body) { - this.type = syntax_1.Syntax.BlockStatement; - this.body = body; - } - return BlockStatement; - }()); - exports.BlockStatement = BlockStatement; - var BreakStatement = (function () { - function BreakStatement(label) { - this.type = syntax_1.Syntax.BreakStatement; - this.label = label; - } - return BreakStatement; - }()); - exports.BreakStatement = BreakStatement; - var CallExpression = (function () { - function CallExpression(callee, args) { - this.type = syntax_1.Syntax.CallExpression; - this.callee = callee; - this.arguments = args; - } - return CallExpression; - }()); - exports.CallExpression = CallExpression; - var CatchClause = (function () { - function CatchClause(param, body) { - this.type = syntax_1.Syntax.CatchClause; - this.param = param; - this.body = body; - } - return CatchClause; - }()); - exports.CatchClause = CatchClause; - var ClassBody = (function () { - function ClassBody(body) { - this.type = syntax_1.Syntax.ClassBody; - this.body = body; - } - return ClassBody; - }()); - exports.ClassBody = ClassBody; - var ClassDeclaration = (function () { - function ClassDeclaration(id, superClass, body) { - this.type = syntax_1.Syntax.ClassDeclaration; - this.id = id; - this.superClass = superClass; - this.body = body; - } - return ClassDeclaration; - }()); - exports.ClassDeclaration = ClassDeclaration; - var ClassExpression = (function () { - function ClassExpression(id, superClass, body) { - this.type = syntax_1.Syntax.ClassExpression; - this.id = id; - this.superClass = superClass; - this.body = body; - } - return ClassExpression; - }()); - exports.ClassExpression = ClassExpression; - var ComputedMemberExpression = (function () { - function ComputedMemberExpression(object, property) { - this.type = syntax_1.Syntax.MemberExpression; - this.computed = true; - this.object = object; - this.property = property; - } - return ComputedMemberExpression; - }()); - exports.ComputedMemberExpression = ComputedMemberExpression; - var ConditionalExpression = (function () { - function ConditionalExpression(test, consequent, alternate) { - this.type = syntax_1.Syntax.ConditionalExpression; - this.test = test; - this.consequent = consequent; - this.alternate = alternate; - } - return ConditionalExpression; - }()); - exports.ConditionalExpression = ConditionalExpression; - var ContinueStatement = (function () { - function ContinueStatement(label) { - this.type = syntax_1.Syntax.ContinueStatement; - this.label = label; - } - return ContinueStatement; - }()); - exports.ContinueStatement = ContinueStatement; - var DebuggerStatement = (function () { - function DebuggerStatement() { - this.type = syntax_1.Syntax.DebuggerStatement; - } - return DebuggerStatement; - }()); - exports.DebuggerStatement = DebuggerStatement; - var Directive = (function () { - function Directive(expression, directive) { - this.type = syntax_1.Syntax.ExpressionStatement; - this.expression = expression; - this.directive = directive; - } - return Directive; - }()); - exports.Directive = Directive; - var DoWhileStatement = (function () { - function DoWhileStatement(body, test) { - this.type = syntax_1.Syntax.DoWhileStatement; - this.body = body; - this.test = test; - } - return DoWhileStatement; - }()); - exports.DoWhileStatement = DoWhileStatement; - var EmptyStatement = (function () { - function EmptyStatement() { - this.type = syntax_1.Syntax.EmptyStatement; - } - return EmptyStatement; - }()); - exports.EmptyStatement = EmptyStatement; - var ExportAllDeclaration = (function () { - function ExportAllDeclaration(source) { - this.type = syntax_1.Syntax.ExportAllDeclaration; - this.source = source; - } - return ExportAllDeclaration; - }()); - exports.ExportAllDeclaration = ExportAllDeclaration; - var ExportDefaultDeclaration = (function () { - function ExportDefaultDeclaration(declaration) { - this.type = syntax_1.Syntax.ExportDefaultDeclaration; - this.declaration = declaration; - } - return ExportDefaultDeclaration; - }()); - exports.ExportDefaultDeclaration = ExportDefaultDeclaration; - var ExportNamedDeclaration = (function () { - function ExportNamedDeclaration(declaration, specifiers, source) { - this.type = syntax_1.Syntax.ExportNamedDeclaration; - this.declaration = declaration; - this.specifiers = specifiers; - this.source = source; - } - return ExportNamedDeclaration; - }()); - exports.ExportNamedDeclaration = ExportNamedDeclaration; - var ExportSpecifier = (function () { - function ExportSpecifier(local, exported) { - this.type = syntax_1.Syntax.ExportSpecifier; - this.exported = exported; - this.local = local; - } - return ExportSpecifier; - }()); - exports.ExportSpecifier = ExportSpecifier; - var ExpressionStatement = (function () { - function ExpressionStatement(expression) { - this.type = syntax_1.Syntax.ExpressionStatement; - this.expression = expression; - } - return ExpressionStatement; - }()); - exports.ExpressionStatement = ExpressionStatement; - var ForInStatement = (function () { - function ForInStatement(left, right, body) { - this.type = syntax_1.Syntax.ForInStatement; - this.left = left; - this.right = right; - this.body = body; - this.each = false; - } - return ForInStatement; - }()); - exports.ForInStatement = ForInStatement; - var ForOfStatement = (function () { - function ForOfStatement(left, right, body) { - this.type = syntax_1.Syntax.ForOfStatement; - this.left = left; - this.right = right; - this.body = body; - } - return ForOfStatement; - }()); - exports.ForOfStatement = ForOfStatement; - var ForStatement = (function () { - function ForStatement(init, test, update, body) { - this.type = syntax_1.Syntax.ForStatement; - this.init = init; - this.test = test; - this.update = update; - this.body = body; - } - return ForStatement; - }()); - exports.ForStatement = ForStatement; - var FunctionDeclaration = (function () { - function FunctionDeclaration(id, params, body, generator) { - this.type = syntax_1.Syntax.FunctionDeclaration; - this.id = id; - this.params = params; - this.body = body; - this.generator = generator; - this.expression = false; - this.async = false; - } - return FunctionDeclaration; - }()); - exports.FunctionDeclaration = FunctionDeclaration; - var FunctionExpression = (function () { - function FunctionExpression(id, params, body, generator) { - this.type = syntax_1.Syntax.FunctionExpression; - this.id = id; - this.params = params; - this.body = body; - this.generator = generator; - this.expression = false; - this.async = false; - } - return FunctionExpression; - }()); - exports.FunctionExpression = FunctionExpression; - var Identifier = (function () { - function Identifier(name) { - this.type = syntax_1.Syntax.Identifier; - this.name = name; - } - return Identifier; - }()); - exports.Identifier = Identifier; - var IfStatement = (function () { - function IfStatement(test, consequent, alternate) { - this.type = syntax_1.Syntax.IfStatement; - this.test = test; - this.consequent = consequent; - this.alternate = alternate; - } - return IfStatement; - }()); - exports.IfStatement = IfStatement; - var ImportDeclaration = (function () { - function ImportDeclaration(specifiers, source) { - this.type = syntax_1.Syntax.ImportDeclaration; - this.specifiers = specifiers; - this.source = source; - } - return ImportDeclaration; - }()); - exports.ImportDeclaration = ImportDeclaration; - var ImportDefaultSpecifier = (function () { - function ImportDefaultSpecifier(local) { - this.type = syntax_1.Syntax.ImportDefaultSpecifier; - this.local = local; - } - return ImportDefaultSpecifier; - }()); - exports.ImportDefaultSpecifier = ImportDefaultSpecifier; - var ImportNamespaceSpecifier = (function () { - function ImportNamespaceSpecifier(local) { - this.type = syntax_1.Syntax.ImportNamespaceSpecifier; - this.local = local; - } - return ImportNamespaceSpecifier; - }()); - exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; - var ImportSpecifier = (function () { - function ImportSpecifier(local, imported) { - this.type = syntax_1.Syntax.ImportSpecifier; - this.local = local; - this.imported = imported; - } - return ImportSpecifier; - }()); - exports.ImportSpecifier = ImportSpecifier; - var LabeledStatement = (function () { - function LabeledStatement(label, body) { - this.type = syntax_1.Syntax.LabeledStatement; - this.label = label; - this.body = body; - } - return LabeledStatement; - }()); - exports.LabeledStatement = LabeledStatement; - var Literal = (function () { - function Literal(value, raw) { - this.type = syntax_1.Syntax.Literal; - this.value = value; - this.raw = raw; - } - return Literal; - }()); - exports.Literal = Literal; - var MetaProperty = (function () { - function MetaProperty(meta, property) { - this.type = syntax_1.Syntax.MetaProperty; - this.meta = meta; - this.property = property; - } - return MetaProperty; - }()); - exports.MetaProperty = MetaProperty; - var MethodDefinition = (function () { - function MethodDefinition(key, computed, value, kind, isStatic) { - this.type = syntax_1.Syntax.MethodDefinition; - this.key = key; - this.computed = computed; - this.value = value; - this.kind = kind; - this.static = isStatic; - } - return MethodDefinition; - }()); - exports.MethodDefinition = MethodDefinition; - var Module = (function () { - function Module(body) { - this.type = syntax_1.Syntax.Program; - this.body = body; - this.sourceType = 'module'; - } - return Module; - }()); - exports.Module = Module; - var NewExpression = (function () { - function NewExpression(callee, args) { - this.type = syntax_1.Syntax.NewExpression; - this.callee = callee; - this.arguments = args; - } - return NewExpression; - }()); - exports.NewExpression = NewExpression; - var ObjectExpression = (function () { - function ObjectExpression(properties) { - this.type = syntax_1.Syntax.ObjectExpression; - this.properties = properties; - } - return ObjectExpression; - }()); - exports.ObjectExpression = ObjectExpression; - var ObjectPattern = (function () { - function ObjectPattern(properties) { - this.type = syntax_1.Syntax.ObjectPattern; - this.properties = properties; - } - return ObjectPattern; - }()); - exports.ObjectPattern = ObjectPattern; - var Property = (function () { - function Property(kind, key, computed, value, method, shorthand) { - this.type = syntax_1.Syntax.Property; - this.key = key; - this.computed = computed; - this.value = value; - this.kind = kind; - this.method = method; - this.shorthand = shorthand; - } - return Property; - }()); - exports.Property = Property; - var RegexLiteral = (function () { - function RegexLiteral(value, raw, pattern, flags) { - this.type = syntax_1.Syntax.Literal; - this.value = value; - this.raw = raw; - this.regex = { pattern: pattern, flags: flags }; - } - return RegexLiteral; - }()); - exports.RegexLiteral = RegexLiteral; - var RestElement = (function () { - function RestElement(argument) { - this.type = syntax_1.Syntax.RestElement; - this.argument = argument; - } - return RestElement; - }()); - exports.RestElement = RestElement; - var ReturnStatement = (function () { - function ReturnStatement(argument) { - this.type = syntax_1.Syntax.ReturnStatement; - this.argument = argument; - } - return ReturnStatement; - }()); - exports.ReturnStatement = ReturnStatement; - var Script = (function () { - function Script(body) { - this.type = syntax_1.Syntax.Program; - this.body = body; - this.sourceType = 'script'; - } - return Script; - }()); - exports.Script = Script; - var SequenceExpression = (function () { - function SequenceExpression(expressions) { - this.type = syntax_1.Syntax.SequenceExpression; - this.expressions = expressions; - } - return SequenceExpression; - }()); - exports.SequenceExpression = SequenceExpression; - var SpreadElement = (function () { - function SpreadElement(argument) { - this.type = syntax_1.Syntax.SpreadElement; - this.argument = argument; - } - return SpreadElement; - }()); - exports.SpreadElement = SpreadElement; - var StaticMemberExpression = (function () { - function StaticMemberExpression(object, property) { - this.type = syntax_1.Syntax.MemberExpression; - this.computed = false; - this.object = object; - this.property = property; - } - return StaticMemberExpression; - }()); - exports.StaticMemberExpression = StaticMemberExpression; - var Super = (function () { - function Super() { - this.type = syntax_1.Syntax.Super; - } - return Super; - }()); - exports.Super = Super; - var SwitchCase = (function () { - function SwitchCase(test, consequent) { - this.type = syntax_1.Syntax.SwitchCase; - this.test = test; - this.consequent = consequent; - } - return SwitchCase; - }()); - exports.SwitchCase = SwitchCase; - var SwitchStatement = (function () { - function SwitchStatement(discriminant, cases) { - this.type = syntax_1.Syntax.SwitchStatement; - this.discriminant = discriminant; - this.cases = cases; - } - return SwitchStatement; - }()); - exports.SwitchStatement = SwitchStatement; - var TaggedTemplateExpression = (function () { - function TaggedTemplateExpression(tag, quasi) { - this.type = syntax_1.Syntax.TaggedTemplateExpression; - this.tag = tag; - this.quasi = quasi; - } - return TaggedTemplateExpression; - }()); - exports.TaggedTemplateExpression = TaggedTemplateExpression; - var TemplateElement = (function () { - function TemplateElement(value, tail) { - this.type = syntax_1.Syntax.TemplateElement; - this.value = value; - this.tail = tail; - } - return TemplateElement; - }()); - exports.TemplateElement = TemplateElement; - var TemplateLiteral = (function () { - function TemplateLiteral(quasis, expressions) { - this.type = syntax_1.Syntax.TemplateLiteral; - this.quasis = quasis; - this.expressions = expressions; - } - return TemplateLiteral; - }()); - exports.TemplateLiteral = TemplateLiteral; - var ThisExpression = (function () { - function ThisExpression() { - this.type = syntax_1.Syntax.ThisExpression; - } - return ThisExpression; - }()); - exports.ThisExpression = ThisExpression; - var ThrowStatement = (function () { - function ThrowStatement(argument) { - this.type = syntax_1.Syntax.ThrowStatement; - this.argument = argument; - } - return ThrowStatement; - }()); - exports.ThrowStatement = ThrowStatement; - var TryStatement = (function () { - function TryStatement(block, handler, finalizer) { - this.type = syntax_1.Syntax.TryStatement; - this.block = block; - this.handler = handler; - this.finalizer = finalizer; - } - return TryStatement; - }()); - exports.TryStatement = TryStatement; - var UnaryExpression = (function () { - function UnaryExpression(operator, argument) { - this.type = syntax_1.Syntax.UnaryExpression; - this.operator = operator; - this.argument = argument; - this.prefix = true; - } - return UnaryExpression; - }()); - exports.UnaryExpression = UnaryExpression; - var UpdateExpression = (function () { - function UpdateExpression(operator, argument, prefix) { - this.type = syntax_1.Syntax.UpdateExpression; - this.operator = operator; - this.argument = argument; - this.prefix = prefix; - } - return UpdateExpression; - }()); - exports.UpdateExpression = UpdateExpression; - var VariableDeclaration = (function () { - function VariableDeclaration(declarations, kind) { - this.type = syntax_1.Syntax.VariableDeclaration; - this.declarations = declarations; - this.kind = kind; - } - return VariableDeclaration; - }()); - exports.VariableDeclaration = VariableDeclaration; - var VariableDeclarator = (function () { - function VariableDeclarator(id, init) { - this.type = syntax_1.Syntax.VariableDeclarator; - this.id = id; - this.init = init; - } - return VariableDeclarator; - }()); - exports.VariableDeclarator = VariableDeclarator; - var WhileStatement = (function () { - function WhileStatement(test, body) { - this.type = syntax_1.Syntax.WhileStatement; - this.test = test; - this.body = body; - } - return WhileStatement; - }()); - exports.WhileStatement = WhileStatement; - var WithStatement = (function () { - function WithStatement(object, body) { - this.type = syntax_1.Syntax.WithStatement; - this.object = object; - this.body = body; - } - return WithStatement; - }()); - exports.WithStatement = WithStatement; - var YieldExpression = (function () { - function YieldExpression(argument, delegate) { - this.type = syntax_1.Syntax.YieldExpression; - this.argument = argument; - this.delegate = delegate; - } - return YieldExpression; - }()); - exports.YieldExpression = YieldExpression; - - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var assert_1 = __webpack_require__(9); - var error_handler_1 = __webpack_require__(10); - var messages_1 = __webpack_require__(11); - var Node = __webpack_require__(7); - var scanner_1 = __webpack_require__(12); - var syntax_1 = __webpack_require__(2); - var token_1 = __webpack_require__(13); - var ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder'; - var Parser = (function () { - function Parser(code, options, delegate) { - if (options === void 0) { options = {}; } - this.config = { - range: (typeof options.range === 'boolean') && options.range, - loc: (typeof options.loc === 'boolean') && options.loc, - source: null, - tokens: (typeof options.tokens === 'boolean') && options.tokens, - comment: (typeof options.comment === 'boolean') && options.comment, - tolerant: (typeof options.tolerant === 'boolean') && options.tolerant - }; - if (this.config.loc && options.source && options.source !== null) { - this.config.source = String(options.source); - } - this.delegate = delegate; - this.errorHandler = new error_handler_1.ErrorHandler(); - this.errorHandler.tolerant = this.config.tolerant; - this.scanner = new scanner_1.Scanner(code, this.errorHandler); - this.scanner.trackComment = this.config.comment; - this.operatorPrecedence = { - ')': 0, - ';': 0, - ',': 0, - '=': 0, - ']': 0, - '||': 1, - '&&': 2, - '|': 3, - '^': 4, - '&': 5, - '==': 6, - '!=': 6, - '===': 6, - '!==': 6, - '<': 7, - '>': 7, - '<=': 7, - '>=': 7, - '<<': 8, - '>>': 8, - '>>>': 8, - '+': 9, - '-': 9, - '*': 11, - '/': 11, - '%': 11 - }; - this.lookahead = { - type: 2 /* EOF */, - value: '', - lineNumber: this.scanner.lineNumber, - lineStart: 0, - start: 0, - end: 0 - }; - this.hasLineTerminator = false; - this.context = { - isModule: false, - await: false, - allowIn: true, - allowStrictDirective: true, - allowYield: true, - firstCoverInitializedNameError: null, - isAssignmentTarget: false, - isBindingElement: false, - inFunctionBody: false, - inIteration: false, - inSwitch: false, - labelSet: {}, - strict: false - }; - this.tokens = []; - this.startMarker = { - index: 0, - line: this.scanner.lineNumber, - column: 0 - }; - this.lastMarker = { - index: 0, - line: this.scanner.lineNumber, - column: 0 - }; - this.nextToken(); - this.lastMarker = { - index: this.scanner.index, - line: this.scanner.lineNumber, - column: this.scanner.index - this.scanner.lineStart - }; - } - Parser.prototype.throwError = function (messageFormat) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var args = Array.prototype.slice.call(arguments, 1); - var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { - assert_1.assert(idx < args.length, 'Message reference must be in range'); - return args[idx]; - }); - var index = this.lastMarker.index; - var line = this.lastMarker.line; - var column = this.lastMarker.column + 1; - throw this.errorHandler.createError(index, line, column, msg); - }; - Parser.prototype.tolerateError = function (messageFormat) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var args = Array.prototype.slice.call(arguments, 1); - var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { - assert_1.assert(idx < args.length, 'Message reference must be in range'); - return args[idx]; - }); - var index = this.lastMarker.index; - var line = this.scanner.lineNumber; - var column = this.lastMarker.column + 1; - this.errorHandler.tolerateError(index, line, column, msg); - }; - // Throw an exception because of the token. - Parser.prototype.unexpectedTokenError = function (token, message) { - var msg = message || messages_1.Messages.UnexpectedToken; - var value; - if (token) { - if (!message) { - msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS : - (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier : - (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber : - (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString : - (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate : - messages_1.Messages.UnexpectedToken; - if (token.type === 4 /* Keyword */) { - if (this.scanner.isFutureReservedWord(token.value)) { - msg = messages_1.Messages.UnexpectedReserved; - } - else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) { - msg = messages_1.Messages.StrictReservedWord; - } - } - } - value = token.value; - } - else { - value = 'ILLEGAL'; - } - msg = msg.replace('%0', value); - if (token && typeof token.lineNumber === 'number') { - var index = token.start; - var line = token.lineNumber; - var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column; - var column = token.start - lastMarkerLineStart + 1; - return this.errorHandler.createError(index, line, column, msg); - } - else { - var index = this.lastMarker.index; - var line = this.lastMarker.line; - var column = this.lastMarker.column + 1; - return this.errorHandler.createError(index, line, column, msg); - } - }; - Parser.prototype.throwUnexpectedToken = function (token, message) { - throw this.unexpectedTokenError(token, message); - }; - Parser.prototype.tolerateUnexpectedToken = function (token, message) { - this.errorHandler.tolerate(this.unexpectedTokenError(token, message)); - }; - Parser.prototype.collectComments = function () { - if (!this.config.comment) { - this.scanner.scanComments(); - } - else { - var comments = this.scanner.scanComments(); - if (comments.length > 0 && this.delegate) { - for (var i = 0; i < comments.length; ++i) { - var e = comments[i]; - var node = void 0; - node = { - type: e.multiLine ? 'BlockComment' : 'LineComment', - value: this.scanner.source.slice(e.slice[0], e.slice[1]) - }; - if (this.config.range) { - node.range = e.range; - } - if (this.config.loc) { - node.loc = e.loc; - } - var metadata = { - start: { - line: e.loc.start.line, - column: e.loc.start.column, - offset: e.range[0] - }, - end: { - line: e.loc.end.line, - column: e.loc.end.column, - offset: e.range[1] - } - }; - this.delegate(node, metadata); - } - } - } - }; - // From internal representation to an external structure - Parser.prototype.getTokenRaw = function (token) { - return this.scanner.source.slice(token.start, token.end); - }; - Parser.prototype.convertToken = function (token) { - var t = { - type: token_1.TokenName[token.type], - value: this.getTokenRaw(token) - }; - if (this.config.range) { - t.range = [token.start, token.end]; - } - if (this.config.loc) { - t.loc = { - start: { - line: this.startMarker.line, - column: this.startMarker.column - }, - end: { - line: this.scanner.lineNumber, - column: this.scanner.index - this.scanner.lineStart - } - }; - } - if (token.type === 9 /* RegularExpression */) { - var pattern = token.pattern; - var flags = token.flags; - t.regex = { pattern: pattern, flags: flags }; - } - return t; - }; - Parser.prototype.nextToken = function () { - var token = this.lookahead; - this.lastMarker.index = this.scanner.index; - this.lastMarker.line = this.scanner.lineNumber; - this.lastMarker.column = this.scanner.index - this.scanner.lineStart; - this.collectComments(); - if (this.scanner.index !== this.startMarker.index) { - this.startMarker.index = this.scanner.index; - this.startMarker.line = this.scanner.lineNumber; - this.startMarker.column = this.scanner.index - this.scanner.lineStart; - } - var next = this.scanner.lex(); - this.hasLineTerminator = (token.lineNumber !== next.lineNumber); - if (next && this.context.strict && next.type === 3 /* Identifier */) { - if (this.scanner.isStrictModeReservedWord(next.value)) { - next.type = 4 /* Keyword */; - } - } - this.lookahead = next; - if (this.config.tokens && next.type !== 2 /* EOF */) { - this.tokens.push(this.convertToken(next)); - } - return token; - }; - Parser.prototype.nextRegexToken = function () { - this.collectComments(); - var token = this.scanner.scanRegExp(); - if (this.config.tokens) { - // Pop the previous token, '/' or '/=' - // This is added from the lookahead token. - this.tokens.pop(); - this.tokens.push(this.convertToken(token)); - } - // Prime the next lookahead. - this.lookahead = token; - this.nextToken(); - return token; - }; - Parser.prototype.createNode = function () { - return { - index: this.startMarker.index, - line: this.startMarker.line, - column: this.startMarker.column - }; - }; - Parser.prototype.startNode = function (token) { - return { - index: token.start, - line: token.lineNumber, - column: token.start - token.lineStart - }; - }; - Parser.prototype.finalize = function (marker, node) { - if (this.config.range) { - node.range = [marker.index, this.lastMarker.index]; - } - if (this.config.loc) { - node.loc = { - start: { - line: marker.line, - column: marker.column, - }, - end: { - line: this.lastMarker.line, - column: this.lastMarker.column - } - }; - if (this.config.source) { - node.loc.source = this.config.source; - } - } - if (this.delegate) { - var metadata = { - start: { - line: marker.line, - column: marker.column, - offset: marker.index - }, - end: { - line: this.lastMarker.line, - column: this.lastMarker.column, - offset: this.lastMarker.index - } - }; - this.delegate(node, metadata); - } - return node; - }; - // Expect the next token to match the specified punctuator. - // If not, an exception will be thrown. - Parser.prototype.expect = function (value) { - var token = this.nextToken(); - if (token.type !== 7 /* Punctuator */ || token.value !== value) { - this.throwUnexpectedToken(token); - } - }; - // Quietly expect a comma when in tolerant mode, otherwise delegates to expect(). - Parser.prototype.expectCommaSeparator = function () { - if (this.config.tolerant) { - var token = this.lookahead; - if (token.type === 7 /* Punctuator */ && token.value === ',') { - this.nextToken(); - } - else if (token.type === 7 /* Punctuator */ && token.value === ';') { - this.nextToken(); - this.tolerateUnexpectedToken(token); - } - else { - this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken); - } - } - else { - this.expect(','); - } - }; - // Expect the next token to match the specified keyword. - // If not, an exception will be thrown. - Parser.prototype.expectKeyword = function (keyword) { - var token = this.nextToken(); - if (token.type !== 4 /* Keyword */ || token.value !== keyword) { - this.throwUnexpectedToken(token); - } - }; - // Return true if the next token matches the specified punctuator. - Parser.prototype.match = function (value) { - return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value; - }; - // Return true if the next token matches the specified keyword - Parser.prototype.matchKeyword = function (keyword) { - return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword; - }; - // Return true if the next token matches the specified contextual keyword - // (where an identifier is sometimes a keyword depending on the context) - Parser.prototype.matchContextualKeyword = function (keyword) { - return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword; - }; - // Return true if the next token is an assignment operator - Parser.prototype.matchAssign = function () { - if (this.lookahead.type !== 7 /* Punctuator */) { - return false; - } - var op = this.lookahead.value; - return op === '=' || - op === '*=' || - op === '**=' || - op === '/=' || - op === '%=' || - op === '+=' || - op === '-=' || - op === '<<=' || - op === '>>=' || - op === '>>>=' || - op === '&=' || - op === '^=' || - op === '|='; - }; - // Cover grammar support. - // - // When an assignment expression position starts with an left parenthesis, the determination of the type - // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) - // or the first comma. This situation also defers the determination of all the expressions nested in the pair. - // - // There are three productions that can be parsed in a parentheses pair that needs to be determined - // after the outermost pair is closed. They are: - // - // 1. AssignmentExpression - // 2. BindingElements - // 3. AssignmentTargets - // - // In order to avoid exponential backtracking, we use two flags to denote if the production can be - // binding element or assignment target. - // - // The three productions have the relationship: - // - // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression - // - // with a single exception that CoverInitializedName when used directly in an Expression, generates - // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the - // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. - // - // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not - // effect the current flags. This means the production the parser parses is only used as an expression. Therefore - // the CoverInitializedName check is conducted. - // - // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates - // the flags outside of the parser. This means the production the parser parses is used as a part of a potential - // pattern. The CoverInitializedName check is deferred. - Parser.prototype.isolateCoverGrammar = function (parseFunction) { - var previousIsBindingElement = this.context.isBindingElement; - var previousIsAssignmentTarget = this.context.isAssignmentTarget; - var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; - this.context.isBindingElement = true; - this.context.isAssignmentTarget = true; - this.context.firstCoverInitializedNameError = null; - var result = parseFunction.call(this); - if (this.context.firstCoverInitializedNameError !== null) { - this.throwUnexpectedToken(this.context.firstCoverInitializedNameError); - } - this.context.isBindingElement = previousIsBindingElement; - this.context.isAssignmentTarget = previousIsAssignmentTarget; - this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError; - return result; - }; - Parser.prototype.inheritCoverGrammar = function (parseFunction) { - var previousIsBindingElement = this.context.isBindingElement; - var previousIsAssignmentTarget = this.context.isAssignmentTarget; - var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; - this.context.isBindingElement = true; - this.context.isAssignmentTarget = true; - this.context.firstCoverInitializedNameError = null; - var result = parseFunction.call(this); - this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement; - this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget; - this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError; - return result; - }; - Parser.prototype.consumeSemicolon = function () { - if (this.match(';')) { - this.nextToken(); - } - else if (!this.hasLineTerminator) { - if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) { - this.throwUnexpectedToken(this.lookahead); - } - this.lastMarker.index = this.startMarker.index; - this.lastMarker.line = this.startMarker.line; - this.lastMarker.column = this.startMarker.column; - } - }; - // https://tc39.github.io/ecma262/#sec-primary-expression - Parser.prototype.parsePrimaryExpression = function () { - var node = this.createNode(); - var expr; - var token, raw; - switch (this.lookahead.type) { - case 3 /* Identifier */: - if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') { - this.tolerateUnexpectedToken(this.lookahead); - } - expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value)); - break; - case 6 /* NumericLiteral */: - case 8 /* StringLiteral */: - if (this.context.strict && this.lookahead.octal) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case 1 /* BooleanLiteral */: - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(token.value === 'true', raw)); - break; - case 5 /* NullLiteral */: - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - token = this.nextToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.Literal(null, raw)); - break; - case 10 /* Template */: - expr = this.parseTemplateLiteral(); - break; - case 7 /* Punctuator */: - switch (this.lookahead.value) { - case '(': - this.context.isBindingElement = false; - expr = this.inheritCoverGrammar(this.parseGroupExpression); - break; - case '[': - expr = this.inheritCoverGrammar(this.parseArrayInitializer); - break; - case '{': - expr = this.inheritCoverGrammar(this.parseObjectInitializer); - break; - case '/': - case '/=': - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - this.scanner.index = this.startMarker.index; - token = this.nextRegexToken(); - raw = this.getTokenRaw(token); - expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags)); - break; - default: - expr = this.throwUnexpectedToken(this.nextToken()); - } - break; - case 4 /* Keyword */: - if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) { - expr = this.parseIdentifierName(); - } - else if (!this.context.strict && this.matchKeyword('let')) { - expr = this.finalize(node, new Node.Identifier(this.nextToken().value)); - } - else { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - if (this.matchKeyword('function')) { - expr = this.parseFunctionExpression(); - } - else if (this.matchKeyword('this')) { - this.nextToken(); - expr = this.finalize(node, new Node.ThisExpression()); - } - else if (this.matchKeyword('class')) { - expr = this.parseClassExpression(); - } - else { - expr = this.throwUnexpectedToken(this.nextToken()); - } - } - break; - default: - expr = this.throwUnexpectedToken(this.nextToken()); - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-array-initializer - Parser.prototype.parseSpreadElement = function () { - var node = this.createNode(); - this.expect('...'); - var arg = this.inheritCoverGrammar(this.parseAssignmentExpression); - return this.finalize(node, new Node.SpreadElement(arg)); - }; - Parser.prototype.parseArrayInitializer = function () { - var node = this.createNode(); - var elements = []; - this.expect('['); - while (!this.match(']')) { - if (this.match(',')) { - this.nextToken(); - elements.push(null); - } - else if (this.match('...')) { - var element = this.parseSpreadElement(); - if (!this.match(']')) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - this.expect(','); - } - elements.push(element); - } - else { - elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); - if (!this.match(']')) { - this.expect(','); - } - } - } - this.expect(']'); - return this.finalize(node, new Node.ArrayExpression(elements)); - }; - // https://tc39.github.io/ecma262/#sec-object-initializer - Parser.prototype.parsePropertyMethod = function (params) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var previousStrict = this.context.strict; - var previousAllowStrictDirective = this.context.allowStrictDirective; - this.context.allowStrictDirective = params.simple; - var body = this.isolateCoverGrammar(this.parseFunctionSourceElements); - if (this.context.strict && params.firstRestricted) { - this.tolerateUnexpectedToken(params.firstRestricted, params.message); - } - if (this.context.strict && params.stricted) { - this.tolerateUnexpectedToken(params.stricted, params.message); - } - this.context.strict = previousStrict; - this.context.allowStrictDirective = previousAllowStrictDirective; - return body; - }; - Parser.prototype.parsePropertyMethodFunction = function () { - var isGenerator = false; - var node = this.createNode(); - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - var params = this.parseFormalParameters(); - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); - }; - Parser.prototype.parsePropertyMethodAsyncFunction = function () { - var node = this.createNode(); - var previousAllowYield = this.context.allowYield; - var previousAwait = this.context.await; - this.context.allowYield = false; - this.context.await = true; - var params = this.parseFormalParameters(); - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - this.context.await = previousAwait; - return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method)); - }; - Parser.prototype.parseObjectPropertyKey = function () { - var node = this.createNode(); - var token = this.nextToken(); - var key; - switch (token.type) { - case 8 /* StringLiteral */: - case 6 /* NumericLiteral */: - if (this.context.strict && token.octal) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral); - } - var raw = this.getTokenRaw(token); - key = this.finalize(node, new Node.Literal(token.value, raw)); - break; - case 3 /* Identifier */: - case 1 /* BooleanLiteral */: - case 5 /* NullLiteral */: - case 4 /* Keyword */: - key = this.finalize(node, new Node.Identifier(token.value)); - break; - case 7 /* Punctuator */: - if (token.value === '[') { - key = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.expect(']'); - } - else { - key = this.throwUnexpectedToken(token); - } - break; - default: - key = this.throwUnexpectedToken(token); - } - return key; - }; - Parser.prototype.isPropertyKey = function (key, value) { - return (key.type === syntax_1.Syntax.Identifier && key.name === value) || - (key.type === syntax_1.Syntax.Literal && key.value === value); - }; - Parser.prototype.parseObjectProperty = function (hasProto) { - var node = this.createNode(); - var token = this.lookahead; - var kind; - var key = null; - var value = null; - var computed = false; - var method = false; - var shorthand = false; - var isAsync = false; - if (token.type === 3 /* Identifier */) { - var id = token.value; - this.nextToken(); - computed = this.match('['); - isAsync = !this.hasLineTerminator && (id === 'async') && - !this.match(':') && !this.match('(') && !this.match('*'); - key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id)); - } - else if (this.match('*')) { - this.nextToken(); - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - } - var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); - if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) { - kind = 'get'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.context.allowYield = false; - value = this.parseGetterMethod(); - } - else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) { - kind = 'set'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseSetterMethod(); - } - else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { - kind = 'init'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseGeneratorMethod(); - method = true; - } - else { - if (!key) { - this.throwUnexpectedToken(this.lookahead); - } - kind = 'init'; - if (this.match(':') && !isAsync) { - if (!computed && this.isPropertyKey(key, '__proto__')) { - if (hasProto.value) { - this.tolerateError(messages_1.Messages.DuplicateProtoProperty); - } - hasProto.value = true; - } - this.nextToken(); - value = this.inheritCoverGrammar(this.parseAssignmentExpression); - } - else if (this.match('(')) { - value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); - method = true; - } - else if (token.type === 3 /* Identifier */) { - var id = this.finalize(node, new Node.Identifier(token.value)); - if (this.match('=')) { - this.context.firstCoverInitializedNameError = this.lookahead; - this.nextToken(); - shorthand = true; - var init = this.isolateCoverGrammar(this.parseAssignmentExpression); - value = this.finalize(node, new Node.AssignmentPattern(id, init)); - } - else { - shorthand = true; - value = id; - } - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - } - return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand)); - }; - Parser.prototype.parseObjectInitializer = function () { - var node = this.createNode(); - this.expect('{'); - var properties = []; - var hasProto = { value: false }; - while (!this.match('}')) { - properties.push(this.parseObjectProperty(hasProto)); - if (!this.match('}')) { - this.expectCommaSeparator(); - } - } - this.expect('}'); - return this.finalize(node, new Node.ObjectExpression(properties)); - }; - // https://tc39.github.io/ecma262/#sec-template-literals - Parser.prototype.parseTemplateHead = function () { - assert_1.assert(this.lookahead.head, 'Template literal must start with a template head'); - var node = this.createNode(); - var token = this.nextToken(); - var raw = token.value; - var cooked = token.cooked; - return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); - }; - Parser.prototype.parseTemplateElement = function () { - if (this.lookahead.type !== 10 /* Template */) { - this.throwUnexpectedToken(); - } - var node = this.createNode(); - var token = this.nextToken(); - var raw = token.value; - var cooked = token.cooked; - return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); - }; - Parser.prototype.parseTemplateLiteral = function () { - var node = this.createNode(); - var expressions = []; - var quasis = []; - var quasi = this.parseTemplateHead(); - quasis.push(quasi); - while (!quasi.tail) { - expressions.push(this.parseExpression()); - quasi = this.parseTemplateElement(); - quasis.push(quasi); - } - return this.finalize(node, new Node.TemplateLiteral(quasis, expressions)); - }; - // https://tc39.github.io/ecma262/#sec-grouping-operator - Parser.prototype.reinterpretExpressionAsPattern = function (expr) { - switch (expr.type) { - case syntax_1.Syntax.Identifier: - case syntax_1.Syntax.MemberExpression: - case syntax_1.Syntax.RestElement: - case syntax_1.Syntax.AssignmentPattern: - break; - case syntax_1.Syntax.SpreadElement: - expr.type = syntax_1.Syntax.RestElement; - this.reinterpretExpressionAsPattern(expr.argument); - break; - case syntax_1.Syntax.ArrayExpression: - expr.type = syntax_1.Syntax.ArrayPattern; - for (var i = 0; i < expr.elements.length; i++) { - if (expr.elements[i] !== null) { - this.reinterpretExpressionAsPattern(expr.elements[i]); - } - } - break; - case syntax_1.Syntax.ObjectExpression: - expr.type = syntax_1.Syntax.ObjectPattern; - for (var i = 0; i < expr.properties.length; i++) { - this.reinterpretExpressionAsPattern(expr.properties[i].value); - } - break; - case syntax_1.Syntax.AssignmentExpression: - expr.type = syntax_1.Syntax.AssignmentPattern; - delete expr.operator; - this.reinterpretExpressionAsPattern(expr.left); - break; - default: - // Allow other node type for tolerant parsing. - break; - } - }; - Parser.prototype.parseGroupExpression = function () { - var expr; - this.expect('('); - if (this.match(')')) { - this.nextToken(); - if (!this.match('=>')) { - this.expect('=>'); - } - expr = { - type: ArrowParameterPlaceHolder, - params: [], - async: false - }; - } - else { - var startToken = this.lookahead; - var params = []; - if (this.match('...')) { - expr = this.parseRestElement(params); - this.expect(')'); - if (!this.match('=>')) { - this.expect('=>'); - } - expr = { - type: ArrowParameterPlaceHolder, - params: [expr], - async: false - }; - } - else { - var arrow = false; - this.context.isBindingElement = true; - expr = this.inheritCoverGrammar(this.parseAssignmentExpression); - if (this.match(',')) { - var expressions = []; - this.context.isAssignmentTarget = false; - expressions.push(expr); - while (this.lookahead.type !== 2 /* EOF */) { - if (!this.match(',')) { - break; - } - this.nextToken(); - if (this.match(')')) { - this.nextToken(); - for (var i = 0; i < expressions.length; i++) { - this.reinterpretExpressionAsPattern(expressions[i]); - } - arrow = true; - expr = { - type: ArrowParameterPlaceHolder, - params: expressions, - async: false - }; - } - else if (this.match('...')) { - if (!this.context.isBindingElement) { - this.throwUnexpectedToken(this.lookahead); - } - expressions.push(this.parseRestElement(params)); - this.expect(')'); - if (!this.match('=>')) { - this.expect('=>'); - } - this.context.isBindingElement = false; - for (var i = 0; i < expressions.length; i++) { - this.reinterpretExpressionAsPattern(expressions[i]); - } - arrow = true; - expr = { - type: ArrowParameterPlaceHolder, - params: expressions, - async: false - }; - } - else { - expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); - } - if (arrow) { - break; - } - } - if (!arrow) { - expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); - } - } - if (!arrow) { - this.expect(')'); - if (this.match('=>')) { - if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') { - arrow = true; - expr = { - type: ArrowParameterPlaceHolder, - params: [expr], - async: false - }; - } - if (!arrow) { - if (!this.context.isBindingElement) { - this.throwUnexpectedToken(this.lookahead); - } - if (expr.type === syntax_1.Syntax.SequenceExpression) { - for (var i = 0; i < expr.expressions.length; i++) { - this.reinterpretExpressionAsPattern(expr.expressions[i]); - } - } - else { - this.reinterpretExpressionAsPattern(expr); - } - var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]); - expr = { - type: ArrowParameterPlaceHolder, - params: parameters, - async: false - }; - } - } - this.context.isBindingElement = false; - } - } - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions - Parser.prototype.parseArguments = function () { - this.expect('('); - var args = []; - if (!this.match(')')) { - while (true) { - var expr = this.match('...') ? this.parseSpreadElement() : - this.isolateCoverGrammar(this.parseAssignmentExpression); - args.push(expr); - if (this.match(')')) { - break; - } - this.expectCommaSeparator(); - if (this.match(')')) { - break; - } - } - } - this.expect(')'); - return args; - }; - Parser.prototype.isIdentifierName = function (token) { - return token.type === 3 /* Identifier */ || - token.type === 4 /* Keyword */ || - token.type === 1 /* BooleanLiteral */ || - token.type === 5 /* NullLiteral */; - }; - Parser.prototype.parseIdentifierName = function () { - var node = this.createNode(); - var token = this.nextToken(); - if (!this.isIdentifierName(token)) { - this.throwUnexpectedToken(token); - } - return this.finalize(node, new Node.Identifier(token.value)); - }; - Parser.prototype.parseNewExpression = function () { - var node = this.createNode(); - var id = this.parseIdentifierName(); - assert_1.assert(id.name === 'new', 'New expression must start with `new`'); - var expr; - if (this.match('.')) { - this.nextToken(); - if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') { - var property = this.parseIdentifierName(); - expr = new Node.MetaProperty(id, property); - } - else { - this.throwUnexpectedToken(this.lookahead); - } - } - else { - var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression); - var args = this.match('(') ? this.parseArguments() : []; - expr = new Node.NewExpression(callee, args); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - return this.finalize(node, expr); - }; - Parser.prototype.parseAsyncArgument = function () { - var arg = this.parseAssignmentExpression(); - this.context.firstCoverInitializedNameError = null; - return arg; - }; - Parser.prototype.parseAsyncArguments = function () { - this.expect('('); - var args = []; - if (!this.match(')')) { - while (true) { - var expr = this.match('...') ? this.parseSpreadElement() : - this.isolateCoverGrammar(this.parseAsyncArgument); - args.push(expr); - if (this.match(')')) { - break; - } - this.expectCommaSeparator(); - if (this.match(')')) { - break; - } - } - } - this.expect(')'); - return args; - }; - Parser.prototype.parseLeftHandSideExpressionAllowCall = function () { - var startToken = this.lookahead; - var maybeAsync = this.matchContextualKeyword('async'); - var previousAllowIn = this.context.allowIn; - this.context.allowIn = true; - var expr; - if (this.matchKeyword('super') && this.context.inFunctionBody) { - expr = this.createNode(); - this.nextToken(); - expr = this.finalize(expr, new Node.Super()); - if (!this.match('(') && !this.match('.') && !this.match('[')) { - this.throwUnexpectedToken(this.lookahead); - } - } - else { - expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); - } - while (true) { - if (this.match('.')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('.'); - var property = this.parseIdentifierName(); - expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property)); - } - else if (this.match('(')) { - var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber); - this.context.isBindingElement = false; - this.context.isAssignmentTarget = false; - var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments(); - expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args)); - if (asyncArrow && this.match('=>')) { - for (var i = 0; i < args.length; ++i) { - this.reinterpretExpressionAsPattern(args[i]); - } - expr = { - type: ArrowParameterPlaceHolder, - params: args, - async: true - }; - } - } - else if (this.match('[')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('['); - var property = this.isolateCoverGrammar(this.parseExpression); - this.expect(']'); - expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property)); - } - else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { - var quasi = this.parseTemplateLiteral(); - expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi)); - } - else { - break; - } - } - this.context.allowIn = previousAllowIn; - return expr; - }; - Parser.prototype.parseSuper = function () { - var node = this.createNode(); - this.expectKeyword('super'); - if (!this.match('[') && !this.match('.')) { - this.throwUnexpectedToken(this.lookahead); - } - return this.finalize(node, new Node.Super()); - }; - Parser.prototype.parseLeftHandSideExpression = function () { - assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.'); - var node = this.startNode(this.lookahead); - var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() : - this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); - while (true) { - if (this.match('[')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('['); - var property = this.isolateCoverGrammar(this.parseExpression); - this.expect(']'); - expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property)); - } - else if (this.match('.')) { - this.context.isBindingElement = false; - this.context.isAssignmentTarget = true; - this.expect('.'); - var property = this.parseIdentifierName(); - expr = this.finalize(node, new Node.StaticMemberExpression(expr, property)); - } - else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { - var quasi = this.parseTemplateLiteral(); - expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi)); - } - else { - break; - } - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-update-expressions - Parser.prototype.parseUpdateExpression = function () { - var expr; - var startToken = this.lookahead; - if (this.match('++') || this.match('--')) { - var node = this.startNode(startToken); - var token = this.nextToken(); - expr = this.inheritCoverGrammar(this.parseUnaryExpression); - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { - this.tolerateError(messages_1.Messages.StrictLHSPrefix); - } - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - var prefix = true; - expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix)); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else { - expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) { - if (this.match('++') || this.match('--')) { - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { - this.tolerateError(messages_1.Messages.StrictLHSPostfix); - } - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var operator = this.nextToken().value; - var prefix = false; - expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix)); - } - } - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-unary-operators - Parser.prototype.parseAwaitExpression = function () { - var node = this.createNode(); - this.nextToken(); - var argument = this.parseUnaryExpression(); - return this.finalize(node, new Node.AwaitExpression(argument)); - }; - Parser.prototype.parseUnaryExpression = function () { - var expr; - if (this.match('+') || this.match('-') || this.match('~') || this.match('!') || - this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) { - var node = this.startNode(this.lookahead); - var token = this.nextToken(); - expr = this.inheritCoverGrammar(this.parseUnaryExpression); - expr = this.finalize(node, new Node.UnaryExpression(token.value, expr)); - if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) { - this.tolerateError(messages_1.Messages.StrictDelete); - } - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else if (this.context.await && this.matchContextualKeyword('await')) { - expr = this.parseAwaitExpression(); - } - else { - expr = this.parseUpdateExpression(); - } - return expr; - }; - Parser.prototype.parseExponentiationExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseUnaryExpression); - if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) { - this.nextToken(); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var left = expr; - var right = this.isolateCoverGrammar(this.parseExponentiationExpression); - expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right)); - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-exp-operator - // https://tc39.github.io/ecma262/#sec-multiplicative-operators - // https://tc39.github.io/ecma262/#sec-additive-operators - // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators - // https://tc39.github.io/ecma262/#sec-relational-operators - // https://tc39.github.io/ecma262/#sec-equality-operators - // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators - // https://tc39.github.io/ecma262/#sec-binary-logical-operators - Parser.prototype.binaryPrecedence = function (token) { - var op = token.value; - var precedence; - if (token.type === 7 /* Punctuator */) { - precedence = this.operatorPrecedence[op] || 0; - } - else if (token.type === 4 /* Keyword */) { - precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0; - } - else { - precedence = 0; - } - return precedence; - }; - Parser.prototype.parseBinaryExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseExponentiationExpression); - var token = this.lookahead; - var prec = this.binaryPrecedence(token); - if (prec > 0) { - this.nextToken(); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var markers = [startToken, this.lookahead]; - var left = expr; - var right = this.isolateCoverGrammar(this.parseExponentiationExpression); - var stack = [left, token.value, right]; - var precedences = [prec]; - while (true) { - prec = this.binaryPrecedence(this.lookahead); - if (prec <= 0) { - break; - } - // Reduce: make a binary expression from the three topmost entries. - while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) { - right = stack.pop(); - var operator = stack.pop(); - precedences.pop(); - left = stack.pop(); - markers.pop(); - var node = this.startNode(markers[markers.length - 1]); - stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right))); - } - // Shift. - stack.push(this.nextToken().value); - precedences.push(prec); - markers.push(this.lookahead); - stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression)); - } - // Final reduce to clean-up the stack. - var i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while (i > 1) { - var node = this.startNode(markers.pop()); - var operator = stack[i - 1]; - expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr)); - i -= 2; - } - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-conditional-operator - Parser.prototype.parseConditionalExpression = function () { - var startToken = this.lookahead; - var expr = this.inheritCoverGrammar(this.parseBinaryExpression); - if (this.match('?')) { - this.nextToken(); - var previousAllowIn = this.context.allowIn; - this.context.allowIn = true; - var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.context.allowIn = previousAllowIn; - this.expect(':'); - var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression); - expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate)); - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-assignment-operators - Parser.prototype.checkPatternParam = function (options, param) { - switch (param.type) { - case syntax_1.Syntax.Identifier: - this.validateParam(options, param, param.name); - break; - case syntax_1.Syntax.RestElement: - this.checkPatternParam(options, param.argument); - break; - case syntax_1.Syntax.AssignmentPattern: - this.checkPatternParam(options, param.left); - break; - case syntax_1.Syntax.ArrayPattern: - for (var i = 0; i < param.elements.length; i++) { - if (param.elements[i] !== null) { - this.checkPatternParam(options, param.elements[i]); - } - } - break; - case syntax_1.Syntax.ObjectPattern: - for (var i = 0; i < param.properties.length; i++) { - this.checkPatternParam(options, param.properties[i].value); - } - break; - default: - break; - } - options.simple = options.simple && (param instanceof Node.Identifier); - }; - Parser.prototype.reinterpretAsCoverFormalsList = function (expr) { - var params = [expr]; - var options; - var asyncArrow = false; - switch (expr.type) { - case syntax_1.Syntax.Identifier: - break; - case ArrowParameterPlaceHolder: - params = expr.params; - asyncArrow = expr.async; - break; - default: - return null; - } - options = { - simple: true, - paramSet: {} - }; - for (var i = 0; i < params.length; ++i) { - var param = params[i]; - if (param.type === syntax_1.Syntax.AssignmentPattern) { - if (param.right.type === syntax_1.Syntax.YieldExpression) { - if (param.right.argument) { - this.throwUnexpectedToken(this.lookahead); - } - param.right.type = syntax_1.Syntax.Identifier; - param.right.name = 'yield'; - delete param.right.argument; - delete param.right.delegate; - } - } - else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') { - this.throwUnexpectedToken(this.lookahead); - } - this.checkPatternParam(options, param); - params[i] = param; - } - if (this.context.strict || !this.context.allowYield) { - for (var i = 0; i < params.length; ++i) { - var param = params[i]; - if (param.type === syntax_1.Syntax.YieldExpression) { - this.throwUnexpectedToken(this.lookahead); - } - } - } - if (options.message === messages_1.Messages.StrictParamDupe) { - var token = this.context.strict ? options.stricted : options.firstRestricted; - this.throwUnexpectedToken(token, options.message); - } - return { - simple: options.simple, - params: params, - stricted: options.stricted, - firstRestricted: options.firstRestricted, - message: options.message - }; - }; - Parser.prototype.parseAssignmentExpression = function () { - var expr; - if (!this.context.allowYield && this.matchKeyword('yield')) { - expr = this.parseYieldExpression(); - } - else { - var startToken = this.lookahead; - var token = startToken; - expr = this.parseConditionalExpression(); - if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') { - if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) { - var arg = this.parsePrimaryExpression(); - this.reinterpretExpressionAsPattern(arg); - expr = { - type: ArrowParameterPlaceHolder, - params: [arg], - async: true - }; - } - } - if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) { - // https://tc39.github.io/ecma262/#sec-arrow-function-definitions - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - var isAsync = expr.async; - var list = this.reinterpretAsCoverFormalsList(expr); - if (list) { - if (this.hasLineTerminator) { - this.tolerateUnexpectedToken(this.lookahead); - } - this.context.firstCoverInitializedNameError = null; - var previousStrict = this.context.strict; - var previousAllowStrictDirective = this.context.allowStrictDirective; - this.context.allowStrictDirective = list.simple; - var previousAllowYield = this.context.allowYield; - var previousAwait = this.context.await; - this.context.allowYield = true; - this.context.await = isAsync; - var node = this.startNode(startToken); - this.expect('=>'); - var body = void 0; - if (this.match('{')) { - var previousAllowIn = this.context.allowIn; - this.context.allowIn = true; - body = this.parseFunctionSourceElements(); - this.context.allowIn = previousAllowIn; - } - else { - body = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - var expression = body.type !== syntax_1.Syntax.BlockStatement; - if (this.context.strict && list.firstRestricted) { - this.throwUnexpectedToken(list.firstRestricted, list.message); - } - if (this.context.strict && list.stricted) { - this.tolerateUnexpectedToken(list.stricted, list.message); - } - expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) : - this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression)); - this.context.strict = previousStrict; - this.context.allowStrictDirective = previousAllowStrictDirective; - this.context.allowYield = previousAllowYield; - this.context.await = previousAwait; - } - } - else { - if (this.matchAssign()) { - if (!this.context.isAssignmentTarget) { - this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); - } - if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) { - var id = expr; - if (this.scanner.isRestrictedWord(id.name)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment); - } - if (this.scanner.isStrictModeReservedWord(id.name)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - } - if (!this.match('=')) { - this.context.isAssignmentTarget = false; - this.context.isBindingElement = false; - } - else { - this.reinterpretExpressionAsPattern(expr); - } - token = this.nextToken(); - var operator = token.value; - var right = this.isolateCoverGrammar(this.parseAssignmentExpression); - expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right)); - this.context.firstCoverInitializedNameError = null; - } - } - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-comma-operator - Parser.prototype.parseExpression = function () { - var startToken = this.lookahead; - var expr = this.isolateCoverGrammar(this.parseAssignmentExpression); - if (this.match(',')) { - var expressions = []; - expressions.push(expr); - while (this.lookahead.type !== 2 /* EOF */) { - if (!this.match(',')) { - break; - } - this.nextToken(); - expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); - } - expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); - } - return expr; - }; - // https://tc39.github.io/ecma262/#sec-block - Parser.prototype.parseStatementListItem = function () { - var statement; - this.context.isAssignmentTarget = true; - this.context.isBindingElement = true; - if (this.lookahead.type === 4 /* Keyword */) { - switch (this.lookahead.value) { - case 'export': - if (!this.context.isModule) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration); - } - statement = this.parseExportDeclaration(); - break; - case 'import': - if (!this.context.isModule) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration); - } - statement = this.parseImportDeclaration(); - break; - case 'const': - statement = this.parseLexicalDeclaration({ inFor: false }); - break; - case 'function': - statement = this.parseFunctionDeclaration(); - break; - case 'class': - statement = this.parseClassDeclaration(); - break; - case 'let': - statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement(); - break; - default: - statement = this.parseStatement(); - break; - } - } - else { - statement = this.parseStatement(); - } - return statement; - }; - Parser.prototype.parseBlock = function () { - var node = this.createNode(); - this.expect('{'); - var block = []; - while (true) { - if (this.match('}')) { - break; - } - block.push(this.parseStatementListItem()); - } - this.expect('}'); - return this.finalize(node, new Node.BlockStatement(block)); - }; - // https://tc39.github.io/ecma262/#sec-let-and-const-declarations - Parser.prototype.parseLexicalBinding = function (kind, options) { - var node = this.createNode(); - var params = []; - var id = this.parsePattern(params, kind); - if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord(id.name)) { - this.tolerateError(messages_1.Messages.StrictVarName); - } - } - var init = null; - if (kind === 'const') { - if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) { - if (this.match('=')) { - this.nextToken(); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - else { - this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const'); - } - } - } - else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) { - this.expect('='); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - return this.finalize(node, new Node.VariableDeclarator(id, init)); - }; - Parser.prototype.parseBindingList = function (kind, options) { - var list = [this.parseLexicalBinding(kind, options)]; - while (this.match(',')) { - this.nextToken(); - list.push(this.parseLexicalBinding(kind, options)); - } - return list; - }; - Parser.prototype.isLexicalDeclaration = function () { - var state = this.scanner.saveState(); - this.scanner.scanComments(); - var next = this.scanner.lex(); - this.scanner.restoreState(state); - return (next.type === 3 /* Identifier */) || - (next.type === 7 /* Punctuator */ && next.value === '[') || - (next.type === 7 /* Punctuator */ && next.value === '{') || - (next.type === 4 /* Keyword */ && next.value === 'let') || - (next.type === 4 /* Keyword */ && next.value === 'yield'); - }; - Parser.prototype.parseLexicalDeclaration = function (options) { - var node = this.createNode(); - var kind = this.nextToken().value; - assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); - var declarations = this.parseBindingList(kind, options); - this.consumeSemicolon(); - return this.finalize(node, new Node.VariableDeclaration(declarations, kind)); - }; - // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns - Parser.prototype.parseBindingRestElement = function (params, kind) { - var node = this.createNode(); - this.expect('...'); - var arg = this.parsePattern(params, kind); - return this.finalize(node, new Node.RestElement(arg)); - }; - Parser.prototype.parseArrayPattern = function (params, kind) { - var node = this.createNode(); - this.expect('['); - var elements = []; - while (!this.match(']')) { - if (this.match(',')) { - this.nextToken(); - elements.push(null); - } - else { - if (this.match('...')) { - elements.push(this.parseBindingRestElement(params, kind)); - break; - } - else { - elements.push(this.parsePatternWithDefault(params, kind)); - } - if (!this.match(']')) { - this.expect(','); - } - } - } - this.expect(']'); - return this.finalize(node, new Node.ArrayPattern(elements)); - }; - Parser.prototype.parsePropertyPattern = function (params, kind) { - var node = this.createNode(); - var computed = false; - var shorthand = false; - var method = false; - var key; - var value; - if (this.lookahead.type === 3 /* Identifier */) { - var keyToken = this.lookahead; - key = this.parseVariableIdentifier(); - var init = this.finalize(node, new Node.Identifier(keyToken.value)); - if (this.match('=')) { - params.push(keyToken); - shorthand = true; - this.nextToken(); - var expr = this.parseAssignmentExpression(); - value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr)); - } - else if (!this.match(':')) { - params.push(keyToken); - shorthand = true; - value = init; - } - else { - this.expect(':'); - value = this.parsePatternWithDefault(params, kind); - } - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.expect(':'); - value = this.parsePatternWithDefault(params, kind); - } - return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand)); - }; - Parser.prototype.parseObjectPattern = function (params, kind) { - var node = this.createNode(); - var properties = []; - this.expect('{'); - while (!this.match('}')) { - properties.push(this.parsePropertyPattern(params, kind)); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - return this.finalize(node, new Node.ObjectPattern(properties)); - }; - Parser.prototype.parsePattern = function (params, kind) { - var pattern; - if (this.match('[')) { - pattern = this.parseArrayPattern(params, kind); - } - else if (this.match('{')) { - pattern = this.parseObjectPattern(params, kind); - } - else { - if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) { - this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding); - } - params.push(this.lookahead); - pattern = this.parseVariableIdentifier(kind); - } - return pattern; - }; - Parser.prototype.parsePatternWithDefault = function (params, kind) { - var startToken = this.lookahead; - var pattern = this.parsePattern(params, kind); - if (this.match('=')) { - this.nextToken(); - var previousAllowYield = this.context.allowYield; - this.context.allowYield = true; - var right = this.isolateCoverGrammar(this.parseAssignmentExpression); - this.context.allowYield = previousAllowYield; - pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right)); - } - return pattern; - }; - // https://tc39.github.io/ecma262/#sec-variable-statement - Parser.prototype.parseVariableIdentifier = function (kind) { - var node = this.createNode(); - var token = this.nextToken(); - if (token.type === 4 /* Keyword */ && token.value === 'yield') { - if (this.context.strict) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - else if (!this.context.allowYield) { - this.throwUnexpectedToken(token); - } - } - else if (token.type !== 3 /* Identifier */) { - if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); - } - else { - if (this.context.strict || token.value !== 'let' || kind !== 'var') { - this.throwUnexpectedToken(token); - } - } - } - else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') { - this.tolerateUnexpectedToken(token); - } - return this.finalize(node, new Node.Identifier(token.value)); - }; - Parser.prototype.parseVariableDeclaration = function (options) { - var node = this.createNode(); - var params = []; - var id = this.parsePattern(params, 'var'); - if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord(id.name)) { - this.tolerateError(messages_1.Messages.StrictVarName); - } - } - var init = null; - if (this.match('=')) { - this.nextToken(); - init = this.isolateCoverGrammar(this.parseAssignmentExpression); - } - else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) { - this.expect('='); - } - return this.finalize(node, new Node.VariableDeclarator(id, init)); - }; - Parser.prototype.parseVariableDeclarationList = function (options) { - var opt = { inFor: options.inFor }; - var list = []; - list.push(this.parseVariableDeclaration(opt)); - while (this.match(',')) { - this.nextToken(); - list.push(this.parseVariableDeclaration(opt)); - } - return list; - }; - Parser.prototype.parseVariableStatement = function () { - var node = this.createNode(); - this.expectKeyword('var'); - var declarations = this.parseVariableDeclarationList({ inFor: false }); - this.consumeSemicolon(); - return this.finalize(node, new Node.VariableDeclaration(declarations, 'var')); - }; - // https://tc39.github.io/ecma262/#sec-empty-statement - Parser.prototype.parseEmptyStatement = function () { - var node = this.createNode(); - this.expect(';'); - return this.finalize(node, new Node.EmptyStatement()); - }; - // https://tc39.github.io/ecma262/#sec-expression-statement - Parser.prototype.parseExpressionStatement = function () { - var node = this.createNode(); - var expr = this.parseExpression(); - this.consumeSemicolon(); - return this.finalize(node, new Node.ExpressionStatement(expr)); - }; - // https://tc39.github.io/ecma262/#sec-if-statement - Parser.prototype.parseIfClause = function () { - if (this.context.strict && this.matchKeyword('function')) { - this.tolerateError(messages_1.Messages.StrictFunction); - } - return this.parseStatement(); - }; - Parser.prototype.parseIfStatement = function () { - var node = this.createNode(); - var consequent; - var alternate = null; - this.expectKeyword('if'); - this.expect('('); - var test = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - consequent = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - consequent = this.parseIfClause(); - if (this.matchKeyword('else')) { - this.nextToken(); - alternate = this.parseIfClause(); - } - } - return this.finalize(node, new Node.IfStatement(test, consequent, alternate)); - }; - // https://tc39.github.io/ecma262/#sec-do-while-statement - Parser.prototype.parseDoWhileStatement = function () { - var node = this.createNode(); - this.expectKeyword('do'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - var body = this.parseStatement(); - this.context.inIteration = previousInIteration; - this.expectKeyword('while'); - this.expect('('); - var test = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - } - else { - this.expect(')'); - if (this.match(';')) { - this.nextToken(); - } - } - return this.finalize(node, new Node.DoWhileStatement(body, test)); - }; - // https://tc39.github.io/ecma262/#sec-while-statement - Parser.prototype.parseWhileStatement = function () { - var node = this.createNode(); - var body; - this.expectKeyword('while'); - this.expect('('); - var test = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - body = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - body = this.parseStatement(); - this.context.inIteration = previousInIteration; - } - return this.finalize(node, new Node.WhileStatement(test, body)); - }; - // https://tc39.github.io/ecma262/#sec-for-statement - // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements - Parser.prototype.parseForStatement = function () { - var init = null; - var test = null; - var update = null; - var forIn = true; - var left, right; - var node = this.createNode(); - this.expectKeyword('for'); - this.expect('('); - if (this.match(';')) { - this.nextToken(); - } - else { - if (this.matchKeyword('var')) { - init = this.createNode(); - this.nextToken(); - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - var declarations = this.parseVariableDeclarationList({ inFor: true }); - this.context.allowIn = previousAllowIn; - if (declarations.length === 1 && this.matchKeyword('in')) { - var decl = declarations[0]; - if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) { - this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in'); - } - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.nextToken(); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); - this.expect(';'); - } - } - else if (this.matchKeyword('const') || this.matchKeyword('let')) { - init = this.createNode(); - var kind = this.nextToken().value; - if (!this.context.strict && this.lookahead.value === 'in') { - init = this.finalize(init, new Node.Identifier(kind)); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else { - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - var declarations = this.parseBindingList(kind, { inFor: true }); - this.context.allowIn = previousAllowIn; - if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - this.nextToken(); - left = init; - right = this.parseExpression(); - init = null; - } - else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - this.nextToken(); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - this.consumeSemicolon(); - init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); - } - } - } - else { - var initStartToken = this.lookahead; - var previousAllowIn = this.context.allowIn; - this.context.allowIn = false; - init = this.inheritCoverGrammar(this.parseAssignmentExpression); - this.context.allowIn = previousAllowIn; - if (this.matchKeyword('in')) { - if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { - this.tolerateError(messages_1.Messages.InvalidLHSInForIn); - } - this.nextToken(); - this.reinterpretExpressionAsPattern(init); - left = init; - right = this.parseExpression(); - init = null; - } - else if (this.matchContextualKeyword('of')) { - if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { - this.tolerateError(messages_1.Messages.InvalidLHSInForLoop); - } - this.nextToken(); - this.reinterpretExpressionAsPattern(init); - left = init; - right = this.parseAssignmentExpression(); - init = null; - forIn = false; - } - else { - if (this.match(',')) { - var initSeq = [init]; - while (this.match(',')) { - this.nextToken(); - initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); - } - init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq)); - } - this.expect(';'); - } - } - } - if (typeof left === 'undefined') { - if (!this.match(';')) { - test = this.parseExpression(); - } - this.expect(';'); - if (!this.match(')')) { - update = this.parseExpression(); - } - } - var body; - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - body = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - var previousInIteration = this.context.inIteration; - this.context.inIteration = true; - body = this.isolateCoverGrammar(this.parseStatement); - this.context.inIteration = previousInIteration; - } - return (typeof left === 'undefined') ? - this.finalize(node, new Node.ForStatement(init, test, update, body)) : - forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) : - this.finalize(node, new Node.ForOfStatement(left, right, body)); - }; - // https://tc39.github.io/ecma262/#sec-continue-statement - Parser.prototype.parseContinueStatement = function () { - var node = this.createNode(); - this.expectKeyword('continue'); - var label = null; - if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { - var id = this.parseVariableIdentifier(); - label = id; - var key = '$' + id.name; - if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.UnknownLabel, id.name); - } - } - this.consumeSemicolon(); - if (label === null && !this.context.inIteration) { - this.throwError(messages_1.Messages.IllegalContinue); - } - return this.finalize(node, new Node.ContinueStatement(label)); - }; - // https://tc39.github.io/ecma262/#sec-break-statement - Parser.prototype.parseBreakStatement = function () { - var node = this.createNode(); - this.expectKeyword('break'); - var label = null; - if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { - var id = this.parseVariableIdentifier(); - var key = '$' + id.name; - if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.UnknownLabel, id.name); - } - label = id; - } - this.consumeSemicolon(); - if (label === null && !this.context.inIteration && !this.context.inSwitch) { - this.throwError(messages_1.Messages.IllegalBreak); - } - return this.finalize(node, new Node.BreakStatement(label)); - }; - // https://tc39.github.io/ecma262/#sec-return-statement - Parser.prototype.parseReturnStatement = function () { - if (!this.context.inFunctionBody) { - this.tolerateError(messages_1.Messages.IllegalReturn); - } - var node = this.createNode(); - this.expectKeyword('return'); - var hasArgument = !this.match(';') && !this.match('}') && - !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */; - var argument = hasArgument ? this.parseExpression() : null; - this.consumeSemicolon(); - return this.finalize(node, new Node.ReturnStatement(argument)); - }; - // https://tc39.github.io/ecma262/#sec-with-statement - Parser.prototype.parseWithStatement = function () { - if (this.context.strict) { - this.tolerateError(messages_1.Messages.StrictModeWith); - } - var node = this.createNode(); - var body; - this.expectKeyword('with'); - this.expect('('); - var object = this.parseExpression(); - if (!this.match(')') && this.config.tolerant) { - this.tolerateUnexpectedToken(this.nextToken()); - body = this.finalize(this.createNode(), new Node.EmptyStatement()); - } - else { - this.expect(')'); - body = this.parseStatement(); - } - return this.finalize(node, new Node.WithStatement(object, body)); - }; - // https://tc39.github.io/ecma262/#sec-switch-statement - Parser.prototype.parseSwitchCase = function () { - var node = this.createNode(); - var test; - if (this.matchKeyword('default')) { - this.nextToken(); - test = null; - } - else { - this.expectKeyword('case'); - test = this.parseExpression(); - } - this.expect(':'); - var consequent = []; - while (true) { - if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) { - break; - } - consequent.push(this.parseStatementListItem()); - } - return this.finalize(node, new Node.SwitchCase(test, consequent)); - }; - Parser.prototype.parseSwitchStatement = function () { - var node = this.createNode(); - this.expectKeyword('switch'); - this.expect('('); - var discriminant = this.parseExpression(); - this.expect(')'); - var previousInSwitch = this.context.inSwitch; - this.context.inSwitch = true; - var cases = []; - var defaultFound = false; - this.expect('{'); - while (true) { - if (this.match('}')) { - break; - } - var clause = this.parseSwitchCase(); - if (clause.test === null) { - if (defaultFound) { - this.throwError(messages_1.Messages.MultipleDefaultsInSwitch); - } - defaultFound = true; - } - cases.push(clause); - } - this.expect('}'); - this.context.inSwitch = previousInSwitch; - return this.finalize(node, new Node.SwitchStatement(discriminant, cases)); - }; - // https://tc39.github.io/ecma262/#sec-labelled-statements - Parser.prototype.parseLabelledStatement = function () { - var node = this.createNode(); - var expr = this.parseExpression(); - var statement; - if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) { - this.nextToken(); - var id = expr; - var key = '$' + id.name; - if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { - this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name); - } - this.context.labelSet[key] = true; - var body = void 0; - if (this.matchKeyword('class')) { - this.tolerateUnexpectedToken(this.lookahead); - body = this.parseClassDeclaration(); - } - else if (this.matchKeyword('function')) { - var token = this.lookahead; - var declaration = this.parseFunctionDeclaration(); - if (this.context.strict) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction); - } - else if (declaration.generator) { - this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext); - } - body = declaration; - } - else { - body = this.parseStatement(); - } - delete this.context.labelSet[key]; - statement = new Node.LabeledStatement(id, body); - } - else { - this.consumeSemicolon(); - statement = new Node.ExpressionStatement(expr); - } - return this.finalize(node, statement); - }; - // https://tc39.github.io/ecma262/#sec-throw-statement - Parser.prototype.parseThrowStatement = function () { - var node = this.createNode(); - this.expectKeyword('throw'); - if (this.hasLineTerminator) { - this.throwError(messages_1.Messages.NewlineAfterThrow); - } - var argument = this.parseExpression(); - this.consumeSemicolon(); - return this.finalize(node, new Node.ThrowStatement(argument)); - }; - // https://tc39.github.io/ecma262/#sec-try-statement - Parser.prototype.parseCatchClause = function () { - var node = this.createNode(); - this.expectKeyword('catch'); - this.expect('('); - if (this.match(')')) { - this.throwUnexpectedToken(this.lookahead); - } - var params = []; - var param = this.parsePattern(params); - var paramMap = {}; - for (var i = 0; i < params.length; i++) { - var key = '$' + params[i].value; - if (Object.prototype.hasOwnProperty.call(paramMap, key)) { - this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value); - } - paramMap[key] = true; - } - if (this.context.strict && param.type === syntax_1.Syntax.Identifier) { - if (this.scanner.isRestrictedWord(param.name)) { - this.tolerateError(messages_1.Messages.StrictCatchVariable); - } - } - this.expect(')'); - var body = this.parseBlock(); - return this.finalize(node, new Node.CatchClause(param, body)); - }; - Parser.prototype.parseFinallyClause = function () { - this.expectKeyword('finally'); - return this.parseBlock(); - }; - Parser.prototype.parseTryStatement = function () { - var node = this.createNode(); - this.expectKeyword('try'); - var block = this.parseBlock(); - var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null; - var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null; - if (!handler && !finalizer) { - this.throwError(messages_1.Messages.NoCatchOrFinally); - } - return this.finalize(node, new Node.TryStatement(block, handler, finalizer)); - }; - // https://tc39.github.io/ecma262/#sec-debugger-statement - Parser.prototype.parseDebuggerStatement = function () { - var node = this.createNode(); - this.expectKeyword('debugger'); - this.consumeSemicolon(); - return this.finalize(node, new Node.DebuggerStatement()); - }; - // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations - Parser.prototype.parseStatement = function () { - var statement; - switch (this.lookahead.type) { - case 1 /* BooleanLiteral */: - case 5 /* NullLiteral */: - case 6 /* NumericLiteral */: - case 8 /* StringLiteral */: - case 10 /* Template */: - case 9 /* RegularExpression */: - statement = this.parseExpressionStatement(); - break; - case 7 /* Punctuator */: - var value = this.lookahead.value; - if (value === '{') { - statement = this.parseBlock(); - } - else if (value === '(') { - statement = this.parseExpressionStatement(); - } - else if (value === ';') { - statement = this.parseEmptyStatement(); - } - else { - statement = this.parseExpressionStatement(); - } - break; - case 3 /* Identifier */: - statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement(); - break; - case 4 /* Keyword */: - switch (this.lookahead.value) { - case 'break': - statement = this.parseBreakStatement(); - break; - case 'continue': - statement = this.parseContinueStatement(); - break; - case 'debugger': - statement = this.parseDebuggerStatement(); - break; - case 'do': - statement = this.parseDoWhileStatement(); - break; - case 'for': - statement = this.parseForStatement(); - break; - case 'function': - statement = this.parseFunctionDeclaration(); - break; - case 'if': - statement = this.parseIfStatement(); - break; - case 'return': - statement = this.parseReturnStatement(); - break; - case 'switch': - statement = this.parseSwitchStatement(); - break; - case 'throw': - statement = this.parseThrowStatement(); - break; - case 'try': - statement = this.parseTryStatement(); - break; - case 'var': - statement = this.parseVariableStatement(); - break; - case 'while': - statement = this.parseWhileStatement(); - break; - case 'with': - statement = this.parseWithStatement(); - break; - default: - statement = this.parseExpressionStatement(); - break; - } - break; - default: - statement = this.throwUnexpectedToken(this.lookahead); - } - return statement; - }; - // https://tc39.github.io/ecma262/#sec-function-definitions - Parser.prototype.parseFunctionSourceElements = function () { - var node = this.createNode(); - this.expect('{'); - var body = this.parseDirectivePrologues(); - var previousLabelSet = this.context.labelSet; - var previousInIteration = this.context.inIteration; - var previousInSwitch = this.context.inSwitch; - var previousInFunctionBody = this.context.inFunctionBody; - this.context.labelSet = {}; - this.context.inIteration = false; - this.context.inSwitch = false; - this.context.inFunctionBody = true; - while (this.lookahead.type !== 2 /* EOF */) { - if (this.match('}')) { - break; - } - body.push(this.parseStatementListItem()); - } - this.expect('}'); - this.context.labelSet = previousLabelSet; - this.context.inIteration = previousInIteration; - this.context.inSwitch = previousInSwitch; - this.context.inFunctionBody = previousInFunctionBody; - return this.finalize(node, new Node.BlockStatement(body)); - }; - Parser.prototype.validateParam = function (options, param, name) { - var key = '$' + name; - if (this.context.strict) { - if (this.scanner.isRestrictedWord(name)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamName; - } - if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamDupe; - } - } - else if (!options.firstRestricted) { - if (this.scanner.isRestrictedWord(name)) { - options.firstRestricted = param; - options.message = messages_1.Messages.StrictParamName; - } - else if (this.scanner.isStrictModeReservedWord(name)) { - options.firstRestricted = param; - options.message = messages_1.Messages.StrictReservedWord; - } - else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { - options.stricted = param; - options.message = messages_1.Messages.StrictParamDupe; - } - } - /* istanbul ignore next */ - if (typeof Object.defineProperty === 'function') { - Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true }); - } - else { - options.paramSet[key] = true; - } - }; - Parser.prototype.parseRestElement = function (params) { - var node = this.createNode(); - this.expect('...'); - var arg = this.parsePattern(params); - if (this.match('=')) { - this.throwError(messages_1.Messages.DefaultRestParameter); - } - if (!this.match(')')) { - this.throwError(messages_1.Messages.ParameterAfterRestParameter); - } - return this.finalize(node, new Node.RestElement(arg)); - }; - Parser.prototype.parseFormalParameter = function (options) { - var params = []; - var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params); - for (var i = 0; i < params.length; i++) { - this.validateParam(options, params[i], params[i].value); - } - options.simple = options.simple && (param instanceof Node.Identifier); - options.params.push(param); - }; - Parser.prototype.parseFormalParameters = function (firstRestricted) { - var options; - options = { - simple: true, - params: [], - firstRestricted: firstRestricted - }; - this.expect('('); - if (!this.match(')')) { - options.paramSet = {}; - while (this.lookahead.type !== 2 /* EOF */) { - this.parseFormalParameter(options); - if (this.match(')')) { - break; - } - this.expect(','); - if (this.match(')')) { - break; - } - } - } - this.expect(')'); - return { - simple: options.simple, - params: options.params, - stricted: options.stricted, - firstRestricted: options.firstRestricted, - message: options.message - }; - }; - Parser.prototype.matchAsyncFunction = function () { - var match = this.matchContextualKeyword('async'); - if (match) { - var state = this.scanner.saveState(); - this.scanner.scanComments(); - var next = this.scanner.lex(); - this.scanner.restoreState(state); - match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function'); - } - return match; - }; - Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) { - var node = this.createNode(); - var isAsync = this.matchContextualKeyword('async'); - if (isAsync) { - this.nextToken(); - } - this.expectKeyword('function'); - var isGenerator = isAsync ? false : this.match('*'); - if (isGenerator) { - this.nextToken(); - } - var message; - var id = null; - var firstRestricted = null; - if (!identifierIsOptional || !this.match('(')) { - var token = this.lookahead; - id = this.parseVariableIdentifier(); - if (this.context.strict) { - if (this.scanner.isRestrictedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); - } - } - else { - if (this.scanner.isRestrictedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictFunctionName; - } - else if (this.scanner.isStrictModeReservedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictReservedWord; - } - } - } - var previousAllowAwait = this.context.await; - var previousAllowYield = this.context.allowYield; - this.context.await = isAsync; - this.context.allowYield = !isGenerator; - var formalParameters = this.parseFormalParameters(firstRestricted); - var params = formalParameters.params; - var stricted = formalParameters.stricted; - firstRestricted = formalParameters.firstRestricted; - if (formalParameters.message) { - message = formalParameters.message; - } - var previousStrict = this.context.strict; - var previousAllowStrictDirective = this.context.allowStrictDirective; - this.context.allowStrictDirective = formalParameters.simple; - var body = this.parseFunctionSourceElements(); - if (this.context.strict && firstRestricted) { - this.throwUnexpectedToken(firstRestricted, message); - } - if (this.context.strict && stricted) { - this.tolerateUnexpectedToken(stricted, message); - } - this.context.strict = previousStrict; - this.context.allowStrictDirective = previousAllowStrictDirective; - this.context.await = previousAllowAwait; - this.context.allowYield = previousAllowYield; - return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) : - this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator)); - }; - Parser.prototype.parseFunctionExpression = function () { - var node = this.createNode(); - var isAsync = this.matchContextualKeyword('async'); - if (isAsync) { - this.nextToken(); - } - this.expectKeyword('function'); - var isGenerator = isAsync ? false : this.match('*'); - if (isGenerator) { - this.nextToken(); - } - var message; - var id = null; - var firstRestricted; - var previousAllowAwait = this.context.await; - var previousAllowYield = this.context.allowYield; - this.context.await = isAsync; - this.context.allowYield = !isGenerator; - if (!this.match('(')) { - var token = this.lookahead; - id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier(); - if (this.context.strict) { - if (this.scanner.isRestrictedWord(token.value)) { - this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); - } - } - else { - if (this.scanner.isRestrictedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictFunctionName; - } - else if (this.scanner.isStrictModeReservedWord(token.value)) { - firstRestricted = token; - message = messages_1.Messages.StrictReservedWord; - } - } - } - var formalParameters = this.parseFormalParameters(firstRestricted); - var params = formalParameters.params; - var stricted = formalParameters.stricted; - firstRestricted = formalParameters.firstRestricted; - if (formalParameters.message) { - message = formalParameters.message; - } - var previousStrict = this.context.strict; - var previousAllowStrictDirective = this.context.allowStrictDirective; - this.context.allowStrictDirective = formalParameters.simple; - var body = this.parseFunctionSourceElements(); - if (this.context.strict && firstRestricted) { - this.throwUnexpectedToken(firstRestricted, message); - } - if (this.context.strict && stricted) { - this.tolerateUnexpectedToken(stricted, message); - } - this.context.strict = previousStrict; - this.context.allowStrictDirective = previousAllowStrictDirective; - this.context.await = previousAllowAwait; - this.context.allowYield = previousAllowYield; - return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) : - this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator)); - }; - // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive - Parser.prototype.parseDirective = function () { - var token = this.lookahead; - var node = this.createNode(); - var expr = this.parseExpression(); - var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null; - this.consumeSemicolon(); - return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr)); - }; - Parser.prototype.parseDirectivePrologues = function () { - var firstRestricted = null; - var body = []; - while (true) { - var token = this.lookahead; - if (token.type !== 8 /* StringLiteral */) { - break; - } - var statement = this.parseDirective(); - body.push(statement); - var directive = statement.directive; - if (typeof directive !== 'string') { - break; - } - if (directive === 'use strict') { - this.context.strict = true; - if (firstRestricted) { - this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral); - } - if (!this.context.allowStrictDirective) { - this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective); - } - } - else { - if (!firstRestricted && token.octal) { - firstRestricted = token; - } - } - } - return body; - }; - // https://tc39.github.io/ecma262/#sec-method-definitions - Parser.prototype.qualifiedPropertyName = function (token) { - switch (token.type) { - case 3 /* Identifier */: - case 8 /* StringLiteral */: - case 1 /* BooleanLiteral */: - case 5 /* NullLiteral */: - case 6 /* NumericLiteral */: - case 4 /* Keyword */: - return true; - case 7 /* Punctuator */: - return token.value === '['; - default: - break; - } - return false; - }; - Parser.prototype.parseGetterMethod = function () { - var node = this.createNode(); - var isGenerator = false; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - var formalParameters = this.parseFormalParameters(); - if (formalParameters.params.length > 0) { - this.tolerateError(messages_1.Messages.BadGetterArity); - } - var method = this.parsePropertyMethod(formalParameters); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); - }; - Parser.prototype.parseSetterMethod = function () { - var node = this.createNode(); - var isGenerator = false; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - var formalParameters = this.parseFormalParameters(); - if (formalParameters.params.length !== 1) { - this.tolerateError(messages_1.Messages.BadSetterArity); - } - else if (formalParameters.params[0] instanceof Node.RestElement) { - this.tolerateError(messages_1.Messages.BadSetterRestParameter); - } - var method = this.parsePropertyMethod(formalParameters); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); - }; - Parser.prototype.parseGeneratorMethod = function () { - var node = this.createNode(); - var isGenerator = true; - var previousAllowYield = this.context.allowYield; - this.context.allowYield = true; - var params = this.parseFormalParameters(); - this.context.allowYield = false; - var method = this.parsePropertyMethod(params); - this.context.allowYield = previousAllowYield; - return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); - }; - // https://tc39.github.io/ecma262/#sec-generator-function-definitions - Parser.prototype.isStartOfExpression = function () { - var start = true; - var value = this.lookahead.value; - switch (this.lookahead.type) { - case 7 /* Punctuator */: - start = (value === '[') || (value === '(') || (value === '{') || - (value === '+') || (value === '-') || - (value === '!') || (value === '~') || - (value === '++') || (value === '--') || - (value === '/') || (value === '/='); // regular expression literal - break; - case 4 /* Keyword */: - start = (value === 'class') || (value === 'delete') || - (value === 'function') || (value === 'let') || (value === 'new') || - (value === 'super') || (value === 'this') || (value === 'typeof') || - (value === 'void') || (value === 'yield'); - break; - default: - break; - } - return start; - }; - Parser.prototype.parseYieldExpression = function () { - var node = this.createNode(); - this.expectKeyword('yield'); - var argument = null; - var delegate = false; - if (!this.hasLineTerminator) { - var previousAllowYield = this.context.allowYield; - this.context.allowYield = false; - delegate = this.match('*'); - if (delegate) { - this.nextToken(); - argument = this.parseAssignmentExpression(); - } - else if (this.isStartOfExpression()) { - argument = this.parseAssignmentExpression(); - } - this.context.allowYield = previousAllowYield; - } - return this.finalize(node, new Node.YieldExpression(argument, delegate)); - }; - // https://tc39.github.io/ecma262/#sec-class-definitions - Parser.prototype.parseClassElement = function (hasConstructor) { - var token = this.lookahead; - var node = this.createNode(); - var kind = ''; - var key = null; - var value = null; - var computed = false; - var method = false; - var isStatic = false; - var isAsync = false; - if (this.match('*')) { - this.nextToken(); - } - else { - computed = this.match('['); - key = this.parseObjectPropertyKey(); - var id = key; - if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) { - token = this.lookahead; - isStatic = true; - computed = this.match('['); - if (this.match('*')) { - this.nextToken(); - } - else { - key = this.parseObjectPropertyKey(); - } - } - if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) { - var punctuator = this.lookahead.value; - if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') { - isAsync = true; - token = this.lookahead; - key = this.parseObjectPropertyKey(); - if (token.type === 3 /* Identifier */) { - if (token.value === 'get' || token.value === 'set') { - this.tolerateUnexpectedToken(token); - } - else if (token.value === 'constructor') { - this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync); - } - } - } - } - } - var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); - if (token.type === 3 /* Identifier */) { - if (token.value === 'get' && lookaheadPropertyKey) { - kind = 'get'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - this.context.allowYield = false; - value = this.parseGetterMethod(); - } - else if (token.value === 'set' && lookaheadPropertyKey) { - kind = 'set'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseSetterMethod(); - } - } - else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { - kind = 'init'; - computed = this.match('['); - key = this.parseObjectPropertyKey(); - value = this.parseGeneratorMethod(); - method = true; - } - if (!kind && key && this.match('(')) { - kind = 'init'; - value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); - method = true; - } - if (!kind) { - this.throwUnexpectedToken(this.lookahead); - } - if (kind === 'init') { - kind = 'method'; - } - if (!computed) { - if (isStatic && this.isPropertyKey(key, 'prototype')) { - this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype); - } - if (!isStatic && this.isPropertyKey(key, 'constructor')) { - if (kind !== 'method' || !method || (value && value.generator)) { - this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod); - } - if (hasConstructor.value) { - this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor); - } - else { - hasConstructor.value = true; - } - kind = 'constructor'; - } - } - return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic)); - }; - Parser.prototype.parseClassElementList = function () { - var body = []; - var hasConstructor = { value: false }; - this.expect('{'); - while (!this.match('}')) { - if (this.match(';')) { - this.nextToken(); - } - else { - body.push(this.parseClassElement(hasConstructor)); - } - } - this.expect('}'); - return body; - }; - Parser.prototype.parseClassBody = function () { - var node = this.createNode(); - var elementList = this.parseClassElementList(); - return this.finalize(node, new Node.ClassBody(elementList)); - }; - Parser.prototype.parseClassDeclaration = function (identifierIsOptional) { - var node = this.createNode(); - var previousStrict = this.context.strict; - this.context.strict = true; - this.expectKeyword('class'); - var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier(); - var superClass = null; - if (this.matchKeyword('extends')) { - this.nextToken(); - superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - } - var classBody = this.parseClassBody(); - this.context.strict = previousStrict; - return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody)); - }; - Parser.prototype.parseClassExpression = function () { - var node = this.createNode(); - var previousStrict = this.context.strict; - this.context.strict = true; - this.expectKeyword('class'); - var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null; - var superClass = null; - if (this.matchKeyword('extends')) { - this.nextToken(); - superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); - } - var classBody = this.parseClassBody(); - this.context.strict = previousStrict; - return this.finalize(node, new Node.ClassExpression(id, superClass, classBody)); - }; - // https://tc39.github.io/ecma262/#sec-scripts - // https://tc39.github.io/ecma262/#sec-modules - Parser.prototype.parseModule = function () { - this.context.strict = true; - this.context.isModule = true; - var node = this.createNode(); - var body = this.parseDirectivePrologues(); - while (this.lookahead.type !== 2 /* EOF */) { - body.push(this.parseStatementListItem()); - } - return this.finalize(node, new Node.Module(body)); - }; - Parser.prototype.parseScript = function () { - var node = this.createNode(); - var body = this.parseDirectivePrologues(); - while (this.lookahead.type !== 2 /* EOF */) { - body.push(this.parseStatementListItem()); - } - return this.finalize(node, new Node.Script(body)); - }; - // https://tc39.github.io/ecma262/#sec-imports - Parser.prototype.parseModuleSpecifier = function () { - var node = this.createNode(); - if (this.lookahead.type !== 8 /* StringLiteral */) { - this.throwError(messages_1.Messages.InvalidModuleSpecifier); - } - var token = this.nextToken(); - var raw = this.getTokenRaw(token); - return this.finalize(node, new Node.Literal(token.value, raw)); - }; - // import {} ...; - Parser.prototype.parseImportSpecifier = function () { - var node = this.createNode(); - var imported; - var local; - if (this.lookahead.type === 3 /* Identifier */) { - imported = this.parseVariableIdentifier(); - local = imported; - if (this.matchContextualKeyword('as')) { - this.nextToken(); - local = this.parseVariableIdentifier(); - } - } - else { - imported = this.parseIdentifierName(); - local = imported; - if (this.matchContextualKeyword('as')) { - this.nextToken(); - local = this.parseVariableIdentifier(); - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - } - return this.finalize(node, new Node.ImportSpecifier(local, imported)); - }; - // {foo, bar as bas} - Parser.prototype.parseNamedImports = function () { - this.expect('{'); - var specifiers = []; - while (!this.match('}')) { - specifiers.push(this.parseImportSpecifier()); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - return specifiers; - }; - // import ...; - Parser.prototype.parseImportDefaultSpecifier = function () { - var node = this.createNode(); - var local = this.parseIdentifierName(); - return this.finalize(node, new Node.ImportDefaultSpecifier(local)); - }; - // import <* as foo> ...; - Parser.prototype.parseImportNamespaceSpecifier = function () { - var node = this.createNode(); - this.expect('*'); - if (!this.matchContextualKeyword('as')) { - this.throwError(messages_1.Messages.NoAsAfterImportNamespace); - } - this.nextToken(); - var local = this.parseIdentifierName(); - return this.finalize(node, new Node.ImportNamespaceSpecifier(local)); - }; - Parser.prototype.parseImportDeclaration = function () { - if (this.context.inFunctionBody) { - this.throwError(messages_1.Messages.IllegalImportDeclaration); - } - var node = this.createNode(); - this.expectKeyword('import'); - var src; - var specifiers = []; - if (this.lookahead.type === 8 /* StringLiteral */) { - // import 'foo'; - src = this.parseModuleSpecifier(); - } - else { - if (this.match('{')) { - // import {bar} - specifiers = specifiers.concat(this.parseNamedImports()); - } - else if (this.match('*')) { - // import * as foo - specifiers.push(this.parseImportNamespaceSpecifier()); - } - else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) { - // import foo - specifiers.push(this.parseImportDefaultSpecifier()); - if (this.match(',')) { - this.nextToken(); - if (this.match('*')) { - // import foo, * as foo - specifiers.push(this.parseImportNamespaceSpecifier()); - } - else if (this.match('{')) { - // import foo, {bar} - specifiers = specifiers.concat(this.parseNamedImports()); - } - else { - this.throwUnexpectedToken(this.lookahead); - } - } - } - else { - this.throwUnexpectedToken(this.nextToken()); - } - if (!this.matchContextualKeyword('from')) { - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - this.nextToken(); - src = this.parseModuleSpecifier(); - } - this.consumeSemicolon(); - return this.finalize(node, new Node.ImportDeclaration(specifiers, src)); - }; - // https://tc39.github.io/ecma262/#sec-exports - Parser.prototype.parseExportSpecifier = function () { - var node = this.createNode(); - var local = this.parseIdentifierName(); - var exported = local; - if (this.matchContextualKeyword('as')) { - this.nextToken(); - exported = this.parseIdentifierName(); - } - return this.finalize(node, new Node.ExportSpecifier(local, exported)); - }; - Parser.prototype.parseExportDeclaration = function () { - if (this.context.inFunctionBody) { - this.throwError(messages_1.Messages.IllegalExportDeclaration); - } - var node = this.createNode(); - this.expectKeyword('export'); - var exportDeclaration; - if (this.matchKeyword('default')) { - // export default ... - this.nextToken(); - if (this.matchKeyword('function')) { - // export default function foo () {} - // export default function () {} - var declaration = this.parseFunctionDeclaration(true); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - else if (this.matchKeyword('class')) { - // export default class foo {} - var declaration = this.parseClassDeclaration(true); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - else if (this.matchContextualKeyword('async')) { - // export default async function f () {} - // export default async function () {} - // export default async x => x - var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression(); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - else { - if (this.matchContextualKeyword('from')) { - this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value); - } - // export default {}; - // export default []; - // export default (1 + 2); - var declaration = this.match('{') ? this.parseObjectInitializer() : - this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression(); - this.consumeSemicolon(); - exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); - } - } - else if (this.match('*')) { - // export * from 'foo'; - this.nextToken(); - if (!this.matchContextualKeyword('from')) { - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - this.nextToken(); - var src = this.parseModuleSpecifier(); - this.consumeSemicolon(); - exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src)); - } - else if (this.lookahead.type === 4 /* Keyword */) { - // export var f = 1; - var declaration = void 0; - switch (this.lookahead.value) { - case 'let': - case 'const': - declaration = this.parseLexicalDeclaration({ inFor: false }); - break; - case 'var': - case 'class': - case 'function': - declaration = this.parseStatementListItem(); - break; - default: - this.throwUnexpectedToken(this.lookahead); - } - exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); - } - else if (this.matchAsyncFunction()) { - var declaration = this.parseFunctionDeclaration(); - exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); - } - else { - var specifiers = []; - var source = null; - var isExportFromIdentifier = false; - this.expect('{'); - while (!this.match('}')) { - isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default'); - specifiers.push(this.parseExportSpecifier()); - if (!this.match('}')) { - this.expect(','); - } - } - this.expect('}'); - if (this.matchContextualKeyword('from')) { - // export {default} from 'foo'; - // export {foo} from 'foo'; - this.nextToken(); - source = this.parseModuleSpecifier(); - this.consumeSemicolon(); - } - else if (isExportFromIdentifier) { - // export {default}; // missing fromClause - var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; - this.throwError(message, this.lookahead.value); - } - else { - // export {foo}; - this.consumeSemicolon(); - } - exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source)); - } - return exportDeclaration; - }; - return Parser; - }()); - exports.Parser = Parser; - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - // Ensure the condition is true, otherwise throw an error. - // This is only to have a better contract semantic, i.e. another safety net - // to catch a logic error. The condition shall be fulfilled in normal case. - // Do NOT use this to enforce a certain condition on any user input. - Object.defineProperty(exports, "__esModule", { value: true }); - function assert(condition, message) { - /* istanbul ignore if */ - if (!condition) { - throw new Error('ASSERT: ' + message); - } - } - exports.assert = assert; - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable:max-classes-per-file */ - Object.defineProperty(exports, "__esModule", { value: true }); - var ErrorHandler = (function () { - function ErrorHandler() { - this.errors = []; - this.tolerant = false; - } - ErrorHandler.prototype.recordError = function (error) { - this.errors.push(error); - }; - ErrorHandler.prototype.tolerate = function (error) { - if (this.tolerant) { - this.recordError(error); - } - else { - throw error; - } - }; - ErrorHandler.prototype.constructError = function (msg, column) { - var error = new Error(msg); - try { - throw error; - } - catch (base) { - /* istanbul ignore else */ - if (Object.create && Object.defineProperty) { - error = Object.create(base); - Object.defineProperty(error, 'column', { value: column }); - } - } - /* istanbul ignore next */ - return error; - }; - ErrorHandler.prototype.createError = function (index, line, col, description) { - var msg = 'Line ' + line + ': ' + description; - var error = this.constructError(msg, col); - error.index = index; - error.lineNumber = line; - error.description = description; - return error; - }; - ErrorHandler.prototype.throwError = function (index, line, col, description) { - throw this.createError(index, line, col, description); - }; - ErrorHandler.prototype.tolerateError = function (index, line, col, description) { - var error = this.createError(index, line, col, description); - if (this.tolerant) { - this.recordError(error); - } - else { - throw error; - } - }; - return ErrorHandler; - }()); - exports.ErrorHandler = ErrorHandler; - - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Error messages should be identical to V8. - exports.Messages = { - BadGetterArity: 'Getter must not have any formal parameters', - BadSetterArity: 'Setter must have exactly one formal parameter', - BadSetterRestParameter: 'Setter function argument must not be a rest parameter', - ConstructorIsAsync: 'Class constructor may not be an async method', - ConstructorSpecialMethod: 'Class constructor may not be an accessor', - DeclarationMissingInitializer: 'Missing initializer in %0 declaration', - DefaultRestParameter: 'Unexpected token =', - DuplicateBinding: 'Duplicate binding %0', - DuplicateConstructor: 'A class may only have one constructor', - DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', - ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer', - GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts', - IllegalBreak: 'Illegal break statement', - IllegalContinue: 'Illegal continue statement', - IllegalExportDeclaration: 'Unexpected token', - IllegalImportDeclaration: 'Unexpected token', - IllegalLanguageModeDirective: 'Illegal \'use strict\' directive in function with non-simple parameter list', - IllegalReturn: 'Illegal return statement', - InvalidEscapedReservedWord: 'Keyword must not contain escaped characters', - InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence', - InvalidLHSInAssignment: 'Invalid left-hand side in assignment', - InvalidLHSInForIn: 'Invalid left-hand side in for-in', - InvalidLHSInForLoop: 'Invalid left-hand side in for-loop', - InvalidModuleSpecifier: 'Unexpected token', - InvalidRegExp: 'Invalid regular expression', - LetInLexicalBinding: 'let is disallowed as a lexically bound name', - MissingFromClause: 'Unexpected token', - MultipleDefaultsInSwitch: 'More than one default clause in switch statement', - NewlineAfterThrow: 'Illegal newline after throw', - NoAsAfterImportNamespace: 'Unexpected token', - NoCatchOrFinally: 'Missing catch or finally after try', - ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', - Redeclaration: '%0 \'%1\' has already been declared', - StaticPrototype: 'Classes may not have static property named prototype', - StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', - StrictDelete: 'Delete of an unqualified identifier in strict mode.', - StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block', - StrictFunctionName: 'Function name may not be eval or arguments in strict mode', - StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', - StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', - StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', - StrictModeWith: 'Strict mode code may not include a with statement', - StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', - StrictParamDupe: 'Strict mode function may not have duplicate parameter names', - StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', - StrictReservedWord: 'Use of future reserved word in strict mode', - StrictVarName: 'Variable name may not be eval or arguments in strict mode', - TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', - UnexpectedEOS: 'Unexpected end of input', - UnexpectedIdentifier: 'Unexpected identifier', - UnexpectedNumber: 'Unexpected number', - UnexpectedReserved: 'Unexpected reserved word', - UnexpectedString: 'Unexpected string', - UnexpectedTemplate: 'Unexpected quasi %0', - UnexpectedToken: 'Unexpected token %0', - UnexpectedTokenIllegal: 'Unexpected token ILLEGAL', - UnknownLabel: 'Undefined label \'%0\'', - UnterminatedRegExp: 'Invalid regular expression: missing /' - }; - - -/***/ }, -/* 12 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var assert_1 = __webpack_require__(9); - var character_1 = __webpack_require__(4); - var messages_1 = __webpack_require__(11); - function hexValue(ch) { - return '0123456789abcdef'.indexOf(ch.toLowerCase()); - } - function octalValue(ch) { - return '01234567'.indexOf(ch); - } - var Scanner = (function () { - function Scanner(code, handler) { - this.source = code; - this.errorHandler = handler; - this.trackComment = false; - this.length = code.length; - this.index = 0; - this.lineNumber = (code.length > 0) ? 1 : 0; - this.lineStart = 0; - this.curlyStack = []; - } - Scanner.prototype.saveState = function () { - return { - index: this.index, - lineNumber: this.lineNumber, - lineStart: this.lineStart - }; - }; - Scanner.prototype.restoreState = function (state) { - this.index = state.index; - this.lineNumber = state.lineNumber; - this.lineStart = state.lineStart; - }; - Scanner.prototype.eof = function () { - return this.index >= this.length; - }; - Scanner.prototype.throwUnexpectedToken = function (message) { - if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } - return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); - }; - Scanner.prototype.tolerateUnexpectedToken = function (message) { - if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } - this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); - }; - // https://tc39.github.io/ecma262/#sec-comments - Scanner.prototype.skipSingleLineComment = function (offset) { - var comments = []; - var start, loc; - if (this.trackComment) { - comments = []; - start = this.index - offset; - loc = { - start: { - line: this.lineNumber, - column: this.index - this.lineStart - offset - }, - end: {} - }; - } - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - ++this.index; - if (character_1.Character.isLineTerminator(ch)) { - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - 1 - }; - var entry = { - multiLine: false, - slice: [start + offset, this.index - 1], - range: [start, this.index - 1], - loc: loc - }; - comments.push(entry); - } - if (ch === 13 && this.source.charCodeAt(this.index) === 10) { - ++this.index; - } - ++this.lineNumber; - this.lineStart = this.index; - return comments; - } - } - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: false, - slice: [start + offset, this.index], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - return comments; - }; - Scanner.prototype.skipMultiLineComment = function () { - var comments = []; - var start, loc; - if (this.trackComment) { - comments = []; - start = this.index - 2; - loc = { - start: { - line: this.lineNumber, - column: this.index - this.lineStart - 2 - }, - end: {} - }; - } - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - if (character_1.Character.isLineTerminator(ch)) { - if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) { - ++this.index; - } - ++this.lineNumber; - ++this.index; - this.lineStart = this.index; - } - else if (ch === 0x2A) { - // Block comment ends with '*/'. - if (this.source.charCodeAt(this.index + 1) === 0x2F) { - this.index += 2; - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: true, - slice: [start + 2, this.index - 2], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - return comments; - } - ++this.index; - } - else { - ++this.index; - } - } - // Ran off the end of the file - the whole thing is a comment - if (this.trackComment) { - loc.end = { - line: this.lineNumber, - column: this.index - this.lineStart - }; - var entry = { - multiLine: true, - slice: [start + 2, this.index], - range: [start, this.index], - loc: loc - }; - comments.push(entry); - } - this.tolerateUnexpectedToken(); - return comments; - }; - Scanner.prototype.scanComments = function () { - var comments; - if (this.trackComment) { - comments = []; - } - var start = (this.index === 0); - while (!this.eof()) { - var ch = this.source.charCodeAt(this.index); - if (character_1.Character.isWhiteSpace(ch)) { - ++this.index; - } - else if (character_1.Character.isLineTerminator(ch)) { - ++this.index; - if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) { - ++this.index; - } - ++this.lineNumber; - this.lineStart = this.index; - start = true; - } - else if (ch === 0x2F) { - ch = this.source.charCodeAt(this.index + 1); - if (ch === 0x2F) { - this.index += 2; - var comment = this.skipSingleLineComment(2); - if (this.trackComment) { - comments = comments.concat(comment); - } - start = true; - } - else if (ch === 0x2A) { - this.index += 2; - var comment = this.skipMultiLineComment(); - if (this.trackComment) { - comments = comments.concat(comment); - } - } - else { - break; - } - } - else if (start && ch === 0x2D) { - // U+003E is '>' - if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) { - // '-->' is a single-line comment - this.index += 3; - var comment = this.skipSingleLineComment(3); - if (this.trackComment) { - comments = comments.concat(comment); - } - } - else { - break; - } - } - else if (ch === 0x3C) { - if (this.source.slice(this.index + 1, this.index + 4) === '!--') { - this.index += 4; // ` - - - -``` - -Browser support was done mostly for the online demo. If you find any errors - feel -free to send pull requests with fixes. Also note, that IE and other old browsers -needs [es5-shims](https://github.com/kriskowal/es5-shim) to operate. - -Notes: - -1. We have no resources to support browserified version. Don't expect it to be - well tested. Don't expect fast fixes if something goes wrong there. -2. `!!js/function` in browser bundle will not work by default. If you really need - it - load `esprima` parser first (via amd or directly). -3. `!!bin` in browser will return `Array`, because browsers do not support - node.js `Buffer` and adding Buffer shims is completely useless on practice. - - -API ---- - -Here we cover the most 'useful' methods. If you need advanced details (creating -your own tags), see [wiki](https://github.com/nodeca/js-yaml/wiki) and -[examples](https://github.com/nodeca/js-yaml/tree/master/examples) for more -info. - -``` javascript -yaml = require('js-yaml'); -fs = require('fs'); - -// Get document, or throw exception on error -try { - var doc = yaml.safeLoad(fs.readFileSync('/home/ixti/example.yml', 'utf8')); - console.log(doc); -} catch (e) { - console.log(e); -} -``` - - -### safeLoad (string [ , options ]) - -**Recommended loading way.** Parses `string` as single YAML document. Returns a JavaScript -object or throws `YAMLException` on error. By default, does not support regexps, -functions and undefined. This method is safe for untrusted data. - -options: - -- `filename` _(default: null)_ - string to be used as a file path in - error/warning messages. -- `onWarning` _(default: null)_ - function to call on warning messages. - Loader will throw on warnings if this function is not provided. -- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ - specifies a schema to use. - - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects: - http://www.yaml.org/spec/1.2/spec.html#id2802346 - - `JSON_SCHEMA` - all JSON-supported types: - http://www.yaml.org/spec/1.2/spec.html#id2803231 - - `CORE_SCHEMA` - same as `JSON_SCHEMA`: - http://www.yaml.org/spec/1.2/spec.html#id2804923 - - `DEFAULT_SAFE_SCHEMA` - all supported YAML types, without unsafe ones - (`!!js/undefined`, `!!js/regexp` and `!!js/function`): - http://yaml.org/type/ - - `DEFAULT_FULL_SCHEMA` - all supported YAML types. -- `json` _(default: false)_ - compatibility with JSON.parse behaviour. If true, then duplicate keys in a mapping will override values rather than throwing an error. - -NOTE: This function **does not** understand multi-document sources, it throws -exception on those. - -NOTE: JS-YAML **does not** support schema-specific tag resolution restrictions. -So, the JSON schema is not as strictly defined in the YAML specification. -It allows numbers in any notation, use `Null` and `NULL` as `null`, etc. -The core schema also has no such restrictions. It allows binary notation for integers. - - -### load (string [ , options ]) - -**Use with care with untrusted sources**. The same as `safeLoad()` but uses -`DEFAULT_FULL_SCHEMA` by default - adds some JavaScript-specific types: -`!!js/function`, `!!js/regexp` and `!!js/undefined`. For untrusted sources, you -must additionally validate object structure to avoid injections: - -``` javascript -var untrusted_code = '"toString": ! "function (){very_evil_thing();}"'; - -// I'm just converting that string, what could possibly go wrong? -require('js-yaml').load(untrusted_code) + '' -``` - - -### safeLoadAll (string [, iterator] [, options ]) - -Same as `safeLoad()`, but understands multi-document sources. Applies -`iterator` to each document if specified, or returns array of documents. - -``` javascript -var yaml = require('js-yaml'); - -yaml.safeLoadAll(data, function (doc) { - console.log(doc); -}); -``` - - -### loadAll (string [, iterator] [ , options ]) - -Same as `safeLoadAll()` but uses `DEFAULT_FULL_SCHEMA` by default. - - -### safeDump (object [ , options ]) - -Serializes `object` as a YAML document. Uses `DEFAULT_SAFE_SCHEMA`, so it will -throw an exception if you try to dump regexps or functions. However, you can -disable exceptions by setting the `skipInvalid` option to `true`. - -options: - -- `indent` _(default: 2)_ - indentation width to use (in spaces). -- `skipInvalid` _(default: false)_ - do not throw on invalid types (like function - in the safe schema) and skip pairs and single values with such types. -- `flowLevel` (default: -1) - specifies level of nesting, when to switch from - block to flow style for collections. -1 means block style everwhere -- `styles` - "tag" => "style" map. Each tag may have own set of styles. -- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ specifies a schema to use. -- `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a - function, use the function to sort the keys. -- `lineWidth` _(default: `80`)_ - set max line width. -- `noRefs` _(default: `false`)_ - if `true`, don't convert duplicate objects into references -- `noCompatMode` _(default: `false`)_ - if `true` don't try to be compatible with older - yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 -- `condenseFlow` _(default: `false`)_ - if `true` flow sequences will be condensed, omitting the space between `a, b`. Eg. `'[a,b]'`, and omitting the space between `key: value` and quoting the key. Eg. `'{"a":b}'` Can be useful when using yaml for pretty URL query params as spaces are %-encoded. - -The following table show availlable styles (e.g. "canonical", -"binary"...) available for each tag (.e.g. !!null, !!int ...). Yaml -output is shown on the right side after `=>` (default setting) or `->`: - -``` none -!!null - "canonical" -> "~" - "lowercase" => "null" - "uppercase" -> "NULL" - "camelcase" -> "Null" - -!!int - "binary" -> "0b1", "0b101010", "0b1110001111010" - "octal" -> "01", "052", "016172" - "decimal" => "1", "42", "7290" - "hexadecimal" -> "0x1", "0x2A", "0x1C7A" - -!!bool - "lowercase" => "true", "false" - "uppercase" -> "TRUE", "FALSE" - "camelcase" -> "True", "False" - -!!float - "lowercase" => ".nan", '.inf' - "uppercase" -> ".NAN", '.INF' - "camelcase" -> ".NaN", '.Inf' -``` - -Example: - -``` javascript -safeDump (object, { - 'styles': { - '!!null': 'canonical' // dump null as ~ - }, - 'sortKeys': true // sort object keys -}); -``` - -### dump (object [ , options ]) - -Same as `safeDump()` but without limits (uses `DEFAULT_FULL_SCHEMA` by default). - - -Supported YAML types --------------------- - -The list of standard YAML tags and corresponding JavaScipt types. See also -[YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and -[YAML types repository](http://yaml.org/type/). - -``` -!!null '' # null -!!bool 'yes' # bool -!!int '3...' # number -!!float '3.14...' # number -!!binary '...base64...' # buffer -!!timestamp 'YYYY-...' # date -!!omap [ ... ] # array of key-value pairs -!!pairs [ ... ] # array or array pairs -!!set { ... } # array of objects with given keys and null values -!!str '...' # string -!!seq [ ... ] # array -!!map { ... } # object -``` - -**JavaScript-specific tags** - -``` -!!js/regexp /pattern/gim # RegExp -!!js/undefined '' # Undefined -!!js/function 'function () {...}' # Function -``` - -Caveats -------- - -Note, that you use arrays or objects as key in JS-YAML. JS does not allow objects -or arrays as keys, and stringifies (by calling `toString()` method) them at the -moment of adding them. - -``` yaml ---- -? [ foo, bar ] -: - baz -? { foo: bar } -: - baz - - baz -``` - -``` javascript -{ "foo,bar": ["baz"], "[object Object]": ["baz", "baz"] } -``` - -Also, reading of properties on implicit block mapping keys is not supported yet. -So, the following YAML document cannot be loaded. - -``` yaml -&anchor foo: - foo: bar - *anchor: duplicate key - baz: bat - *anchor: duplicate key -``` - - -Breaking changes in 2.x.x -> 3.x.x ----------------------------------- - -If you have not used __custom__ tags or loader classes and not loaded yaml -files via `require()`, no changes are needed. Just upgrade the library. - -Otherwise, you should: - -1. Replace all occurrences of `require('xxxx.yml')` by `fs.readFileSync()` + - `yaml.safeLoad()`. -2. rewrite your custom tags constructors and custom loader - classes, to conform the new API. See - [examples](https://github.com/nodeca/js-yaml/tree/master/examples) and - [wiki](https://github.com/nodeca/js-yaml/wiki) for details. - - -License -------- - -View the [LICENSE](https://github.com/nodeca/js-yaml/blob/master/LICENSE) file -(MIT). diff --git a/tools/doc/node_modules/js-yaml/bin/js-yaml.js b/tools/doc/node_modules/js-yaml/bin/js-yaml.js deleted file mode 100755 index e79186be6f56f1..00000000000000 --- a/tools/doc/node_modules/js-yaml/bin/js-yaml.js +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env node - - -'use strict'; - -/*eslint-disable no-console*/ - - -// stdlib -var fs = require('fs'); - - -// 3rd-party -var argparse = require('argparse'); - - -// internal -var yaml = require('..'); - - -//////////////////////////////////////////////////////////////////////////////// - - -var cli = new argparse.ArgumentParser({ - prog: 'js-yaml', - version: require('../package.json').version, - addHelp: true -}); - - -cli.addArgument([ '-c', '--compact' ], { - help: 'Display errors in compact mode', - action: 'storeTrue' -}); - - -// deprecated (not needed after we removed output colors) -// option suppressed, but not completely removed for compatibility -cli.addArgument([ '-j', '--to-json' ], { - help: argparse.Const.SUPPRESS, - dest: 'json', - action: 'storeTrue' -}); - - -cli.addArgument([ '-t', '--trace' ], { - help: 'Show stack trace on error', - action: 'storeTrue' -}); - -cli.addArgument([ 'file' ], { - help: 'File to read, utf-8 encoded without BOM', - nargs: '?', - defaultValue: '-' -}); - - -//////////////////////////////////////////////////////////////////////////////// - - -var options = cli.parseArgs(); - - -//////////////////////////////////////////////////////////////////////////////// - -function readFile(filename, encoding, callback) { - if (options.file === '-') { - // read from stdin - - var chunks = []; - - process.stdin.on('data', function (chunk) { - chunks.push(chunk); - }); - - process.stdin.on('end', function () { - return callback(null, Buffer.concat(chunks).toString(encoding)); - }); - } else { - fs.readFile(filename, encoding, callback); - } -} - -readFile(options.file, 'utf8', function (error, input) { - var output, isYaml; - - if (error) { - if (error.code === 'ENOENT') { - console.error('File not found: ' + options.file); - process.exit(2); - } - - console.error( - options.trace && error.stack || - error.message || - String(error)); - - process.exit(1); - } - - try { - output = JSON.parse(input); - isYaml = false; - } catch (err) { - if (err instanceof SyntaxError) { - try { - output = []; - yaml.loadAll(input, function (doc) { output.push(doc); }, {}); - isYaml = true; - - if (output.length === 0) output = null; - else if (output.length === 1) output = output[0]; - - } catch (e) { - if (options.trace && err.stack) console.error(e.stack); - else console.error(e.toString(options.compact)); - - process.exit(1); - } - } else { - console.error( - options.trace && err.stack || - err.message || - String(err)); - - process.exit(1); - } - } - - if (isYaml) console.log(JSON.stringify(output, null, ' ')); - else console.log(yaml.dump(output)); -}); diff --git a/tools/doc/node_modules/js-yaml/dist/js-yaml.js b/tools/doc/node_modules/js-yaml/dist/js-yaml.js deleted file mode 100644 index df93be39d12ae2..00000000000000 --- a/tools/doc/node_modules/js-yaml/dist/js-yaml.js +++ /dev/null @@ -1,3905 +0,0 @@ -/* js-yaml 3.11.0 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; - -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; - - if (map === null) return {}; - - result = {}; - keys = Object.keys(map); - - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); - - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; - - if (type && _hasOwnProperty.call(type.styleAliases, style)) { - style = type.styleAliases[style]; - } - - result[tag] = style; - } - - return result; -} - -function encodeHex(character) { - var string, handle, length; - - string = character.toString(16).toUpperCase(); - - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); - } - - return '\\' + handle + common.repeat('0', length - string.length) + string; -} - -function State(options) { - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.indent = Math.max(1, (options['indent'] || 2)); - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - - this.tag = null; - this.result = ''; - - this.duplicates = []; - this.usedDuplicates = null; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; - - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } - - if (line.length && line !== '\n') result += ind; - - result += line; - } - - return result; -} - -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} - -function testImplicitResolving(state, str) { - var index, length, type; - - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; - - if (type.resolve(str)) { - return true; - } - } - - return false; -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) - || (0x10000 <= c && c <= 0x10FFFF); -} - -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c) { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // - ":" - "#" - && c !== CHAR_COLON - && c !== CHAR_SHARP; -} - -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | “#” | “&” | “*” | “!” | “|” | “>” | “'” | “"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | “%” | “@” | “`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} - -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i; - var char; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); - - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (string[0] === ' ' && indentPerLevel > 9) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { - state.dump = (function () { - if (string.length === 0) { - return "''"; - } - if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { - return "'" + string + "'"; - } - - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } - - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string, lineWidth) + '"'; - default: - throw new YAMLException('impossible error: invalid scalar style'); - } - }()); -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = (string[0] === ' ') ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); - - return indentIndicator + chomp + '\n'; -} - -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; - - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; - } - - return result; -} - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } - - return result.slice(1); // drop extra \n joiner -} - -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char, nextChar; - var escapeSeq; - - for (var i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); - // Advance index one extra since we already used that char here. - i++; continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = '[' + _result + ']'; -} - -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } - - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} - -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = state.condenseFlow ? '"' : ''; - - if (index !== 0) pairBuffer += ', '; - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } - - if (state.dump.length > 1024) pairBuffer += '? '; - - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLException('sortKeys must be a boolean or a function'); - } - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); - } - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } - - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; - } - } - - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} - -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; - - typeList = explicit ? state.explicitTypes : state.implicitTypes; - - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; - - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { - - state.tag = explicit ? type.tag : '?'; - - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; - - if (_toString.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); - } - - state.dump = _result; - } - - return true; - } - } - - return false; -} - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; - - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - - var type = _toString.call(state.dump); - - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } - - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; - - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } - - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLException('unacceptable kind of an object to dump ' + type); - } - - if (state.tag !== null && state.tag !== '?') { - state.dump = '!<' + state.tag + '> ' + state.dump; - } - } - - return true; -} - -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; - - inspectNode(object, objects, duplicatesIndexes); - - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} - -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; - - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} - -function dump(input, options) { - options = options || {}; - - var state = new State(options); - - if (!state.noRefs) getDuplicateReferences(input, state); - - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; - - return ''; -} - -function safeDump(input, options) { - return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - -module.exports.dump = dump; -module.exports.safeDump = safeDump; - -},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(require,module,exports){ -// YAML error class. http://stackoverflow.com/questions/8458984 -// -'use strict'; - -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); - - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); - - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} - - -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; - - -YAMLException.prototype.toString = function toString(compact) { - var result = this.name + ': '; - - result += this.reason || '(unknown reason)'; - - if (!compact && this.mark) { - result += ' ' + this.mark.toString(); - } - - return result; -}; - - -module.exports = YAMLException; - -},{}],5:[function(require,module,exports){ -'use strict'; - -/*eslint-disable max-len,no-use-before-define*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Mark = require('./mark'); -var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); -var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); - - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - - -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; - - -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; - - -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - - -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); -} - -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} - -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); -} - -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; -} - -function fromHexCode(c) { - var lc; - - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - /*eslint-disable no-bitwise*/ - lc = c | 0x20; - - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } - - return -1; -} - -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} - -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - return -1; -} - -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} - -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} - -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - - -function State(input, options) { - this.input = input; - - this.filename = options['filename'] || null; - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.onWarning = options['onWarning'] || null; - this.legacy = options['legacy'] || false; - this.json = options['json'] || false; - this.listener = options['listener'] || null; - - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - - this.documents = []; - - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ - -} - - -function generateError(state, message) { - return new YAMLException( - message, - new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); -} - -function throwError(state, message) { - throw generateError(state, message); -} - -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - - -var directiveHandlers = { - - YAML: function handleYamlDirective(state, name, args) { - - var match, major, minor; - - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } - - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } - - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } - - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } - - state.version = args[0]; - state.checkLineBreaks = (minor < 2); - - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, - - TAG: function handleTagDirective(state, name, args) { - - var handle, prefix; - - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } - - handle = args[0]; - prefix = args[1]; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } - - if (_hasOwnProperty.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } - - state.tagMap[handle] = prefix; - } -}; - - -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - - if (start < end) { - _result = state.input.slice(start, end); - - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); - } - - state.result += _result; - } -} - -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); - } - - sourceKeys = Object.keys(source); - - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - - if (!_hasOwnProperty.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} - -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index, quantity; - - keyNode = String(keyNode); - - if (_result === null) { - _result = {}; - } - - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && - !_hasOwnProperty.call(overridableKeys, keyNode) && - _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - _result[keyNode] = valueNode; - delete overridableKeys[keyNode]; - } - - return _result; -} - -function readLineBreak(state) { - var ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); - } - - state.line += 1; - state.lineStart = state.position; -} - -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } - - if (is_EOL(ch)) { - readLineBreak(state); - - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } - - return lineBreaks; -} - -function testDocumentSeparator(state) { - var _position = state.position, - ch; - - ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { - - _position += 3; - - ch = state.input.charCodeAt(_position); - - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - - return false; -} - -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} - - -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; - - ch = state.input.charCodeAt(state.position); - - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { - return false; - } - - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; - - while (ch !== 0) { - if (ch === 0x3A/* : */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); - - if (is_WS_OR_EOL(preceding)) { - break; - } - - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, captureEnd, false); - - if (state.result) { - return true; - } - - state.kind = _kind; - state.result = _result; - return false; -} - -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27/* ' */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x27/* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} - -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x22/* " */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - - } else { - throwError(state, 'expected hexadecimal character'); - } - } - - state.result += charFromCodepoint(hexResult); - - state.position++; - - } else { - throwError(state, 'unknown escape sequence'); - } - - captureStart = captureEnd = state.position; - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} - -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = {}, - keyNode, - keyTag, - valueNode, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(++state.position); - - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); - } else { - _result.push(keyNode); - } - - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - - throwError(state, 'unexpected end of the stream within a flow collection'); -} - -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); - } - - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); - } - - } else { - break; - } - } - - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); - } - } - - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - - ch = state.input.charCodeAt(state.position); - - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - - if (is_EOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (state.lineIndent < textIndent) { - - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } - } - - // Break this `while` cycle and go to the funciton's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; - } - - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - - if (ch !== 0x2D/* - */) { - break; - } - - following = state.input.charCodeAt(state.position + 1); - - if (!is_WS_OR_EOL(following)) { - break; - } - - detected = true; - state.position++; - - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} - -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _pos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = {}, - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - _pos = state.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { - - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = true; - allowCompact = true; - - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); - } - - state.position += 1; - ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); - - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); - } - - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - - } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; - } - - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - - if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } - - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } - - return detected; -} - -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21/* ! */) return false; - - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } - - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); - - } else { - tagHandle = '!'; - } - - _position = state.position; - - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); - - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); - } - - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); - } - } - - ch = state.input.charCodeAt(++state.position); - } - - tagName = state.input.slice(_position, state.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); - } - } - - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } - - if (isVerbatim) { - state.tag = tagName; - - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - - } else if (tagHandle === '!') { - state.tag = '!' + tagName; - - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; - - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - - return true; -} - -function readAnchorProperty(state) { - var _position, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x26/* & */) return false; - - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } - - state.anchor = state.input.slice(_position, state.position); - return true; -} - -function readAlias(state) { - var _position, alias, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2A/* * */) return false; - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } - - alias = state.input.slice(_position, state.position); - - if (!state.anchorMap.hasOwnProperty(alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - - } else if (readAlias(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); - } - - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - - if (state.tag === null) { - state.tag = '?'; - } - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - - if (state.tag !== null && state.tag !== '!') { - if (state.tag === '?') { - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; - - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only assigned to plain scalars. So, it isn't - // needed to check for 'kind' conformity. - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - - if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); - } - - if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); - } - } - - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} - -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; - - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } - - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); - } - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); - break; - } - - if (is_EOL(ch)) break; - - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveArgs.push(state.input.slice(_position, state.position)); - } - - if (ch !== 0) readLineBreak(state); - - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - - skipSeparationSpace(state, true, -1); - - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); - } - - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); - } - - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; - } -} - - -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - - if (input.length !== 0) { - - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } - - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); - } - } - - var state = new State(input, options); - - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; - - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } - - while (state.position < (state.length - 1)) { - readDocument(state); - } - - return state.documents; -} - - -function loadAll(input, iterator, options) { - var documents = loadDocuments(input, options), index, length; - - if (typeof iterator !== 'function') { - return documents; - } - - for (index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} - - -function load(input, options) { - var documents = loadDocuments(input, options); - - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException('expected a single document in the stream, but found more'); -} - - -function safeLoadAll(input, output, options) { - if (typeof output === 'function') { - loadAll(input, output, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } else { - return loadAll(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } -} - - -function safeLoad(input, options) { - return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -module.exports.loadAll = loadAll; -module.exports.load = load; -module.exports.safeLoadAll = safeLoadAll; -module.exports.safeLoad = safeLoad; - -},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(require,module,exports){ -'use strict'; - - -var common = require('./common'); - - -function Mark(name, buffer, position, line, column) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; -} - - -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { - var head, start, tail, end, snippet; - - if (!this.buffer) return null; - - indent = indent || 4; - maxLength = maxLength || 75; - - head = ''; - start = this.position; - - while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > (maxLength / 2 - 1)) { - head = ' ... '; - start += 5; - break; - } - } - - tail = ''; - end = this.position; - - while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { - end += 1; - if (end - this.position > (maxLength / 2 - 1)) { - tail = ' ... '; - end -= 5; - break; - } - } - - snippet = this.buffer.slice(start, end); - - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; -}; - - -Mark.prototype.toString = function toString(compact) { - var snippet, where = ''; - - if (this.name) { - where += 'in "' + this.name + '" '; - } - - where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); - - if (!compact) { - snippet = this.getSnippet(); - - if (snippet) { - where += ':\n' + snippet; - } - } - - return where; -}; - - -module.exports = Mark; - -},{"./common":2}],7:[function(require,module,exports){ -'use strict'; - -/*eslint-disable max-len*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Type = require('./type'); - - -function compileList(schema, name, result) { - var exclude = []; - - schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); - }); - - schema[name].forEach(function (currentType) { - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); - } - }); - - result.push(currentType); - }); - - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); -} - - -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index, length; - - function collectType(type) { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } - - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} - - -function Schema(definition) { - this.include = definition.include || []; - this.implicit = definition.implicit || []; - this.explicit = definition.explicit || []; - - this.implicit.forEach(function (type) { - if (type.loadKind && type.loadKind !== 'scalar') { - throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } - }); - - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); -} - - -Schema.DEFAULT = null; - - -Schema.create = function createSchema() { - var schemas, types; - - switch (arguments.length) { - case 1: - schemas = Schema.DEFAULT; - types = arguments[0]; - break; - - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; - - default: - throw new YAMLException('Wrong number of arguments for Schema.create function'); - } - - schemas = common.toArray(schemas); - types = common.toArray(types); - - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); - } - - if (!types.every(function (type) { return type instanceof Type; })) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } - - return new Schema({ - include: schemas, - explicit: types - }); -}; - - -module.exports = Schema; - -},{"./common":2,"./exception":4,"./type":13}],8:[function(require,module,exports){ -// Standard YAML's Core schema. -// http://www.yaml.org/spec/1.2/spec.html#id2804923 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, Core schema has no distinctions from JSON schema is JS-YAML. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./json') - ] -}); - -},{"../schema":7,"./json":12}],9:[function(require,module,exports){ -// JS-YAML's default schema for `load` function. -// It is not described in the YAML specification. -// -// This schema is based on JS-YAML's default safe schema and includes -// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. -// -// Also this schema is used as default base schema at `Schema.create` function. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = Schema.DEFAULT = new Schema({ - include: [ - require('./default_safe') - ], - explicit: [ - require('../type/js/undefined'), - require('../type/js/regexp'), - require('../type/js/function') - ] -}); - -},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(require,module,exports){ -// JS-YAML's default schema for `safeLoad` function. -// It is not described in the YAML specification. -// -// This schema is based on standard YAML's Core schema and includes most of -// extra types described at YAML tag repository. (http://yaml.org/type/) - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./core') - ], - implicit: [ - require('../type/timestamp'), - require('../type/merge') - ], - explicit: [ - require('../type/binary'), - require('../type/omap'), - require('../type/pairs'), - require('../type/set') - ] -}); - -},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(require,module,exports){ -// Standard YAML's Failsafe schema. -// http://www.yaml.org/spec/1.2/spec.html#id2802346 - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - explicit: [ - require('../type/str'), - require('../type/seq'), - require('../type/map') - ] -}); - -},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(require,module,exports){ -// Standard YAML's JSON schema. -// http://www.yaml.org/spec/1.2/spec.html#id2803231 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, this schema is not such strict as defined in the YAML specification. -// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./failsafe') - ], - implicit: [ - require('../type/null'), - require('../type/bool'), - require('../type/int'), - require('../type/float') - ] -}); - -},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(require,module,exports){ -'use strict'; - -var YAMLException = require('./exception'); - -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'defaultStyle', - 'styleAliases' -]; - -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; - -function compileStyleAliases(map) { - var result = {}; - - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } - - return result; -} - -function Type(tag, options) { - options = options || {}; - - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - - // TODO: Add tag format check. - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} - -module.exports = Type; - -},{"./exception":4}],14:[function(require,module,exports){ -'use strict'; - -/*eslint-disable no-bitwise*/ - -var NodeBuffer; - -try { - // A trick for browserified version, to not include `Buffer` shim - var _require = require; - NodeBuffer = _require('buffer').Buffer; -} catch (__) {} - -var Type = require('../type'); - - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; - - -function resolveYamlBinary(data) { - if (data === null) return false; - - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; - - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; -} - -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) - - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } - - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } - - // Dump tail - - tailbits = (max % 4) * 6; - - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } - - // Wrap into Buffer for NodeJS and leave Array for browser - if (NodeBuffer) { - // Support node 6.+ Buffer API when available - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } - - return result; -} - -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } - - bits = (bits << 8) + object[idx]; - } - - // Dump tail - - tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; - } - - return result; -} - -function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); -} - -module.exports = new Type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); - -},{"../type":13}],15:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -function resolveYamlBoolean(data) { - if (data === null) return false; - - var max = data.length; - - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} - -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} - -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} - -module.exports = new Type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); - -},{"../type":13}],16:[function(require,module,exports){ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // 20:59 - '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); - -function resolveYamlFloat(data) { - if (data === null) return false; - - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { - return false; - } - - return true; -} - -function constructYamlFloat(data) { - var value, sign, base, digits; - - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; - digits = []; - - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); - } - - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - } else if (value === '.nan') { - return NaN; - - } else if (value.indexOf(':') >= 0) { - value.split(':').forEach(function (v) { - digits.unshift(parseFloat(v, 10)); - }); - - value = 0.0; - base = 1; - - digits.forEach(function (d) { - value += d * base; - base *= 60; - }); - - return sign * value; - - } - return sign * parseFloat(value, 10); -} - - -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat(object, style) { - var res; - - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; - } - - res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} - -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); - -},{"../common":2,"../type":13}],17:[function(require,module,exports){ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} - -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} - -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} - -function resolveYamlInteger(data) { - if (data === null) return false; - - var max = data.length, - index = 0, - hasDigits = false, - ch; - - if (!max) return false; - - ch = data[index]; - - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; - } - - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; - - // base 2, base 8, base 16 - - if (ch === 'b') { - // base 2 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - - if (ch === 'x') { - // base 16 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === '_') return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; - - // if !base60 - done; - if (ch !== ':') return true; - - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} - -function constructYamlInteger(data) { - var value = data, sign = 1, ch, base, digits = []; - - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); - } - - ch = value[0]; - - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; - } - - if (value === '0') return 0; - - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } - - if (value.indexOf(':') !== -1) { - value.split(':').forEach(function (v) { - digits.unshift(parseInt(v, 10)); - }); - - value = 0; - base = 1; - - digits.forEach(function (d) { - value += (d * base); - base *= 60; - }); - - return sign * value; - - } - - return sign * parseInt(value, 10); -} - -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] - } -}); - -},{"../common":2,"../type":13}],18:[function(require,module,exports){ -'use strict'; - -var esprima; - -// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try { - // workaround to exclude package from browserify list. - var _require = require; - esprima = _require('esprima'); -} catch (_) { - /*global window */ - if (typeof window !== 'undefined') esprima = window.esprima; -} - -var Type = require('../../type'); - -function resolveJavascriptFunction(data) { - if (data === null) return false; - - try { - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }); - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - return false; - } - - return true; - } catch (err) { - return false; - } -} - -function constructJavascriptFunction(data) { - /*jslint evil:true*/ - - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }), - params = [], - body; - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - throw new Error('Failed to resolve function'); - } - - ast.body[0].expression.params.forEach(function (param) { - params.push(param.name); - }); - - body = ast.body[0].expression.body.range; - - // Esprima's ranges include the first '{' and the last '}' characters on - // function expressions. So cut them out. - /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); -} - -function representJavascriptFunction(object /*, style*/) { - return object.toString(); -} - -function isFunction(object) { - return Object.prototype.toString.call(object) === '[object Function]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/function', { - kind: 'scalar', - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction, - represent: representJavascriptFunction -}); - -},{"../../type":13}],19:[function(require,module,exports){ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptRegExp(data) { - if (data === null) return false; - if (data.length === 0) return false; - - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // if regexp starts with '/' it can have modifiers and must be properly closed - // `/foo/gim` - modifiers tail can be maximum 3 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - - if (modifiers.length > 3) return false; - // if expression starts with /, is should be properly terminated - if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; - } - - return true; -} - -function constructJavascriptRegExp(data) { - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // `/foo/gim` - tail can be maximum 4 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } - - return new RegExp(regexp, modifiers); -} - -function representJavascriptRegExp(object /*, style*/) { - var result = '/' + object.source + '/'; - - if (object.global) result += 'g'; - if (object.multiline) result += 'm'; - if (object.ignoreCase) result += 'i'; - - return result; -} - -function isRegExp(object) { - return Object.prototype.toString.call(object) === '[object RegExp]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/regexp', { - kind: 'scalar', - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp -}); - -},{"../../type":13}],20:[function(require,module,exports){ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptUndefined() { - return true; -} - -function constructJavascriptUndefined() { - /*eslint-disable no-undefined*/ - return undefined; -} - -function representJavascriptUndefined() { - return ''; -} - -function isUndefined(object) { - return typeof object === 'undefined'; -} - -module.exports = new Type('tag:yaml.org,2002:js/undefined', { - kind: 'scalar', - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined -}); - -},{"../../type":13}],21:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); - -},{"../type":13}],22:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -function resolveYamlMerge(data) { - return data === '<<' || data === null; -} - -module.exports = new Type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); - -},{"../type":13}],23:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -function resolveYamlNull(data) { - if (data === null) return true; - - var max = data.length; - - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} - -function constructYamlNull() { - return null; -} - -function isNull(object) { - return object === null; -} - -module.exports = new Type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; } - }, - defaultStyle: 'lowercase' -}); - -},{"../type":13}],24:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; - -function resolveYamlOmap(data) { - if (data === null) return true; - - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - - if (_toString.call(pair) !== '[object Object]') return false; - - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } - - if (!pairHasKey) return false; - - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } - - return true; -} - -function constructYamlOmap(data) { - return data !== null ? data : []; -} - -module.exports = new Type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); - -},{"../type":13}],25:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var _toString = Object.prototype.toString; - -function resolveYamlPairs(data) { - if (data === null) return true; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - if (_toString.call(pair) !== '[object Object]') return false; - - keys = Object.keys(pair); - - if (keys.length !== 1) return false; - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return true; -} - -function constructYamlPairs(data) { - if (data === null) return []; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - keys = Object.keys(pair); - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return result; -} - -module.exports = new Type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); - -},{"../type":13}],26:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); - -},{"../type":13}],27:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - -function resolveYamlSet(data) { - if (data === null) return true; - - var key, object = data; - - for (key in object) { - if (_hasOwnProperty.call(object, key)) { - if (object[key] !== null) return false; - } - } - - return true; -} - -function constructYamlSet(data) { - return data !== null ? data : {}; -} - -module.exports = new Type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); - -},{"../type":13}],28:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); - -},{"../type":13}],29:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day - -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; - - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) throw new Error('Date resolve error'); - - // match: [1] year [2] month [3] day - - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); - - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); - } - - // match: [4] hour [5] minute [6] second [7] fraction - - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); - - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } - - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - - if (delta) date.setTime(date.getTime() - delta); - - return date; -} - -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} - -module.exports = new Type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); - -},{"../type":13}],"/":[function(require,module,exports){ -'use strict'; - - -var yaml = require('./lib/js-yaml.js'); - - -module.exports = yaml; - -},{"./lib/js-yaml.js":1}]},{},[])("/") -}); \ No newline at end of file diff --git a/tools/doc/node_modules/js-yaml/dist/js-yaml.min.js b/tools/doc/node_modules/js-yaml/dist/js-yaml.min.js deleted file mode 100644 index 7ca018420d203f..00000000000000 --- a/tools/doc/node_modules/js-yaml/dist/js-yaml.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}}(function(){return function o(a,s,c){function u(n,e){if(!s[n]){if(!a[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(l)return l(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=s[n]={exports:{}};a[n][0].call(r.exports,function(e){var t=a[n][1][e];return u(t||e)},r,r.exports,o,a,s,c)}return s[n].exports}for(var l="function"==typeof require&&require,e=0;e=i.flowLevel;switch($(r,n,i.indent,t,function(e){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+G(r,i.indent)+V(L(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,Z(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;i=r.exec(e);){var c=i[1],u=i[2];n=" "===u[0],o+=c+(a||n||""===u?"":"\n")+Z(u,t),a=n}return o}(r,t),e));case K:return'"'+function(e){for(var t,n,i,r="",o=0;ot&&o tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function J(e,t,n,i,r,o){e.tag=null,e.dump=n,z(e,n,!1)||z(e,n,!0);var a=l.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&0 "+e.dump)}return!0}function Q(e,t){var n,i,r=[],o=[];for(function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;ot)&&0!==i)_(e,"bad indentation of a sequence entry");else if(e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt?d=1:e.lineIndent===t?d=0:e.lineIndentt)&&(B(e,t,b,!0,r)&&(m?d=e.result:h=e.result),m||(L(e,l,p,f,d,h,o,a),f=d=h=null),U(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)_(e,"bad indentation of a mapping entry");else if(e.lineIndentl&&(l=e.lineIndent),j(o))p++;else{if(e.lineIndent>10),56320+(c-65536&1023)),e.position++}else _(e,"unknown escape sequence");n=i=e.position}else j(s)?(M(e,n,i,!0),Y(e,U(e,!1,t)),n=i=e.position):e.position===e.lineStart&&q(e)?_(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}_(e,"unexpected end of the stream within a double quoted scalar")}(e,p)?m=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!I(i)&&!E(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&_(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||_(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],U(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,c,u,l,p=e.kind,f=e.result;if(I(l=e.input.charCodeAt(e.position))||E(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(I(i=e.input.charCodeAt(e.position+1))||n&&E(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==l;){if(58===l){if(I(i=e.input.charCodeAt(e.position+1))||n&&E(i))break}else if(35===l){if(I(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&q(e)||n&&E(l))break;if(j(l)){if(s=e.line,c=e.lineStart,u=e.lineIndent,U(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=u;break}}a&&(M(e,r,o,!1),Y(e,e.line-s),r=o=e.position,a=!1),S(l)||(o=e.position+1),l=e.input.charCodeAt(++e.position)}return M(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,p,x===n)&&(m=!0,null===e.tag&&(e.tag="?")):(m=!0,null===e.tag&&null===e.anchor||_(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(m=s&&R(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;c tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):_(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):_(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function K(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(U(e,!0,-1),r=e.input.charCodeAt(e.position),!(0t/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";var i=e("./common"),r=e("./exception"),o=e("./type");function a(e,t,i){var r=[];return e.include.forEach(function(e){i=a(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new r("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0==(n=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===n?(s.push(a>>10&255),s.push(a>>2&255)):12===n&&s.push(a>>4&255),c?c.from?c.from(s):new c(s):s},predicate:function(e){return c&&c.isBuffer(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=u;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0==(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}})},{"../type":13}],15:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type"),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new r("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,i,r;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type");t.exports=new r("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;a */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; - -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; - - if (map === null) return {}; - - result = {}; - keys = Object.keys(map); - - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); - - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; - - if (type && _hasOwnProperty.call(type.styleAliases, style)) { - style = type.styleAliases[style]; - } - - result[tag] = style; - } - - return result; -} - -function encodeHex(character) { - var string, handle, length; - - string = character.toString(16).toUpperCase(); - - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); - } - - return '\\' + handle + common.repeat('0', length - string.length) + string; -} - -function State(options) { - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.indent = Math.max(1, (options['indent'] || 2)); - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - - this.tag = null; - this.result = ''; - - this.duplicates = []; - this.usedDuplicates = null; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; - - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } - - if (line.length && line !== '\n') result += ind; - - result += line; - } - - return result; -} - -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} - -function testImplicitResolving(state, str) { - var index, length, type; - - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; - - if (type.resolve(str)) { - return true; - } - } - - return false; -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) - || (0x10000 <= c && c <= 0x10FFFF); -} - -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c) { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // - ":" - "#" - && c !== CHAR_COLON - && c !== CHAR_SHARP; -} - -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | “#” | “&” | “*” | “!” | “|” | “>” | “'” | “"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | “%” | “@” | “`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} - -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i; - var char; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); - - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (string[0] === ' ' && indentPerLevel > 9) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { - state.dump = (function () { - if (string.length === 0) { - return "''"; - } - if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { - return "'" + string + "'"; - } - - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } - - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string, lineWidth) + '"'; - default: - throw new YAMLException('impossible error: invalid scalar style'); - } - }()); -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = (string[0] === ' ') ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); - - return indentIndicator + chomp + '\n'; -} - -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; - - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; - } - - return result; -} - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } - - return result.slice(1); // drop extra \n joiner -} - -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char, nextChar; - var escapeSeq; - - for (var i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); - // Advance index one extra since we already used that char here. - i++; continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = '[' + _result + ']'; -} - -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } - - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} - -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = state.condenseFlow ? '"' : ''; - - if (index !== 0) pairBuffer += ', '; - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } - - if (state.dump.length > 1024) pairBuffer += '? '; - - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLException('sortKeys must be a boolean or a function'); - } - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); - } - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } - - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; - } - } - - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} - -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; - - typeList = explicit ? state.explicitTypes : state.implicitTypes; - - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; - - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { - - state.tag = explicit ? type.tag : '?'; - - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; - - if (_toString.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); - } - - state.dump = _result; - } - - return true; - } - } - - return false; -} - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; - - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - - var type = _toString.call(state.dump); - - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } - - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; - - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } - - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLException('unacceptable kind of an object to dump ' + type); - } - - if (state.tag !== null && state.tag !== '?') { - state.dump = '!<' + state.tag + '> ' + state.dump; - } - } - - return true; -} - -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; - - inspectNode(object, objects, duplicatesIndexes); - - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} - -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; - - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} - -function dump(input, options) { - options = options || {}; - - var state = new State(options); - - if (!state.noRefs) getDuplicateReferences(input, state); - - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; - - return ''; -} - -function safeDump(input, options) { - return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - -module.exports.dump = dump; -module.exports.safeDump = safeDump; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/exception.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/exception.js deleted file mode 100644 index b744a1ee4ef4d0..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/exception.js +++ /dev/null @@ -1,43 +0,0 @@ -// YAML error class. http://stackoverflow.com/questions/8458984 -// -'use strict'; - -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); - - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); - - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} - - -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; - - -YAMLException.prototype.toString = function toString(compact) { - var result = this.name + ': '; - - result += this.reason || '(unknown reason)'; - - if (!compact && this.mark) { - result += ' ' + this.mark.toString(); - } - - return result; -}; - - -module.exports = YAMLException; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/loader.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/loader.js deleted file mode 100644 index fe2cb4d07ac45f..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/loader.js +++ /dev/null @@ -1,1598 +0,0 @@ -'use strict'; - -/*eslint-disable max-len,no-use-before-define*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Mark = require('./mark'); -var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); -var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); - - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - - -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; - - -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; - - -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - - -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); -} - -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} - -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); -} - -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; -} - -function fromHexCode(c) { - var lc; - - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - /*eslint-disable no-bitwise*/ - lc = c | 0x20; - - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } - - return -1; -} - -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} - -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - return -1; -} - -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} - -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} - -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - - -function State(input, options) { - this.input = input; - - this.filename = options['filename'] || null; - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.onWarning = options['onWarning'] || null; - this.legacy = options['legacy'] || false; - this.json = options['json'] || false; - this.listener = options['listener'] || null; - - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - - this.documents = []; - - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ - -} - - -function generateError(state, message) { - return new YAMLException( - message, - new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); -} - -function throwError(state, message) { - throw generateError(state, message); -} - -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - - -var directiveHandlers = { - - YAML: function handleYamlDirective(state, name, args) { - - var match, major, minor; - - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } - - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } - - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } - - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } - - state.version = args[0]; - state.checkLineBreaks = (minor < 2); - - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, - - TAG: function handleTagDirective(state, name, args) { - - var handle, prefix; - - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } - - handle = args[0]; - prefix = args[1]; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } - - if (_hasOwnProperty.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } - - state.tagMap[handle] = prefix; - } -}; - - -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - - if (start < end) { - _result = state.input.slice(start, end); - - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); - } - - state.result += _result; - } -} - -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); - } - - sourceKeys = Object.keys(source); - - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - - if (!_hasOwnProperty.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} - -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index, quantity; - - keyNode = String(keyNode); - - if (_result === null) { - _result = {}; - } - - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && - !_hasOwnProperty.call(overridableKeys, keyNode) && - _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - _result[keyNode] = valueNode; - delete overridableKeys[keyNode]; - } - - return _result; -} - -function readLineBreak(state) { - var ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); - } - - state.line += 1; - state.lineStart = state.position; -} - -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } - - if (is_EOL(ch)) { - readLineBreak(state); - - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } - - return lineBreaks; -} - -function testDocumentSeparator(state) { - var _position = state.position, - ch; - - ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { - - _position += 3; - - ch = state.input.charCodeAt(_position); - - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - - return false; -} - -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} - - -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; - - ch = state.input.charCodeAt(state.position); - - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { - return false; - } - - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; - - while (ch !== 0) { - if (ch === 0x3A/* : */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); - - if (is_WS_OR_EOL(preceding)) { - break; - } - - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, captureEnd, false); - - if (state.result) { - return true; - } - - state.kind = _kind; - state.result = _result; - return false; -} - -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27/* ' */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x27/* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} - -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x22/* " */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - - } else { - throwError(state, 'expected hexadecimal character'); - } - } - - state.result += charFromCodepoint(hexResult); - - state.position++; - - } else { - throwError(state, 'unknown escape sequence'); - } - - captureStart = captureEnd = state.position; - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} - -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = {}, - keyNode, - keyTag, - valueNode, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(++state.position); - - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); - } else { - _result.push(keyNode); - } - - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - - throwError(state, 'unexpected end of the stream within a flow collection'); -} - -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); - } - - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); - } - - } else { - break; - } - } - - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); - } - } - - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - - ch = state.input.charCodeAt(state.position); - - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - - if (is_EOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (state.lineIndent < textIndent) { - - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } - } - - // Break this `while` cycle and go to the funciton's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; - } - - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - - if (ch !== 0x2D/* - */) { - break; - } - - following = state.input.charCodeAt(state.position + 1); - - if (!is_WS_OR_EOL(following)) { - break; - } - - detected = true; - state.position++; - - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} - -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _pos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = {}, - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - _pos = state.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { - - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = true; - allowCompact = true; - - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); - } - - state.position += 1; - ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); - - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); - } - - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - - } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; - } - - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - - if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } - - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } - - return detected; -} - -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21/* ! */) return false; - - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } - - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); - - } else { - tagHandle = '!'; - } - - _position = state.position; - - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); - - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); - } - - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); - } - } - - ch = state.input.charCodeAt(++state.position); - } - - tagName = state.input.slice(_position, state.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); - } - } - - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } - - if (isVerbatim) { - state.tag = tagName; - - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - - } else if (tagHandle === '!') { - state.tag = '!' + tagName; - - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; - - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - - return true; -} - -function readAnchorProperty(state) { - var _position, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x26/* & */) return false; - - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } - - state.anchor = state.input.slice(_position, state.position); - return true; -} - -function readAlias(state) { - var _position, alias, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2A/* * */) return false; - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } - - alias = state.input.slice(_position, state.position); - - if (!state.anchorMap.hasOwnProperty(alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - - } else if (readAlias(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); - } - - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - - if (state.tag === null) { - state.tag = '?'; - } - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - - if (state.tag !== null && state.tag !== '!') { - if (state.tag === '?') { - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; - - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only assigned to plain scalars. So, it isn't - // needed to check for 'kind' conformity. - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - - if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); - } - - if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); - } - } - - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} - -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; - - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } - - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); - } - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); - break; - } - - if (is_EOL(ch)) break; - - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveArgs.push(state.input.slice(_position, state.position)); - } - - if (ch !== 0) readLineBreak(state); - - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - - skipSeparationSpace(state, true, -1); - - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); - } - - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); - } - - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; - } -} - - -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - - if (input.length !== 0) { - - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } - - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); - } - } - - var state = new State(input, options); - - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; - - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } - - while (state.position < (state.length - 1)) { - readDocument(state); - } - - return state.documents; -} - - -function loadAll(input, iterator, options) { - var documents = loadDocuments(input, options), index, length; - - if (typeof iterator !== 'function') { - return documents; - } - - for (index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} - - -function load(input, options) { - var documents = loadDocuments(input, options); - - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException('expected a single document in the stream, but found more'); -} - - -function safeLoadAll(input, output, options) { - if (typeof output === 'function') { - loadAll(input, output, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } else { - return loadAll(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); - } -} - - -function safeLoad(input, options) { - return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -module.exports.loadAll = loadAll; -module.exports.load = load; -module.exports.safeLoadAll = safeLoadAll; -module.exports.safeLoad = safeLoad; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/mark.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/mark.js deleted file mode 100644 index 47b265c20cea4c..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/mark.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - - -var common = require('./common'); - - -function Mark(name, buffer, position, line, column) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; -} - - -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { - var head, start, tail, end, snippet; - - if (!this.buffer) return null; - - indent = indent || 4; - maxLength = maxLength || 75; - - head = ''; - start = this.position; - - while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > (maxLength / 2 - 1)) { - head = ' ... '; - start += 5; - break; - } - } - - tail = ''; - end = this.position; - - while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { - end += 1; - if (end - this.position > (maxLength / 2 - 1)) { - tail = ' ... '; - end -= 5; - break; - } - } - - snippet = this.buffer.slice(start, end); - - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; -}; - - -Mark.prototype.toString = function toString(compact) { - var snippet, where = ''; - - if (this.name) { - where += 'in "' + this.name + '" '; - } - - where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); - - if (!compact) { - snippet = this.getSnippet(); - - if (snippet) { - where += ':\n' + snippet; - } - } - - return where; -}; - - -module.exports = Mark; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema.js deleted file mode 100644 index ca7cf47e705319..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -/*eslint-disable max-len*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Type = require('./type'); - - -function compileList(schema, name, result) { - var exclude = []; - - schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); - }); - - schema[name].forEach(function (currentType) { - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); - } - }); - - result.push(currentType); - }); - - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); -} - - -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index, length; - - function collectType(type) { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } - - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} - - -function Schema(definition) { - this.include = definition.include || []; - this.implicit = definition.implicit || []; - this.explicit = definition.explicit || []; - - this.implicit.forEach(function (type) { - if (type.loadKind && type.loadKind !== 'scalar') { - throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } - }); - - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); -} - - -Schema.DEFAULT = null; - - -Schema.create = function createSchema() { - var schemas, types; - - switch (arguments.length) { - case 1: - schemas = Schema.DEFAULT; - types = arguments[0]; - break; - - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; - - default: - throw new YAMLException('Wrong number of arguments for Schema.create function'); - } - - schemas = common.toArray(schemas); - types = common.toArray(types); - - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); - } - - if (!types.every(function (type) { return type instanceof Type; })) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } - - return new Schema({ - include: schemas, - explicit: types - }); -}; - - -module.exports = Schema; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/core.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/core.js deleted file mode 100644 index 206daab56c0586..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/core.js +++ /dev/null @@ -1,18 +0,0 @@ -// Standard YAML's Core schema. -// http://www.yaml.org/spec/1.2/spec.html#id2804923 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, Core schema has no distinctions from JSON schema is JS-YAML. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./json') - ] -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_full.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_full.js deleted file mode 100644 index a55ef42accdaf9..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +++ /dev/null @@ -1,25 +0,0 @@ -// JS-YAML's default schema for `load` function. -// It is not described in the YAML specification. -// -// This schema is based on JS-YAML's default safe schema and includes -// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. -// -// Also this schema is used as default base schema at `Schema.create` function. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = Schema.DEFAULT = new Schema({ - include: [ - require('./default_safe') - ], - explicit: [ - require('../type/js/undefined'), - require('../type/js/regexp'), - require('../type/js/function') - ] -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js deleted file mode 100644 index 11d89bbfbba45e..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +++ /dev/null @@ -1,28 +0,0 @@ -// JS-YAML's default schema for `safeLoad` function. -// It is not described in the YAML specification. -// -// This schema is based on standard YAML's Core schema and includes most of -// extra types described at YAML tag repository. (http://yaml.org/type/) - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./core') - ], - implicit: [ - require('../type/timestamp'), - require('../type/merge') - ], - explicit: [ - require('../type/binary'), - require('../type/omap'), - require('../type/pairs'), - require('../type/set') - ] -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js deleted file mode 100644 index b7a33eb7a1ccea..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +++ /dev/null @@ -1,17 +0,0 @@ -// Standard YAML's Failsafe schema. -// http://www.yaml.org/spec/1.2/spec.html#id2802346 - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - explicit: [ - require('../type/str'), - require('../type/seq'), - require('../type/map') - ] -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/json.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/json.js deleted file mode 100644 index 5be3dbf805bc5d..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/schema/json.js +++ /dev/null @@ -1,25 +0,0 @@ -// Standard YAML's JSON schema. -// http://www.yaml.org/spec/1.2/spec.html#id2803231 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, this schema is not such strict as defined in the YAML specification. -// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./failsafe') - ], - implicit: [ - require('../type/null'), - require('../type/bool'), - require('../type/int'), - require('../type/float') - ] -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type.js deleted file mode 100644 index 90b702ac06f11b..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var YAMLException = require('./exception'); - -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'defaultStyle', - 'styleAliases' -]; - -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; - -function compileStyleAliases(map) { - var result = {}; - - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } - - return result; -} - -function Type(tag, options) { - options = options || {}; - - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - - // TODO: Add tag format check. - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} - -module.exports = Type; diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/binary.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/binary.js deleted file mode 100644 index 10b1875595be31..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/binary.js +++ /dev/null @@ -1,138 +0,0 @@ -'use strict'; - -/*eslint-disable no-bitwise*/ - -var NodeBuffer; - -try { - // A trick for browserified version, to not include `Buffer` shim - var _require = require; - NodeBuffer = _require('buffer').Buffer; -} catch (__) {} - -var Type = require('../type'); - - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; - - -function resolveYamlBinary(data) { - if (data === null) return false; - - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; - - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; -} - -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) - - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } - - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } - - // Dump tail - - tailbits = (max % 4) * 6; - - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } - - // Wrap into Buffer for NodeJS and leave Array for browser - if (NodeBuffer) { - // Support node 6.+ Buffer API when available - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } - - return result; -} - -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } - - bits = (bits << 8) + object[idx]; - } - - // Dump tail - - tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; - } - - return result; -} - -function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); -} - -module.exports = new Type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/bool.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/bool.js deleted file mode 100644 index cb7745930a6e7f..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/bool.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlBoolean(data) { - if (data === null) return false; - - var max = data.length; - - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} - -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} - -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} - -module.exports = new Type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/float.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/float.js deleted file mode 100644 index 127671b21392fc..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/float.js +++ /dev/null @@ -1,116 +0,0 @@ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // 20:59 - '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); - -function resolveYamlFloat(data) { - if (data === null) return false; - - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { - return false; - } - - return true; -} - -function constructYamlFloat(data) { - var value, sign, base, digits; - - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; - digits = []; - - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); - } - - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - } else if (value === '.nan') { - return NaN; - - } else if (value.indexOf(':') >= 0) { - value.split(':').forEach(function (v) { - digits.unshift(parseFloat(v, 10)); - }); - - value = 0.0; - base = 1; - - digits.forEach(function (d) { - value += d * base; - base *= 60; - }); - - return sign * value; - - } - return sign * parseFloat(value, 10); -} - - -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat(object, style) { - var res; - - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; - } - - res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} - -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/int.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/int.js deleted file mode 100644 index ba61c5f958e2ff..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/int.js +++ /dev/null @@ -1,173 +0,0 @@ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} - -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} - -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} - -function resolveYamlInteger(data) { - if (data === null) return false; - - var max = data.length, - index = 0, - hasDigits = false, - ch; - - if (!max) return false; - - ch = data[index]; - - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; - } - - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; - - // base 2, base 8, base 16 - - if (ch === 'b') { - // base 2 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - - if (ch === 'x') { - // base 16 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === '_') return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; - - // if !base60 - done; - if (ch !== ':') return true; - - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} - -function constructYamlInteger(data) { - var value = data, sign = 1, ch, base, digits = []; - - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); - } - - ch = value[0]; - - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; - } - - if (value === '0') return 0; - - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } - - if (value.indexOf(':') !== -1) { - value.split(':').forEach(function (v) { - digits.unshift(parseInt(v, 10)); - }); - - value = 0; - base = 1; - - digits.forEach(function (d) { - value += (d * base); - base *= 60; - }); - - return sign * value; - - } - - return sign * parseInt(value, 10); -} - -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] - } -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/function.js deleted file mode 100644 index ba2dfd45b6f8ab..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/function.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; - -var esprima; - -// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try { - // workaround to exclude package from browserify list. - var _require = require; - esprima = _require('esprima'); -} catch (_) { - /*global window */ - if (typeof window !== 'undefined') esprima = window.esprima; -} - -var Type = require('../../type'); - -function resolveJavascriptFunction(data) { - if (data === null) return false; - - try { - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }); - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - return false; - } - - return true; - } catch (err) { - return false; - } -} - -function constructJavascriptFunction(data) { - /*jslint evil:true*/ - - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }), - params = [], - body; - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - throw new Error('Failed to resolve function'); - } - - ast.body[0].expression.params.forEach(function (param) { - params.push(param.name); - }); - - body = ast.body[0].expression.body.range; - - // Esprima's ranges include the first '{' and the last '}' characters on - // function expressions. So cut them out. - /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); -} - -function representJavascriptFunction(object /*, style*/) { - return object.toString(); -} - -function isFunction(object) { - return Object.prototype.toString.call(object) === '[object Function]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/function', { - kind: 'scalar', - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction, - represent: representJavascriptFunction -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js deleted file mode 100644 index 43fa47017619ec..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptRegExp(data) { - if (data === null) return false; - if (data.length === 0) return false; - - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // if regexp starts with '/' it can have modifiers and must be properly closed - // `/foo/gim` - modifiers tail can be maximum 3 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - - if (modifiers.length > 3) return false; - // if expression starts with /, is should be properly terminated - if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; - } - - return true; -} - -function constructJavascriptRegExp(data) { - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // `/foo/gim` - tail can be maximum 4 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } - - return new RegExp(regexp, modifiers); -} - -function representJavascriptRegExp(object /*, style*/) { - var result = '/' + object.source + '/'; - - if (object.global) result += 'g'; - if (object.multiline) result += 'm'; - if (object.ignoreCase) result += 'i'; - - return result; -} - -function isRegExp(object) { - return Object.prototype.toString.call(object) === '[object RegExp]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/regexp', { - kind: 'scalar', - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js deleted file mode 100644 index 95b5569fdfa510..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptUndefined() { - return true; -} - -function constructJavascriptUndefined() { - /*eslint-disable no-undefined*/ - return undefined; -} - -function representJavascriptUndefined() { - return ''; -} - -function isUndefined(object) { - return typeof object === 'undefined'; -} - -module.exports = new Type('tag:yaml.org,2002:js/undefined', { - kind: 'scalar', - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/map.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/map.js deleted file mode 100644 index f327beebd53bdb..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/map.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/merge.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/merge.js deleted file mode 100644 index ae08a86444cf1c..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/merge.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlMerge(data) { - return data === '<<' || data === null; -} - -module.exports = new Type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/null.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/null.js deleted file mode 100644 index 6874daa6471eca..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/null.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlNull(data) { - if (data === null) return true; - - var max = data.length; - - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} - -function constructYamlNull() { - return null; -} - -function isNull(object) { - return object === null; -} - -module.exports = new Type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; } - }, - defaultStyle: 'lowercase' -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/omap.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/omap.js deleted file mode 100644 index b2b5323bd1cd9e..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/omap.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; - -function resolveYamlOmap(data) { - if (data === null) return true; - - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - - if (_toString.call(pair) !== '[object Object]') return false; - - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } - - if (!pairHasKey) return false; - - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } - - return true; -} - -function constructYamlOmap(data) { - return data !== null ? data : []; -} - -module.exports = new Type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/pairs.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/pairs.js deleted file mode 100644 index 74b52403fc125d..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/pairs.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _toString = Object.prototype.toString; - -function resolveYamlPairs(data) { - if (data === null) return true; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - if (_toString.call(pair) !== '[object Object]') return false; - - keys = Object.keys(pair); - - if (keys.length !== 1) return false; - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return true; -} - -function constructYamlPairs(data) { - if (data === null) return []; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - keys = Object.keys(pair); - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return result; -} - -module.exports = new Type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/seq.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/seq.js deleted file mode 100644 index be8f77f2844bdd..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/seq.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/set.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/set.js deleted file mode 100644 index f885a329c2ca0a..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/set.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - -function resolveYamlSet(data) { - if (data === null) return true; - - var key, object = data; - - for (key in object) { - if (_hasOwnProperty.call(object, key)) { - if (object[key] !== null) return false; - } - } - - return true; -} - -function constructYamlSet(data) { - return data !== null ? data : {}; -} - -module.exports = new Type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/str.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/str.js deleted file mode 100644 index 27acc106caaf75..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/str.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); diff --git a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/timestamp.js b/tools/doc/node_modules/js-yaml/lib/js-yaml/type/timestamp.js deleted file mode 100644 index 8fa9c5865697ed..00000000000000 --- a/tools/doc/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day - -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; - - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) throw new Error('Date resolve error'); - - // match: [1] year [2] month [3] day - - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); - - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); - } - - // match: [4] hour [5] minute [6] second [7] fraction - - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); - - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } - - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - - if (delta) date.setTime(date.getTime() - delta); - - return date; -} - -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} - -module.exports = new Type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); diff --git a/tools/doc/node_modules/js-yaml/package.json b/tools/doc/node_modules/js-yaml/package.json deleted file mode 100644 index 0776bc5686b53d..00000000000000 --- a/tools/doc/node_modules/js-yaml/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_args": [ - [ - "js-yaml@3.11.0", - "/Users/rubys/git/node/tools/doc" - ] - ], - "_development": true, - "_from": "js-yaml@3.11.0", - "_id": "js-yaml@3.11.0", - "_inBundle": false, - "_integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "_location": "/js-yaml", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "js-yaml@3.11.0", - "name": "js-yaml", - "escapedName": "js-yaml", - "rawSpec": "3.11.0", - "saveSpec": null, - "fetchSpec": "3.11.0" - }, - "_requiredBy": [ - "#DEV:/" - ], - "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "_spec": "3.11.0", - "_where": "/Users/rubys/git/node/tools/doc", - "author": { - "name": "Vladimir Zapparov", - "email": "dervus.grim@gmail.com" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - }, - "bugs": { - "url": "https://github.com/nodeca/js-yaml/issues" - }, - "contributors": [ - { - "name": "Aleksey V Zapparov", - "email": "ixti@member.fsf.org", - "url": "http://www.ixti.net/" - }, - { - "name": "Vitaly Puzrin", - "email": "vitaly@rcdesign.ru", - "url": "https://github.com/puzrin" - }, - { - "name": "Martin Grenfell", - "email": "martin.grenfell@gmail.com", - "url": "http://got-ravings.blogspot.com" - } - ], - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "description": "YAML 1.2 parser and serializer", - "devDependencies": { - "ansi": "^0.3.1", - "benchmark": "^2.1.4", - "browserify": "^14.3.0", - "codemirror": "^5.13.4", - "eslint": "^4.1.1", - "istanbul": "^0.4.5", - "mocha": "^3.3.0", - "uglify-js": "^3.0.1" - }, - "files": [ - "index.js", - "lib/", - "bin/", - "dist/" - ], - "homepage": "https://github.com/nodeca/js-yaml", - "keywords": [ - "yaml", - "parser", - "serializer", - "pyyaml" - ], - "license": "MIT", - "name": "js-yaml", - "repository": { - "type": "git", - "url": "git+https://github.com/nodeca/js-yaml.git" - }, - "scripts": { - "test": "make test" - }, - "version": "3.11.0" -} diff --git a/tools/doc/node_modules/marked/LICENSE b/tools/doc/node_modules/marked/LICENSE deleted file mode 100644 index a7b812ed618f11..00000000000000 --- a/tools/doc/node_modules/marked/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-2014, Christopher Jeffrey (https://github.com/chjj/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/tools/doc/node_modules/marked/Makefile b/tools/doc/node_modules/marked/Makefile deleted file mode 100644 index d9349f07996d34..00000000000000 --- a/tools/doc/node_modules/marked/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -all: - @cp lib/marked.js marked.js - @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js - -clean: - @rm marked.js - @rm marked.min.js - -bench: - @node test --bench - -.PHONY: clean all diff --git a/tools/doc/node_modules/marked/README.md b/tools/doc/node_modules/marked/README.md deleted file mode 100644 index efa71aaaabc849..00000000000000 --- a/tools/doc/node_modules/marked/README.md +++ /dev/null @@ -1,406 +0,0 @@ -# marked - -> A full-featured markdown parser and compiler, written in JavaScript. Built -> for speed. - -[![NPM version](https://badge.fury.io/js/marked.png)][badge] - -## Install - -``` bash -npm install marked --save -``` - -## Usage - -Minimal usage: - -```js -var marked = require('marked'); -console.log(marked('I am using __markdown__.')); -// Outputs:

I am using markdown.

-``` - -Example setting options with default values: - -```js -var marked = require('marked'); -marked.setOptions({ - renderer: new marked.Renderer(), - gfm: true, - tables: true, - breaks: false, - pedantic: false, - sanitize: true, - smartLists: true, - smartypants: false -}); - -console.log(marked('I am using __markdown__.')); -``` - -### Browser - -```html - - - - - Marked in the browser - - - -
- - - -``` - -## marked(markdownString [,options] [,callback]) - -### markdownString - -Type: `string` - -String of markdown source to be compiled. - -### options - -Type: `object` - -Hash of options. Can also be set using the `marked.setOptions` method as seen -above. - -### callback - -Type: `function` - -Function called when the `markdownString` has been fully parsed when using -async highlighting. If the `options` argument is omitted, this can be used as -the second argument. - -## Options - -### highlight - -Type: `function` - -A function to highlight code blocks. The first example below uses async highlighting with -[node-pygmentize-bundled][pygmentize], and the second is a synchronous example using -[highlight.js][highlight]: - -```js -var marked = require('marked'); - -var markdownString = '```js\n console.log("hello"); \n```'; - -// Async highlighting with pygmentize-bundled -marked.setOptions({ - highlight: function (code, lang, callback) { - require('pygmentize-bundled')({ lang: lang, format: 'html' }, code, function (err, result) { - callback(err, result.toString()); - }); - } -}); - -// Using async version of marked -marked(markdownString, function (err, content) { - if (err) throw err; - console.log(content); -}); - -// Synchronous highlighting with highlight.js -marked.setOptions({ - highlight: function (code) { - return require('highlight.js').highlightAuto(code).value; - } -}); - -console.log(marked(markdownString)); -``` - -#### highlight arguments - -`code` - -Type: `string` - -The section of code to pass to the highlighter. - -`lang` - -Type: `string` - -The programming language specified in the code block. - -`callback` - -Type: `function` - -The callback function to call when using an async highlighter. - -### renderer - -Type: `object` -Default: `new Renderer()` - -An object containing functions to render tokens to HTML. - -#### Overriding renderer methods - -The renderer option allows you to render tokens in a custom manner. Here is an -example of overriding the default heading token rendering by adding an embedded anchor tag like on GitHub: - -```javascript -var marked = require('marked'); -var renderer = new marked.Renderer(); - -renderer.heading = function (text, level) { - var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-'); - - return '' + - text + ''; -}, - -console.log(marked('# heading+', { renderer: renderer })); -``` -This code will output the following HTML: -```html -

- - - - heading+ -

-``` - -#### Block level renderer methods - -- code(*string* code, *string* language) -- blockquote(*string* quote) -- html(*string* html) -- heading(*string* text, *number* level) -- hr() -- list(*string* body, *boolean* ordered) -- listitem(*string* text) -- paragraph(*string* text) -- table(*string* header, *string* body) -- tablerow(*string* content) -- tablecell(*string* content, *object* flags) - -`flags` has the following properties: - -```js -{ - header: true || false, - align: 'center' || 'left' || 'right' -} -``` - -#### Inline level renderer methods - -- strong(*string* text) -- em(*string* text) -- codespan(*string* code) -- br() -- del(*string* text) -- link(*string* href, *string* title, *string* text) -- image(*string* href, *string* title, *string* text) - -### gfm - -Type: `boolean` -Default: `true` - -Enable [GitHub flavored markdown][gfm]. - -### tables - -Type: `boolean` -Default: `true` - -Enable GFM [tables][tables]. -This option requires the `gfm` option to be true. - -### breaks - -Type: `boolean` -Default: `false` - -Enable GFM [line breaks][breaks]. -This option requires the `gfm` option to be true. - -### pedantic - -Type: `boolean` -Default: `false` - -Conform to obscure parts of `markdown.pl` as much as possible. Don't fix any of -the original markdown bugs or poor behavior. - -### sanitize - -Type: `boolean` -Default: `false` - -Sanitize the output. Ignore any HTML that has been input. - -### smartLists - -Type: `boolean` -Default: `true` - -Use smarter list behavior than the original markdown. May eventually be -default with the old behavior moved into `pedantic`. - -### smartypants - -Type: `boolean` -Default: `false` - -Use "smart" typograhic punctuation for things like quotes and dashes. - -## Access to lexer and parser - -You also have direct access to the lexer and parser if you so desire. - -``` js -var tokens = marked.lexer(text, options); -console.log(marked.parser(tokens)); -``` - -``` js -var lexer = new marked.Lexer(options); -var tokens = lexer.lex(text); -console.log(tokens); -console.log(lexer.rules); -``` - -## CLI - -``` bash -$ marked -o hello.html -hello world -^D -$ cat hello.html -

hello world

-``` - -## Philosophy behind marked - -The point of marked was to create a markdown compiler where it was possible to -frequently parse huge chunks of markdown without having to worry about -caching the compiled output somehow...or blocking for an unnecesarily long time. - -marked is very concise and still implements all markdown features. It is also -now fully compatible with the client-side. - -marked more or less passes the official markdown test suite in its -entirety. This is important because a surprising number of markdown compilers -cannot pass more than a few tests. It was very difficult to get marked as -compliant as it is. It could have cut corners in several areas for the sake -of performance, but did not in order to be exactly what you expect in terms -of a markdown rendering. In fact, this is why marked could be considered at a -disadvantage in the benchmarks above. - -Along with implementing every markdown feature, marked also implements [GFM -features][gfmf]. - -## Benchmarks - -node v0.8.x - -``` bash -$ node test --bench -marked completed in 3411ms. -marked (gfm) completed in 3727ms. -marked (pedantic) completed in 3201ms. -robotskirt completed in 808ms. -showdown (reuse converter) completed in 11954ms. -showdown (new converter) completed in 17774ms. -markdown-js completed in 17191ms. -``` - -__Marked is now faster than Discount, which is written in C.__ - -For those feeling skeptical: These benchmarks run the entire markdown test suite 1000 times. The test suite tests every feature. It doesn't cater to specific aspects. - -### Pro level - -You also have direct access to the lexer and parser if you so desire. - -``` js -var tokens = marked.lexer(text, options); -console.log(marked.parser(tokens)); -``` - -``` js -var lexer = new marked.Lexer(options); -var tokens = lexer.lex(text); -console.log(tokens); -console.log(lexer.rules); -``` - -``` bash -$ node -> require('marked').lexer('> i am using marked.') -[ { type: 'blockquote_start' }, - { type: 'paragraph', - text: 'i am using marked.' }, - { type: 'blockquote_end' }, - links: {} ] -``` - -## Running Tests & Contributing - -If you want to submit a pull request, make sure your changes pass the test -suite. If you're adding a new feature, be sure to add your own test. - -The marked test suite is set up slightly strangely: `test/new` is for all tests -that are not part of the original markdown.pl test suite (this is where your -test should go if you make one). `test/original` is only for the original -markdown.pl tests. `test/tests` houses both types of tests after they have been -combined and moved/generated by running `node test --fix` or `marked --test ---fix`. - -In other words, if you have a test to add, add it to `test/new/` and then -regenerate the tests with `node test --fix`. Commit the result. If your test -uses a certain feature, for example, maybe it assumes GFM is *not* enabled, you -can add `.nogfm` to the filename. So, `my-test.text` becomes -`my-test.nogfm.text`. You can do this with any marked option. Say you want -line breaks and smartypants enabled, your filename should be: -`my-test.breaks.smartypants.text`. - -To run the tests: - -``` bash -cd marked/ -node test -``` - -### Contribution and License Agreement - -If you contribute code to this project, you are implicitly allowing your code -to be distributed under the MIT license. You are also implicitly verifying that -all code is your original work. `` - -## License - -Copyright (c) 2011-2014, Christopher Jeffrey. (MIT License) - -See LICENSE for more info. - -[gfm]: https://help.github.com/articles/github-flavored-markdown -[gfmf]: http://github.github.com/github-flavored-markdown/ -[pygmentize]: https://github.com/rvagg/node-pygmentize-bundled -[highlight]: https://github.com/isagalaev/highlight.js -[badge]: http://badge.fury.io/js/marked -[tables]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#wiki-tables -[breaks]: https://help.github.com/articles/github-flavored-markdown#newlines diff --git a/tools/doc/node_modules/marked/bin/marked b/tools/doc/node_modules/marked/bin/marked deleted file mode 100755 index 64254fc3eb2e08..00000000000000 --- a/tools/doc/node_modules/marked/bin/marked +++ /dev/null @@ -1,187 +0,0 @@ -#!/usr/bin/env node - -/** - * Marked CLI - * Copyright (c) 2011-2013, Christopher Jeffrey (MIT License) - */ - -var fs = require('fs') - , util = require('util') - , marked = require('../'); - -/** - * Man Page - */ - -function help() { - var spawn = require('child_process').spawn; - - var options = { - cwd: process.cwd(), - env: process.env, - setsid: false, - customFds: [0, 1, 2] - }; - - spawn('man', - [__dirname + '/../man/marked.1'], - options); -} - -/** - * Main - */ - -function main(argv, callback) { - var files = [] - , options = {} - , input - , output - , arg - , tokens - , opt; - - function getarg() { - var arg = argv.shift(); - - if (arg.indexOf('--') === 0) { - // e.g. --opt - arg = arg.split('='); - if (arg.length > 1) { - // e.g. --opt=val - argv.unshift(arg.slice(1).join('=')); - } - arg = arg[0]; - } else if (arg[0] === '-') { - if (arg.length > 2) { - // e.g. -abc - argv = arg.substring(1).split('').map(function(ch) { - return '-' + ch; - }).concat(argv); - arg = argv.shift(); - } else { - // e.g. -a - } - } else { - // e.g. foo - } - - return arg; - } - - while (argv.length) { - arg = getarg(); - switch (arg) { - case '--test': - return require('../test').main(process.argv.slice()); - case '-o': - case '--output': - output = argv.shift(); - break; - case '-i': - case '--input': - input = argv.shift(); - break; - case '-t': - case '--tokens': - tokens = true; - break; - case '-h': - case '--help': - return help(); - default: - if (arg.indexOf('--') === 0) { - opt = camelize(arg.replace(/^--(no-)?/, '')); - if (!marked.defaults.hasOwnProperty(opt)) { - continue; - } - if (arg.indexOf('--no-') === 0) { - options[opt] = typeof marked.defaults[opt] !== 'boolean' - ? null - : false; - } else { - options[opt] = typeof marked.defaults[opt] !== 'boolean' - ? argv.shift() - : true; - } - } else { - files.push(arg); - } - break; - } - } - - function getData(callback) { - if (!input) { - if (files.length <= 2) { - return getStdin(callback); - } - input = files.pop(); - } - return fs.readFile(input, 'utf8', callback); - } - - return getData(function(err, data) { - if (err) return callback(err); - - data = tokens - ? JSON.stringify(marked.lexer(data, options), null, 2) - : marked(data, options); - - if (!output) { - process.stdout.write(data + '\n'); - return callback(); - } - - return fs.writeFile(output, data, callback); - }); -} - -/** - * Helpers - */ - -function getStdin(callback) { - var stdin = process.stdin - , buff = ''; - - stdin.setEncoding('utf8'); - - stdin.on('data', function(data) { - buff += data; - }); - - stdin.on('error', function(err) { - return callback(err); - }); - - stdin.on('end', function() { - return callback(null, buff); - }); - - try { - stdin.resume(); - } catch (e) { - callback(e); - } -} - -function camelize(text) { - return text.replace(/(\w)-(\w)/g, function(_, a, b) { - return a + b.toUpperCase(); - }); -} - -/** - * Expose / Entry Point - */ - -if (!module.parent) { - process.title = 'marked'; - main(process.argv.slice(), function(err, code) { - if (err) throw err; - return process.exit(code || 0); - }); -} else { - module.exports = main; -} diff --git a/tools/doc/node_modules/marked/index.js b/tools/doc/node_modules/marked/index.js deleted file mode 100644 index a12f90569faa58..00000000000000 --- a/tools/doc/node_modules/marked/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/marked'); diff --git a/tools/doc/node_modules/marked/lib/marked.js b/tools/doc/node_modules/marked/lib/marked.js deleted file mode 100644 index 32521d993497ae..00000000000000 --- a/tools/doc/node_modules/marked/lib/marked.js +++ /dev/null @@ -1,1286 +0,0 @@ -/** - * marked - a markdown parser - * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) - * https://github.com/chjj/marked - */ - -;(function() { - -/** - * Block-Level Grammar - */ - -var block = { - newline: /^\n+/, - code: /^( {4}[^\n]+\n*)+/, - fences: noop, - hr: /^( *[-*_]){3,} *(?:\n+|$)/, - heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, - nptable: noop, - lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, - blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, - list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, - html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, - def: /^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, - table: noop, - paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, - text: /^[^\n]+/ -}; - -block.bullet = /(?:[*+-]|\d+\.)/; -block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; -block.item = replace(block.item, 'gm') - (/bull/g, block.bullet) - (); - -block.list = replace(block.list) - (/bull/g, block.bullet) - ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') - ('def', '\\n+(?=' + block.def.source + ')') - (); - -block.blockquote = replace(block.blockquote) - ('def', block.def) - (); - -block._tag = '(?!(?:' - + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' - + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' - + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; - -block.html = replace(block.html) - ('comment', //) - ('closed', /<(tag)[\s\S]+?<\/\1>/) - ('closing', /])*?>/) - (/tag/g, block._tag) - (); - -block.paragraph = replace(block.paragraph) - ('hr', block.hr) - ('heading', block.heading) - ('lheading', block.lheading) - ('blockquote', block.blockquote) - ('tag', '<' + block._tag) - ('def', block.def) - (); - -/** - * Normal Block Grammar - */ - -block.normal = merge({}, block); - -/** - * GFM Block Grammar - */ - -block.gfm = merge({}, block.normal, { - fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/, - paragraph: /^/, - heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ -}); - -block.gfm.paragraph = replace(block.paragraph) - ('(?!', '(?!' - + block.gfm.fences.source.replace('\\1', '\\2') + '|' - + block.list.source.replace('\\1', '\\3') + '|') - (); - -/** - * GFM + Tables Block Grammar - */ - -block.tables = merge({}, block.gfm, { - nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, - table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ -}); - -/** - * Block Lexer - */ - -function Lexer(options) { - this.tokens = []; - this.tokens.links = {}; - this.options = options || marked.defaults; - this.rules = block.normal; - - if (this.options.gfm) { - if (this.options.tables) { - this.rules = block.tables; - } else { - this.rules = block.gfm; - } - } -} - -/** - * Expose Block Rules - */ - -Lexer.rules = block; - -/** - * Static Lex Method - */ - -Lexer.lex = function(src, options) { - var lexer = new Lexer(options); - return lexer.lex(src); -}; - -/** - * Preprocessing - */ - -Lexer.prototype.lex = function(src) { - src = src - .replace(/\r\n|\r/g, '\n') - .replace(/\t/g, ' ') - .replace(/\u00a0/g, ' ') - .replace(/\u2424/g, '\n'); - - return this.token(src, true); -}; - -/** - * Lexing - */ - -Lexer.prototype.token = function(src, top, bq) { - var src = src.replace(/^ +$/gm, '') - , next - , loose - , cap - , bull - , b - , item - , space - , i - , l; - - while (src) { - // newline - if (cap = this.rules.newline.exec(src)) { - src = src.substring(cap[0].length); - if (cap[0].length > 1) { - this.tokens.push({ - type: 'space' - }); - } - } - - // code - if (cap = this.rules.code.exec(src)) { - src = src.substring(cap[0].length); - cap = cap[0].replace(/^ {4}/gm, ''); - this.tokens.push({ - type: 'code', - text: !this.options.pedantic - ? cap.replace(/\n+$/, '') - : cap - }); - continue; - } - - // fences (gfm) - if (cap = this.rules.fences.exec(src)) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'code', - lang: cap[2], - text: cap[3] || '' - }); - continue; - } - - // heading - if (cap = this.rules.heading.exec(src)) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'heading', - depth: cap[1].length, - text: cap[2] - }); - continue; - } - - // table no leading pipe (gfm) - if (top && (cap = this.rules.nptable.exec(src))) { - src = src.substring(cap[0].length); - - item = { - type: 'table', - header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3].replace(/\n$/, '').split('\n') - }; - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; - } - } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = item.cells[i].split(/ *\| */); - } - - this.tokens.push(item); - - continue; - } - - // lheading - if (cap = this.rules.lheading.exec(src)) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'heading', - depth: cap[2] === '=' ? 1 : 2, - text: cap[1] - }); - continue; - } - - // hr - if (cap = this.rules.hr.exec(src)) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'hr' - }); - continue; - } - - // blockquote - if (cap = this.rules.blockquote.exec(src)) { - src = src.substring(cap[0].length); - - this.tokens.push({ - type: 'blockquote_start' - }); - - cap = cap[0].replace(/^ *> ?/gm, ''); - - // Pass `top` to keep the current - // "toplevel" state. This is exactly - // how markdown.pl works. - this.token(cap, top, true); - - this.tokens.push({ - type: 'blockquote_end' - }); - - continue; - } - - // list - if (cap = this.rules.list.exec(src)) { - src = src.substring(cap[0].length); - bull = cap[2]; - - this.tokens.push({ - type: 'list_start', - ordered: bull.length > 1 - }); - - // Get each top-level item. - cap = cap[0].match(this.rules.item); - - next = false; - l = cap.length; - i = 0; - - for (; i < l; i++) { - item = cap[i]; - - // Remove the list item's bullet - // so it is seen as the next token. - space = item.length; - item = item.replace(/^ *([*+-]|\d+\.) +/, ''); - - // Outdent whatever the - // list item contains. Hacky. - if (~item.indexOf('\n ')) { - space -= item.length; - item = !this.options.pedantic - ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') - : item.replace(/^ {1,4}/gm, ''); - } - - // Determine whether the next list item belongs here. - // Backpedal if it does not belong in this list. - if (this.options.smartLists && i !== l - 1) { - b = block.bullet.exec(cap[i + 1])[0]; - if (bull !== b && !(bull.length > 1 && b.length > 1)) { - src = cap.slice(i + 1).join('\n') + src; - i = l - 1; - } - } - - // Determine whether item is loose or not. - // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ - // for discount behavior. - loose = next || /\n\n(?!\s*$)/.test(item); - if (i !== l - 1) { - next = item.charAt(item.length - 1) === '\n'; - if (!loose) loose = next; - } - - this.tokens.push({ - type: loose - ? 'loose_item_start' - : 'list_item_start' - }); - - // Recurse. - this.token(item, false, bq); - - this.tokens.push({ - type: 'list_item_end' - }); - } - - this.tokens.push({ - type: 'list_end' - }); - - continue; - } - - // html - if (cap = this.rules.html.exec(src)) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: this.options.sanitize - ? 'paragraph' - : 'html', - pre: !this.options.sanitizer - && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), - text: cap[0] - }); - continue; - } - - // def - if ((!bq && top) && (cap = this.rules.def.exec(src))) { - src = src.substring(cap[0].length); - this.tokens.links[cap[1].toLowerCase()] = { - href: cap[2], - title: cap[3] - }; - continue; - } - - // table (gfm) - if (top && (cap = this.rules.table.exec(src))) { - src = src.substring(cap[0].length); - - item = { - type: 'table', - header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') - }; - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; - } - } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = item.cells[i] - .replace(/^ *\| *| *\| *$/g, '') - .split(/ *\| */); - } - - this.tokens.push(item); - - continue; - } - - // top-level paragraph - if (top && (cap = this.rules.paragraph.exec(src))) { - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'paragraph', - text: cap[1].charAt(cap[1].length - 1) === '\n' - ? cap[1].slice(0, -1) - : cap[1] - }); - continue; - } - - // text - if (cap = this.rules.text.exec(src)) { - // Top-level should never reach here. - src = src.substring(cap[0].length); - this.tokens.push({ - type: 'text', - text: cap[0] - }); - continue; - } - - if (src) { - throw new - Error('Infinite loop on byte: ' + src.charCodeAt(0)); - } - } - - return this.tokens; -}; - -/** - * Inline-Level Grammar - */ - -var inline = { - escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, - autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, - url: noop, - tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, - link: /^!?\[(inside)\]\(href\)/, - reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, - nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, - strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, - em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, - code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, - br: /^ {2,}\n(?!\s*$)/, - del: noop, - text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; - -inline.link = replace(inline.link) - ('inside', inline._inside) - ('href', inline._href) - (); - -inline.reflink = replace(inline.reflink) - ('inside', inline._inside) - (); - -/** - * Normal Inline Grammar - */ - -inline.normal = merge({}, inline); - -/** - * Pedantic Inline Grammar - */ - -inline.pedantic = merge({}, inline.normal, { - strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, - em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ -}); - -/** - * GFM Inline Grammar - */ - -inline.gfm = merge({}, inline.normal, { - escape: replace(inline.escape)('])', '~|])')(), - url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, - del: /^~~(?=\S)([\s\S]*?\S)~~/, - text: replace(inline.text) - (']|', '~]|') - ('|', '|https?://|') - () -}); - -/** - * GFM + Line Breaks Inline Grammar - */ - -inline.breaks = merge({}, inline.gfm, { - br: replace(inline.br)('{2,}', '*')(), - text: replace(inline.gfm.text)('{2,}', '*')() -}); - -/** - * Inline Lexer & Compiler - */ - -function InlineLexer(links, options) { - this.options = options || marked.defaults; - this.links = links; - this.rules = inline.normal; - this.renderer = this.options.renderer || new Renderer; - this.renderer.options = this.options; - - if (!this.links) { - throw new - Error('Tokens array requires a `links` property.'); - } - - if (this.options.gfm) { - if (this.options.breaks) { - this.rules = inline.breaks; - } else { - this.rules = inline.gfm; - } - } else if (this.options.pedantic) { - this.rules = inline.pedantic; - } -} - -/** - * Expose Inline Rules - */ - -InlineLexer.rules = inline; - -/** - * Static Lexing/Compiling Method - */ - -InlineLexer.output = function(src, links, options) { - var inline = new InlineLexer(links, options); - return inline.output(src); -}; - -/** - * Lexing/Compiling - */ - -InlineLexer.prototype.output = function(src) { - var out = '' - , link - , text - , href - , cap; - - while (src) { - // escape - if (cap = this.rules.escape.exec(src)) { - src = src.substring(cap[0].length); - out += cap[1]; - continue; - } - - // autolink - if (cap = this.rules.autolink.exec(src)) { - src = src.substring(cap[0].length); - if (cap[2] === '@') { - text = cap[1].charAt(6) === ':' - ? this.mangle(cap[1].substring(7)) - : this.mangle(cap[1]); - href = this.mangle('mailto:') + text; - } else { - text = escape(cap[1]); - href = text; - } - out += this.renderer.link(href, null, text); - continue; - } - - // url (gfm) - if (!this.inLink && (cap = this.rules.url.exec(src))) { - src = src.substring(cap[0].length); - text = escape(cap[1]); - href = text; - out += this.renderer.link(href, null, text); - continue; - } - - // tag - if (cap = this.rules.tag.exec(src)) { - if (!this.inLink && /^/i.test(cap[0])) { - this.inLink = false; - } - src = src.substring(cap[0].length); - out += this.options.sanitize - ? this.options.sanitizer - ? this.options.sanitizer(cap[0]) - : escape(cap[0]) - : cap[0] - continue; - } - - // link - if (cap = this.rules.link.exec(src)) { - src = src.substring(cap[0].length); - this.inLink = true; - out += this.outputLink(cap, { - href: cap[2], - title: cap[3] - }); - this.inLink = false; - continue; - } - - // reflink, nolink - if ((cap = this.rules.reflink.exec(src)) - || (cap = this.rules.nolink.exec(src))) { - src = src.substring(cap[0].length); - link = (cap[2] || cap[1]).replace(/\s+/g, ' '); - link = this.links[link.toLowerCase()]; - if (!link || !link.href) { - out += cap[0].charAt(0); - src = cap[0].substring(1) + src; - continue; - } - this.inLink = true; - out += this.outputLink(cap, link); - this.inLink = false; - continue; - } - - // strong - if (cap = this.rules.strong.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.strong(this.output(cap[2] || cap[1])); - continue; - } - - // em - if (cap = this.rules.em.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.em(this.output(cap[2] || cap[1])); - continue; - } - - // code - if (cap = this.rules.code.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.codespan(escape(cap[2], true)); - continue; - } - - // br - if (cap = this.rules.br.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.br(); - continue; - } - - // del (gfm) - if (cap = this.rules.del.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.del(this.output(cap[1])); - continue; - } - - // text - if (cap = this.rules.text.exec(src)) { - src = src.substring(cap[0].length); - out += this.renderer.text(escape(this.smartypants(cap[0]))); - continue; - } - - if (src) { - throw new - Error('Infinite loop on byte: ' + src.charCodeAt(0)); - } - } - - return out; -}; - -/** - * Compile Link - */ - -InlineLexer.prototype.outputLink = function(cap, link) { - var href = escape(link.href) - , title = link.title ? escape(link.title) : null; - - return cap[0].charAt(0) !== '!' - ? this.renderer.link(href, title, this.output(cap[1])) - : this.renderer.image(href, title, escape(cap[1])); -}; - -/** - * Smartypants Transformations - */ - -InlineLexer.prototype.smartypants = function(text) { - if (!this.options.smartypants) return text; - return text - // em-dashes - .replace(/---/g, '\u2014') - // en-dashes - .replace(/--/g, '\u2013') - // opening singles - .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') - // closing singles & apostrophes - .replace(/'/g, '\u2019') - // opening doubles - .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') - // closing doubles - .replace(/"/g, '\u201d') - // ellipses - .replace(/\.{3}/g, '\u2026'); -}; - -/** - * Mangle Links - */ - -InlineLexer.prototype.mangle = function(text) { - if (!this.options.mangle) return text; - var out = '' - , l = text.length - , i = 0 - , ch; - - for (; i < l; i++) { - ch = text.charCodeAt(i); - if (Math.random() > 0.5) { - ch = 'x' + ch.toString(16); - } - out += '&#' + ch + ';'; - } - - return out; -}; - -/** - * Renderer - */ - -function Renderer(options) { - this.options = options || {}; -} - -Renderer.prototype.code = function(code, lang, escaped) { - if (this.options.highlight) { - var out = this.options.highlight(code, lang); - if (out != null && out !== code) { - escaped = true; - code = out; - } - } - - if (!lang) { - return '
'
-      + (escaped ? code : escape(code, true))
-      + '\n
'; - } - - return '
'
-    + (escaped ? code : escape(code, true))
-    + '\n
\n'; -}; - -Renderer.prototype.blockquote = function(quote) { - return '
\n' + quote + '
\n'; -}; - -Renderer.prototype.html = function(html) { - return html; -}; - -Renderer.prototype.heading = function(text, level, raw) { - return '' - + text - + '\n'; -}; - -Renderer.prototype.hr = function() { - return this.options.xhtml ? '
\n' : '
\n'; -}; - -Renderer.prototype.list = function(body, ordered) { - var type = ordered ? 'ol' : 'ul'; - return '<' + type + '>\n' + body + '\n'; -}; - -Renderer.prototype.listitem = function(text) { - return '
  • ' + text + '
  • \n'; -}; - -Renderer.prototype.paragraph = function(text) { - return '

    ' + text + '

    \n'; -}; - -Renderer.prototype.table = function(header, body) { - return '\n' - + '\n' - + header - + '\n' - + '\n' - + body - + '\n' - + '
    \n'; -}; - -Renderer.prototype.tablerow = function(content) { - return '\n' + content + '\n'; -}; - -Renderer.prototype.tablecell = function(content, flags) { - var type = flags.header ? 'th' : 'td'; - var tag = flags.align - ? '<' + type + ' style="text-align:' + flags.align + '">' - : '<' + type + '>'; - return tag + content + '\n'; -}; - -// span level renderer -Renderer.prototype.strong = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.em = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.codespan = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.br = function() { - return this.options.xhtml ? '
    ' : '
    '; -}; - -Renderer.prototype.del = function(text) { - return '' + text + ''; -}; - -Renderer.prototype.link = function(href, title, text) { - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)) - .replace(/[^\w:]/g, '') - .toLowerCase(); - } catch (e) { - return ''; - } - if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0) { - return ''; - } - } - var out = '
    '; - return out; -}; - -Renderer.prototype.image = function(href, title, text) { - var out = '' + text + '' : '>'; - return out; -}; - -Renderer.prototype.text = function(text) { - return text; -}; - -/** - * Parsing & Compiling - */ - -function Parser(options) { - this.tokens = []; - this.token = null; - this.options = options || marked.defaults; - this.options.renderer = this.options.renderer || new Renderer; - this.renderer = this.options.renderer; - this.renderer.options = this.options; -} - -/** - * Static Parse Method - */ - -Parser.parse = function(src, options, renderer) { - var parser = new Parser(options, renderer); - return parser.parse(src); -}; - -/** - * Parse Loop - */ - -Parser.prototype.parse = function(src) { - this.inline = new InlineLexer(src.links, this.options, this.renderer); - this.tokens = src.reverse(); - - var out = ''; - while (this.next()) { - out += this.tok(); - } - - return out; -}; - -/** - * Next Token - */ - -Parser.prototype.next = function() { - return this.token = this.tokens.pop(); -}; - -/** - * Preview Next Token - */ - -Parser.prototype.peek = function() { - return this.tokens[this.tokens.length - 1] || 0; -}; - -/** - * Parse Text Tokens - */ - -Parser.prototype.parseText = function() { - var body = this.token.text; - - while (this.peek().type === 'text') { - body += '\n' + this.next().text; - } - - return this.inline.output(body); -}; - -/** - * Parse Current Token - */ - -Parser.prototype.tok = function() { - switch (this.token.type) { - case 'space': { - return ''; - } - case 'hr': { - return this.renderer.hr(); - } - case 'heading': { - return this.renderer.heading( - this.inline.output(this.token.text), - this.token.depth, - this.token.text); - } - case 'code': { - return this.renderer.code(this.token.text, - this.token.lang, - this.token.escaped); - } - case 'table': { - var header = '' - , body = '' - , i - , row - , cell - , flags - , j; - - // header - cell = ''; - for (i = 0; i < this.token.header.length; i++) { - flags = { header: true, align: this.token.align[i] }; - cell += this.renderer.tablecell( - this.inline.output(this.token.header[i]), - { header: true, align: this.token.align[i] } - ); - } - header += this.renderer.tablerow(cell); - - for (i = 0; i < this.token.cells.length; i++) { - row = this.token.cells[i]; - - cell = ''; - for (j = 0; j < row.length; j++) { - cell += this.renderer.tablecell( - this.inline.output(row[j]), - { header: false, align: this.token.align[j] } - ); - } - - body += this.renderer.tablerow(cell); - } - return this.renderer.table(header, body); - } - case 'blockquote_start': { - var body = ''; - - while (this.next().type !== 'blockquote_end') { - body += this.tok(); - } - - return this.renderer.blockquote(body); - } - case 'list_start': { - var body = '' - , ordered = this.token.ordered; - - while (this.next().type !== 'list_end') { - body += this.tok(); - } - - return this.renderer.list(body, ordered); - } - case 'list_item_start': { - var body = ''; - - while (this.next().type !== 'list_item_end') { - body += this.token.type === 'text' - ? this.parseText() - : this.tok(); - } - - return this.renderer.listitem(body); - } - case 'loose_item_start': { - var body = ''; - - while (this.next().type !== 'list_item_end') { - body += this.tok(); - } - - return this.renderer.listitem(body); - } - case 'html': { - var html = !this.token.pre && !this.options.pedantic - ? this.inline.output(this.token.text) - : this.token.text; - return this.renderer.html(html); - } - case 'paragraph': { - return this.renderer.paragraph(this.inline.output(this.token.text)); - } - case 'text': { - return this.renderer.paragraph(this.parseText()); - } - } -}; - -/** - * Helpers - */ - -function escape(html, encode) { - return html - .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); -} - -function unescape(html) { - // explicitly match decimal, hex, and named HTML entities - return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) { - n = n.toLowerCase(); - if (n === 'colon') return ':'; - if (n.charAt(0) === '#') { - return n.charAt(1) === 'x' - ? String.fromCharCode(parseInt(n.substring(2), 16)) - : String.fromCharCode(+n.substring(1)); - } - return ''; - }); -} - -function replace(regex, opt) { - regex = regex.source; - opt = opt || ''; - return function self(name, val) { - if (!name) return new RegExp(regex, opt); - val = val.source || val; - val = val.replace(/(^|[^\[])\^/g, '$1'); - regex = regex.replace(name, val); - return self; - }; -} - -function noop() {} -noop.exec = noop; - -function merge(obj) { - var i = 1 - , target - , key; - - for (; i < arguments.length; i++) { - target = arguments[i]; - for (key in target) { - if (Object.prototype.hasOwnProperty.call(target, key)) { - obj[key] = target[key]; - } - } - } - - return obj; -} - - -/** - * Marked - */ - -function marked(src, opt, callback) { - if (callback || typeof opt === 'function') { - if (!callback) { - callback = opt; - opt = null; - } - - opt = merge({}, marked.defaults, opt || {}); - - var highlight = opt.highlight - , tokens - , pending - , i = 0; - - try { - tokens = Lexer.lex(src, opt) - } catch (e) { - return callback(e); - } - - pending = tokens.length; - - var done = function(err) { - if (err) { - opt.highlight = highlight; - return callback(err); - } - - var out; - - try { - out = Parser.parse(tokens, opt); - } catch (e) { - err = e; - } - - opt.highlight = highlight; - - return err - ? callback(err) - : callback(null, out); - }; - - if (!highlight || highlight.length < 3) { - return done(); - } - - delete opt.highlight; - - if (!pending) return done(); - - for (; i < tokens.length; i++) { - (function(token) { - if (token.type !== 'code') { - return --pending || done(); - } - return highlight(token.text, token.lang, function(err, code) { - if (err) return done(err); - if (code == null || code === token.text) { - return --pending || done(); - } - token.text = code; - token.escaped = true; - --pending || done(); - }); - })(tokens[i]); - } - - return; - } - try { - if (opt) opt = merge({}, marked.defaults, opt); - return Parser.parse(Lexer.lex(src, opt), opt); - } catch (e) { - e.message += '\nPlease report this to https://github.com/chjj/marked.'; - if ((opt || marked.defaults).silent) { - return '

    An error occured:

    '
    -        + escape(e.message + '', true)
    -        + '
    '; - } - throw e; - } -} - -/** - * Options - */ - -marked.options = -marked.setOptions = function(opt) { - merge(marked.defaults, opt); - return marked; -}; - -marked.defaults = { - gfm: true, - tables: true, - breaks: false, - pedantic: false, - sanitize: false, - sanitizer: null, - mangle: true, - smartLists: false, - silent: false, - highlight: null, - langPrefix: 'lang-', - smartypants: false, - headerPrefix: '', - renderer: new Renderer, - xhtml: false -}; - -/** - * Expose - */ - -marked.Parser = Parser; -marked.parser = Parser.parse; - -marked.Renderer = Renderer; - -marked.Lexer = Lexer; -marked.lexer = Lexer.lex; - -marked.InlineLexer = InlineLexer; -marked.inlineLexer = InlineLexer.output; - -marked.parse = marked; - -if (typeof module !== 'undefined' && typeof exports === 'object') { - module.exports = marked; -} else if (typeof define === 'function' && define.amd) { - define(function() { return marked; }); -} else { - this.marked = marked; -} - -}).call(function() { - return this || (typeof window !== 'undefined' ? window : global); -}()); diff --git a/tools/doc/node_modules/marked/man/marked.1 b/tools/doc/node_modules/marked/man/marked.1 deleted file mode 100644 index b9bdc8c2123e3b..00000000000000 --- a/tools/doc/node_modules/marked/man/marked.1 +++ /dev/null @@ -1,91 +0,0 @@ -.ds q \N'34' -.TH marked 1 "2014-01-31" "v0.3.1" "marked.js" - -.SH NAME -marked \- a javascript markdown parser - -.SH SYNOPSIS -.B marked -[\-o \fI\fP] [\-i \fI\fP] [\-\-help] -[\-\-tokens] [\-\-pedantic] [\-\-gfm] -[\-\-breaks] [\-\-tables] [\-\-sanitize] -[\-\-smart\-lists] [\-\-lang\-prefix \fI\fP] -[\-\-no\-etc...] [\-\-silent] [\fIfilename\fP] - -.SH DESCRIPTION -.B marked -is a full-featured javascript markdown parser, built for speed. It also includes -multiple GFM features. - -.SH EXAMPLES -.TP -cat in.md | marked > out.html -.TP -echo "hello *world*" | marked -.TP -marked \-o out.html in.md \-\-gfm -.TP -marked \-\-output="hello world.html" \-i in.md \-\-no-breaks - -.SH OPTIONS -.TP -.BI \-o,\ \-\-output\ [\fIoutput\fP] -Specify file output. If none is specified, write to stdout. -.TP -.BI \-i,\ \-\-input\ [\fIinput\fP] -Specify file input, otherwise use last argument as input file. If no input file -is specified, read from stdin. -.TP -.BI \-t,\ \-\-tokens -Output a token stream instead of html. -.TP -.BI \-\-pedantic -Conform to obscure parts of markdown.pl as much as possible. Don't fix original -markdown bugs. -.TP -.BI \-\-gfm -Enable github flavored markdown. -.TP -.BI \-\-breaks -Enable GFM line breaks. Only works with the gfm option. -.TP -.BI \-\-tables -Enable GFM tables. Only works with the gfm option. -.TP -.BI \-\-sanitize -Sanitize output. Ignore any HTML input. -.TP -.BI \-\-smart\-lists -Use smarter list behavior than the original markdown. -.TP -.BI \-\-lang\-prefix\ [\fIprefix\fP] -Set the prefix for code block classes. -.TP -.BI \-\-mangle -Mangle email addresses. -.TP -.BI \-\-no\-sanitize,\ \-no-etc... -The inverse of any of the marked options above. -.TP -.BI \-\-silent -Silence error output. -.TP -.BI \-h,\ \-\-help -Display help information. - -.SH CONFIGURATION -For configuring and running programmatically. - -.B Example - - require('marked')('*foo*', { gfm: true }); - -.SH BUGS -Please report any bugs to https://github.com/chjj/marked. - -.SH LICENSE -Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). - -.SH "SEE ALSO" -.BR markdown(1), -.BR node.js(1) diff --git a/tools/doc/node_modules/marked/marked.min.js b/tools/doc/node_modules/marked/marked.min.js deleted file mode 100644 index 555c1dc1d9da18..00000000000000 --- a/tools/doc/node_modules/marked/marked.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * marked - a markdown parser - * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) - * https://github.com/chjj/marked - */ -(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]||""});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&(cap[1]==="pre"||cap[1]==="script"||cap[1]==="style"),text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^
    /i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(cap[0]):escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.text(escape(this.smartypants(cap[0])));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){if(!this.options.mangle)return text;var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
    "+(escaped?code:escape(code,true))+"\n
    "}return'
    '+(escaped?code:escape(code,true))+"\n
    \n"};Renderer.prototype.blockquote=function(quote){return"
    \n"+quote+"
    \n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};Renderer.prototype.text=function(text){return text};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); \ No newline at end of file diff --git a/tools/doc/node_modules/marked/package.json b/tools/doc/node_modules/marked/package.json deleted file mode 100644 index 81ab0639d2b1dc..00000000000000 --- a/tools/doc/node_modules/marked/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_from": "marked@^0.3.5", - "_id": "marked@0.3.6", - "_inBundle": false, - "_integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", - "_location": "/marked", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "marked@^0.3.5", - "name": "marked", - "escapedName": "marked", - "rawSpec": "^0.3.5", - "saveSpec": null, - "fetchSpec": "^0.3.5" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "_shasum": "b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7", - "_spec": "marked@^0.3.5", - "_where": "/mnt/d/code/node-github-desktop/tools/doc", - "author": { - "name": "Christopher Jeffrey" - }, - "bin": { - "marked": "./bin/marked" - }, - "bugs": { - "url": "http://github.com/chjj/marked/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A markdown parser built for speed", - "devDependencies": { - "gulp": "^3.8.11", - "gulp-concat": "^2.5.2", - "gulp-uglify": "^1.1.0", - "markdown": "*", - "showdown": "*" - }, - "homepage": "https://github.com/chjj/marked", - "keywords": [ - "markdown", - "markup", - "html" - ], - "license": "MIT", - "main": "./lib/marked.js", - "man": [ - "./man/marked.1" - ], - "name": "marked", - "preferGlobal": true, - "repository": { - "type": "git", - "url": "git://github.com/chjj/marked.git" - }, - "scripts": { - "bench": "node test --bench", - "test": "node test" - }, - "tags": [ - "markdown", - "markup", - "html" - ], - "version": "0.3.6" -} diff --git a/tools/doc/node_modules/sprintf-js/LICENSE b/tools/doc/node_modules/sprintf-js/LICENSE deleted file mode 100644 index 663ac52e4d8cd9..00000000000000 --- a/tools/doc/node_modules/sprintf-js/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2007-2014, Alexandru Marasteanu -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -* Neither the name of this software nor the names of its contributors may be - used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/doc/node_modules/sprintf-js/README.md b/tools/doc/node_modules/sprintf-js/README.md deleted file mode 100644 index 83863561b29199..00000000000000 --- a/tools/doc/node_modules/sprintf-js/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# sprintf.js -**sprintf.js** is a complete open source JavaScript sprintf implementation for the *browser* and *node.js*. - -Its prototype is simple: - - string sprintf(string format , [mixed arg1 [, mixed arg2 [ ,...]]]) - -The placeholders in the format string are marked by `%` and are followed by one or more of these elements, in this order: - -* An optional number followed by a `$` sign that selects which argument index to use for the value. If not specified, arguments will be placed in the same order as the placeholders in the input string. -* An optional `+` sign that forces to preceed the result with a plus or minus sign on numeric values. By default, only the `-` sign is used on negative numbers. -* An optional padding specifier that says what character to use for padding (if specified). Possible values are `0` or any other character precedeed by a `'` (single quote). The default is to pad with *spaces*. -* An optional `-` sign, that causes sprintf to left-align the result of this placeholder. The default is to right-align the result. -* An optional number, that says how many characters the result should have. If the value to be returned is shorter than this number, the result will be padded. When used with the `j` (JSON) type specifier, the padding length specifies the tab size used for indentation. -* An optional precision modifier, consisting of a `.` (dot) followed by a number, that says how many digits should be displayed for floating point numbers. When used with the `g` type specifier, it specifies the number of significant digits. When used on a string, it causes the result to be truncated. -* A type specifier that can be any of: - * `%` — yields a literal `%` character - * `b` — yields an integer as a binary number - * `c` — yields an integer as the character with that ASCII value - * `d` or `i` — yields an integer as a signed decimal number - * `e` — yields a float using scientific notation - * `u` — yields an integer as an unsigned decimal number - * `f` — yields a float as is; see notes on precision above - * `g` — yields a float as is; see notes on precision above - * `o` — yields an integer as an octal number - * `s` — yields a string as is - * `x` — yields an integer as a hexadecimal number (lower-case) - * `X` — yields an integer as a hexadecimal number (upper-case) - * `j` — yields a JavaScript object or array as a JSON encoded string - -## JavaScript `vsprintf` -`vsprintf` is the same as `sprintf` except that it accepts an array of arguments, rather than a variable number of arguments: - - vsprintf("The first 4 letters of the english alphabet are: %s, %s, %s and %s", ["a", "b", "c", "d"]) - -## Argument swapping -You can also swap the arguments. That is, the order of the placeholders doesn't have to match the order of the arguments. You can do that by simply indicating in the format string which arguments the placeholders refer to: - - sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants") -And, of course, you can repeat the placeholders without having to increase the number of arguments. - -## Named arguments -Format strings may contain replacement fields rather than positional placeholders. Instead of referring to a certain argument, you can now refer to a certain key within an object. Replacement fields are surrounded by rounded parentheses - `(` and `)` - and begin with a keyword that refers to a key: - - var user = { - name: "Dolly" - } - sprintf("Hello %(name)s", user) // Hello Dolly -Keywords in replacement fields can be optionally followed by any number of keywords or indexes: - - var users = [ - {name: "Dolly"}, - {name: "Molly"}, - {name: "Polly"} - ] - sprintf("Hello %(users[0].name)s, %(users[1].name)s and %(users[2].name)s", {users: users}) // Hello Dolly, Molly and Polly -Note: mixing positional and named placeholders is not (yet) supported - -## Computed values -You can pass in a function as a dynamic value and it will be invoked (with no arguments) in order to compute the value on-the-fly. - - sprintf("Current timestamp: %d", Date.now) // Current timestamp: 1398005382890 - sprintf("Current date and time: %s", function() { return new Date().toString() }) - -# AngularJS -You can now use `sprintf` and `vsprintf` (also aliased as `fmt` and `vfmt` respectively) in your AngularJS projects. See `demo/`. - -# Installation - -## Via Bower - - bower install sprintf - -## Or as a node.js module - - npm install sprintf-js - -### Usage - - var sprintf = require("sprintf-js").sprintf, - vsprintf = require("sprintf-js").vsprintf - - sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants") - vsprintf("The first 4 letters of the english alphabet are: %s, %s, %s and %s", ["a", "b", "c", "d"]) - -# License - -**sprintf.js** is licensed under the terms of the 3-clause BSD license. diff --git a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js b/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js deleted file mode 100644 index dbaf744d83c214..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! sprintf-js | Alexandru Marasteanu (http://alexei.ro/) | BSD-3-Clause */ - -angular.module("sprintf",[]).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt",["$filter",function(a){return a("sprintf")}]).filter("vsprintf",function(){return function(a,b){return vsprintf(a,b)}}).filter("vfmt",["$filter",function(a){return a("vsprintf")}]); -//# sourceMappingURL=angular-sprintf.min.map \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js.map b/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js.map deleted file mode 100644 index 055964c624c1ac..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"angular-sprintf.min.js","sources":["../src/angular-sprintf.js"],"names":["angular","module","filter","sprintf","apply","arguments","$filter","format","argv","vsprintf"],"mappings":";;AAAAA,QACIC,OAAO,cACPC,OAAO,UAAW,WACd,MAAO,YACH,MAAOC,SAAQC,MAAM,KAAMC,cAGnCH,OAAO,OAAQ,UAAW,SAASI,GAC/B,MAAOA,GAAQ,cAEnBJ,OAAO,WAAY,WACf,MAAO,UAASK,EAAQC,GACpB,MAAOC,UAASF,EAAQC,MAGhCN,OAAO,QAAS,UAAW,SAASI,GAChC,MAAOA,GAAQ"} \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.map b/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.map deleted file mode 100644 index 055964c624c1ac..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/angular-sprintf.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"angular-sprintf.min.js","sources":["../src/angular-sprintf.js"],"names":["angular","module","filter","sprintf","apply","arguments","$filter","format","argv","vsprintf"],"mappings":";;AAAAA,QACIC,OAAO,cACPC,OAAO,UAAW,WACd,MAAO,YACH,MAAOC,SAAQC,MAAM,KAAMC,cAGnCH,OAAO,OAAQ,UAAW,SAASI,GAC/B,MAAOA,GAAQ,cAEnBJ,OAAO,WAAY,WACf,MAAO,UAASK,EAAQC,GACpB,MAAOC,UAASF,EAAQC,MAGhCN,OAAO,QAAS,UAAW,SAASI,GAChC,MAAOA,GAAQ"} \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js b/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js deleted file mode 100644 index dc61e51add29bb..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! sprintf-js | Alexandru Marasteanu (http://alexei.ro/) | BSD-3-Clause */ - -!function(a){function b(){var a=arguments[0],c=b.cache;return c[a]&&c.hasOwnProperty(a)||(c[a]=b.parse(a)),b.format.call(null,c[a],arguments)}function c(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function d(a,b){return Array(b+1).join(a)}var e={not_string:/[^s]/,number:/[diefg]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosuxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[\+\-]/};b.format=function(a,f){var g,h,i,j,k,l,m,n=1,o=a.length,p="",q=[],r=!0,s="";for(h=0;o>h;h++)if(p=c(a[h]),"string"===p)q[q.length]=a[h];else if("array"===p){if(j=a[h],j[2])for(g=f[n],i=0;i=0),j[8]){case"b":g=g.toString(2);break;case"c":g=String.fromCharCode(g);break;case"d":case"i":g=parseInt(g,10);break;case"j":g=JSON.stringify(g,null,j[6]?parseInt(j[6]):0);break;case"e":g=j[7]?g.toExponential(j[7]):g.toExponential();break;case"f":g=j[7]?parseFloat(g).toFixed(j[7]):parseFloat(g);break;case"g":g=j[7]?parseFloat(g).toPrecision(j[7]):parseFloat(g);break;case"o":g=g.toString(8);break;case"s":g=(g=String(g))&&j[7]?g.substring(0,j[7]):g;break;case"u":g>>>=0;break;case"x":g=g.toString(16);break;case"X":g=g.toString(16).toUpperCase()}e.json.test(j[8])?q[q.length]=g:(!e.number.test(j[8])||r&&!j[3]?s="":(s=r?"+":"-",g=g.toString().replace(e.sign,"")),l=j[4]?"0"===j[4]?"0":j[4].charAt(1):" ",m=j[6]-(s+g).length,k=j[6]&&m>0?d(l,m):"",q[q.length]=j[5]?s+g+k:"0"===l?s+k+g:k+s+g)}return q.join("")},b.cache={},b.parse=function(a){for(var b=a,c=[],d=[],f=0;b;){if(null!==(c=e.text.exec(b)))d[d.length]=c[0];else if(null!==(c=e.modulo.exec(b)))d[d.length]="%";else{if(null===(c=e.placeholder.exec(b)))throw new SyntaxError("[sprintf] unexpected placeholder");if(c[2]){f|=1;var g=[],h=c[2],i=[];if(null===(i=e.key.exec(h)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(g[g.length]=i[1];""!==(h=h.substring(i[0].length));)if(null!==(i=e.key_access.exec(h)))g[g.length]=i[1];else{if(null===(i=e.index_access.exec(h)))throw new SyntaxError("[sprintf] failed to parse named argument key");g[g.length]=i[1]}c[2]=g}else f|=2;if(3===f)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");d[d.length]=c}b=b.substring(c[0].length)}return d};var f=function(a,c,d){return d=(c||[]).slice(0),d.splice(0,0,a),b.apply(null,d)};"undefined"!=typeof exports?(exports.sprintf=b,exports.vsprintf=f):(a.sprintf=b,a.vsprintf=f,"function"==typeof define&&define.amd&&define(function(){return{sprintf:b,vsprintf:f}}))}("undefined"==typeof window?this:window); -//# sourceMappingURL=sprintf.min.map \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js.map b/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js.map deleted file mode 100644 index 369dbafab157ae..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sprintf.min.js","sources":["../src/sprintf.js"],"names":["window","sprintf","key","arguments","cache","hasOwnProperty","parse","format","call","get_type","variable","Object","prototype","toString","slice","toLowerCase","str_repeat","input","multiplier","Array","join","re","not_string","number","json","not_json","text","modulo","placeholder","key_access","index_access","sign","parse_tree","argv","arg","i","k","match","pad","pad_character","pad_length","cursor","tree_length","length","node_type","output","is_positive","Error","test","isNaN","TypeError","String","fromCharCode","parseInt","JSON","stringify","toExponential","parseFloat","toFixed","substring","toUpperCase","replace","charAt","fmt","_fmt","arg_names","exec","SyntaxError","field_list","replacement_field","field_match","vsprintf","_argv","splice","apply","exports","define","amd","this"],"mappings":";;CAAA,SAAUA,GAeN,QAASC,KACL,GAAIC,GAAMC,UAAU,GAAIC,EAAQH,EAAQG,KAIxC,OAHMA,GAAMF,IAAQE,EAAMC,eAAeH,KACrCE,EAAMF,GAAOD,EAAQK,MAAMJ,IAExBD,EAAQM,OAAOC,KAAK,KAAMJ,EAAMF,GAAMC,WA4JjD,QAASM,GAASC,GACd,MAAOC,QAAOC,UAAUC,SAASL,KAAKE,GAAUI,MAAM,EAAG,IAAIC,cAGjE,QAASC,GAAWC,EAAOC,GACvB,MAAOC,OAAMD,EAAa,GAAGE,KAAKH,GApLtC,GAAII,IACAC,WAAY,OACZC,OAAQ,SACRC,KAAM,MACNC,SAAU,OACVC,KAAM,YACNC,OAAQ,WACRC,YAAa,yFACb1B,IAAK,sBACL2B,WAAY,wBACZC,aAAc,aACdC,KAAM,UAWV9B,GAAQM,OAAS,SAASyB,EAAYC,GAClC,GAAiEC,GAAkBC,EAAGC,EAAGC,EAAOC,EAAKC,EAAeC,EAAhHC,EAAS,EAAGC,EAAcV,EAAWW,OAAQC,EAAY,GAASC,KAA0DC,GAAc,EAAMf,EAAO,EAC3J,KAAKI,EAAI,EAAOO,EAAJP,EAAiBA,IAEzB,GADAS,EAAYnC,EAASuB,EAAWG,IACd,WAAdS,EACAC,EAAOA,EAAOF,QAAUX,EAAWG,OAElC,IAAkB,UAAdS,EAAuB,CAE5B,GADAP,EAAQL,EAAWG,GACfE,EAAM,GAEN,IADAH,EAAMD,EAAKQ,GACNL,EAAI,EAAGA,EAAIC,EAAM,GAAGM,OAAQP,IAAK,CAClC,IAAKF,EAAI7B,eAAegC,EAAM,GAAGD,IAC7B,KAAM,IAAIW,OAAM9C,EAAQ,yCAA0CoC,EAAM,GAAGD,IAE/EF,GAAMA,EAAIG,EAAM,GAAGD,QAIvBF,GADKG,EAAM,GACLJ,EAAKI,EAAM,IAGXJ,EAAKQ,IAOf,IAJqB,YAAjBhC,EAASyB,KACTA,EAAMA,KAGNb,EAAGC,WAAW0B,KAAKX,EAAM,KAAOhB,EAAGI,SAASuB,KAAKX,EAAM,KAAyB,UAAjB5B,EAASyB,IAAoBe,MAAMf,GAClG,KAAM,IAAIgB,WAAUjD,EAAQ,0CAA2CQ,EAASyB,IAOpF,QAJIb,EAAGE,OAAOyB,KAAKX,EAAM,MACrBS,EAAcZ,GAAO,GAGjBG,EAAM,IACV,IAAK,IACDH,EAAMA,EAAIrB,SAAS,EACvB,MACA,KAAK,IACDqB,EAAMiB,OAAOC,aAAalB,EAC9B,MACA,KAAK,IACL,IAAK,IACDA,EAAMmB,SAASnB,EAAK,GACxB,MACA,KAAK,IACDA,EAAMoB,KAAKC,UAAUrB,EAAK,KAAMG,EAAM,GAAKgB,SAAShB,EAAM,IAAM,EACpE,MACA,KAAK,IACDH,EAAMG,EAAM,GAAKH,EAAIsB,cAAcnB,EAAM,IAAMH,EAAIsB,eACvD,MACA,KAAK,IACDtB,EAAMG,EAAM,GAAKoB,WAAWvB,GAAKwB,QAAQrB,EAAM,IAAMoB,WAAWvB,EACpE,MACA,KAAK,IACDA,EAAMA,EAAIrB,SAAS,EACvB,MACA,KAAK,IACDqB,GAAQA,EAAMiB,OAAOjB,KAASG,EAAM,GAAKH,EAAIyB,UAAU,EAAGtB,EAAM,IAAMH,CAC1E,MACA,KAAK,IACDA,KAAc,CAClB,MACA,KAAK,IACDA,EAAMA,EAAIrB,SAAS,GACvB,MACA,KAAK,IACDqB,EAAMA,EAAIrB,SAAS,IAAI+C,cAG3BvC,EAAGG,KAAKwB,KAAKX,EAAM,IACnBQ,EAAOA,EAAOF,QAAUT,IAGpBb,EAAGE,OAAOyB,KAAKX,EAAM,KAASS,IAAeT,EAAM,GAKnDN,EAAO,IAJPA,EAAOe,EAAc,IAAM,IAC3BZ,EAAMA,EAAIrB,WAAWgD,QAAQxC,EAAGU,KAAM,KAK1CQ,EAAgBF,EAAM,GAAkB,MAAbA,EAAM,GAAa,IAAMA,EAAM,GAAGyB,OAAO,GAAK,IACzEtB,EAAaH,EAAM,IAAMN,EAAOG,GAAKS,OACrCL,EAAMD,EAAM,IAAMG,EAAa,EAAIxB,EAAWuB,EAAeC,GAAoB,GACjFK,EAAOA,EAAOF,QAAUN,EAAM,GAAKN,EAAOG,EAAMI,EAAyB,MAAlBC,EAAwBR,EAAOO,EAAMJ,EAAMI,EAAMP,EAAOG,GAI3H,MAAOW,GAAOzB,KAAK,KAGvBnB,EAAQG,SAERH,EAAQK,MAAQ,SAASyD,GAErB,IADA,GAAIC,GAAOD,EAAK1B,KAAYL,KAAiBiC,EAAY,EAClDD,GAAM,CACT,GAAqC,QAAhC3B,EAAQhB,EAAGK,KAAKwC,KAAKF,IACtBhC,EAAWA,EAAWW,QAAUN,EAAM,OAErC,IAAuC,QAAlCA,EAAQhB,EAAGM,OAAOuC,KAAKF,IAC7BhC,EAAWA,EAAWW,QAAU,QAE/B,CAAA,GAA4C,QAAvCN,EAAQhB,EAAGO,YAAYsC,KAAKF,IAgClC,KAAM,IAAIG,aAAY,mCA/BtB,IAAI9B,EAAM,GAAI,CACV4B,GAAa,CACb,IAAIG,MAAiBC,EAAoBhC,EAAM,GAAIiC,IACnD,IAAuD,QAAlDA,EAAcjD,EAAGnB,IAAIgE,KAAKG,IAe3B,KAAM,IAAIF,aAAY,+CAbtB,KADAC,EAAWA,EAAWzB,QAAU2B,EAAY,GACwC,MAA5ED,EAAoBA,EAAkBV,UAAUW,EAAY,GAAG3B,UACnE,GAA8D,QAAzD2B,EAAcjD,EAAGQ,WAAWqC,KAAKG,IAClCD,EAAWA,EAAWzB,QAAU2B,EAAY,OAE3C,CAAA,GAAgE,QAA3DA,EAAcjD,EAAGS,aAAaoC,KAAKG,IAIzC,KAAM,IAAIF,aAAY,+CAHtBC,GAAWA,EAAWzB,QAAU2B,EAAY,GAUxDjC,EAAM,GAAK+B,MAGXH,IAAa,CAEjB,IAAkB,IAAdA,EACA,KAAM,IAAIlB,OAAM,4EAEpBf,GAAWA,EAAWW,QAAUN,EAKpC2B,EAAOA,EAAKL,UAAUtB,EAAM,GAAGM,QAEnC,MAAOX,GAGX,IAAIuC,GAAW,SAASR,EAAK9B,EAAMuC,GAG/B,MAFAA,IAASvC,OAAYnB,MAAM,GAC3B0D,EAAMC,OAAO,EAAG,EAAGV,GACZ9D,EAAQyE,MAAM,KAAMF,GAiBR,oBAAZG,UACPA,QAAQ1E,QAAUA,EAClB0E,QAAQJ,SAAWA,IAGnBvE,EAAOC,QAAUA,EACjBD,EAAOuE,SAAWA,EAEI,kBAAXK,SAAyBA,OAAOC,KACvCD,OAAO,WACH,OACI3E,QAASA,EACTsE,SAAUA,OAKT,mBAAXvE,QAAyB8E,KAAO9E"} \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.map b/tools/doc/node_modules/sprintf-js/dist/sprintf.min.map deleted file mode 100644 index ee011aaa5aa56f..00000000000000 --- a/tools/doc/node_modules/sprintf-js/dist/sprintf.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sprintf.min.js","sources":["../src/sprintf.js"],"names":["window","sprintf","key","arguments","cache","hasOwnProperty","parse","format","call","get_type","variable","Object","prototype","toString","slice","toLowerCase","str_repeat","input","multiplier","Array","join","re","not_string","number","json","not_json","text","modulo","placeholder","key_access","index_access","sign","parse_tree","argv","arg","i","k","match","pad","pad_character","pad_length","cursor","tree_length","length","node_type","output","is_positive","Error","test","isNaN","TypeError","String","fromCharCode","parseInt","JSON","stringify","toExponential","parseFloat","toFixed","toPrecision","substring","toUpperCase","replace","charAt","fmt","_fmt","arg_names","exec","SyntaxError","field_list","replacement_field","field_match","vsprintf","_argv","splice","apply","exports","define","amd","this"],"mappings":";;CAAA,SAAUA,GAeN,QAASC,KACL,GAAIC,GAAMC,UAAU,GAAIC,EAAQH,EAAQG,KAIxC,OAHMA,GAAMF,IAAQE,EAAMC,eAAeH,KACrCE,EAAMF,GAAOD,EAAQK,MAAMJ,IAExBD,EAAQM,OAAOC,KAAK,KAAMJ,EAAMF,GAAMC,WA+JjD,QAASM,GAASC,GACd,MAAOC,QAAOC,UAAUC,SAASL,KAAKE,GAAUI,MAAM,EAAG,IAAIC,cAGjE,QAASC,GAAWC,EAAOC,GACvB,MAAOC,OAAMD,EAAa,GAAGE,KAAKH,GAvLtC,GAAII,IACAC,WAAY,OACZC,OAAQ,UACRC,KAAM,MACNC,SAAU,OACVC,KAAM,YACNC,OAAQ,WACRC,YAAa,yFACb1B,IAAK,sBACL2B,WAAY,wBACZC,aAAc,aACdC,KAAM,UAWV9B,GAAQM,OAAS,SAASyB,EAAYC,GAClC,GAAiEC,GAAkBC,EAAGC,EAAGC,EAAOC,EAAKC,EAAeC,EAAhHC,EAAS,EAAGC,EAAcV,EAAWW,OAAQC,EAAY,GAASC,KAA0DC,GAAc,EAAMf,EAAO,EAC3J,KAAKI,EAAI,EAAOO,EAAJP,EAAiBA,IAEzB,GADAS,EAAYnC,EAASuB,EAAWG,IACd,WAAdS,EACAC,EAAOA,EAAOF,QAAUX,EAAWG,OAElC,IAAkB,UAAdS,EAAuB,CAE5B,GADAP,EAAQL,EAAWG,GACfE,EAAM,GAEN,IADAH,EAAMD,EAAKQ,GACNL,EAAI,EAAGA,EAAIC,EAAM,GAAGM,OAAQP,IAAK,CAClC,IAAKF,EAAI7B,eAAegC,EAAM,GAAGD,IAC7B,KAAM,IAAIW,OAAM9C,EAAQ,yCAA0CoC,EAAM,GAAGD,IAE/EF,GAAMA,EAAIG,EAAM,GAAGD,QAIvBF,GADKG,EAAM,GACLJ,EAAKI,EAAM,IAGXJ,EAAKQ,IAOf,IAJqB,YAAjBhC,EAASyB,KACTA,EAAMA,KAGNb,EAAGC,WAAW0B,KAAKX,EAAM,KAAOhB,EAAGI,SAASuB,KAAKX,EAAM,KAAyB,UAAjB5B,EAASyB,IAAoBe,MAAMf,GAClG,KAAM,IAAIgB,WAAUjD,EAAQ,0CAA2CQ,EAASyB,IAOpF,QAJIb,EAAGE,OAAOyB,KAAKX,EAAM,MACrBS,EAAcZ,GAAO,GAGjBG,EAAM,IACV,IAAK,IACDH,EAAMA,EAAIrB,SAAS,EACvB,MACA,KAAK,IACDqB,EAAMiB,OAAOC,aAAalB,EAC9B,MACA,KAAK,IACL,IAAK,IACDA,EAAMmB,SAASnB,EAAK,GACxB,MACA,KAAK,IACDA,EAAMoB,KAAKC,UAAUrB,EAAK,KAAMG,EAAM,GAAKgB,SAAShB,EAAM,IAAM,EACpE,MACA,KAAK,IACDH,EAAMG,EAAM,GAAKH,EAAIsB,cAAcnB,EAAM,IAAMH,EAAIsB,eACvD,MACA,KAAK,IACDtB,EAAMG,EAAM,GAAKoB,WAAWvB,GAAKwB,QAAQrB,EAAM,IAAMoB,WAAWvB,EACpE,MACA,KAAK,IACDA,EAAMG,EAAM,GAAKoB,WAAWvB,GAAKyB,YAAYtB,EAAM,IAAMoB,WAAWvB,EACxE,MACA,KAAK,IACDA,EAAMA,EAAIrB,SAAS,EACvB,MACA,KAAK,IACDqB,GAAQA,EAAMiB,OAAOjB,KAASG,EAAM,GAAKH,EAAI0B,UAAU,EAAGvB,EAAM,IAAMH,CAC1E,MACA,KAAK,IACDA,KAAc,CAClB,MACA,KAAK,IACDA,EAAMA,EAAIrB,SAAS,GACvB,MACA,KAAK,IACDqB,EAAMA,EAAIrB,SAAS,IAAIgD,cAG3BxC,EAAGG,KAAKwB,KAAKX,EAAM,IACnBQ,EAAOA,EAAOF,QAAUT,IAGpBb,EAAGE,OAAOyB,KAAKX,EAAM,KAASS,IAAeT,EAAM,GAKnDN,EAAO,IAJPA,EAAOe,EAAc,IAAM,IAC3BZ,EAAMA,EAAIrB,WAAWiD,QAAQzC,EAAGU,KAAM,KAK1CQ,EAAgBF,EAAM,GAAkB,MAAbA,EAAM,GAAa,IAAMA,EAAM,GAAG0B,OAAO,GAAK,IACzEvB,EAAaH,EAAM,IAAMN,EAAOG,GAAKS,OACrCL,EAAMD,EAAM,IAAMG,EAAa,EAAIxB,EAAWuB,EAAeC,GAAoB,GACjFK,EAAOA,EAAOF,QAAUN,EAAM,GAAKN,EAAOG,EAAMI,EAAyB,MAAlBC,EAAwBR,EAAOO,EAAMJ,EAAMI,EAAMP,EAAOG,GAI3H,MAAOW,GAAOzB,KAAK,KAGvBnB,EAAQG,SAERH,EAAQK,MAAQ,SAAS0D,GAErB,IADA,GAAIC,GAAOD,EAAK3B,KAAYL,KAAiBkC,EAAY,EAClDD,GAAM,CACT,GAAqC,QAAhC5B,EAAQhB,EAAGK,KAAKyC,KAAKF,IACtBjC,EAAWA,EAAWW,QAAUN,EAAM,OAErC,IAAuC,QAAlCA,EAAQhB,EAAGM,OAAOwC,KAAKF,IAC7BjC,EAAWA,EAAWW,QAAU,QAE/B,CAAA,GAA4C,QAAvCN,EAAQhB,EAAGO,YAAYuC,KAAKF,IAgClC,KAAM,IAAIG,aAAY,mCA/BtB,IAAI/B,EAAM,GAAI,CACV6B,GAAa,CACb,IAAIG,MAAiBC,EAAoBjC,EAAM,GAAIkC,IACnD,IAAuD,QAAlDA,EAAclD,EAAGnB,IAAIiE,KAAKG,IAe3B,KAAM,IAAIF,aAAY,+CAbtB,KADAC,EAAWA,EAAW1B,QAAU4B,EAAY,GACwC,MAA5ED,EAAoBA,EAAkBV,UAAUW,EAAY,GAAG5B,UACnE,GAA8D,QAAzD4B,EAAclD,EAAGQ,WAAWsC,KAAKG,IAClCD,EAAWA,EAAW1B,QAAU4B,EAAY,OAE3C,CAAA,GAAgE,QAA3DA,EAAclD,EAAGS,aAAaqC,KAAKG,IAIzC,KAAM,IAAIF,aAAY,+CAHtBC,GAAWA,EAAW1B,QAAU4B,EAAY,GAUxDlC,EAAM,GAAKgC,MAGXH,IAAa,CAEjB,IAAkB,IAAdA,EACA,KAAM,IAAInB,OAAM,4EAEpBf,GAAWA,EAAWW,QAAUN,EAKpC4B,EAAOA,EAAKL,UAAUvB,EAAM,GAAGM,QAEnC,MAAOX,GAGX,IAAIwC,GAAW,SAASR,EAAK/B,EAAMwC,GAG/B,MAFAA,IAASxC,OAAYnB,MAAM,GAC3B2D,EAAMC,OAAO,EAAG,EAAGV,GACZ/D,EAAQ0E,MAAM,KAAMF,GAiBR,oBAAZG,UACPA,QAAQ3E,QAAUA,EAClB2E,QAAQJ,SAAWA,IAGnBxE,EAAOC,QAAUA,EACjBD,EAAOwE,SAAWA,EAEI,kBAAXK,SAAyBA,OAAOC,KACvCD,OAAO,WACH,OACI5E,QAASA,EACTuE,SAAUA,OAKT,mBAAXxE,QAAyB+E,KAAO/E"} \ No newline at end of file diff --git a/tools/doc/node_modules/sprintf-js/package.json b/tools/doc/node_modules/sprintf-js/package.json deleted file mode 100644 index 3ec22029daacd2..00000000000000 --- a/tools/doc/node_modules/sprintf-js/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_args": [ - [ - "sprintf-js@1.0.3", - "/Users/rubys/git/node/tools/doc" - ] - ], - "_development": true, - "_from": "sprintf-js@1.0.3", - "_id": "sprintf-js@1.0.3", - "_inBundle": false, - "_integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "_location": "/sprintf-js", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "sprintf-js@1.0.3", - "name": "sprintf-js", - "escapedName": "sprintf-js", - "rawSpec": "1.0.3", - "saveSpec": null, - "fetchSpec": "1.0.3" - }, - "_requiredBy": [ - "/argparse" - ], - "_resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "_spec": "1.0.3", - "_where": "/Users/rubys/git/node/tools/doc", - "author": { - "name": "Alexandru Marasteanu", - "email": "hello@alexei.ro", - "url": "http://alexei.ro/" - }, - "bugs": { - "url": "https://github.com/alexei/sprintf.js/issues" - }, - "description": "JavaScript sprintf implementation", - "devDependencies": { - "grunt": "*", - "grunt-contrib-uglify": "*", - "grunt-contrib-watch": "*", - "mocha": "*" - }, - "homepage": "https://github.com/alexei/sprintf.js#readme", - "license": "BSD-3-Clause", - "main": "src/sprintf.js", - "name": "sprintf-js", - "repository": { - "type": "git", - "url": "git+https://github.com/alexei/sprintf.js.git" - }, - "scripts": { - "test": "mocha test/test.js" - }, - "version": "1.0.3" -} diff --git a/tools/doc/node_modules/sprintf-js/src/angular-sprintf.js b/tools/doc/node_modules/sprintf-js/src/angular-sprintf.js deleted file mode 100644 index 9c69123bea291a..00000000000000 --- a/tools/doc/node_modules/sprintf-js/src/angular-sprintf.js +++ /dev/null @@ -1,18 +0,0 @@ -angular. - module("sprintf", []). - filter("sprintf", function() { - return function() { - return sprintf.apply(null, arguments) - } - }). - filter("fmt", ["$filter", function($filter) { - return $filter("sprintf") - }]). - filter("vsprintf", function() { - return function(format, argv) { - return vsprintf(format, argv) - } - }). - filter("vfmt", ["$filter", function($filter) { - return $filter("vsprintf") - }]) diff --git a/tools/doc/node_modules/sprintf-js/src/sprintf.js b/tools/doc/node_modules/sprintf-js/src/sprintf.js deleted file mode 100644 index c0fc7c08b2e6fe..00000000000000 --- a/tools/doc/node_modules/sprintf-js/src/sprintf.js +++ /dev/null @@ -1,208 +0,0 @@ -(function(window) { - var re = { - not_string: /[^s]/, - number: /[diefg]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosuxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[\+\-]/ - } - - function sprintf() { - var key = arguments[0], cache = sprintf.cache - if (!(cache[key] && cache.hasOwnProperty(key))) { - cache[key] = sprintf.parse(key) - } - return sprintf.format.call(null, cache[key], arguments) - } - - sprintf.format = function(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, node_type = "", arg, output = [], i, k, match, pad, pad_character, pad_length, is_positive = true, sign = "" - for (i = 0; i < tree_length; i++) { - node_type = get_type(parse_tree[i]) - if (node_type === "string") { - output[output.length] = parse_tree[i] - } - else if (node_type === "array") { - match = parse_tree[i] // convenience purposes only - if (match[2]) { // keyword argument - arg = argv[cursor] - for (k = 0; k < match[2].length; k++) { - if (!arg.hasOwnProperty(match[2][k])) { - throw new Error(sprintf("[sprintf] property '%s' does not exist", match[2][k])) - } - arg = arg[match[2][k]] - } - } - else if (match[1]) { // positional argument (explicit) - arg = argv[match[1]] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (get_type(arg) == "function") { - arg = arg() - } - - if (re.not_string.test(match[8]) && re.not_json.test(match[8]) && (get_type(arg) != "number" && isNaN(arg))) { - throw new TypeError(sprintf("[sprintf] expecting number but found %s", get_type(arg))) - } - - if (re.number.test(match[8])) { - is_positive = arg >= 0 - } - - switch (match[8]) { - case "b": - arg = arg.toString(2) - break - case "c": - arg = String.fromCharCode(arg) - break - case "d": - case "i": - arg = parseInt(arg, 10) - break - case "j": - arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) - break - case "e": - arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential() - break - case "f": - arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) - break - case "g": - arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg) - break - case "o": - arg = arg.toString(8) - break - case "s": - arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg) - break - case "u": - arg = arg >>> 0 - break - case "x": - arg = arg.toString(16) - break - case "X": - arg = arg.toString(16).toUpperCase() - break - } - if (re.json.test(match[8])) { - output[output.length] = arg - } - else { - if (re.number.test(match[8]) && (!is_positive || match[3])) { - sign = is_positive ? "+" : "-" - arg = arg.toString().replace(re.sign, "") - } - else { - sign = "" - } - pad_character = match[4] ? match[4] === "0" ? "0" : match[4].charAt(1) : " " - pad_length = match[6] - (sign + arg).length - pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : "") : "" - output[output.length] = match[5] ? sign + arg + pad : (pad_character === "0" ? sign + pad + arg : pad + sign + arg) - } - } - } - return output.join("") - } - - sprintf.cache = {} - - sprintf.parse = function(fmt) { - var _fmt = fmt, match = [], parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = match[0] - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = "%" - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - } - else { - throw new SyntaxError("[sprintf] failed to parse named argument key") - } - } - } - else { - throw new SyntaxError("[sprintf] failed to parse named argument key") - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported") - } - parse_tree[parse_tree.length] = match - } - else { - throw new SyntaxError("[sprintf] unexpected placeholder") - } - _fmt = _fmt.substring(match[0].length) - } - return parse_tree - } - - var vsprintf = function(fmt, argv, _argv) { - _argv = (argv || []).slice(0) - _argv.splice(0, 0, fmt) - return sprintf.apply(null, _argv) - } - - /** - * helpers - */ - function get_type(variable) { - return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase() - } - - function str_repeat(input, multiplier) { - return Array(multiplier + 1).join(input) - } - - /** - * export to either browser or node.js - */ - if (typeof exports !== "undefined") { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - else { - window.sprintf = sprintf - window.vsprintf = vsprintf - - if (typeof define === "function" && define.amd) { - define(function() { - return { - sprintf: sprintf, - vsprintf: vsprintf - } - }) - } - } -})(typeof window === "undefined" ? this : window); diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index c89617c7200b9b..8e7a886fe1255c 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -9,35 +9,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.5.tgz", "integrity": "sha512-6lRwZN0Y3TuglwaaZN2XPocobmzLlhxcqDjKFjNYSsXG/TFAGYkCqkzZh4+ms8iTHHQE6gJXLHPV7TziVGeWhg==" }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" - }, - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" - }, - "acorn-globals": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", - "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", - "requires": { - "acorn": "^5.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -47,70 +18,21 @@ "sprintf-js": "~1.0.2" } }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" - }, "bail": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==" }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "browser-process-hrtime": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "ccount": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", @@ -136,24 +58,11 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==" }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, "collapse-white-space": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==" }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "comma-separated-tokens": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.5.tgz", @@ -162,47 +71,19 @@ "trim": "0.0.1" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cssom": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" - }, - "cssstyle": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.3.1.tgz", - "integrity": "sha512-tNvaxM5blOnxanyxI6panOsnfiyLRj3HV4qjqqS45WPNS1usdYWRUQjqTEEELK73lpeP/1KoIGYUwrBn/VcECA==", - "requires": { - "cssom": "0.3.x" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } + "css-selector-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.3.0.tgz", + "integrity": "sha1-XxrUPi2O77/cME/NOaUhZklD4+s=" }, - "data-urls": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", - "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "abab": "^1.0.4", - "whatwg-mimetype": "^2.0.0", - "whatwg-url": "^6.4.0" + "ms": "2.0.0" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", @@ -212,11 +93,6 @@ "object-keys": "^1.0.8" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "detab": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.1.tgz", @@ -225,130 +101,27 @@ "repeat-string": "^1.5.4" } }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "escodegen": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", - "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", "dev": true }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -406,6 +179,14 @@ "zwitch": "^1.0.0" } }, + "hast-util-sanitize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-1.2.0.tgz", + "integrity": "sha512-VwCTqjt6fbMGacxGB1FKV5sBJaVVkyCGVMDwb4nnqvCW2lkqscA2GEpOyBx4ZWRXty1eAZF58MHBrllEoQEoBg==", + "requires": { + "xtend": "^4.0.1" + } + }, "hast-util-to-html": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-3.1.0.tgz", @@ -453,34 +234,11 @@ "space-separated-tokens": "^1.0.0" } }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, "html-void-elements": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.3.tgz", "integrity": "sha512-SaGhCDPXJVNrQyKMtKy24q6IMdXg5FCPN3z+xizxw9l+oXQw5fOoaj/ERU5KqWhSYhXtW5bWthlDbTDLBhJQrA==" }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -528,11 +286,6 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, "is-whitespace-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", @@ -543,11 +296,6 @@ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, "js-yaml": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", @@ -558,112 +306,16 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsdom": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.11.0.tgz", - "integrity": "sha512-ou1VyfjwsSuWkudGxb03FotDajxAto6USAlmMZjE2lc0jCznt7sBWkhfRBRaWwbnmDqdMSTKTLT5d9sBFkkM7A==", - "requires": { - "abab": "^1.0.4", - "acorn": "^5.3.0", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": ">= 0.3.1 < 0.4.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.0", - "escodegen": "^1.9.0", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.2.0", - "nwsapi": "^2.0.0", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.83.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.3", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^4.0.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" - } - } - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "kebab-case": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz", "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=" }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, "lodash.iteratee": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.iteratee/-/lodash.iteratee-4.7.0.tgz", "integrity": "sha1-vkF32yiajMw8CZDx2ya1si/BVUw=" }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, "longest-streak": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", @@ -688,9 +340,9 @@ "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=" }, "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", + "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==" }, "mdast-util-definitions": { "version": "1.2.2", @@ -723,29 +375,19 @@ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "requires": { - "mime-db": "~1.33.0" + "boolbase": "~1.0.0" } }, - "nwsapi": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.4.tgz", - "integrity": "sha512-Zt6HRR6RcJkuj5/N9zeE7FN6YitRW//hK2wTOwX274IBphbY3Zf5+yn5mZ9v/SzAOTMjQNxZf9KkmPLWn0cV4g==" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -764,19 +406,6 @@ "wrappy": "1" } }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, "parse-entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", @@ -798,41 +427,11 @@ "@types/node": "*" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, "property-information": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-3.2.0.tgz", "integrity": "sha1-/RSDyPusYYCPX+NZ52k6H0ilgzE=" }, - "psl": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.28.tgz", - "integrity": "sha512-+AqO1Ae+N/4r7Rvchrdm432afjT9hqJRyBN3DQv9At0tPz4hIFSGKbq64fN9dVoCow4oggIIax5/iONx0r9hZw==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, "rehype-raw": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-2.0.0.tgz", @@ -896,6 +495,17 @@ } } }, + "remark-html": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-7.0.0.tgz", + "integrity": "sha512-jqRzkZXCkM12gIY2ibMLTW41m7rfanliMTVQCFTezHJFsbH00YaTox/BX4gU+f/zCdzfhFJONtebFByvpMv37w==", + "requires": { + "hast-util-sanitize": "^1.0.0", + "hast-util-to-html": "^3.0.0", + "mdast-util-to-hast": "^3.0.0", + "xtend": "^4.0.1" + } + }, "remark-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", @@ -951,87 +561,6 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "^1.4.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "requires": { - "lodash": "^4.13.1" - } - }, - "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, "space-separated-tokens": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz", @@ -1046,32 +575,11 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "state-toggle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==" }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, "stringify-entities": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", @@ -1083,35 +591,6 @@ "is-hexadecimal": "^1.0.0" } }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" - }, - "tough-cookie": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.2.tgz", - "integrity": "sha512-vahm+X8lSV/KjXziec8x5Vp0OTC9mq8EVCOApIsRAooeuMPSO8aT7PFACYkaL0yZ/3hVqw+8DzhCJwl8H2Ad6w==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", @@ -1132,28 +611,6 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.2.tgz", "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==" }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, "unherit": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", @@ -1217,6 +674,16 @@ "unist-util-visit": "^1.1.0" } }, + "unist-util-select": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-1.5.0.tgz", + "integrity": "sha1-qTwr6MD2U4J4A7gTMa3sKqJM2TM=", + "requires": { + "css-selector-parser": "^1.1.0", + "debug": "^2.2.0", + "nth-check": "^1.0.1" + } + }, "unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", @@ -1230,21 +697,6 @@ "unist-util-is": "^2.1.1" } }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vfile": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.0.tgz", @@ -1269,66 +721,16 @@ "unist-util-stringify-position": "^1.1.1" } }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, "web-namespaces": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.2.tgz", "integrity": "sha512-II+n2ms4mPxK+RnIxRPOw3zwF2jRscdJIUE9BfkKHm4FYEg9+biIoTMnaZF5MpemE3T+VhMLrhbyD4ilkPCSbg==" }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "requires": { - "iconv-lite": "0.4.19" - } - }, - "whatwg-mimetype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", - "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==" - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0" - } - }, "x-is-array": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-array/-/x-is-array-0.1.0.tgz", @@ -1339,11 +741,6 @@ "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/tools/doc/package.json b/tools/doc/package.json index 7a8e60f443b3ef..8c573ec458cb07 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -7,13 +7,15 @@ "node": ">=6" }, "dependencies": { - "marked": "^0.3.5", + "marked": "^0.4.0", "rehype-raw": "^2.0.0", "rehype-stringify": "^3.0.0", + "remark-html": "^7.0.0", "remark-parse": "^5.0.0", "remark-rehype": "^3.0.0", "unified": "^7.0.0", "unist-util-find": "^1.0.1", + "unist-util-select": "^1.5.0", "unist-util-visit": "^1.3.1" }, "devDependencies": { diff --git a/vcbuild.bat b/vcbuild.bat index bf38ed624f6281..e2f6cfe180c863 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -459,8 +459,7 @@ robocopy /e doc\api %config%\doc\api robocopy /e doc\api_assets %config%\doc\api\assets for %%F in (%config%\doc\api\*.md) do ( - %node_exe% tools\doc\generate.js --format=json %%F > %%~dF%%~pF%%~nF.json - %node_exe% tools\doc\generate.js --node-version=v%FULLVERSION% --format=html --analytics=%DOCS_ANALYTICS% %%F > %%~dF%%~pF%%~nF.html + %node_exe% tools\doc\generate.js --node-version=v%FULLVERSION% --analytics=%DOCS_ANALYTICS% %%F --output-dir=%%~dF%%~pF ) :run From 2dc7f17e8b9323d8f482bf049650d5d7f2868215 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 25 Jun 2018 17:40:59 +0200 Subject: [PATCH 051/159] crypto: add better scrypt option aliases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make parameter names available in a human-readable way, for more accessible/self-documenting usage of the `scrypt` functions. This implements a review comment from the original PR that has not been addressed. Refs: https://github.com/nodejs/node/pull/20816#discussion_r189220776 PR-URL: https://github.com/nodejs/node/pull/21525 Reviewed-By: James M Snell Reviewed-By: Tobias Nießen Reviewed-By: Tiancheng "Timothy" Gu --- doc/api/crypto.md | 28 ++++++++++++++---- lib/internal/crypto/scrypt.js | 21 +++++++++++--- test/parallel/test-crypto-scrypt.js | 44 ++++++++++++++++++++++++++--- 3 files changed, 79 insertions(+), 14 deletions(-) diff --git a/doc/api/crypto.md b/doc/api/crypto.md index a82a9831738182..8e76f7c6c49da6 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -2152,15 +2152,23 @@ request. ### crypto.scrypt(password, salt, keylen[, options], callback) * `password` {string|Buffer|TypedArray|DataView} * `salt` {string|Buffer|TypedArray|DataView} * `keylen` {number} * `options` {Object} - - `N` {number} CPU/memory cost parameter. Must be a power of two greater + - `cost` {number} CPU/memory cost parameter. Must be a power of two greater than one. **Default:** `16384`. - - `r` {number} Block size parameter. **Default:** `8`. - - `p` {number} Parallelization parameter. **Default:** `1`. + - `blockSize` {number} Block size parameter. **Default:** `8`. + - `parallelization` {number} Parallelization parameter. **Default:** `1`. + - `N` {number} Alias for `cost`. Only one of both may be specified. + - `r` {number} Alias for `blockSize`. Only one of both may be specified. + - `p` {number} Alias for `parallelization`. Only one of both may be specified. - `maxmem` {number} Memory upper bound. It is an error when (approximately) `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. * `callback` {Function} @@ -2198,15 +2206,23 @@ crypto.scrypt('secret', 'salt', 64, { N: 1024 }, (err, derivedKey) => { ### crypto.scryptSync(password, salt, keylen[, options]) * `password` {string|Buffer|TypedArray|DataView} * `salt` {string|Buffer|TypedArray|DataView} * `keylen` {number} * `options` {Object} - - `N` {number} CPU/memory cost parameter. Must be a power of two greater + - `cost` {number} CPU/memory cost parameter. Must be a power of two greater than one. **Default:** `16384`. - - `r` {number} Block size parameter. **Default:** `8`. - - `p` {number} Parallelization parameter. **Default:** `1`. + - `blockSize` {number} Block size parameter. **Default:** `8`. + - `parallelization` {number} Parallelization parameter. **Default:** `1`. + - `N` {number} Alias for `cost`. Only one of both may be specified. + - `r` {number} Alias for `blockSize`. Only one of both may be specified. + - `p` {number} Alias for `parallelization`. Only one of both may be specified. - `maxmem` {number} Memory upper bound. It is an error when (approximately) `128 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. * Returns: {Buffer} diff --git a/lib/internal/crypto/scrypt.js b/lib/internal/crypto/scrypt.js index fedf7f5b107b32..edfe522be47a74 100644 --- a/lib/internal/crypto/scrypt.js +++ b/lib/internal/crypto/scrypt.js @@ -80,13 +80,26 @@ function check(password, salt, keylen, options, callback) { let { N, r, p, maxmem } = defaults; if (options && options !== defaults) { - if (options.hasOwnProperty('N')) + let has_N, has_r, has_p; + if (has_N = (options.N !== undefined)) N = validateInt32(options.N, 'N', 0, INT_MAX); - if (options.hasOwnProperty('r')) + if (options.cost !== undefined) { + if (has_N) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); + N = validateInt32(options.cost, 'cost', 0, INT_MAX); + } + if (has_r = (options.r !== undefined)) r = validateInt32(options.r, 'r', 0, INT_MAX); - if (options.hasOwnProperty('p')) + if (options.blockSize !== undefined) { + if (has_r) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); + r = validateInt32(options.blockSize, 'blockSize', 0, INT_MAX); + } + if (has_p = (options.p !== undefined)) p = validateInt32(options.p, 'p', 0, INT_MAX); - if (options.hasOwnProperty('maxmem')) + if (options.parallelization !== undefined) { + if (has_p) throw new ERR_CRYPTO_SCRYPT_INVALID_PARAMETER(); + p = validateInt32(options.parallelization, 'parallelization', 0, INT_MAX); + } + if (options.maxmem !== undefined) maxmem = validateInt32(options.maxmem, 'maxmem', 0, INT_MAX); if (N === 0) N = defaults.N; if (r === 0) r = defaults.r; diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js index 9d0e495881f186..a99bff9255f97a 100644 --- a/test/parallel/test-crypto-scrypt.js +++ b/test/parallel/test-crypto-scrypt.js @@ -56,14 +56,50 @@ const good = [ '7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2' + 'd5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887', }, + { + pass: '', + salt: '', + keylen: 64, + cost: 16, + parallelization: 1, + blockSize: 1, + expected: + '77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442' + + 'fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906', + }, + { + pass: 'password', + salt: 'NaCl', + keylen: 64, + cost: 1024, + parallelization: 16, + blockSize: 8, + expected: + 'fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b373162' + + '2eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640', + }, + { + pass: 'pleaseletmein', + salt: 'SodiumChloride', + keylen: 64, + cost: 16384, + parallelization: 1, + blockSize: 8, + expected: + '7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2' + + 'd5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887', + }, ]; // Test vectors that should fail. const bad = [ - { N: 1, p: 1, r: 1 }, // N < 2 - { N: 3, p: 1, r: 1 }, // Not power of 2. - { N: 2 ** 16, p: 1, r: 1 }, // N >= 2**(r*16) - { N: 2, p: 2 ** 30, r: 1 }, // p > (2**30-1)/r + { N: 1, p: 1, r: 1 }, // N < 2 + { N: 3, p: 1, r: 1 }, // Not power of 2. + { N: 2 ** 16, p: 1, r: 1 }, // N >= 2**(r*16) + { N: 2, p: 2 ** 30, r: 1 }, // p > (2**30-1)/r + { N: 1, cost: 1 }, // both N and cost + { p: 1, parallelization: 1 }, // both p and parallelization + { r: 1, blockSize: 1 } // both r and blocksize ]; // Test vectors where 128*N*r exceeds maxmem. From e75885f2e61f8b2444d8c3d5029e9b30406fc9f4 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sat, 21 Jul 2018 12:38:10 +0300 Subject: [PATCH 052/159] doc: specify `options` parameter type in zlib.md Also, delete now redundant notes and links. PR-URL: https://github.com/nodejs/node/pull/21920 Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- doc/api/zlib.md | 57 ++++++++++++++++++++-------------------- tools/doc/type-parser.js | 4 ++- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/doc/api/zlib.md b/doc/api/zlib.md index 89ce111e2243df..746058f5a335dc 100644 --- a/doc/api/zlib.md +++ b/doc/api/zlib.md @@ -480,18 +480,18 @@ Provides an object enumerating Zlib-related constants. added: v0.5.8 --> -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`Deflate`][] object with the given [`options`][]. +Creates and returns a new [`Deflate`][] object. ## zlib.createDeflateRaw([options]) -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`DeflateRaw`][] object with the given [`options`][]. +Creates and returns a new [`DeflateRaw`][] object. An upgrade of zlib from 1.2.8 to 1.2.11 changed behavior when `windowBits` is set to 8 for raw deflate streams. zlib would automatically set `windowBits` @@ -505,45 +505,45 @@ that effectively uses an 8-bit window only. added: v0.5.8 --> -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`Gunzip`][] object with the given [`options`][]. +Creates and returns a new [`Gunzip`][] object. ## zlib.createGzip([options]) -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`Gzip`][] object with the given [`options`][]. +Creates and returns a new [`Gzip`][] object. ## zlib.createInflate([options]) -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`Inflate`][] object with the given [`options`][]. +Creates and returns a new [`Inflate`][] object. ## zlib.createInflateRaw([options]) -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`InflateRaw`][] object with the given [`options`][]. +Creates and returns a new [`InflateRaw`][] object. ## zlib.createUnzip([options]) -* `options` {Object} +* `options` {zlib options} -Creates and returns a new [`Unzip`][] object with the given [`options`][]. +Creates and returns a new [`Unzip`][] object. ## Convenience Methods @@ -572,7 +572,7 @@ changes: description: The `buffer` parameter can be an `Uint8Array` now. --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.deflateSync(buffer[, options]) @@ -591,7 +591,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Compress a chunk of data with [`Deflate`][]. @@ -608,7 +608,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.deflateRawSync(buffer[, options]) @@ -627,7 +627,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Compress a chunk of data with [`DeflateRaw`][]. @@ -647,7 +647,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.gunzipSync(buffer[, options]) @@ -666,7 +666,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Decompress a chunk of data with [`Gunzip`][]. @@ -686,7 +686,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.gzipSync(buffer[, options]) @@ -705,7 +705,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Compress a chunk of data with [`Gzip`][]. @@ -725,7 +725,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.inflateSync(buffer[, options]) @@ -744,7 +744,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Decompress a chunk of data with [`Inflate`][]. @@ -764,7 +764,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.inflateRawSync(buffer[, options]) @@ -783,7 +783,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Decompress a chunk of data with [`InflateRaw`][]. @@ -803,7 +803,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} * `callback` {Function} ### zlib.unzipSync(buffer[, options]) @@ -822,7 +822,7 @@ changes: --> * `buffer` {Buffer|TypedArray|DataView|ArrayBuffer|string} -* `options` {Object} +* `options` {zlib options} Decompress a chunk of data with [`Unzip`][]. @@ -840,7 +840,6 @@ Decompress a chunk of data with [`Unzip`][]. [`InflateRaw`]: #zlib_class_zlib_inflateraw [`TypedArray`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray [`Unzip`]: #zlib_class_zlib_unzip -[`options`]: #zlib_class_options [`zlib.bytesWritten`]: #zlib_zlib_byteswritten [Memory Usage Tuning]: #zlib_memory_usage_tuning [pool size]: cli.html#cli_uv_threadpool_size_size diff --git a/tools/doc/type-parser.js b/tools/doc/type-parser.js index 151235c7277e9d..42cc27f19c5261 100644 --- a/tools/doc/type-parser.js +++ b/tools/doc/type-parser.js @@ -118,7 +118,9 @@ const customTypesMap = { 'URL': 'url.html#url_the_whatwg_url_api', 'URLSearchParams': 'url.html#url_class_urlsearchparams', - 'MessagePort': 'worker_threads.html#worker_threads_class_messageport' + 'MessagePort': 'worker_threads.html#worker_threads_class_messageport', + + 'zlib options': 'zlib.html#zlib_class_options', }; const arrayPart = /(?:\[])+$/; From 0c67d326dcf36bb33a9a15000b2fe673a88b04fe Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Wed, 25 Jul 2018 14:58:41 -0700 Subject: [PATCH 053/159] tools: convert addon-verify to remark This is the last use of the remark *module*. tools/remark-cli and tools/remark-preset-lint-node remain. PR-URL: https://github.com/nodejs/node/pull/21978 Reviewed-By: Anna Henningsen Reviewed-By: Gireesh Punathil Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- tools/doc/addon-verify.js | 30 ++++++++++++++++++++---------- tools/doc/package-lock.json | 14 +++++++++----- tools/doc/package.json | 2 +- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/tools/doc/addon-verify.js b/tools/doc/addon-verify.js index a3d1beb4b8e12e..ae6a08b2cc6475 100644 --- a/tools/doc/addon-verify.js +++ b/tools/doc/addon-verify.js @@ -1,28 +1,38 @@ 'use strict'; -const { mkdir, readFileSync, writeFile } = require('fs'); +// doc/api/addons.md has a bunch of code. Extract it for verification +// that the C++ code compiles and the js code runs. +// Add .gyp files which will be used to compile the C++ code. +// Modify the require paths in the js code to pull from the build tree. +// Triggered from the build-addons target in the Makefile and vcbuild.bat. + +const { mkdir, writeFile } = require('fs'); const { resolve } = require('path'); -const { lexer } = require('marked'); +const vfile = require('to-vfile'); +const unified = require('unified'); +const remarkParse = require('remark-parse'); const rootDir = resolve(__dirname, '..', '..'); const doc = resolve(rootDir, 'doc', 'api', 'addons.md'); const verifyDir = resolve(rootDir, 'test', 'addons'); -const tokens = lexer(readFileSync(doc, 'utf8')); +const file = vfile.readSync(doc, 'utf8'); +const tree = unified().use(remarkParse).parse(file); const addons = {}; let id = 0; let currentHeader; const validNames = /^\/\/\s+(.*\.(?:cc|h|js))[\r\n]/; -tokens.forEach(({ type, text }) => { - if (type === 'heading') { - currentHeader = text; +tree.children.forEach((node) => { + if (node.type === 'heading') { + currentHeader = file.contents.slice( + node.children[0].position.start.offset, + node.position.end.offset); addons[currentHeader] = { files: {} }; - } - if (type === 'code') { - const match = text.match(validNames); + } else if (node.type === 'code') { + const match = node.value.match(validNames); if (match !== null) { - addons[currentHeader].files[match[1]] = text; + addons[currentHeader].files[match[1]] = node.value; } } }); diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index 8e7a886fe1255c..c688e60c1577c8 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -339,11 +339,6 @@ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=" }, - "marked": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", - "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==" - }, "mdast-util-definitions": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.2.tgz", @@ -591,6 +586,15 @@ "is-hexadecimal": "^1.0.0" } }, + "to-vfile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-5.0.0.tgz", + "integrity": "sha512-sUeBtb4i09pNIzPtl/PMW20Xfe/NK82oV0IehtmoX/+PhIdvc6JHMRnmC4fjCIcy0LOwcNqB8iRMtTBzXHVbng==", + "requires": { + "is-buffer": "^2.0.0", + "vfile": "^3.0.0" + } + }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", diff --git a/tools/doc/package.json b/tools/doc/package.json index 8c573ec458cb07..41ae87889d36e4 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -7,12 +7,12 @@ "node": ">=6" }, "dependencies": { - "marked": "^0.4.0", "rehype-raw": "^2.0.0", "rehype-stringify": "^3.0.0", "remark-html": "^7.0.0", "remark-parse": "^5.0.0", "remark-rehype": "^3.0.0", + "to-vfile": "^5.0.0", "unified": "^7.0.0", "unist-util-find": "^1.0.1", "unist-util-select": "^1.5.0", From e58c17b84912da2d635970aaa817394a3eb1c0a4 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Tue, 7 Aug 2018 19:41:05 -0400 Subject: [PATCH 054/159] test: update certificates and private keys The certificates in test fixtures were set to expire in 999 days since they were generated. That time has passed, and they have to be reissued. Bump expiration time to 99999 days for all of them to prevent this from happening again in near future. PR-URL: https://github.com/nodejs/node/pull/22184 Fixes: https://github.com/nodejs/node/issues/22182 Reviewed-By: Myles Borins Reviewed-By: Gus Caplan Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Rod Vagg --- test/fixtures/keys/Makefile | 39 ++++--- test/fixtures/keys/agent1-cert.pem | 28 ++--- test/fixtures/keys/agent1-csr.pem | 22 ++-- test/fixtures/keys/agent1-key.pem | 26 ++--- test/fixtures/keys/agent1-pfx.pem | Bin 2437 -> 2445 bytes test/fixtures/keys/agent1.cnf | 2 +- test/fixtures/keys/agent2-cert.pem | 28 ++--- test/fixtures/keys/agent2-csr.pem | 22 ++-- test/fixtures/keys/agent2-key.pem | 26 ++--- test/fixtures/keys/agent2.cnf | 2 +- test/fixtures/keys/agent3-cert.pem | 28 ++--- test/fixtures/keys/agent3-csr.pem | 22 ++-- test/fixtures/keys/agent3-key.pem | 26 ++--- test/fixtures/keys/agent3.cnf | 2 +- test/fixtures/keys/agent4-cert.pem | 28 ++--- test/fixtures/keys/agent4-csr.pem | 22 ++-- test/fixtures/keys/agent4-key.pem | 26 ++--- test/fixtures/keys/agent4.cnf | 2 +- test/fixtures/keys/agent5-cert.pem | 28 ++--- test/fixtures/keys/agent5-csr.pem | 12 +-- test/fixtures/keys/agent5-key.pem | 26 ++--- test/fixtures/keys/agent5.cnf | 2 +- test/fixtures/keys/agent6-cert.pem | 46 ++++---- test/fixtures/keys/agent6-csr.pem | 12 +-- test/fixtures/keys/agent6-key.pem | 26 ++--- test/fixtures/keys/agent6.cnf | 2 +- test/fixtures/keys/agent7-cert.pem | 34 +++--- test/fixtures/keys/agent7-csr.pem | 30 +++--- test/fixtures/keys/agent7-key.pem | 50 ++++----- test/fixtures/keys/agent7.cnf | 2 +- test/fixtures/keys/agent8-cert.pem | 34 +++--- test/fixtures/keys/agent8-csr.pem | 30 +++--- test/fixtures/keys/agent8-key.pem | 50 ++++----- test/fixtures/keys/agent8.cnf | 2 +- test/fixtures/keys/agent9-cert.pem | 34 +++--- test/fixtures/keys/agent9-csr.pem | 30 +++--- test/fixtures/keys/agent9-key.pem | 50 ++++----- test/fixtures/keys/agent9.cnf | 2 +- test/fixtures/keys/ca1-cert.pem | 24 ++--- test/fixtures/keys/ca1-cert.srl | 2 +- test/fixtures/keys/ca1-key.pem | 31 +++--- test/fixtures/keys/ca1.cnf | 2 +- test/fixtures/keys/ca2-cert.pem | 27 ++--- test/fixtures/keys/ca2-cert.srl | 2 +- test/fixtures/keys/ca2-crl.pem | 16 +-- test/fixtures/keys/ca2-database.txt | 3 +- test/fixtures/keys/ca2-database.txt.attr | 1 + test/fixtures/keys/ca2-database.txt.old | 0 test/fixtures/keys/ca2-key.pem | 31 +++--- test/fixtures/keys/ca2.cnf | 4 +- test/fixtures/keys/ca3-cert.pem | 24 ++--- test/fixtures/keys/ca3-cert.srl | 2 +- test/fixtures/keys/ca3-csr.pem | 16 +-- test/fixtures/keys/ca3-key.pem | 26 ++--- test/fixtures/keys/ca3.cnf | 2 +- test/fixtures/keys/dh1024.pem | 6 +- test/fixtures/keys/dh2048.pem | 12 +-- test/fixtures/keys/dh512.pem | 4 +- test/fixtures/keys/dsa1025.pem | 14 +-- test/fixtures/keys/dsa_private_1025.pem | 20 ++-- test/fixtures/keys/dsa_public_1025.pem | 20 ++-- test/fixtures/keys/ec-cert.pem | 22 ++-- test/fixtures/keys/ec-csr.pem | 12 +-- test/fixtures/keys/ec-key.pem | 6 +- test/fixtures/keys/ec-pfx.pem | Bin 1006 -> 1006 bytes test/fixtures/keys/ec.cnf | 2 +- test/fixtures/keys/fake-cnnic-root-cert.pem | 32 +++--- test/fixtures/keys/fake-cnnic-root-cert.srl | 2 +- test/fixtures/keys/fake-cnnic-root-key.pem | 50 ++++----- test/fixtures/keys/fake-cnnic-root.cnf | 2 +- .../fixtures/keys/fake-startcom-root-cert.pem | 40 +++---- test/fixtures/keys/fake-startcom-root-csr.pem | 18 ---- .../keys/fake-startcom-root-database.txt | 4 +- .../keys/fake-startcom-root-database.txt.old | 2 +- .../fake-startcom-root-issued-certs/01.pem | 34 +++--- .../fake-startcom-root-issued-certs/02.pem | 34 +++--- test/fixtures/keys/fake-startcom-root-key.pem | 50 ++++----- test/fixtures/keys/fake-startcom-root.cnf | 4 +- test/fixtures/keys/rsa_private_1024.pem | 26 ++--- test/fixtures/keys/rsa_private_2048.pem | 50 ++++----- test/fixtures/keys/rsa_private_4096.pem | 98 +++++++++--------- test/fixtures/keys/rsa_public_1024.pem | 8 +- test/fixtures/keys/rsa_public_2048.pem | 14 +-- test/fixtures/keys/rsa_public_4096.pem | 65 +++--------- test/parallel/test-tls-cert-chains-concat.js | 6 +- test/parallel/test-tls-cert-chains-in-ca.js | 6 +- test/parallel/test-tls-peer-certificate.js | 14 +-- 87 files changed, 845 insertions(+), 898 deletions(-) create mode 100644 test/fixtures/keys/ca2-database.txt.attr create mode 100644 test/fixtures/keys/ca2-database.txt.old delete mode 100644 test/fixtures/keys/fake-startcom-root-csr.pem diff --git a/test/fixtures/keys/Makefile b/test/fixtures/keys/Makefile index 8df48eef9b1d5c..32e34705bb9794 100644 --- a/test/fixtures/keys/Makefile +++ b/test/fixtures/keys/Makefile @@ -1,19 +1,18 @@ -all: agent1-cert.pem agent1-pfx.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem agent6-cert.pem agent7-cert.pem agent8-cert.pem agent9-cert.pem ca1-cert.pem ca2-crl.pem ca3-cert.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem dsa1025.pem dsa_private_1025.pem dsa_public_1025.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem - +all: agent1-cert.pem agent1-pfx.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem agent6-cert.pem agent7-cert.pem agent8-cert.pem agent9-cert.pem ca1-cert.pem ca2-crl.pem ca3-cert.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem dsa1025.pem dsa_private_1025.pem dsa_public_1025.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem ec-pfx.pem # # Create Certificate Authority: ca1 # ('password' is used for the CA password.) # ca1-cert.pem: ca1.cnf - openssl req -new -x509 -days 9999 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem + openssl req -new -x509 -days 99999 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem # # Create Certificate Authority: ca2 # ('password' is used for the CA password.) # ca2-cert.pem: ca2.cnf - openssl req -new -x509 -days 9999 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem + openssl req -new -x509 -days 99999 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem echo '01' > ca2-serial touch ca2-database.txt @@ -35,7 +34,7 @@ ca3-cert.pem: ca3-csr.pem ca3-key.pem ca3.cnf ca1-cert.pem ca1-key.pem openssl x509 -req \ -extfile ca3.cnf \ -extensions v3_ca \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in ca3-csr.pem \ -CA ca1-cert.pem \ @@ -53,7 +52,7 @@ fake-cnnic-root-key.pem: fake-cnnic-root-cert.pem: fake-cnnic-root.cnf fake-cnnic-root-key.pem openssl req -x509 -new \ -key fake-cnnic-root-key.pem \ - -days 1024 \ + -days 99999 \ -out fake-cnnic-root-cert.pem \ -config fake-cnnic-root.cnf @@ -65,7 +64,7 @@ fake-startcom-root-key.pem: fake-startcom-root-cert.pem: fake-startcom-root.cnf \ fake-startcom-root-key.pem - openssl req -new -x509 -days 9999 -config \ + openssl req -new -x509 -days 99999 -config \ fake-startcom-root.cnf -key fake-startcom-root-key.pem -out \ fake-startcom-root-cert.pem echo '01' > fake-startcom-root-serial @@ -85,7 +84,7 @@ agent1-cert.pem: agent1-csr.pem ca1-cert.pem ca1-key.pem openssl x509 -req \ -extfile agent1.cnf \ -extensions v3_ca \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent1-csr.pem \ -CA ca1-cert.pem \ @@ -120,7 +119,7 @@ agent2-csr.pem: agent2-key.pem agent2.cnf # Create a Certificate for the agent. agent2-cert.pem: agent2-csr.pem agent2-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -in agent2-csr.pem \ -signkey agent2-key.pem \ -out agent2-cert.pem @@ -140,7 +139,7 @@ agent3-csr.pem: agent3.cnf agent3-key.pem agent3-cert.pem: agent3-csr.pem ca2-cert.pem ca2-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent3-csr.pem \ -CA ca2-cert.pem \ @@ -164,7 +163,7 @@ agent4-csr.pem: agent4.cnf agent4-key.pem agent4-cert.pem: agent4-csr.pem ca2-cert.pem ca2-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent4-csr.pem \ -CA ca2-cert.pem \ @@ -206,7 +205,7 @@ agent5-csr.pem: agent5.cnf agent5-key.pem agent5-cert.pem: agent5-csr.pem ca2-cert.pem ca2-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent5-csr.pem \ -CA ca2-cert.pem \ @@ -231,7 +230,7 @@ agent6-csr.pem: agent6.cnf agent6-key.pem agent6-cert.pem: agent6-csr.pem ca3-cert.pem ca3-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent6-csr.pem \ -CA ca3-cert.pem \ @@ -257,7 +256,7 @@ agent7-csr.pem: agent1.cnf agent7-key.pem agent7-cert.pem: agent7-csr.pem fake-cnnic-root-cert.pem fake-cnnic-root-key.pem openssl x509 -req \ -extfile agent7.cnf \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent7-csr.pem \ -CA fake-cnnic-root-cert.pem \ @@ -286,7 +285,7 @@ agent8-cert.pem: agent8-csr.pem fake-startcom-root-cert.pem fake-startcom-root-k -keyfile fake-startcom-root-key.pem \ -cert fake-startcom-root-cert.pem \ -batch \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent8-csr.pem \ -startdate 161020235959Z \ @@ -316,7 +315,7 @@ agent9-cert.pem: agent9-csr.pem -keyfile fake-startcom-root-key.pem \ -cert fake-startcom-root-cert.pem \ -batch \ - -days 9999 \ + -days 99999 \ -passin "pass:password" \ -in agent9-csr.pem \ -startdate 161021000001Z \ @@ -330,7 +329,7 @@ ec-csr.pem: ec-key.pem ec-cert.pem: ec-csr.pem ec-key.pem openssl x509 -req \ - -days 9999 \ + -days 99999 \ -in ec-csr.pem \ -signkey ec-key.pem \ -out ec-cert.pem @@ -371,13 +370,13 @@ rsa_private_4096.pem: openssl genrsa -out rsa_private_4096.pem 4096 rsa_public_1024.pem: rsa_private_1024.pem - openssl rsa -in rsa_private_1024.pem -out rsa_public_1024.pem + openssl rsa -in rsa_private_1024.pem -pubout -out rsa_public_1024.pem rsa_public_2048.pem: rsa_private_2048.pem - openssl rsa -in rsa_private_2048.pem -out rsa_public_2048.pem + openssl rsa -in rsa_private_2048.pem -pubout -out rsa_public_2048.pem rsa_public_4096.pem: rsa_private_4096.pem - openssl rsa -in rsa_private_4096.pem -out rsa_public_4096.pem + openssl rsa -in rsa_private_4096.pem -pubout -out rsa_public_4096.pem clean: rm -f *.pem *.srl ca2-database.txt ca2-serial fake-startcom-root-serial diff --git a/test/fixtures/keys/agent1-cert.pem b/test/fixtures/keys/agent1-cert.pem index 9c5c2ca4c62ed2..ee4d9c434e272d 100644 --- a/test/fixtures/keys/agent1-cert.pem +++ b/test/fixtures/keys/agent1-cert.pem @@ -1,18 +1,18 @@ -----BEGIN CERTIFICATE----- -MIIC1jCCAj+gAwIBAgIJAJqEq8+4pyrAMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV +MIIC2DCCAkGgAwIBAgIJAPrVDMagf1FsMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2ExMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTA0MTgxMzI5MDhaFw00MjA5MDIxMzI5 -MDhaMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzAN -BgNVBAoTBkpveWVudDEQMA4GA1UECxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQx -MSAwHgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAuOs3hW8rF+7xx5iB9wjmIgd+HTqRFUeKxG+mWV35Hl6A -3uzYGXwWznqsOomr4a/UkZrxbPGp5Awqa9g72NF97g3Sysq2DW4a3ycXWAeYYcHS -lRxqJGXTjx+vG/0nDCXLBhoDKO00zEccdjGS8xEjjieQQr+KeASmIm0kQmuN5YcC -AwEAAaNhMF8wXQYIKwYBBQUHAQEEUTBPMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz -cC5ub2RlanMub3JnLzAoBggrBgEFBQcwAoYcaHR0cDovL2NhLm5vZGVqcy5vcmcv -Y2EuY2VydDANBgkqhkiG9w0BAQsFAAOBgQA45MmH28Gns+1yu9w9MR/oR8hKDMnG -E4yDZ+9SofWdqRsGe5MNeMbp9c+FxIxODcNmdhV5Ao6+ZCRX4N9GjLqUL1jQoFAs -pT/U80ZU+4bz2EwGMBQt7CJZb/u+j8/vXheyGFZkCWEQj6AgZQFTniRRQJLwbiy5 -uDktGqnhvamyrg== +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTVaGA8yMjkyMDUyMjAx +MTY1NVowfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEP +MA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQDDAZhZ2Vu +dDExIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqGSIb3 +DQEBAQUAA4GNADCBiQKBgQDnXT3od/PORzybLaYoAhqwa87601hrKbOrcJH9XGVX +TqFoSqkVZCbFFHDDlambsucH0jejao7cKFm7UKyMhlOxSYaynD2o28nS1ZBRwybV +zOGsIhF2sPc3TY6+P2EQWhe1F9tZsUcoOSXihwx78V0HLVde3UoXmtDVwD8ASlRu +vQIDAQABo2EwXzBdBggrBgEFBQcBAQRRME8wIwYIKwYBBQUHMAGGF2h0dHA6Ly9v +Y3NwLm5vZGVqcy5vcmcvMCgGCCsGAQUFBzAChhxodHRwOi8vY2Eubm9kZWpzLm9y +Zy9jYS5jZXJ0MA0GCSqGSIb3DQEBBQUAA4GBAIi44Hk6phewUYEEmSSuuS4pViPZ +Eu/uCDtDAdn/Qz/q2lFHRsaia9ov7xfncYpgV7/vq5MAHigas4ZGUoutwCzwnaAI +l9wxkLG3G8wPN3x4wDGoLxpqaH5nqJIo6iWady9WM9PDaVHn+6ibrP9p55T65o+O +BaF2ovk9NzkxpMPM -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent1-csr.pem b/test/fixtures/keys/agent1-csr.pem index 51617129d0dfcf..b6eb759b897b94 100644 --- a/test/fixtures/keys/agent1-csr.pem +++ b/test/fixtures/keys/agent1-csr.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD -EwZhZ2VudDExIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC46zeFbysX7vHHmIH3COYiB34dOpEVR4rE -b6ZZXfkeXoDe7NgZfBbOeqw6iavhr9SRmvFs8ankDCpr2DvY0X3uDdLKyrYNbhrf -JxdYB5hhwdKVHGokZdOPH68b/ScMJcsGGgMo7TTMRxx2MZLzESOOJ5BCv4p4BKYi -bSRCa43lhwIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEgY2hhbGxlbmdlIHBhc3N3 -b3JkMA0GCSqGSIb3DQEBBQUAA4GBAC1pwZvvfYfK8IXYyXLD3N47MEbn/Y8C85Qi -rYVl7y/7ThurCLtWVlS3e7es3Kr8nxjHTjVZW20RZHOmOGfSOkXoL3uuwew1jvCq -ibM2jwPCq1N/I4D94Fzh9LG86Cu8U6PtBlZzgprdK84Fo8U/pFRikPrggApUiPhm -MZeWhDyn +MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQD +DAZhZ2VudDExIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDnXT3od/PORzybLaYoAhqwa87601hrKbOr +cJH9XGVXTqFoSqkVZCbFFHDDlambsucH0jejao7cKFm7UKyMhlOxSYaynD2o28nS +1ZBRwybVzOGsIhF2sPc3TY6+P2EQWhe1F9tZsUcoOSXihwx78V0HLVde3UoXmtDV +wD8ASlRuvQIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3 +b3JkMA0GCSqGSIb3DQEBCwUAA4GBAMFbLKd2LbXJ3DPnwzYPcToOYZbwirgZicQX +AGyU93YrwnTwITgz8bfYlMDDm+tL8w8tLjUTZQNpYqAC7WrUeBw6HuxluQ3MNJz3 +1X9e0SXgeiuNXZjjBRP7zgXvjeZ+ArOC7KZJbswsFGAC/c3ZUpkGG0trcRULcYTA ++wjl1ERh -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent1-key.pem b/test/fixtures/keys/agent1-key.pem index 08546736d546fa..031aad87f10680 100644 --- a/test/fixtures/keys/agent1-key.pem +++ b/test/fixtures/keys/agent1-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQC46zeFbysX7vHHmIH3COYiB34dOpEVR4rEb6ZZXfkeXoDe7NgZ -fBbOeqw6iavhr9SRmvFs8ankDCpr2DvY0X3uDdLKyrYNbhrfJxdYB5hhwdKVHGok -ZdOPH68b/ScMJcsGGgMo7TTMRxx2MZLzESOOJ5BCv4p4BKYibSRCa43lhwIDAQAB -AoGBAIXZzPCLDXhffydo3vo/uMT9A26IzCfJB0s1PgYGHaK76TBz4+Bej+uZpD0j -FgVgzs8uhn7DVqQ5oiM5++fvi+Sd+KlyVNgLKe7UTBGYE5Nc9DuDDD0GmJtFvso6 -amsVhECF8sWZVOAwUdrwHhWevp5gJ1cfs3YMTlT9YqdRaWOhAkEA8TJAPfnbEfWf -saDhWCjanW+w2QEYPa6wYFt+I5L2XPTeKR/wEQ3EzM++vCWxSF5LNSaXIdic847p -BcIGi/0r6QJBAMREt5r1c6Wf5mS6i/Jg6AdCEUjy0feRCeKemJDMKxyl5m/cU+rk -p5YBUgwoI8kzc82GEhyg4/NgHQfNcrZdT+8CQFVzChNq21PHgyX46xzCjIDOOwcG -PkJMCyx3/X446JMSJUrIh9Ji4F/3EYmyiNYsodRYsZ5KEYCwFpn1nUAnF1ECQQC/ -uzl54YomJDyX7jzEfLJuVLY6AyvmowN7JN95pFoBVHf2ktBPySuFuKiEQ7oh1Wet -QOn0mZ/VovD5LFSBnkp1AkEAgOMkBCJuOfBDvQwrmAAowWQi//7D2x0fhyKcrF6D -EZYVV125Wodw3zFxmE9p4vb6Hg3X5jSyGMzdE5ZqMgBD7w== +MIICXwIBAAKBgQDnXT3od/PORzybLaYoAhqwa87601hrKbOrcJH9XGVXTqFoSqkV +ZCbFFHDDlambsucH0jejao7cKFm7UKyMhlOxSYaynD2o28nS1ZBRwybVzOGsIhF2 +sPc3TY6+P2EQWhe1F9tZsUcoOSXihwx78V0HLVde3UoXmtDVwD8ASlRuvQIDAQAB +AoGBAMaeCBh6aWWrR/8beCmebNUJJ/2x05TjjuddUybC3AjQasYCWhcQDCxh+NAe +uiT8t1LCh5sVTiD3zth8UDSu2EaWrL6gpOHqTHx1SgrVL1D99ha0QnDyBQ+GWBkh +0NoNHOF47mbmn7+gJpVNgiFtfTeOUyK3HUDlaa+/qJwdwEQNAkEA/9dzyExaFUzz +E6p1UGN0rvjTdC48Bak2D33Ut6FiABdBn1smAVIlroVv8nb+Tfvq7vgsgPXYTJcy +W2VN9f/tGwJBAOeB6QJLG7wUYRuKHndnXAPIJT6GW7TKuVQzNtRvB2wcqOZ3cF50 +gYi6dYmiV0SWEMr2IcYisgEnyE7uKh3tCQcCQQCB9OVBV1di/oVy9eFFhl+dCZQP +rfSbQ4rMb7R/2qA3P5j744b4oMu3TNzCoyMmZdK+tJ2WnErVDPBtcJYbYXcFAkEA +mTejbP8kle+u7TkWPNRNU7ts2tq1awwYaB+VFDd/ZA/7wLwfxIO7DzDIhZTJyPzA +lHMdmzJvONCJg6OggDnWlQJBAPpS05NSnr/gzoccnVfDkf0bqBe7ATAEJ8F7PS/z +kauA/tWM/Pec0unSdrAJKV9CLfKUvKBXwOIS3GPLTsYHTvc= -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent1-pfx.pem b/test/fixtures/keys/agent1-pfx.pem index b0395eede9c2513f714ac49e0a9d386cc4830da4..11893f48eed1c1ee9dcd754f34bb252f963dc827 100644 GIT binary patch delta 2377 zcmV-P3AXly6O9uuUT0uf8o&kz=3Qr(P(4DgHI!cr_f+V?&y z#WQAxX91p3^;b+b2bL$qyG7Q7bM`Qk{kUap#sEk@_;r44oZwUTKy0>74MkL9!%1*| ztFZTrE;k|J-JL`{$-ON#GfdChi6$}wxolcU(QFKoQT$|OzRhYWaL8ro?UbG z-Hcwx*X%`mctwYg-d*EJqrxEBMbN3p%W26F{64bU@?rp4CKG%i1fOJ>uLPfsE`JS^ z@X5)qOL?P;VJd8i-0GZE6l}z#Gt=}(;)Mw!`vMcMt}sgIEAtZs!av5^-fUBUVbx{v zhzMZIzVB~p<%m@c~oe-xHEKMqG}?1~#V z%X=08WL`_VQ+l}*d6Iw!-Q!4u@vKOE&)tP2WdHp9IcLQpy^g`W$~qc<#+lu6i8WHf zM`J%=`=!7R>zy?lAml{>@SN|~lHzvcM^yZNw@dSaGCO5Y zpjT$xb50*s(SMz3T?H(ExsCc4f3)DG?|oIQ6}{GnZbBR+tL+2x#hj8_qW3wuRjIwt za?U#2S&$wM{ZVNcgGt|iFCSxsLQ|{>pFe-FT)OeR$gbYR%Mo45t^t}RIO#%Ppx@3G zw-T;g_@h+0s~a};J|(A*lr*U7fta&8WbUu<;3xN%9{6WvQPbvs!sW4^pvlvX1EeM& zGrvD@nAk%)JQHJwtk2PAJNL0Z(krkYY(hbM>2}3`Ai{;6xTim;SP}4 z5ySCE9YG}2o>J-2oY^xc#rAAQkXlh|L1qIy8UKPpH*mc-q}yMz2;HC0+?wCh?u`hR zNjwp)l?n2T+}W68kvogyyjFZH>y=v5)W^Z?3+Ww>CpGTj?3m zl-GrTt`VArCGjNX5@{QN3#aOq>CM7VwbWn)aCFm2Kve0;J0_G4_l5v%R3!hdidfnh zBAZ)35bs-mi+#W_El5zTm|Y!QDDWIGpfTw6U0TccfhDdkjZ4dLdX$NcJT0Z#+z0`< zE&?jM*1PZF>9X~E5A6`PyHURLmw_sF$Hor659>t5{Cm5x<5FwR(H<^M0L*#%w{|lQu3yR1OB|4qPy>K}ClJUrvsBc+6QHG%@sp1ei+$rp zA{j#~Q>~XEFJ+qLT|9Or?IGo3ERhDix zbx6kyI`%k^hidcJK7VPClT`*re@zn@kv90DF9HGx00e>pfDQR4)uTFUEFCwU%0y|q zL;LijyVi%n4F7?5T~738c#!oI2aH5%)=t_|*Aa}@liGi1v_@Ww_m(OpnmRKsOBD^L zw#wzvn)j#O4qKvJmb^d3S8?MAh?VWU@f(~E+)&0e|;@>HXS4o z-tmn4m!y0WtFE|~M=F}K| zB|>!uk4N1~=qM%58*7Q-_VTm1Jepl5j73;J-l8>?IY>Lx4v6EHe$$)tG>2`-oBE$j zT&{FKSOl>_u+62~Py$G&e?4{V6kYuxahAvM%~B20!nbw}n$j>GdjF8`kCRG#UKX9F zFd`0r)x}wEX;K|E8Tta#TR(i*PNU+?A7xCkGq;|DeH`Op5iJ9_hneQ?1AUCOP*rlEAsH6vGg9hBos6?y7G5QV#R!p4*BF~zYkU=k9c)Sw3JMEk&f zRLKB1*}P^L8HHhg3q{hgkdmm{tI&>uX0rmGUj#iEv}*)ON?+KT*f3fw*ZXQP5(<9I z*~9IEpB;D$n*iV{e@aW>6Oencc6)9!!#?MDwy%4z!kYL9m?YUz{FC3t$42p&AHpoM zO7FMf3DF!fJ3G*f@p2&Ugn(2{`{)ov+%M~Lsw%Q6k3}#+jtN7@!2r`4ZPcEflQd8$ zifGAWQR;f+Z8xzL;ENq8<^t)Htw<{f-sp>2Z3rO*o`Tf&Zxf1gge5|}@_jn-feb5q zc>RZX-25>mFe3&DDuzgg_YDCF6)_eB6mG!qc!XAy0?7xh3~iQx%!O^vJ1{XYAutIB v1uG5%0vZJX1QfN|=w9`Mp5>q~r~tbuLeY1;x)cNm?Db6!*jb{50s;sCfnb8u delta 2369 zcmV-H3BLA?6NM8%FoFqz0s#Xsf(b_k2`Yw2hW8Bt2LYgh2{;6T2{bT*2{15%1}_E) zDuzgg_YDCD2B3llATWXk90CCVFoFgZkw6`PiijuB(Ic8K0s;sCfPw|+1nwG_t}5j* z+$LXr<0~u-jPBYqFR7XhE+Wz?7{gaMRxt8PE^Y%!N-yAsVS_^lZP5gY(yktQx$Cy4 z)G&RKZa303s-h}kuAO#&RNsk+=@&AZRXy!4ScugwZj`{IOM_`kX!Jkt56E?N$WY3E z9z_kQ>gF-VEYz@m3tx7&dF1VXvl;grd~c-`XwaHRPjnR|VjWS4V&-7m!)5V!c(9xY zf(;FfZD4Fm<=ZejcQNdf2}{|I&eXSLH}&)HUmNWwnZw`NFryCpu`dYveU3f;h{A}j z2$1UHo=<@vdbXv=Y`FZ7T%R(;k2B2JkQ4G>jzj8t&r;rowCjy6R&!to2b*l#hIZB z09#zw0wsU_jmhKLss(a#b3UwnoMjM{lrSBl%mzS=EYc@ajXzP5zGcBLF61%zl|CpL zo0ve|urFjEZB6u&-QRwaaC`@U7b{E;c-6fZN+6$cOAieELAsiiN=^iUcfaUzO5-F@ zu0|#fmP;pHCDK)KancH_AbvfwSp3-G(GdC9kwhY(8o#H8qhiqD<0xwc%n0+fN$Ei2 zd#()sV8Uz~bc02WT7lua;gJS`Nvji7dk6aOr@|KJGo$Iny;VSC$s>ENAEzl};b$GTx6 zkQy22=z~4nJ5Z43%tR1qtiA2r$1K?>jLL0s8!hwW2SgVqyrHgwQ;DX=1{+x}fNA zT^0H%r-A~Y<6O21uL6I`#8UNsPG|IHVU`m8RVAv@sF=^B7oAakU-k*gkYd-f`@Z2` z*3oM9Y_w}+tFs{t5^#erR8cT&{FmtYAMrr)Qm!O>4<4z1q=icFgA!0c!uhJM8*d}J zc*n{QyI!R2b-z!k3x~(WPXZ4xbYrzPpqvOos7s?|-CYz`sFRFA-(2mr1j)CnpI%)B zOo@qSf&f{J25$apo7o4*H+X+&5k(H6tAgx*jcrko!{H?at#QY{90)6MIVQTYz{F9M zP96Q2*mX~THhz=iihP$}FI+TA zpMh`36;<0{LCf^hyq2D`sjvYIis*RPCa51e)vfq997uM|n=P=%8Y)p5M3x|)J?D#8 zl88Cbwq){JG;%^nVr-=UQYK}Dv&0kYMI`Yrs8)r4Uw=vsU-ottf}qRqujK9P3lbq| z+<|lavaOymh?hT^1(*A5i5xR^h!jzMd#gb4=3`e1n1d*=>l=SuJ~rzn9tUL@RA~N& zo>CAx5^g3$HM%P1ooCGHpfoQo>to0O@rR7^Nl18Vd(Xn>CNf6jjY1J~H+)MgfPO$l zP@Sm+Gr$G9lU)Wzeh@>00e>pfW$PMfTay#a>@T0K)sCf06D|?%JkQv#RXj^hL>N z-XfF5ra(D|IIbETq&8~bDkd}{uo|CtkEQjP=P+3Yg0O=MP11at^n*U-tq;TH;w(dI zi?e+wE6>IVTJs0+WsaV??+i_~d2ec899;n_iK1I zYWKDwWs1;7fAj|7Eb2J@Gt&XW%Ut=Om+j|8<|+1{cVd-=?mGoegpXrNQvHgFJML*P z7O8uo_Yeb+0`{YMB zk;AL;iY>G(bS8fGN#iW~_R6=HF|E_#xvmR-uN_qMe}VL)Ll!qATA-K%DdEizFBAm2 zw~6n55kCk^PB84dWGG;I=VLH!87veV=|7c7iItF~n*GPyZd&h~jG3ZEq*6jQGDEby zNk6F&;{5v4m}JmKUa~zwjaZ;TccM@r9Mc`*-A#+>Hle@Lsg*FI0qhRgzTf(0F2xj+-K&kqs9j(HcBcW!oD7xx!IjE4f@@CR+UqtF#r ztv6*$*u%Jbsiw|fJ@~%4OqHn$+{WCP3Ob6Qe=jk68iE%BM+Zb>!zrZPqIx}K8!E8k zE*k(coVRlOW^eaxt>s#R}m-Y8S0s;sC1eav# diff --git a/test/fixtures/keys/agent1.cnf b/test/fixtures/keys/agent1.cnf index 6904b2e930d899..c4739da96200dc 100644 --- a/test/fixtures/keys/agent1.cnf +++ b/test/fixtures/keys/agent1.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent2-cert.pem b/test/fixtures/keys/agent2-cert.pem index 7538cfb9b048e1..dba141a39e222b 100644 --- a/test/fixtures/keys/agent2-cert.pem +++ b/test/fixtures/keys/agent2-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICcTCCAdoCCQDTgzSLdDTF0TANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV -UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO -BgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR -cnlAdGlueWNsb3Vkcy5vcmcwHhcNMTMwODAxMTExOTAwWhcNNDAxMjE2MTExOTAw -WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYD -VQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEg -MB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwgZ8wDQYJKoZIhvcNAQEB -BQADgY0AMIGJAoGBAKGYRnu2BdY2R8flqKPLICWO/7NoRVGH4KZBY1uBF/VYXyA2 -VT5O7461mt6oA372BItGyNxdbMEvQBRcLiXTueKF5D+KYu30bWem6A/AxxYvnqU4 -tP+uhsXNuGNQTp8i0vBDM/nUx7QGeP1Kda6C936PCNt7wbGPKPNyACNMbnptAgMB -AAEwDQYJKoZIhvcNAQEFBQADgYEATzjDAPocPA2Jm8wrLBW+fOC478wMo9gT3Y3N -ZU6fnF2dEPFLNETCMtDxnKhi4hnBpaiZ0fu0oaR1cSDRIVtlyW4azNjny4495C0F -JLuP5P5pz+rJe+ImKw+mO1ARA9fUAL3VN6/kVXY/EspwWJcLbJ5jdsDmkRbV52hX -Th4jkAI= +MIICczCCAdwCCQDoSvlN91onszANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZKb3llbnQxEDAO +BgNVBAsMB05vZGUuanMxDzANBgNVBAMMBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR +cnlAdGlueWNsb3Vkcy5vcmcwIBcNMTgwODA4MDExNjU1WhgPMjI5MjA1MjIwMTE2 +NTVaMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzAN +BgNVBAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEPMA0GA1UEAwwGYWdlbnQy +MSAwHgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA+ANNQJCYkK2xeMpXY7P0FqQRnWm757yDXwLfeoz4IRfk +/20bdRPMIA3EIzDfIUyibq9Zdgm+sLixfv0WPRANEhLeMOdDAT4AuNDeZGu/4lTz +Hl4wsMq/FGDokIlmFeC+IBjTcNFNllr0wXT3650lEnXANaTe2qb5eqgq1RHA9MUC +AwEAATANBgkqhkiG9w0BAQUFAAOBgQDVUwS6OhVpM8nDknHMa1g05Ly9krwMP73V +01JpCsHxlXRomptTdAob/UVDSXlZxm6OrtXHiXI3Lz9bwStg++F3hxEfhVV7YJ1c +pc7HT1GqGkesFwYH6/KE871t54oIhpVzbeuJhtAdreRXRnjRrxxD11cYPwhn/f5O +jJdQL5duew== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent2-csr.pem b/test/fixtures/keys/agent2-csr.pem index 30d06a37ebb0bb..05faae06068269 100644 --- a/test/fixtures/keys/agent2-csr.pem +++ b/test/fixtures/keys/agent2-csr.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD -EwZhZ2VudDIxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQChmEZ7tgXWNkfH5aijyyAljv+zaEVRh+Cm -QWNbgRf1WF8gNlU+Tu+OtZreqAN+9gSLRsjcXWzBL0AUXC4l07niheQ/imLt9G1n -pugPwMcWL56lOLT/robFzbhjUE6fItLwQzP51Me0Bnj9SnWugvd+jwjbe8Gxjyjz -cgAjTG56bQIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEgY2hhbGxlbmdlIHBhc3N3 -b3JkMA0GCSqGSIb3DQEBBQUAA4GBAEBfLsByEqL79HRr4QwPTARMW51ohh29kCUU -OunEyxM8Ti3lBPGOePXLBGjq6e/eLmoOfKsOXKjE+Z3Rpj2L0IKJgpBBcvD2BCyM -920PdvIHHgWXGSGiDGL/nMbX3SZrYNP/ERawg/Tzqh4QorPj91RKYez9NNLoOncm -Ug1MI/t9 +MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQD +DAZhZ2VudDIxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4A01AkJiQrbF4yldjs/QWpBGdabvnvINf +At96jPghF+T/bRt1E8wgDcQjMN8hTKJur1l2Cb6wuLF+/RY9EA0SEt4w50MBPgC4 +0N5ka7/iVPMeXjCwyr8UYOiQiWYV4L4gGNNw0U2WWvTBdPfrnSUSdcA1pN7apvl6 +qCrVEcD0xQIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3 +b3JkMA0GCSqGSIb3DQEBCwUAA4GBAHVG4Ng4xzGOWDBCj7/6LyxOdRt7E7eknkPx +BrU41OdwS4HEA4nNx3dcsvP5VmFDtLOBrUD499qPvhqW/QKBfTYwozollD/azi99 +kBpJK/mYKw9TBV34PGwgEZ/Eirg6vA/g5dE/8szIbzyWfYaRhnaFEzM9/0bAEOyI +3gr2WmL7 -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent2-key.pem b/test/fixtures/keys/agent2-key.pem index 155eacedd33d34..81a8bf343651df 100644 --- a/test/fixtures/keys/agent2-key.pem +++ b/test/fixtures/keys/agent2-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQChmEZ7tgXWNkfH5aijyyAljv+zaEVRh+CmQWNbgRf1WF8gNlU+ -Tu+OtZreqAN+9gSLRsjcXWzBL0AUXC4l07niheQ/imLt9G1npugPwMcWL56lOLT/ -robFzbhjUE6fItLwQzP51Me0Bnj9SnWugvd+jwjbe8GxjyjzcgAjTG56bQIDAQAB -AoGAd19C6g5731N30T5hRqY+GCC72a90TZc/p/Fz0Vva8/4VP3mDnSS4qMaVIlgh -RP++OZjPtqI5PbiG8MNrv7vZe0UXlV7oZE0IA+jomUXsplbwMFf6pkrqdyHi+cbm -rBudhmKeLUgNA6peMGVA83C5g2SMqU5kB+tWzZT7Rs9rsyECQQDWpXxZgULqbFZv -wjpIDGWjOpQZrv123bJ9TQ+VoskCu4vlyDJqDJPwnscl8NnzpFJriDARn0WrB2sd -8GCX1yEpAkEAwLo/MYG5elkNRsE5/vINSIo04Gu6tP/Sd7EBtHYAPHUPjs/MhhVX -tMIGtACheHMwjGRPyr8pboEp2LEap4GjpQJBALNsy+CJ0+TfwPVU96EIc+GZcvlx -NMErGyvwwclEtSDKo2vmCHZrozLtlu1ZQueOgbMPuZbRe8w2vEzfhe8HTtkCQAYy -NrPlwsvPLyEWN0IeEBVD9D0+2WrWSrL0auSdYpaPAOgLgDzTVNWH42VIG+jeczIg -S3xuNuvJlUnVL9Ew1s0CQQCly+gduXtvOYip1/Stm/65kT7d8ICQgjh0XSPw/kUC -llVMQY3z1iFCaj/z0Csr0t0kJ534bH7GP3LOoNruV0p9 +MIICXgIBAAKBgQD4A01AkJiQrbF4yldjs/QWpBGdabvnvINfAt96jPghF+T/bRt1 +E8wgDcQjMN8hTKJur1l2Cb6wuLF+/RY9EA0SEt4w50MBPgC40N5ka7/iVPMeXjCw +yr8UYOiQiWYV4L4gGNNw0U2WWvTBdPfrnSUSdcA1pN7apvl6qCrVEcD0xQIDAQAB +AoGBANrNPuhJKO/q7Pldub9SUXNwB8JSN954J4Y46KQbngTEKdlWjrS5ZIqa2oEZ +aqDcFSmFNW23py4NozofWfFBKeUdeRyQvSOg7wfhf2OdmpA4ilAhHx3Qih5wSPX1 +zz5cIpkO1f/d/SacT6Arl9eD1VEbhFUrMu59gTsUwfjJbhFBAkEA/TDhVL1PxH6l +zBgNiBPv9hc3ztjJYm+a6KhiP8EBObdPBqDRm1YOo3n8VeIhfruxn2yoVpvBDjCi +fD36XcQ2mQJBAPrDtvoqtiZjfjpzTnanAZjOYmVfS0VimQdLUd164A3lMAMV9nsG +hQbtzttges16i2/NJF8hky3dsjw25WcsBw0CQArUM17/ddDupcKz6KhASgwZdB6Z +sQtPwK1gvksBwz6ns26SJETjil69kehOcqZL+s3ZxN1nbftgYyKzN+kYwkkCQQDG +tSfdfNLyAI0aDBz08MnXKFPYOHcQ+FyC5zBr7N52pFIzX8f9HOF06CSuufkVsjGj +2k8kAxr5kV+XT3jhFIZRAkEAuDOSGDCVu+0vX120jTJu4PjfeHuaeNfWjC226x9h +EQAxkDfFfKTN7dsBXqt0r0HmLZfWBVQ1svEXCkwvPuRaeg== -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent2.cnf b/test/fixtures/keys/agent2.cnf index 0a9f2c7374e1cf..90a1cf95465002 100644 --- a/test/fixtures/keys/agent2.cnf +++ b/test/fixtures/keys/agent2.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent3-cert.pem b/test/fixtures/keys/agent3-cert.pem index fededd80769c4e..6aaa99cc81225f 100644 --- a/test/fixtures/keys/agent3-cert.pem +++ b/test/fixtures/keys/agent3-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICbjCCAdcCCQDuvizlIRoS+TANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJV -UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO -BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA -dGlueWNsb3Vkcy5vcmcwHhcNMTUxMTEyMjEzMTQ3WhcNNDMwMzI5MjEzMTQ3WjB9 -MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK -EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MzEgMB4G -CSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD -gY0AMIGJAoGBAM8KaJS9K/7LKuV1c8Jsliy9o3ubBGHGguBLmtHLgsAhsvbB/lE7 -cuxbBXPHLgegopcOrbsp4EuHURcN2WAkGcXpBIE5msYOxmImy2FifuUi0Vj4b2Ey -cpmkADXZrAOygwPw3WH16wNlR/vsL1GFubQ6EIdK4gv9fhBBdMFKm7LRAgMBAAEw -DQYJKoZIhvcNAQELBQADgYEAlTYjnZKIOEbKg7nxBikobIOOHiPB/ExouO4MscAU -tOvMq7iE56ASff5tr5RAzYzojJaOq0ReWx9imunVh7P0nBBN96dDvxkyKH08KHKO -MuZp75GDhaDnMPqu1QClU0u31ATI7gUOF+pN+IaGWT1K3g2/Rxy+tXAxyO2smEZe -sko= +MIICcDCCAdkCCQD4FZz1QNuPSzANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZKb3llbnQxEDAO +BgNVBAsMB05vZGUuanMxDDAKBgNVBAMMA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwIBcNMTgwODA4MDExNjU2WhgPMjI5MjA1MjIwMTE2NTZa +MH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNV +BAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEPMA0GA1UEAwwGYWdlbnQzMSAw +HgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEApAJcDHyQjhzkfzqJy5+U0umvbr5KUDm1EjOlsRha37w+6Hlp +VM6zBgU0KtPfSgktRbKGYefB/W5JPzHE0gm0Cwye1WceUsM+IuEMSjRNz7A8BJuc +cj/wnGJR9YUTEFJBheDPVcpo4LraTR/hWgA8zde4+LBUZhNNYRQpA80Bz9MCAwEA +ATANBgkqhkiG9w0BAQUFAAOBgQAY3g3zQlroG4AgGPSc+OJvdmE6uxS22GLP2Z2S +OZaFBsrom2GbKV9angrVLRYYyLwRrvCtSWJJ/7YWv1Yu5mB5ZS/t7U7+c/WAnZdb +XhsAlDnAwaeioA9ktNfmsB72l1I4rdiBXjanhxNCV/yvGDN83ANibIxHql+FqgBW +/K16Rg== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent3-csr.pem b/test/fixtures/keys/agent3-csr.pem index c5773f2ce3eadd..276ae2c2f2e454 100644 --- a/test/fixtures/keys/agent3-csr.pem +++ b/test/fixtures/keys/agent3-csr.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD -EwZhZ2VudDMxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPCmiUvSv+yyrldXPCbJYsvaN7mwRhxoLg -S5rRy4LAIbL2wf5RO3LsWwVzxy4HoKKXDq27KeBLh1EXDdlgJBnF6QSBOZrGDsZi -JsthYn7lItFY+G9hMnKZpAA12awDsoMD8N1h9esDZUf77C9Rhbm0OhCHSuIL/X4Q -QXTBSpuy0QIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEgY2hhbGxlbmdlIHBhc3N3 -b3JkMA0GCSqGSIb3DQEBBQUAA4GBAKcTs/vSdImZFlC0sBzFjqofQJI8uDZrOhkh -Stv3k0TmlRB51zSFlOmb0ReZa3JyUzOkpvx1nIl6HeZ1lZFZhAr2WCib31H7iJF/ -rbUpCjqQ9gBXSaXxQ6QkJSIEjM+QRiDiRQ7Uphq5qsa9uzGTJI9Jv/Ej8h2pYfRD -eDO3k0+c +MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQD +DAZhZ2VudDMxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkAlwMfJCOHOR/OonLn5TS6a9uvkpQObUS +M6WxGFrfvD7oeWlUzrMGBTQq099KCS1FsoZh58H9bkk/McTSCbQLDJ7VZx5Swz4i +4QxKNE3PsDwEm5xyP/CcYlH1hRMQUkGF4M9VymjgutpNH+FaADzN17j4sFRmE01h +FCkDzQHP0wIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3 +b3JkMA0GCSqGSIb3DQEBCwUAA4GBAE8nEwmxEzcYwoGWz7Myjwbf+dBMPZz6xVAj +IuW+h8ITimJ6lESWgAtXtWPCj2SSp95Kwmo3Ex0kp3opEAMe+8ShglyZaVvPwVyB +d8usbQ1zD6NdrNdSmS4Zn/J9l+OfI17VZLUvacpyVLouJe0MvA30Sf0pxJKLwXKq +UlecNvEf -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent3-key.pem b/test/fixtures/keys/agent3-key.pem index c4636fffc89f28..8f6057ed82e008 100644 --- a/test/fixtures/keys/agent3-key.pem +++ b/test/fixtures/keys/agent3-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQDPCmiUvSv+yyrldXPCbJYsvaN7mwRhxoLgS5rRy4LAIbL2wf5R -O3LsWwVzxy4HoKKXDq27KeBLh1EXDdlgJBnF6QSBOZrGDsZiJsthYn7lItFY+G9h -MnKZpAA12awDsoMD8N1h9esDZUf77C9Rhbm0OhCHSuIL/X4QQXTBSpuy0QIDAQAB -AoGBALlX+wl0VCdTX8Jso8WgicvhtLGZs5GIMW9zn1RCmHlBccG/Jtk3nAkE7tuX -qpg/cG5EQLi1o0paB/jYeAm+J6bMypiXNeakjW8McD55XJuqmotgbZ+IhZQzr0TF -h7zDBhhzLqIuIAjsQ0H8JFR+p3vrruchCZeQ6jxE05CeSZ/VAkEA8tyL+UvEozCh -QmokAshXLhZkFn24Ss9//xQ3iu6EE+ZIQyKy87msZhD4/rJ4GO+U1dzG7yQNeym2 -S+yHSzDUjwJBANo9xPCWBGYFbwZ/GWuwwV6nBjx35//3oEKg4PW11KSHm4cFRWV4 -JCO0q1sJEQCgzFGvNAwP63/onMJT3y1gcp8CQEgKA7s/LmT519vLgEMTCkkxex7w -y+nlAyK27ILZnXQJqwW/FTYWrXzZLALhDZ7X8l49zwTAvP77sId08ezr3yECQQCV -Cvw1Ze5pEirpn+Fnd1YH4z9SCn1phN5wwlf/1gb7uhTQGBx1mJ/ttpQT3tQ6vpXq -7yE3X6PwPZbY69iNr8F3AkBbymGXgt66Lv7gdea0UlRFjEWhuP2OC0WOtg4entvZ -1KHxsgMNIrYoPjvPq/3ReCZapnKpQfMuR564BCOY4bnX +MIICXQIBAAKBgQCkAlwMfJCOHOR/OonLn5TS6a9uvkpQObUSM6WxGFrfvD7oeWlU +zrMGBTQq099KCS1FsoZh58H9bkk/McTSCbQLDJ7VZx5Swz4i4QxKNE3PsDwEm5xy +P/CcYlH1hRMQUkGF4M9VymjgutpNH+FaADzN17j4sFRmE01hFCkDzQHP0wIDAQAB +AoGBAJASSo3ldo6ALvDcmWM4AeHsyeD8ZAdpSfh9ShXxkRJtKM3KqY6ILJcjRxpA +GCvPN+e71XR3w98+XDWZII5pW6/ZE/bINkO2IMDuFmIWCbadvUbleQNd7eCVk5OI +bYtZwmRI8zxC5gfEf54ukwL2agR1Hq/uENqw35OAwMnINQgRAkEAz7/ckH3xIzyM +9w3oqe3kTTB2XyBzrSPSZaelfasV5qzin78EI3X9BRQzRSe53Dx2bAxcprGhUwHj +qMd047QZ3QJBAMoZ1r+tMn8bY9Am89ZKaXtOoLIlYrXVu83ieGNA78cdJy7+hspT +b0GFPM4ZkidXR9oVDOSgWuSNddvGryDN7W8CQBriaEemlKsLre5WtXIwH+hBSkA7 +Md0JErQnAsqFdlsYqmcj0ARKw4iBubTMVEgE5wpKez7zI75bMzvnO+AvsV0CQQC9 +2vQwcIYlfheQLWeXgaQB4GV5tUE7zKN20C+EHjaieLKcpSL+4s57YK00eDUinA21 +w1yvUizQ1EtJwSY3zPwlAkAg28bieVGyYxCMcK6jaSW28DscFcUXy9EuNGWc9nu6 +VPoBbU5tgHCz3k5lcgJtODkOAREGXdU8KKUEMiC3+Mpi -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent3.cnf b/test/fixtures/keys/agent3.cnf index 26db5ba7557e0d..36337178b24738 100644 --- a/test/fixtures/keys/agent3.cnf +++ b/test/fixtures/keys/agent3.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent4-cert.pem b/test/fixtures/keys/agent4-cert.pem index adbedbf30d1710..d4b231010fafe6 100644 --- a/test/fixtures/keys/agent4-cert.pem +++ b/test/fixtures/keys/agent4-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICjDCCAfWgAwIBAgIJAO6+LOUhGhL6MA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV -BAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoTBkpveWVu -dDEQMA4GA1UECxMHTm9kZS5qczEMMAoGA1UEAxMDY2EyMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTExMTIyMTMxNDdaFw00MzAzMjkyMTMx -NDdaMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzAN -BgNVBAoTBkpveWVudDEQMA4GA1UECxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQ0 -MSAwHgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAmRNV3/oxV+YEXxo0wXHbA45gm4SyPhxlxi0ZXd4Xasmu -D2u4G57LV3uuEQ7fT34OhiOm1zr/Mv5IE8d3d0upRjpFUru45zxKg4nbqO1e07jM -2Yq5awwfk8BZpo7BEYVZ6SOiJO+tq/RFCPoTtjagwsDgUqHw9W7oVxXWeU0NmmMC -AwEAAaMXMBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADgYEA -c7q2wkyEDotnZeBDWZG+6kqXBMSF38SH3PJdM9Kb/0q8W47aMa4E1hAUfn02Ucnl -QpnaSJToDISnvgEfTL9VAKMIzOJIhqWaR/WwiiAZpWC7M4PRhi6j45eDYESHRdOa -uyk3Mlfs16mbPSG/IZvVW1YnRLJFAD5k2obbW1Sc2cI= +MIICjjCCAfegAwIBAgIJAPgVnPVA249MMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu +dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EyMSAwHgYJKoZIhvcNAQkB +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTZaGA8yMjkyMDUyMjAx +MTY1NlowfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEP +MA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQDDAZhZ2Vu +dDQxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqGSIb3 +DQEBAQUAA4GNADCBiQKBgQC9ODycAmQFQY9TjC+2PI65Oi2qfJhvAwSBxwrTOMII +Piw/p2WxG/Nj2FVNIzMKnD8PxhSQLp9Jy+B8kInxmluAu/RYLlnTnp+RXVILn8eV +/AYbDJ/es1lYOK1O23vfwfKn8lZx7n6atBTULFdXygAmRSzm5oZ2gy/KMJ69PUnl +WwIDAQABoxcwFTATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOB +gQAnI7sDFf6+B9xDRZJIDM9ZRF+xZ/ZcfReyYVJRUNDZ/HltbuVHLvRdbEpf1CXw +zFl4u6Zg0pYT+pOl/C8Cg9uJJZZ88U4IziWpgoK67Y830eAKr5st64YdNFDUjBKd +t8iNbMQoppeNCdzH1LDzuVSddogho/ro6ax+4CoVAW7+9g== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent4-csr.pem b/test/fixtures/keys/agent4-csr.pem index 58b44e308b772f..eeb06113f8299a 100644 --- a/test/fixtures/keys/agent4-csr.pem +++ b/test/fixtures/keys/agent4-csr.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD -EwZhZ2VudDQxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZE1Xf+jFX5gRfGjTBcdsDjmCbhLI+HGXG -LRld3hdqya4Pa7gbnstXe64RDt9Pfg6GI6bXOv8y/kgTx3d3S6lGOkVSu7jnPEqD -iduo7V7TuMzZirlrDB+TwFmmjsERhVnpI6Ik762r9EUI+hO2NqDCwOBSofD1buhX -FdZ5TQ2aYwIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEgY2hhbGxlbmdlIHBhc3N3 -b3JkMA0GCSqGSIb3DQEBBQUAA4GBAG9Jbj7/DGM14TC4kT9BbCF624Tgyo7LdZVa -b31rd5q3n5DkxorUq3ALlX3AMQ4sgbYYV8SysQSloldpW4TgjXZl2ohMU/xmXhfH -WPbUk/T3eNVAohzC5YMbSWp5Kgd7T4Q8meyYYYC97akjAbPIY3pkPdxTxFi0lO69 -dOQSg6cj +MIIB4jCCAUsCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQD +DAZhZ2VudDQxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9ODycAmQFQY9TjC+2PI65Oi2qfJhvAwSB +xwrTOMIIPiw/p2WxG/Nj2FVNIzMKnD8PxhSQLp9Jy+B8kInxmluAu/RYLlnTnp+R +XVILn8eV/AYbDJ/es1lYOK1O23vfwfKn8lZx7n6atBTULFdXygAmRSzm5oZ2gy/K +MJ69PUnlWwIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3 +b3JkMA0GCSqGSIb3DQEBCwUAA4GBAI4ksOnyG7so/N9HdcDCopz+7DIS7FvggS6W +eqMADvdWjmJu24wkQsO7322E8TD8ws9yyNKjalJHGic86Ugmvd7mJgv5po89Mqcz +mHTHw/6QZ/3Y9rfQgg4nk8Mx0rVgLrg+dvgbzRpQ0ybK+/btCwI5iCNYR/tx1pns +W0afkoLM -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent4-key.pem b/test/fixtures/keys/agent4-key.pem index 51d2f289a6f207..a0c6bc9242c985 100644 --- a/test/fixtures/keys/agent4-key.pem +++ b/test/fixtures/keys/agent4-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICWwIBAAKBgQCZE1Xf+jFX5gRfGjTBcdsDjmCbhLI+HGXGLRld3hdqya4Pa7gb -nstXe64RDt9Pfg6GI6bXOv8y/kgTx3d3S6lGOkVSu7jnPEqDiduo7V7TuMzZirlr -DB+TwFmmjsERhVnpI6Ik762r9EUI+hO2NqDCwOBSofD1buhXFdZ5TQ2aYwIDAQAB -AoGAHkS7g1l2rlnWXXPSILpBw3dA1R+tGykEWuaKEIyc9snAeF4lfpisvrS/G7Jk -J9TWTGH6WK7azZuIZxjXH6i/ZMxOjd2r0P5RFo0Gjn3VtlCFw1c21TndIEhT/VbB -IfnFmPS2j/tNAq03Bn+VyB665XcbO/GCJFIxEDt+Nsx6yVkCQQDJOd8TXZ1bbsEJ -KsN/XZSKgP+qqqxh1Bx7+7/a8nbhCfSV41qt/zyUMBFlB6xKaU9dRU3FErtIH7pU -8pa0WMPNAkEAwr4rGDGX3e7ihc4pjj2I8J7xEU1q30UK8YzTMJt8BipUAHhFqpQa -RJvvsCUS3If3d+ZDaTQBSogqFjOW1/gG7wJAbLhw15S/3VPExkAtqlYUWJUEDeDz -DFQ/I5nMee6A3muzk3xoVRRPVb122IBBzV6Cu+Ei+LR7Lae+1ADR/hTrjQJAaAzD -acHVqragQW3NtjoamLXTh7Mdjv2Mw1LC5A2vTnv/NeENF/7Zqh7HCg5E7Z+YEW/u -RJ+MsQ3frs0Ro4LZ8QJAehOewhlYbd3REtJ/6QxbsfsURnGzdEjYS94qgNGyPUs5 -KwcroVGbGSu+K7xtKqOuz+ILihRDkX33VNGtDnKVlw== +MIICWwIBAAKBgQC9ODycAmQFQY9TjC+2PI65Oi2qfJhvAwSBxwrTOMIIPiw/p2Wx +G/Nj2FVNIzMKnD8PxhSQLp9Jy+B8kInxmluAu/RYLlnTnp+RXVILn8eV/AYbDJ/e +s1lYOK1O23vfwfKn8lZx7n6atBTULFdXygAmRSzm5oZ2gy/KMJ69PUnlWwIDAQAB +AoGAUDom4JLW66+XYHogxKi6buiu8gkv7GmgIJJPEa2P/0S1KCwGnuhV8vCHglQ5 +UPdceYinsVZDLVvnC4mRI0IqJxlbZ383EmDGJU6K6gn0pLVM+VBcqQKG32y9GtXu +eBBchRi/tFDiCWRkBETz4O3UDKJsr9ZvsxmlrmwypURnBmkCQQDhDeSBTfbErLRY +rICMZZqXWK+Kg/oRX78sQCnOvehQCwRU/jCjbtSiKhs/FVJWNC5CRpCMQ5rpbWYc +jguSpwtlAkEA1zzvYbKaLcEFRbmOwLyC70CQOll/IcviOKcd0TlBE4pfTrIZW+GW +MhNTsf1bu/ZAfo/mKluuhxiPFeOEx9kBvwJBALPXmTmnJsJFzJxrxRHsg5vb9/M1 +wdiubaOb5ozaf1GvbBfLROzlPTAVe85uaGyQqEK4Bvy/bYSJsqaw8BiSOm0CQEOr +3+OKoNjzz/GNFqnYWx5X4UDHNKZukNCZElHeu2wmXDLE4h42Pd++ndjfPIFLOhnQ +ql/09Vl6Sjpqjyu6OccCP3TqpfqihkMkysTbC529Mh7h2okjWdkcHp9LNDn0EQj3 +BAkB5XEgSLxiqAsao37HDp/Dflhgv6ZL5em0E5bAaQ== -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent4.cnf b/test/fixtures/keys/agent4.cnf index 5e583eb5951b5b..8839ba64f53374 100644 --- a/test/fixtures/keys/agent4.cnf +++ b/test/fixtures/keys/agent4.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent5-cert.pem b/test/fixtures/keys/agent5-cert.pem index 9264e61912b396..2ae70a9788cdab 100644 --- a/test/fixtures/keys/agent5-cert.pem +++ b/test/fixtures/keys/agent5-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICgzCCAeygAwIBAgIJAO6+LOUhGhL7MA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV -BAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoTBkpveWVu -dDEQMA4GA1UECxMHTm9kZS5qczEMMAoGA1UEAxMDY2EyMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTExMTIyMTMxNDdaFw00MzAzMjkyMTMx -NDdaMHQxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDERMA8GA1UECgwI -VHJlc29yaXQxFjAUBgNVBAMMDcOBZMOhbSBMaXBwYWkxJzAlBgkqhkiG9w0BCQEW -GGFkYW0ubGlwcGFpQHRyZXNvcml0LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw -gYkCgYEAtrYJnvw24liDRWrfRDp/aBRwAK3xoaJ99YBCj7U8955GJvsoN21q6ZiD -gT+/7K+HA5gxLXTngrSCTzbk8qfGTD+Gco5WoOK7ubm5R4ePlGrT+yCMaUQBKzX7 -3s3f0rxuAI5F2qCtIJAS/K6Nk3v6C60DyK/rudnY/+d8dFQf2gECAwEAAaMXMBUw -EwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADgYEAIKKOEGadVtoi -OYOX1jXbmJzOQjRM04igJaBSuV/2n0IMXpSrxRKCU8SrwgK4BRC+w/cmLezUeUXL -zCuHBypIXQBC6PgveZvLZX/mwetup9Jml7nM8t7cxIaqUzwTsMpXrBPQiZplVS0b -Kqhsp/QNOSr1oqVd3bQ5iZ8N7R+6VEg= +MIIChTCCAe6gAwIBAgIJAPgVnPVA249NMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu +dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EyMSAwHgYJKoZIhvcNAQkB +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTZaGA8yMjkyMDUyMjAx +MTY1NlowdDELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MREwDwYDVQQK +DAhUcmVzb3JpdDEWMBQGA1UEAwwNw4Fkw6FtIExpcHBhaTEnMCUGCSqGSIb3DQEJ +ARYYYWRhbS5saXBwYWlAdHJlc29yaXQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQClldd/5IKiKBpRdTuJbkYpfM8ksSRn6kaDrmDXgnywjEZweBieQf4N +T6KrnIVowtW+aDAigYKxFupdhKdzzSTLoQkxKxXzdeiIYjaL39SMtCBCQeziJ+0d +yEVUnA23qySJkkQwAZgH6O09XOfxoaDwoXD5/exPAv341wN52GITxwIDAQABoxcw +FTATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAYTgQziema +Qm593zYGZ5xjQdRl5+cgA6hVAQ6SMDLFqxsPaLd+YumJhlZ2IqBrRT+mjXjS94Rh +S8wCD2xZ8f4XRiE61Sc+K4xkY0ezaNMkc+iVw40aYX6nqoiNimGzk/k/2r9q5SGa +MXzu74XMo0fyCKW2yAdiecQZMWvkadgwzQ== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent5-csr.pem b/test/fixtures/keys/agent5-csr.pem index a40b2206f7936e..32424ab7239d7d 100644 --- a/test/fixtures/keys/agent5-csr.pem +++ b/test/fixtures/keys/agent5-csr.pem @@ -2,11 +2,11 @@ MIIB2TCCAUICAQAwdDELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MREw DwYDVQQKDAhUcmVzb3JpdDEWMBQGA1UEAwwNw4Fkw6FtIExpcHBhaTEnMCUGCSqG SIb3DQEJARYYYWRhbS5saXBwYWlAdHJlc29yaXQuY29tMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQC2tgme/DbiWINFat9EOn9oFHAArfGhon31gEKPtTz3nkYm -+yg3bWrpmIOBP7/sr4cDmDEtdOeCtIJPNuTyp8ZMP4Zyjlag4ru5ublHh4+UatP7 -IIxpRAErNfvezd/SvG4AjkXaoK0gkBL8ro2Te/oLrQPIr+u52dj/53x0VB/aAQID +AQUAA4GNADCBiQKBgQClldd/5IKiKBpRdTuJbkYpfM8ksSRn6kaDrmDXgnywjEZw +eBieQf4NT6KrnIVowtW+aDAigYKxFupdhKdzzSTLoQkxKxXzdeiIYjaL39SMtCBC +QeziJ+0dyEVUnA23qySJkkQwAZgH6O09XOfxoaDwoXD5/exPAv341wN52GITxwID AQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqG -SIb3DQEBBQUAA4GBAAoVh5wdSi58RJrwy4xaXeZwrRUeCEfNf66AhAr16fa7AxMZ -7XCMGVYTCcPxsFaagYptWYigYOP3vC89i1dm29PjUwRvyTvkSQ+o/8Cjs+BESeG2 -HrmK7b7xQjXCUwUXfHW7bnqVsTXcX1QfSztWKZANgETITD0MsGjh6Cdv+6ze +SIb3DQEBCwUAA4GBAJegSKpkqj2SlIyWOF1Km2YcAmW8sPlBsAVbP6Ymui6e63PM +u4wnufVABUEAYomBXQYx1WVdnPOFw1as/buRrGGvbqQZm15LpjKE0JfuXo9fliqh +f+TXRrTBkvIqhK+2nBQRGmxuZQ+6xFUwT3JRFxBzLhJuSLy7Xfhl+QFlq7HB -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent5-key.pem b/test/fixtures/keys/agent5-key.pem index d9ee12e4d6298c..07e358546ffa42 100644 --- a/test/fixtures/keys/agent5-key.pem +++ b/test/fixtures/keys/agent5-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQC2tgme/DbiWINFat9EOn9oFHAArfGhon31gEKPtTz3nkYm+yg3 -bWrpmIOBP7/sr4cDmDEtdOeCtIJPNuTyp8ZMP4Zyjlag4ru5ublHh4+UatP7IIxp -RAErNfvezd/SvG4AjkXaoK0gkBL8ro2Te/oLrQPIr+u52dj/53x0VB/aAQIDAQAB -AoGAbB+X2/THifT1YhwXmenAQdhuW4iUSKG/RowrV53aQXLxctoId5yRu0Ec+Vy/ -eBJ7pJ3o5EydQFUQFE6Y+BxfFPogncoTu7U8I5S38aBDaL5teX8DzaDqLvcqU7GF -s+nOACcCErQ2BcpasTkKBFzzrpJtAes2jVzpsfa48JZtc70CQQDe0uUtlKR7tatL -sugU7OfRoeV1c/tHWp/5HODY0ZeMYvbNw6SqebKeBts26rJNGn4b4LgJs/TTT3qz -ux6a0ex3AkEA0eo22zaBVjZcygfIfEW9tyfGT1eHgfE/DHcaPHekwgwltoo2gEkU -hzWy7n09MTkM2Zw6RBz6yvbdJ80/T8UjRwJBALfPJPqauazLSgjiBozseLb3ZD+l -c02DNp/a8KgrDWbjZFCM6VMvnOa7JS6CIJ92ET2R/H8UkguWbtPAshhovzUCQQC8 -uU8SbQGBKiToOnEkUWtMhMUFRlN9HxEpOtdqr8J/933cjIyNb6a2HTA+vHhMjdcg -uhWkcU2FNscEZsJaDIo3AkAOnbQTW1w4WjkV92B+EH6dQfS3wdCFVDUYM+POcwfQ -7HNtjmk1XeMTkGLlyinyFe2nARfXXzMmyRYP8o2m9uCf +MIICXAIBAAKBgQClldd/5IKiKBpRdTuJbkYpfM8ksSRn6kaDrmDXgnywjEZweBie +Qf4NT6KrnIVowtW+aDAigYKxFupdhKdzzSTLoQkxKxXzdeiIYjaL39SMtCBCQezi +J+0dyEVUnA23qySJkkQwAZgH6O09XOfxoaDwoXD5/exPAv341wN52GITxwIDAQAB +AoGBAJj3rwggEqo4v+9mjKSuMbTb7wSnfMlevNujOSV+DzCNtfjqiVuR/V9QpSdC +RmB8NTdcSrNlz1VHpSTVilhJOGZEJO0FMVPzEj3SHpYltfn6nULIhHCWnw1w1/1L +HG6KpBqphGWD88VZrIrFYJqsqZ4dYJmo4wSuEWlNEY89IT4ZAkEA2QJS3nIetck1 +WDse+AcUxA5xu/cm2RKYMHCVtXFnLKM2LQBlHw1XKiDq4vnuOJcBdTplCHfurxzr +H3QYiQxIGwJBAMNWM23i6w24nN6bAQvT+0cfdCRjfOAdA18a8NePBIBFGXFWLoNU +ZX/B44pTbVJ3ZD193TQD34JT5CDx8EcTNcUCQEUvZngg7gWK1oUApEjzCP3QlRYW +H76JHRgkbLZiJ0Cl8Dm8rICP4kA+KmSexgIosoBLU7a1ddVCZPusKb5Xug0CQAc8 +nlMn4QV1HXqxy2wgwmJ0K91dQjcbXBCd8uZJiiUmajbktnxvGAOPr1pklNxFSBVv +IE7ZBeLSMNV3oStA7vECQD9fJpLUpakpuZn8k6/YI9KMeN6EvS3QEPPSzCZQV4A/ +BEgBKV4hPdIC7CkTzYmjIjSZMOYydx6dZZHu7+2SIhg= -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent5.cnf b/test/fixtures/keys/agent5.cnf index 1958e21cf9bfd0..710a677037cda6 100644 --- a/test/fixtures/keys/agent5.cnf +++ b/test/fixtures/keys/agent5.cnf @@ -2,7 +2,7 @@ string_mask = utf8only utf8 = yes default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent6-cert.pem b/test/fixtures/keys/agent6-cert.pem index b6c03990f4c740..f47b6bf28bad67 100644 --- a/test/fixtures/keys/agent6-cert.pem +++ b/test/fixtures/keys/agent6-cert.pem @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- -MIICajCCAdOgAwIBAgIJAMTNiT75p13MMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV +MIICbDCCAdWgAwIBAgIJAOmH20toP0GBMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EzMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTA0MTgxMzI4NDFaFw00MjA5MDIxMzI4 -NDFaMHQxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDERMA8GA1UECgwI -VHJlc29yaXQxFjAUBgNVBAMMDcOBZMOhbSBMaXBwYWkxJzAlBgkqhkiG9w0BCQEW -GGFkYW0ubGlwcGFpQHRyZXNvcml0LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw -gYkCgYEA3Iwmwd6gdWH1AlSFeuVsEY/2MQm3XluOyHR9HNtXkWqwcQqVL8FX3NHt -//1jaSTMJjkR4FhC9R0hX6wyUuBp11J4GzoDqd02JUkCeUISq/3/2G+ynaZCx5Eo -GNHhcN0gALTCET/1QMD9h4aBjRbij3iHUghcbgverfkasp59WWcCAwEAATANBgkq -hkiG9w0BAQsFAAOBgQAmfrCJY+FPeOraPTUQTYf9rXqfVRQEVc/yyVygPbtg3gtA -yST0wI/g6sBjQ6Mm39yMf4rkWmwOKGtrKcqs9o9NdM5g5QQSWeg925Ex6aB+REgz -qjaAsLM88BJ0QU76VPi6K0hDSpeuQ6Zrcp93VkdGdVZzna3FSCMTNRnSq/GuMQ== +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTdaGA8yMjkyMDUyMjAx +MTY1N1owdDELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MREwDwYDVQQK +DAhUcmVzb3JpdDEWMBQGA1UEAwwNw4Fkw6FtIExpcHBhaTEnMCUGCSqGSIb3DQEJ +ARYYYWRhbS5saXBwYWlAdHJlc29yaXQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQClbVjopeoE3BHAf9O/zO5DyQvpNfRBB4QMnaUVhsfu0arp7YKMYS1v +i+HjIP60m/6uaXpgWQPGJIAcO8V1fGq49U4/XgLmsgmSeaSjd5XzutDYVJRHFQVu +Mr9oKKf/1cCfCqJzeUDirC5snz+rauzLlD6dqS1293v/1naCC+akMQIDAQABMA0G +CSqGSIb3DQEBBQUAA4GBAKFx8usWox9ncOq+h3KPjXH1y6m7ceKHs3zUj1UiSmVp ++E2cFQX9Azceqouf+m8At2e6Ki8JezY66JmZvh0vEUDg7RxIcQf9IRaPADub+MKp +UtAeaIgAQMbRl2dEiSrfjPoOBoqNy3R1eIfrDEyDsiPpqJALbUxfA/S0Ly7JMQIC -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIJAJqEq8+4pyq/MA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV +MIIChDCCAe2gAwIBAgIJAPrVDMagf1FtMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2ExMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTA0MTgxMzI4NDFaFw00MjA5MDIxMzI4 -NDFaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzAN -BgNVBAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EzMSAw -HgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAqs4MKn9saUIu/9EfHQPouC3kL9Mo5sd1WR6RBeSd8cqeFxXW -EWEq/P0hUeAH1sY0u8RFOccJmSJg8KTyRGc+VZzWimopz17mTuQY4hPW4bFzqmQm -7STfJz5eHzynBTU8jk5omi8hjbnRA38jOm4D7rN/vqtB+RG+vEhxONnq4DMCAwEA -AaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQBo8rX1uZWHvKHG -gWw+LXrY24Pkg8NdDRmfqEVyuaR4GoGGOXCqlVaFa6x+4/eqOUzHoC9uGfPtjrvW -BYQ1o/l0JZWW4KZYuXoVuMUSj+sel82mf9zLDeq5WYTPECgJDMfgVpXOmhHfyezn -SkUTX7XJUohjET+X5BqTFlqRT/RfIw== +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTdaGA8yMjkyMDUyMjAx +MTY1N1owejELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEP +MA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQDDANjYTMx +IDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQDIVigurX3u6qjhxxWERDRINbd8jc9VD1GD1T5SCt1oBjeK +qyUSEV4f6KFvHuh3oKjmiJy4OvuiNMkzNxI3v32yoJHkQUchB4tlBVLec4gz+ZfO +9RpM10gPBes9nSh6LUx4myZ8Rpungw0UcZaGvrwPNZYbFWvCqUSuea4GVF20fwID +AQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACbwa28NeiUG +mqw14fpmT/ZDpc/BAR8gKO8OutMZO5oKjlFjplhujFlie3Zza/hxIlztF8IdYCE/ +/BZruPB+ed9ls5I7ODH1dFw8YAhxsa4y/lNP7Cq721SH49oFZJslqj1PYmhy1q4m +XrNdd447SPkWlB1D1s9NYINmqzNEsJyU -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent6-csr.pem b/test/fixtures/keys/agent6-csr.pem index 9d1925682b3903..d19b5e31c9d5de 100644 --- a/test/fixtures/keys/agent6-csr.pem +++ b/test/fixtures/keys/agent6-csr.pem @@ -2,11 +2,11 @@ MIIB2TCCAUICAQAwdDELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MREw DwYDVQQKDAhUcmVzb3JpdDEWMBQGA1UEAwwNw4Fkw6FtIExpcHBhaTEnMCUGCSqG SIb3DQEJARYYYWRhbS5saXBwYWlAdHJlc29yaXQuY29tMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQDcjCbB3qB1YfUCVIV65WwRj/YxCbdeW47IdH0c21eRarBx -CpUvwVfc0e3//WNpJMwmORHgWEL1HSFfrDJS4GnXUngbOgOp3TYlSQJ5QhKr/f/Y -b7KdpkLHkSgY0eFw3SAAtMIRP/VAwP2HhoGNFuKPeIdSCFxuC96t+Rqynn1ZZwID +AQUAA4GNADCBiQKBgQClbVjopeoE3BHAf9O/zO5DyQvpNfRBB4QMnaUVhsfu0arp +7YKMYS1vi+HjIP60m/6uaXpgWQPGJIAcO8V1fGq49U4/XgLmsgmSeaSjd5XzutDY +VJRHFQVuMr9oKKf/1cCfCqJzeUDirC5snz+rauzLlD6dqS1293v/1naCC+akMQID AQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqG -SIb3DQEBCwUAA4GBAEU4gmRyeeh5TMYG3bI0biXr+9CvkYBaHwZD5o4TUo8AenIR -NTrJdy9Pg9B23eOnEnCDB+KMfl08UuaPxbKRXRtYm1rTC8v5wmJEpZdWxum4c3hL -3o7J8/LmjRGQImr5vnS5zmsVrBLtjW+jVpSg5xnXFKQmpXPfgRwhvbu0lXf7 +SIb3DQEBCwUAA4GBAAQVVx4gJtdNpKrVpQ90Vu/nj/43Q4p/c2KdKlwzhkvcBp5X +5oJQdU/z9OJTRJIz3U3utDsmsNwPIaeSomPISr1OgmKfroytr36AkUmpeqGjK7Cx +ywkk2iENiiddS8eECmaYXO9iCwDelDMksFUrE8sEWYUwCjfuHMISiirmz5Dq -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent6-key.pem b/test/fixtures/keys/agent6-key.pem index e42fa2d1d1bd33..898457f0ce6cb4 100644 --- a/test/fixtures/keys/agent6-key.pem +++ b/test/fixtures/keys/agent6-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQDcjCbB3qB1YfUCVIV65WwRj/YxCbdeW47IdH0c21eRarBxCpUv -wVfc0e3//WNpJMwmORHgWEL1HSFfrDJS4GnXUngbOgOp3TYlSQJ5QhKr/f/Yb7Kd -pkLHkSgY0eFw3SAAtMIRP/VAwP2HhoGNFuKPeIdSCFxuC96t+Rqynn1ZZwIDAQAB -AoGBAIL3AsjbL8OksL56fG0XMY5YQ6SpFWeFzQsCCY2KPrzOcwodc6vRDyDE1KTP -zimQvV3xQ8lKADDX5IqQka2fL5mgF+LighVvGHDm6M4ILJb46SDbuINwnqqvVuye -+OwjHBGEmKu18K+eL/YoCh3+sFTKP/18F7c7DGskCyzyub5RAkEA+Fs1ROx5w8AH -cbIH4fMU/QBGQVnuKgNXGSPcT6NHqFLbrhvNn5HwoF1SiJKkML1h3gVpj3T8kquw -Y1FcTVB9eQJBAONV1qXFo7i5gl2FyPuXvpgdzIXxzzr6q3seDkCR7q/vfBo+kKAx -zyG2xjJrCc9+ox4Vh257qK9b57W6R6sWNd8CQQCeAHjNVpzI2nxh6t908k8h/nCz -1uDcPa/FwLjCuaA3CC/Wfr28jP5HJ9gAJzrp/zIqK8tShxzAuxXGudY9Ib4RAkEA -v+3elIIx4WktOQwUTOUmEoNGAufOD3tGf2E2oykRnRPRcM7Vh4nF2C7ZUgOweq/t -wx5mAs7/8VzkWTb1/ul3fQJACLBXTChgyA77i5C/035tLwQbeLOjexLblEI0dgkW -HIa8q4ZL0M7L+/oziQ8zIT0bTAqEG1Q00PgFLl3m8gDuNg== +MIICWwIBAAKBgQClbVjopeoE3BHAf9O/zO5DyQvpNfRBB4QMnaUVhsfu0arp7YKM +YS1vi+HjIP60m/6uaXpgWQPGJIAcO8V1fGq49U4/XgLmsgmSeaSjd5XzutDYVJRH +FQVuMr9oKKf/1cCfCqJzeUDirC5snz+rauzLlD6dqS1293v/1naCC+akMQIDAQAB +AoGAGfA/VJtPSlvHXMuuRBC5+172wyZ2mgu3pNLDI9DyYHv3tJ5NLf2+xhLE5Hwz +89XR5T8ctSa/9L2caNDmcTmE8iLLAquhc/ZrxVGrL3RvL4CSur2X+7BF5i4QESrr +V50B23PlocoPyfhaZ+f/2HXm1i8JWZeHz/l7ky8e7+GQ58ECQQDXNDvF2cfGfG/c +AiIuawr9uH55IPeii7hw6qmDpJ2haas7jGJ56rAU15Xb9dKDm6prNKaFyeHK9YLl +olQmT2x1AkEAxMl17Sih9mt1yZFWWKWt2gmetQR3zITox1r98ocoMxtzN5d4JHd6 +1WleBvTvLnv6DQyKZgUHCo5YANHQA6pRTQJAXUlmM8DQ6cidULiYCpkaPZvRLz7M +OejpPgFrFAay0fqVYI3dTk4eoBpH+v6Xj7dV63z6RnqZ5zn/0P1KDwVU1QJAWhVj +X5KXOggNXp2iqmgFwudeeL033i8FpKUZ1Vlb5LFvOAal4AO1/lYCzip4B46HdEvG +W1d31rQ8wvtJPzRLjQJAfhQXhlqngx7oUAdaz1Dy4AXyv6+khAXqq7aoQPq+Df+l +buwTlQkUTyHdPXha6eUnpnKhD14omo8f3OY/1RdOsw== -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent6.cnf b/test/fixtures/keys/agent6.cnf index 1b66c9b0d7bac1..8fa963f2d58e10 100644 --- a/test/fixtures/keys/agent6.cnf +++ b/test/fixtures/keys/agent6.cnf @@ -2,7 +2,7 @@ string_mask = utf8only utf8 = yes default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent7-cert.pem b/test/fixtures/keys/agent7-cert.pem index 0107ebbe172d13..6a26fd45f2e5c5 100644 --- a/test/fixtures/keys/agent7-cert.pem +++ b/test/fixtures/keys/agent7-cert.pem @@ -1,19 +1,19 @@ -----BEGIN CERTIFICATE----- -MIIDEDCCAfigAwIBAgIJAKpGbw//YhvMMA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNV -BAYTAkNOMQ4wDAYDVQQKEwVDTk5JQzETMBEGA1UEAxMKQ05OSUMgUk9PVDAeFw0x -NTA2MTAwNDI4MTNaFw00MjEwMjUwNDI4MTNaMF0xCzAJBgNVBAYTAlVTMQswCQYD -VQQIEwJDQTELMAkGA1UEBxMCU0YxDTALBgNVBAoTBElPSlMxETAPBgNVBAsTCGlv -anMub3JnMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQCur6nhJBpxAmWKVbTKvEDn8YJ7ebkpNSwNVMzSycmvo3XOIogw -ZngRJ/dL8YM/+p5CvAheJ6IqThgRw6+Se42O5ywlYpaHaY7n1oaFJC+2RUoPwdS7 -Rz0dl30kXwUnKlllqkGDdFwMUD5NlXBLsGgiW1gkPHCvlOYxfuv50z3yIMgxfVGP -a7FeAYIHkRWQ5VrvugT70YaZMhLoMnj8c6RcIe81PV3eCS5Pp4ce8SGUkzAV9AFu -f4yVlEnPqqy/VrinT+xNrRKt+2YijIb54i75p+2AVveOhpLcCcB2K65Zgc5LnZB8 -EY7W8/Qfh0DOAZibOd2vrUl2pkkOlR+qkYX/AgMBAAEwDQYJKoZIhvcNAQELBQAD -ggEBAIiPC5SMDJAbUwkEWZxSleKfliLnycwaRfzF/B+8CUMd+hrVdrKe/u1aPDEV -FgWq4Vd3K3jtGZxwfW8VMjtF3aj7vd/Lx6XUbZv+VUKURlDRktBuZTDdYu5mECV1 -+iDd64robqeYbZ04w1pnwArT50+oZdmQ9BgbQom1B4FoMhoeSX7A0gITH5BHW1xs -SRiqI7tDoDqhhn6X8pWoiq9QpXCSjXqUDNlxmiL5+e9j6DUv+e4z/bWY0s/COmY6 -2gGSZDJGDcpwx8RgEy+1gDNMMApqLZxH0b/RwtE/9R9OiPm272pCuz2zkdQM48a0 -9/GbQ68v2fmDZRF2WnYrkTSzF0Y= +MIIDEjCCAfqgAwIBAgIJAL1FQTepkhMPMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV +BAYTAkNOMQ4wDAYDVQQKDAVDTk5JQzETMBEGA1UEAwwKQ05OSUMgUk9PVDAgFw0x +ODA4MDgwMTE2NThaGA8yMjkyMDUyMjAxMTY1OFowXTELMAkGA1UEBhMCVVMxCzAJ +BgNVBAgMAkNBMQswCQYDVQQHDAJTRjENMAsGA1UECgwESU9KUzERMA8GA1UECwwI +aW9qcy5vcmcxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBALCm7Zzcl94OLdlf5kL64gZNJby8pnR/rODqM90iHBqQ3wNe +645i/icRk2D89kOSFIJfPuyYBNxsslE10p1Z/+1SeptK6bf2G4BfDbAiEhkoGNfz +gqj+CsvmCePlN0wKt5Dvr3ePc2ZzD+RPMe2nyPYaJzen3eG3gtxNcJjUNu5q8UmR +acPXexRctxkGMknZwIQffZbw8imbXCx7UAqxsdbvqM5y3xYFhAEkoaavVYNbXdu+ +LxKiIpRSqqPRwMiKieI0gvMtGJ17VFyrQxReB1rRtG/FQyFc1KdnTLbMbpJ14I23 +uhe211TTfgXIdHJo5GWlvb8GH+jplPfvFIA+tzkCAwEAATANBgkqhkiG9w0BAQUF +AAOCAQEAD+viY75WLCyN6U9VMYUT9K6AH3rEAMtxS5XgMUnXGDqz17BF88gDc+Rw +qhDQBOdWSNgo7xYfAtYk8KYy2THo0tDoIT1lE1hUvK63kwY/HivKZD+/A8vQgWyM +m/b6mX7fEHNf9UrqdU8IiUJy6Gayd2ZUeYW1xOm4hebdEy8/SE5rvlodePbfwrQe +V/kAUN/SBjWsk1oYnAk/MYV03p5JbfqpYiVM3/wO63SS9Kos2JfoSLYT5/iUBLG7 +TaEToJFSoA1+UCL/1v2hbWcCRHZrku55a6MSyAUxuCoTWCFHWWnKyC9iBBk7zApI +3zGymgVX6g21j3iVo97G07oAMIHjsw== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent7-csr.pem b/test/fixtures/keys/agent7-csr.pem index 6c0e37d9375e2d..556767b05c09c0 100644 --- a/test/fixtures/keys/agent7-csr.pem +++ b/test/fixtures/keys/agent7-csr.pem @@ -1,17 +1,17 @@ -----BEGIN CERTIFICATE REQUEST----- -MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjENMAsGA1UEChMESU9KUzERMA8GA1UECxMIaW9qcy5vcmcxEjAQBgNVBAMT -CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK6vqeEk -GnECZYpVtMq8QOfxgnt5uSk1LA1UzNLJya+jdc4iiDBmeBEn90vxgz/6nkK8CF4n -oipOGBHDr5J7jY7nLCVilodpjufWhoUkL7ZFSg/B1LtHPR2XfSRfBScqWWWqQYN0 -XAxQPk2VcEuwaCJbWCQ8cK+U5jF+6/nTPfIgyDF9UY9rsV4BggeRFZDlWu+6BPvR -hpkyEugyePxzpFwh7zU9Xd4JLk+nhx7xIZSTMBX0AW5/jJWUSc+qrL9WuKdP7E2t -Eq37ZiKMhvniLvmn7YBW946GktwJwHYrrlmBzkudkHwRjtbz9B+HQM4BmJs53a+t -SXamSQ6VH6qRhf8CAwEAAaAlMCMGCSqGSIb3DQEJBzEWExRBIGNoYWxsZW5nZSBw -YXNzd29yZDANBgkqhkiG9w0BAQsFAAOCAQEAgT89dg/uj55YDT0wqNH2spt6JBK+ -gF7Y8R7MBgGEJSbJnjAkJSUpKKPE3ph6mJ9naYl1U3zqt+xoQKdp8kn8649u5Hjq -TmmlsCExf0cznpMHINB9FG1aOoKdrsHf4o4eSXBAOacrpgnCpPAnaywE8F6Rc1a0 -3RDogwETUOFzTKvyl8XJQ2jUQt4qs9+fmkR12IVNe8IFPe2I8j5wMmQ81nUmFDpC -NHy35vXjs+7N15FEkkvbr7jxZzMzXAhdZLUEOwIcNZsfpgCCqRmM/j5w8qXLFShd -NUZn6Psex2Jkq2rcNwJ25739ORS69nWqhZrUvaaMP6IqjFcJBVWIyRwltQ== +MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjENMAsGA1UECgwESU9KUzERMA8GA1UECwwIaW9qcy5vcmcxEjAQBgNVBAMM +CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALCm7Zzc +l94OLdlf5kL64gZNJby8pnR/rODqM90iHBqQ3wNe645i/icRk2D89kOSFIJfPuyY +BNxsslE10p1Z/+1SeptK6bf2G4BfDbAiEhkoGNfzgqj+CsvmCePlN0wKt5Dvr3eP +c2ZzD+RPMe2nyPYaJzen3eG3gtxNcJjUNu5q8UmRacPXexRctxkGMknZwIQffZbw +8imbXCx7UAqxsdbvqM5y3xYFhAEkoaavVYNbXdu+LxKiIpRSqqPRwMiKieI0gvMt +GJ17VFyrQxReB1rRtG/FQyFc1KdnTLbMbpJ14I23uhe211TTfgXIdHJo5GWlvb8G +H+jplPfvFIA+tzkCAwEAAaAlMCMGCSqGSIb3DQEJBzEWDBRBIGNoYWxsZW5nZSBw +YXNzd29yZDANBgkqhkiG9w0BAQsFAAOCAQEAWo29DGuO+fzXS9/b6JYMbH/13+RN +nuxZx/rWLjRG3v128hC5dn7+M54fPIbsSUUC22Xr+qq7JoleeG8IAaFJGeCtAAw/ +x00uBqTDPbwbDs8ph+NvzSAXLyW9chiz4mfCPy/G+sM+a8harUeDyHDeYHPM0Dhs +yBiWKhVSkH0qbbbb2oLA1AAh4f4mN1J2/u88h6rtTTyKao/t9JkQkPmslxnW0e/W +HYvvQiUxm41YiaugHqSWSSgDZPEEJils3SyS9d41z0SlsEnSoh/TtPsTgqTHACXd +pW3CQ4lGPycXtKhkMW+wHm3iuiJtMCDVEhGw3eG5jOc/7wwSInqXrR0Iew== -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent7-key.pem b/test/fixtures/keys/agent7-key.pem index ff7268cf9d8fb5..db2c889980e3ec 100644 --- a/test/fixtures/keys/agent7-key.pem +++ b/test/fixtures/keys/agent7-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEArq+p4SQacQJlilW0yrxA5/GCe3m5KTUsDVTM0snJr6N1ziKI -MGZ4ESf3S/GDP/qeQrwIXieiKk4YEcOvknuNjucsJWKWh2mO59aGhSQvtkVKD8HU -u0c9HZd9JF8FJypZZapBg3RcDFA+TZVwS7BoIltYJDxwr5TmMX7r+dM98iDIMX1R -j2uxXgGCB5EVkOVa77oE+9GGmTIS6DJ4/HOkXCHvNT1d3gkuT6eHHvEhlJMwFfQB -bn+MlZRJz6qsv1a4p0/sTa0SrftmIoyG+eIu+aftgFb3joaS3AnAdiuuWYHOS52Q -fBGO1vP0H4dAzgGYmzndr61JdqZJDpUfqpGF/wIDAQABAoIBAQCNIXcKYnTKYLlQ -rjXGpZl6yvA0ef9Sf5b7nkts8YJ02IdQ5y1IjUDr+3IcdR8pDX3XRLst9q9ZpoZj -s8mhexi/H53XBnO/K1U9kWBVKQszI3/Wgy8vrzp9Mer0+5/aKKjZLliHr/a+LAZq -ABYd0IQRXeM0Q3B3KsFfs79Ks5QUjXjrOPCkFCKmLwZin0Oujbb88WDeqSHAYB0A -35lUDuQtg1rCNkTirBCdFAYFkfaRRwDGwdQ7L9cijidxMONYx1EapDbyqGL2BXJl -99ZVebokUKeKQrvsghQZhmcph1mHABsOMfRw4x8TGxMJJSRM264OYCn66EK1tBh4 -tA0oU5GBAoGBAOTZEF1cQWjHHLvMUSP4B/6ZxvcP9ZdQaPISrq2j9oaArnCxxYvm -XHTZRK0YAXzPnmhBXL46FoslDwUKu+T2gajl1NOBKk9C8uao9Xqm+IDKuA+ebf8V -1B31Sf5bxnBI9jMaORGZg5/KFGvl3IzBrJODPTFToLHoqlS+lGhHoMYPAoGBAMNp -g0+w8m/CsKapOhKZ6+91pT3sHsVUQ7JhTKpajpk+JOB7JaF1eZzuShTykkpDWmGw -VesgbpBx+/JnjxW3Lnq24FUp4t+9OZ5r3gr2uFPHkmr4laT8S1WSqspmck0jZMgM -zAIrLV7miAxVefrDjoqf5VkMaqwGoZavXU5UzLERAoGAK+vFCkYEf7mHODvUbtTR -o/mbiBtWBT53hc40HDtVuybDU/mqclk58WsplRcAYhXuzw+MXy4C2Z25LjyLJzxw -UhwaJqWpmyC8Qay3wFx/YSiG/uhnMAfeeAl1tA2lHjPCnLgxr8EI1AgSt0qcc59Q -IdeUTP1B4CNJXY5eKU1l+90CgYEAuU0aybzfiH80CDY87VqsUnxa32dCnpiTQVnm -2zvYMRSu33enbX36foewFEEZ2/YWhMA0GSy965dK9Mii9FKqbo9wFxILI2NKeiGL -gxYGINwEyg9DyBm+Tj0wW5HeHavMa69G3V+YPH+azydW7iX2yxlo4JJXrRz0qfFN -J3ReTiECgYEA4CIpRG5XzW6BEscqDBBQZ46RVy8wsnwxt62V2g2CImDwzKslcHK8 -oQurwl5WLKmvb0amMTedmVeIey3GOy23G8HrpHjEZjLi3wr3s3xJlPVajDBWw5Og -dgU9acdKHcbzv9dnsyC6eO1hr0TlEJqMkPuoNr3RihEuhv88rQbmGas= +MIIEowIBAAKCAQEAsKbtnNyX3g4t2V/mQvriBk0lvLymdH+s4Ooz3SIcGpDfA17r +jmL+JxGTYPz2Q5IUgl8+7JgE3GyyUTXSnVn/7VJ6m0rpt/YbgF8NsCISGSgY1/OC +qP4Ky+YJ4+U3TAq3kO+vd49zZnMP5E8x7afI9honN6fd4beC3E1wmNQ27mrxSZFp +w9d7FFy3GQYySdnAhB99lvDyKZtcLHtQCrGx1u+oznLfFgWEASShpq9Vg1td274v +EqIilFKqo9HAyIqJ4jSC8y0YnXtUXKtDFF4HWtG0b8VDIVzUp2dMtsxuknXgjbe6 +F7bXVNN+Bch0cmjkZaW9vwYf6OmU9+8UgD63OQIDAQABAoIBAFB/QLfCLdIaU/pC +IQNUn7qPXSrsLE3aAEVdc9TIvlW8vmMi1eREZ9wVvjrsCqwv3PirvljBzTVEst0e +0aKyaFUUyJoLQQV7OHz+05X3cJfWFbwSUu//E5xmbwtSYChemdeJ4UNyMvv0YsF+ +9Rl+46yBrm1GKW252f/Zqf16dq2de+FU/qi/Mhf0ruKtn/wHiDLyapyymr2qxO2s +O71qyZx7x/322UfzU75C0jhvYMsZlhJ/bJ4BdP689c5PDCzUF1aSwNxlkQkPkaAR +mbDVeHt4CSidVJwTAo4glbz6Lqg8FcKzSRyiWKtc4gYgAYdQ+TL7eUB3/a6wgWjr +6SmjOAECgYEA3sBlaiqufnYKGPCgmN4aDYMidcgEleVWpILk37l47ns4fvmymGvA +d4sG0XqIEtchnUidRs+ZGWTuCtFIunucorcM2Sj1LNbprXAmjxmDZrwr7sZsd65K +Z5XLuM2Jhk0ms5tQ2mfWSTo9RWaaWhcvgTou6XZb5LLQ7atV350k8RkCgYEAywUD +8v/WznkYeVZOH3nPtctWnRv1sRhDUtmDbj7slPAAo+JW4PmTDuqkW7MrOjdq6YyR +CgYnqhD/FzAaHQj3d9gofbOrfwX/fYGUDKE697SE888CRg3a0keNJLMEZumqib4j +BJUaLvAW9rFngV2aWgPa2PteDrc+TT6hsT0+GyECgYBjuCfuhlsFnBxbG+YZaVyq +belQZxG+dSP7k+mYSnTb9mfNWEVevOY13hRYVQ1zucF/oxFdsPQuDSQPza9MZKgz +o9Tpps9TmoaUMV/hsh9EL7tPMp8+WNVQWBwSiFknuYQ45bAlhlTFBYCGgC9bY4PN +y1lTBLyQvoiPzaMs7zGpiQKBgEI9ba9waB7QBfs4/J5qeSoAoU77m2tf1j+G9soW +v8xMjnjqVZxr8d5xEpVU3SrOgBSZp40UuwZTK1feeva0QUIaBgQVhkQYqebCS5Lf +XEUL4kFGbqB6zsXDULsDqdEGNn1gyz4og/WCoot1EKd16fGqxlH7mhHFGg/L+qfA +qq3hAoGBAKkpHzmQxyvKVy6hvLoIJmF2mKKh3xIihmkoc9F1dCUl/bEWnByYea/S +eYFfy0rSEa7unGtGAW8y8RsX5Qqypv83c0hY33dVO0atpKPXw0HfAythuuFUr9HZ +LQlwHN2QhrK3vvKiorHOrP3lskRKtkIg/sr1GoJ1TT2vy9fXt24e -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent7.cnf b/test/fixtures/keys/agent7.cnf index b2177948d02cee..ed3bb91df70179 100644 --- a/test/fixtures/keys/agent7.cnf +++ b/test/fixtures/keys/agent7.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 2048 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent8-cert.pem b/test/fixtures/keys/agent8-cert.pem index 86de1d44a64a98..eec8e13a85ccc9 100644 --- a/test/fixtures/keys/agent8-cert.pem +++ b/test/fixtures/keys/agent8-cert.pem @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- MIIDUDCCAjgCAQEwDQYJKoZIhvcNAQELBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNV -BAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRp -ZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5MCAYDzIwMTYxMDIwMjM1OTU5WhcNNDQwMzIxMTAwNjM5WjBdMQsw -CQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZO -T0RFSlMxDzANBgNVBAsTBmFnZW50ODESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkVSP6XxWpBlSjqqavwOhpp36aFJ -qLK7fRpxR+f0PdQ9WJajDEicxwKWGFqQBE+d5BjqrAD59L2QGZQ2VOF9VLZyFz3F -9TIlkd4yt9Od0qE98yIouDBNWu7UZqvNynAe5caD5i1MgyIUQqIUOnZwM21hwqYN -N/OESf38A8Tfuvh3ALUn7zBEVyUPWIWTYPhFHSCWIsS2URZ/qDLk8GavphkqXdFB -ii3V8Th5niPtpIsRF6Qhwh8SK+s0zh53o0qkmCNpXLd/PJQQAwC70WRq7ncL4D+U -C1gnDL0j9SzojXQu31kXs8UZTa7RFnx5r+gDiA/gGrLs4IiwDJhVHMx0nQIDAQAB -MA0GCSqGSIb3DQEBCwUAA4IBAQA7iMlm+rgZnlps+LFsoXG4dGNPaOhKI9t/XBrO -6O64LLyx/FPIQSaYi130QNB7Zy0uw8xqrH6cGRTJ9RCfBFFP4rzgIX3wEAHnmwMr -i4dGEixBUIIjhw6fAVxAhrkzmgUpUt0qIP9otGgESEYXIg7bFkXIHit0Im1VOdvf -+LnUKZw9o7UEesKIDVkuAsjoKKkrsO0kdf0dgAj6Ix5xmAtBsDvkH0aOSdPfTZG6 -LQrnZf/quBotog3NmDzrvQaH8GNpTJcYNjKlxD2z0PvQUyp0FD8oCC+oD+EGv2zZ -65scEXU/n8kTmdJkCjx4nb39HttYzOlNlTgMxAfxgL7A/PcT +BAoMDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsMIlNlY3VyZSBEaWdpdGFsIENlcnRp +ZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMMIFN0YXJ0Q29tIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5MCAXDTE2MTAyMDIzNTk1OVoYDzIyOTIwNTIyMDExNzAxWjBdMQsw +CQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZO +T0RFSlMxDzANBgNVBAsMBmFnZW50ODESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwD0j4pL8gbhtpmcKdPo/Iq1HpuZi +VOTjk16e/AfBXjvZoUg9lujr/Mw4X1+X56zfr05Y3+Pyr8euVf/2t81RwvqyjB84 +xFKrk3wBnciv3JodbzmL3aKqVeAwE2O3DSvcR/yaTJtW7EthnDfvaoUwSTN4zpZA +c/PMVpPK0LWZ98vjIdQ7dTOFTLDmawtVxWouX7VPdo0vtYe3/DnzyTojhWQyCL68 +KS9AeWc1opYWmjLeHhOBC+8ovfPRBd9/kjZX0SsWRCC3bKqmJJ48/QTJe2jQnc1V +ERgiWy8SCS9irPDJpqGeEXJiAhCEfZGqZzjW+G34803rBGZCW3t8BibtPwIDAQAB +MA0GCSqGSIb3DQEBCwUAA4IBAQB1ixGtVRFWh3BGT096vdIhOjg/v1c8RZeIEgex +/GKGxcTq7BnQTh4QCTIvcgj/x2Y3RVpKzjF6OCMgAxTeY8cq0uSxrJXAMtpEyOaQ +izF0AwE0baehEY14VlYyuReZOcjVRoQOkNuDUa9lgmfLXQPMvC6rNnpRkD1mt/ot +GBCdHEAGcQNzcRcGVsAFDf9X3Jq6misskbsq/m+If/XXaIiGvT71XsV3CQYp+RF+ +QjcI9bjOOKwb1V7iGl4BBIIDdqMAaLPdKLymYKGglmWAtwwm5n6F1ViOoDXi1VnH +vai/7152egBZ0uoB/KumTa2LpuJUAGQ4b0QA6wb0v+JuOaOG -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent8-csr.pem b/test/fixtures/keys/agent8-csr.pem index af749bcd1c8287..251cb7fcb5ab4b 100644 --- a/test/fixtures/keys/agent8-csr.pem +++ b/test/fixtures/keys/agent8-csr.pem @@ -1,17 +1,17 @@ -----BEGIN CERTIFICATE REQUEST----- -MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGTk9ERUpTMQ8wDQYDVQQLEwZhZ2VudDgxEjAQBgNVBAMT -CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM5FUj+l -8VqQZUo6qmr8Doaad+mhSaiyu30acUfn9D3UPViWowxInMcClhhakARPneQY6qwA -+fS9kBmUNlThfVS2chc9xfUyJZHeMrfTndKhPfMiKLgwTVru1GarzcpwHuXGg+Yt -TIMiFEKiFDp2cDNtYcKmDTfzhEn9/APE37r4dwC1J+8wRFclD1iFk2D4RR0gliLE -tlEWf6gy5PBmr6YZKl3RQYot1fE4eZ4j7aSLERekIcIfEivrNM4ed6NKpJgjaVy3 -fzyUEAMAu9Fkau53C+A/lAtYJwy9I/Us6I10Lt9ZF7PFGU2u0RZ8ea/oA4gP4Bqy -7OCIsAyYVRzMdJ0CAwEAAaAlMCMGCSqGSIb3DQEJBzEWExRBIGNoYWxsZW5nZSBw -YXNzd29yZDANBgkqhkiG9w0BAQUFAAOCAQEAykAWr5pOZh1BMc7NZgc66J16VkjN -KM2deMQNl7r3BFB336At+zmpudnjdT/tPaH34FT/Idh/DPfiSdpuDQWDA+E7xady -S7KoKfNesPFjV4rR1WgNtoix0B5EaaNxdR8ljwL30N/LbsMDWxIK7rWyhvuw3DXr -C90PbsOTCLbW1HGItgYCQFJnpXK1O1Vx0Bo55F//oxDGVTzkUqb0lsVGHLLCg0s2 -DxX3++FqFy/NjzZ5R/k1o+WIom1PzhLXJ+cqQsqYT9kBIVHTtvTAnDM70dZ8EeSW -/O4w+gb+OSJjClz7p4DuX4idDG+0cISxBOYFPyTFlGrXQ0ZXULP4pihsUA== +MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGTk9ERUpTMQ8wDQYDVQQLDAZhZ2VudDgxEjAQBgNVBAMM +CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMA9I+KS +/IG4baZnCnT6PyKtR6bmYlTk45NenvwHwV472aFIPZbo6/zMOF9fl+es369OWN/j +8q/HrlX/9rfNUcL6sowfOMRSq5N8AZ3Ir9yaHW85i92iqlXgMBNjtw0r3Ef8mkyb +VuxLYZw372qFMEkzeM6WQHPzzFaTytC1mffL4yHUO3UzhUyw5msLVcVqLl+1T3aN +L7WHt/w588k6I4VkMgi+vCkvQHlnNaKWFpoy3h4TgQvvKL3z0QXff5I2V9ErFkQg +t2yqpiSePP0EyXto0J3NVREYIlsvEgkvYqzwyaahnhFyYgIQhH2Rqmc41vht+PNN +6wRmQlt7fAYm7T8CAwEAAaAlMCMGCSqGSIb3DQEJBzEWDBRBIGNoYWxsZW5nZSBw +YXNzd29yZDANBgkqhkiG9w0BAQsFAAOCAQEAL406WiM09XflXU0d0pWbeKG3buIA +L5iO1csseS4tbHTdcy7H0cr54JZEOGaBbsBTJrn/8ILJJsBzurPDdaA39KGv87qF +DM9HrAiKGYWOUuUk9lEPoghZhvLsZ/FV/SI+HOzrMu6Yi7/En56vXk1YwqxOf3JL +Gd0OCIxYbHnGlxvwhRATadBJk07NmG3w5WI46ClRdHSEVYLiCsTB1raRixCbKmxe +9sJ7fG3vnRoxOVZ8b0mMzSPsPyCHYRoTCGHivIytm/tps5jRkF2v1+BFDcy/unUm +NKRhIB8HNVYmZlTPlWdw/k8z8w/JIE72sJXp4jfgha8Zx8tL4qAiUbK9WA== -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent8-key.pem b/test/fixtures/keys/agent8-key.pem index c1773f7cff4d02..e38210c6389e62 100644 --- a/test/fixtures/keys/agent8-key.pem +++ b/test/fixtures/keys/agent8-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAzkVSP6XxWpBlSjqqavwOhpp36aFJqLK7fRpxR+f0PdQ9WJaj -DEicxwKWGFqQBE+d5BjqrAD59L2QGZQ2VOF9VLZyFz3F9TIlkd4yt9Od0qE98yIo -uDBNWu7UZqvNynAe5caD5i1MgyIUQqIUOnZwM21hwqYNN/OESf38A8Tfuvh3ALUn -7zBEVyUPWIWTYPhFHSCWIsS2URZ/qDLk8GavphkqXdFBii3V8Th5niPtpIsRF6Qh -wh8SK+s0zh53o0qkmCNpXLd/PJQQAwC70WRq7ncL4D+UC1gnDL0j9SzojXQu31kX -s8UZTa7RFnx5r+gDiA/gGrLs4IiwDJhVHMx0nQIDAQABAoIBAHHp5KdT3Ht4XQfm -aDEXLGp3qhtzQDuTIWnQjZj5Z3Ax4wMmhbsF6tcY/Y1LjldjJL5QaGE/VMstWQRX -Tr4HnXCIJW/iZI2p+Qean4XXr0QgWhcI2VYHDuFWHiTpYogW7WlV/YfDooqU6n12 -BxfWStaL5L5bd9dbe8ZlJqVqN2iISfqGNIz9YKM04rHycTcicNmf0J0smkHlnHJE -ROQR73IXjDDOmkwdG75qyGRBQ0j0KEDu//n1axcOKf48F+8BQk2PFMq+RhkGGqJD -zTQK3kB33HRWeNWbykLPzYGcPtSlvaecCTc/q9wbbxh5AFlvSrPz3VzdRHECocM3 -v/o2vqECgYEA/uZib1ZYczuihcvLKxo8e/IBNYUKUcyosHDqAmJ5q8Y+Vg35ACfM -mJAhT1SXXAmm2tHuTnztfLDMQAOGVItuf5U8nuJYuWrvhMCtBT40XPeUVPD8b2D1 -9y5EipiB7huH8kMb1aAPUNgQhmqT93+4qcGf6PcNTkk6uHCCXFZEc7UCgYEAzyk1 -/T+Ah3p9+c1s+AjqkWj3Qa9lOKclJOT2O88AG+4fGQhSdUvkLDAMX3L6ri3gVZzr -wH3DJIwJx1uCW4eNJFVmh8AyP4SkfzQp1FqsIzBMQuPz6Hqtclh/UPx1yOe3NseO -xVM6Z5RbOOWyDaWxxbQHZnHkqSKcTB8K1lJ/XkkCgYAaStlMcrOc70HMW0ERqRsk -DcpiIt71oQ6lZIA+zrmOJly3s6lDgtdvxS4qaKdULwqu94iFQA2fFv16fOKWReuX -7WTbXq2YMpeSMe2m5Mux6ze5q0HemznDzVn0kdaVIPHc418zodbyl9bchpHMrbf2 -iqpb9V/B+3u7Gp/Xtm5JIQKBgBFrjr2wBFfgJg3Gh35ICamWoQwl+qYL8CStGEOp -QYIXwQey2nRAoHxSwgeYvJm/A9lPK8fxC2LcX8oi2NBnkqfWgpuxvsf2mHqV4VqZ -EVaYLiGF17HZ9xHhfTtLL4Boc9CocUoImKWzJQSg1BsvrsZIQEMOGsNaRLhl99xT -7Z/5AoGBAIxgzOGLVVrIv8vRc4YouPf0OGBmUawnEZxYVD1Mo4Tt97XjxH93B1iz -hof62zDCL7WEdKuwnOs1towBmLjC7qrAbkUgNVYmI5sG9c8+1NKClTOJGsHHiMLF -n8GxnsNU5FVTmJ/PZfOU+eru7uDYZHTkii0tkaHWUzg13pkhka5E +MIIEogIBAAKCAQEAwD0j4pL8gbhtpmcKdPo/Iq1HpuZiVOTjk16e/AfBXjvZoUg9 +lujr/Mw4X1+X56zfr05Y3+Pyr8euVf/2t81RwvqyjB84xFKrk3wBnciv3JodbzmL +3aKqVeAwE2O3DSvcR/yaTJtW7EthnDfvaoUwSTN4zpZAc/PMVpPK0LWZ98vjIdQ7 +dTOFTLDmawtVxWouX7VPdo0vtYe3/DnzyTojhWQyCL68KS9AeWc1opYWmjLeHhOB +C+8ovfPRBd9/kjZX0SsWRCC3bKqmJJ48/QTJe2jQnc1VERgiWy8SCS9irPDJpqGe +EXJiAhCEfZGqZzjW+G34803rBGZCW3t8BibtPwIDAQABAoIBABBw6jHFimz5vf7+ +TwmkIWQw17DxgTVrgf8nl4dMjoAltD4z9HiEoTI0sRmPDmnVAih3FejIEQhxlnpq +cspTeAup7z1Gqk84Fs59S5IYCNpgH+ZUUJ76+4ButQ3jeFNbDfLmKrgkjPGWnNmE +eyhsDa4lBc79ULPaBP7ekvj4nxtvIZM1NWt80ZE/nRPjl2fZKQKVIQHu6RQD4aks +LQYsqHV2c0GzOW5+PIcZJDkYBKcb+LexVxkLj2zbXKoFPkZBIUZB3VmXEkctCfmo +I/OZhtSg8yPfL/MM3md8FXq+tFRzDelmWZEHr4hlkvGcLWGyF8xDTZ7OOnO7j9ok +NBYnBdECgYEA6rO++sBhL/Fx+LgbnKp8Jo/oZsprUQtvoaBtrAmuWR/fVX8vmTUB +Q50OnZJ6EY//Xu4qjSIdChcIEjPaGd9WyNQDKjWdh4RXkAe92qKif1dSzo56lc2F +liThMn+zpzyrl8ssjrTSE2Ol8511/vlmKPXSgW01BNnPzYmamYiFcVcCgYEA0a7z +A77+9DSwaYrlV3sXpUKSVBf4oEcfFxY+o0MN+hL9ufSkO0+KtDl9TQK3UjjlikFm +eSAYtaEs/TFkP2bO9HUt+AxNBj3yqabxNb3uKvwKU4D9WIiMOVggPzsZZMn0nDXJ +mmuYeKJ58Tz08Fsqn9XMBe3IdM52r8CQzwR/6lkCgYAA3AenA21Xr5qrPoFbYYRy +37QKLFOYSGJwRRYhuydYTDWVKpISDY+jn7+d9BteVRiqUFT3j1hr4Qm2h1oVHixD +MAOS8/9Pr7xiWqTnWBEgRkGXYA4y3j3O/vOUK8OMqTw3ohbXrvHWAFdrPPhhpqgp +Hj1XG/9FtUZ9ijN2vHlAoQKBgARLLtK+0H2zroEaxQN7k8pgiJqMOx0dF7fjTrkN +IHYkeWmbZtmIEXELVFOFYLegTqL8H9sPGzJs8HzmzAS4WDiNRbm0lscv8Y4jywCs +uPnMW3HGTGnJsgVilpZ04Vo9AHNKbqxo06B0w0Z7VxCs7TyEpj7g1Z/+slN6//wd +PXlRAoGAK+sauzJ9rAPQyetIp1ZTj2ppkN0VYcI5prPnMijwiBumRZD/IkTL7pTe +H47iu/WzTI6wNI+JoQLkKad8vqm3eRkCg0zRtfcIYUvrcpru+jg2ClE8NxQXX7+R +IivQAD1Y0AyF7fV4vJh9YO+inw9Bcp4itG0hqTNZ244lWFK2E4E= -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent8.cnf b/test/fixtures/keys/agent8.cnf index bb50a0e7199283..c89841bcd4b6bf 100644 --- a/test/fixtures/keys/agent8.cnf +++ b/test/fixtures/keys/agent8.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 2048 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/agent9-cert.pem b/test/fixtures/keys/agent9-cert.pem index 196922986cdb6e..520ae4fde95e35 100644 --- a/test/fixtures/keys/agent9-cert.pem +++ b/test/fixtures/keys/agent9-cert.pem @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- MIIDUDCCAjgCAQIwDQYJKoZIhvcNAQELBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNV -BAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRp -ZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5MCAYDzIwMTYxMDIxMDAwMDAxWhcNNDQwMzIxMTAwNzAyWjBdMQsw -CQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZO -T0RFSlMxDzANBgNVBAsTBmFnZW50OTESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApT6nASSx9e2i/t0aHSd9BxMRD92o -33/iaiXWzBOKMJp7jxCWAg6SnpjrFsyjTxaAqg+e1zlm10YBT6DholstffzQqK2x -TKGVOQK4jxX23wJlrn5mDk0fagBtY49L1KFy8DxJqKgt7uxz61GGUWwKWXG7Vnga -bkqDd9o3ZF7bOq7mMQvfDzPrwYI8uTjTxR8R19uxNNOGtHMTnwvDeczTmtTox8U+ -4N2hN2scDZvRBx5aQAtnXRyZhAokAJMYojinx9iqlVFQi3ct52LIhsca6ympfDc2 -0yA4aSVfoW7NlqsnvrTOV4nt3UbrxGGpiE7Em8Hdcw2EMF+jqCTLGtsqYQIDAQAB -MA0GCSqGSIb3DQEBCwUAA4IBAQCMjKFycVQh7Puz/FpQh3NhJ99Ic3rzr+3nAKFD -4Kcl3L8szH3zjLCw46/y2jqPiAbg2zg9miYkI/2W/G+m2VQEQvp2SwjVr/Rj2Soe -iTonruUpDFF7LG01q3kpZ7nYWRGvVgn5D9BGk4/SWuzxiWRdwlzJf2e8cXLExVS0 -0CgRsb5nRoZ+RZmVIrGMfIi8CI7uTlcHtQzD7B7gpHtOSMlQoSSeqOy6F498duvl -QhhQhJBxmjSegw/lawWQSDFArJimK/rwyb6ZFbRfBgg6o/k5W9G5l0oG5abQMp+/ -u8Fd+QUNwR6OovE0AqL6wNHCnqzNnihTL6/hRVer6i5Hfxmb +BAoMDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsMIlNlY3VyZSBEaWdpdGFsIENlcnRp +ZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMMIFN0YXJ0Q29tIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5MCAXDTE2MTAyMTAwMDAwMVoYDzIyOTIwNTIyMDExNzAyWjBdMQsw +CQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZO +T0RFSlMxDzANBgNVBAsMBmFnZW50OTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1RfsIHFH/58sMeDPPkKCj4sK4ujw +jiSMLi/vuwBjK9h/LtnBZ0wd5kMq9J9mFtQe21dqb4f+z2G2ZthziJ7GHDpJ7WEf +HQa6cEHrk7Tct3XpyGYMvLmSHD+y54U8cO/K66w0k9iZvTiQ1eJxdaPkoQsdqinC +Z+fh2Icy9tWbGatwtddizcGFM71a2vJjcg8Fnb/X/D/fCbF9L8hl3EVqWSs8Y+BD +gIiJqdnc/R9RW8T8W1QeCmkuX/Nm1dJqLF5fNXP8lMgdSMHASTgPE1v5OJqGpIvd +wBYOuYCaGvjplsS+isBh2sDA98SgmL35GGHWiNhZIQkVMKzjgiDkKKU8hwIDAQAB +MA0GCSqGSIb3DQEBCwUAA4IBAQBv4AYF2CfowizdqeL9vrDOSxMQAowxAZWLsixC +RHfzkjPaaN0t0dApEIdttzmmif104LuK8lqQe9zvG/F7kh4Mhj1cfaJZraNbNprL +QHnnV+sSL+flSJfkSmSkuu5Cn78g72qnERqzwYZKHIBnMQhUf6yUmHxmxQlJDtcP +kNCX4vCkkC9MW91n3GDXpSQX8KkSIP+aP1kHqHkWr7mh7du9p/E7rnI2UfVcXg0C +db3eSDVq94e41HK9uWQgYRLLMz9OSnMmOgfK21o+eBWaHb+07Wo87cSPzuGVBtj7 +0DueLUdvSpliM8wZBIf6xzTdF401VinLZfFGyg6pYM0ADfda -----END CERTIFICATE----- diff --git a/test/fixtures/keys/agent9-csr.pem b/test/fixtures/keys/agent9-csr.pem index bba87d631f15b3..b75a32311d6f2d 100644 --- a/test/fixtures/keys/agent9-csr.pem +++ b/test/fixtures/keys/agent9-csr.pem @@ -1,17 +1,17 @@ -----BEGIN CERTIFICATE REQUEST----- -MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH -EwJTRjEPMA0GA1UEChMGTk9ERUpTMQ8wDQYDVQQLEwZhZ2VudDkxEjAQBgNVBAMT -CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKU+pwEk -sfXtov7dGh0nfQcTEQ/dqN9/4mol1swTijCae48QlgIOkp6Y6xbMo08WgKoPntc5 -ZtdGAU+g4aJbLX380KitsUyhlTkCuI8V9t8CZa5+Zg5NH2oAbWOPS9ShcvA8Saio -Le7sc+tRhlFsCllxu1Z4Gm5Kg3faN2Re2zqu5jEL3w8z68GCPLk408UfEdfbsTTT -hrRzE58Lw3nM05rU6MfFPuDdoTdrHA2b0QceWkALZ10cmYQKJACTGKI4p8fYqpVR -UIt3LediyIbHGuspqXw3NtMgOGklX6FuzZarJ760zleJ7d1G68RhqYhOxJvB3XMN -hDBfo6gkyxrbKmECAwEAAaAlMCMGCSqGSIb3DQEJBzEWExRBIGNoYWxsZW5nZSBw -YXNzd29yZDANBgkqhkiG9w0BAQUFAAOCAQEAKlz52i1TpqNFQQu2YCl2YlTKbu2s -+92Qq+9b8wKoTweEFxDYtfq8d6rgYtetDbJDh+CDSjG3REINHtbPB0BjFdmZq/Q6 -7JHLjmWKacmhaZJIp6xtrAX93qXYfbqH2S/DNSAO1e1sUa/gKL+wuVcrM8My7mzo -cMEgc7mHJCbSjYIcYPELas+rADoCE4mgiX8wwYQjFqxj/cdlcMzVS3ZuARAiPzA7 -60Zk3/NnbXd/OBOcf/FvbrYIQ45eV4JlMowtcdLtxP91N5/X3BBMFsXt4mPoXETC -V78wipSWtfiKTox1Ze7PSJsYm9E9TOYYPh9kSGizIFzrgnk9H15+Iy5Ixg== +MIICxzCCAa8CAQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH +DAJTRjEPMA0GA1UECgwGTk9ERUpTMQ8wDQYDVQQLDAZhZ2VudDkxEjAQBgNVBAMM +CWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANUX7CBx +R/+fLDHgzz5Cgo+LCuLo8I4kjC4v77sAYyvYfy7ZwWdMHeZDKvSfZhbUHttXam+H +/s9htmbYc4iexhw6Se1hHx0GunBB65O03Ld16chmDLy5khw/sueFPHDvyuusNJPY +mb04kNXicXWj5KELHaopwmfn4diHMvbVmxmrcLXXYs3BhTO9WtryY3IPBZ2/1/w/ +3wmxfS/IZdxFalkrPGPgQ4CIianZ3P0fUVvE/FtUHgppLl/zZtXSaixeXzVz/JTI +HUjBwEk4DxNb+TiahqSL3cAWDrmAmhr46ZbEvorAYdrAwPfEoJi9+Rhh1ojYWSEJ +FTCs44Ig5CilPIcCAwEAAaAlMCMGCSqGSIb3DQEJBzEWDBRBIGNoYWxsZW5nZSBw +YXNzd29yZDANBgkqhkiG9w0BAQsFAAOCAQEAlbvFevH6Xx79VvWyXdZOehokMpqr +xbodQqntaxtk1pRtiostga5j2pBIos5BBE5KvgPCp2rJMYjdhjyxk6v4P04nhXDo +rtD2PVIVZEaHWw743HVtFpDl9V/JK35jm/FgAbstFFP/OG3uNuHGTxvdPq4NW4dc +TVWpJ09IdbAJ9YfWbro+r/FCP3anXO40TMTNZAJKztyhMlqcmrBC/GHahtav2Y37 +gPpc70WyhqfQE1paEXT/uO1GMiOaVqPt98RTlt7smnLxHodZ3aF3qONl7VFFEaC+ +8rdKdZWTpTJQiAbBo8Xn7UxY6PFvPjteCK9duRULV8+SfimEq0wmC6Fygg== -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/agent9-key.pem b/test/fixtures/keys/agent9-key.pem index 1156fddfa68d4b..ad01bf54ba7423 100644 --- a/test/fixtures/keys/agent9-key.pem +++ b/test/fixtures/keys/agent9-key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEApT6nASSx9e2i/t0aHSd9BxMRD92o33/iaiXWzBOKMJp7jxCW -Ag6SnpjrFsyjTxaAqg+e1zlm10YBT6DholstffzQqK2xTKGVOQK4jxX23wJlrn5m -Dk0fagBtY49L1KFy8DxJqKgt7uxz61GGUWwKWXG7VngabkqDd9o3ZF7bOq7mMQvf -DzPrwYI8uTjTxR8R19uxNNOGtHMTnwvDeczTmtTox8U+4N2hN2scDZvRBx5aQAtn -XRyZhAokAJMYojinx9iqlVFQi3ct52LIhsca6ympfDc20yA4aSVfoW7NlqsnvrTO -V4nt3UbrxGGpiE7Em8Hdcw2EMF+jqCTLGtsqYQIDAQABAoIBAE7FXAUOggry2hVW -PuGQ9mfN7f87MgpAwyTInukvk1tx+N6NEIUwfzI9QSvgJyVHW9Q1mAmO4nhSdcOI -tKaZgkkhoDIYgoE+MY04v9Ptq35JfUE+HdZJa2UziPHB2Gsm/0yH4LEWYrcXXnbZ -qQbdUt2qepxQqoDS4nLawjcFhMom24ns24eMCsFW7yrxhyvQwFKqGOKXauCpClp2 -oPXhd2wljutuIGJjMmeqMw7CuyfZMee6BsuXNWWr/kso0NaQwxKoFnGlyaOl6oUV -ypr5ADXv0NNaSqDgyfEfJedsGQul+WWnkjz6PFbWZtbG5SIKb5PCJ2aWD7mvcHdI -85BL4jUCgYEA0yPogvmlK/hSpckk/AkRtHWwjUdkgdoZzxiJV/D01y8EtB+yL46t -Gzl23Y1VtLXxn+CZdj2putS5z1Rg1LA0oMZ+TwhxGskURBPP7mym83Qn1huRcnWw -df9flCg4IwRLqI6QfsQ2Q6j549j5u8P+tqVi/yZQY0V2SGcXTXaqIksCgYEAyFpy -24+AW33ypNxr9sOIx2YQyn0UDK2K6LQYRmjwhpCZEtBdoUqKGP/9UUycM4TN9D32 -p0le+3TJVk9tVqyvwFeGBkguO/3dXD6KTsqrCfMFNj/R6QRYFEaLWjkG8EI5TXOK -a/CbhtyGaRY5QzwLRjLdEYIph3r1d2uedVzwGoMCgYEAvPV59R2u8LcAYFavvs/v -BG3/X7DxBjVGu8zdvdJrjNkLgJiNQ3qQ+bhn5MfEWEIsyESdkvCEoiwXTrHZJv+7 -WdfK2rhXYP1sIbEJefvLPj5KGJf7h1BEaJXv2AxWkSAbBfLw5kJ7vfnQClX4yk4R -+yvweSC0+OMFhK6ecDku8hkCgYAJPRJ6yV0z2tTrgTaBRHb0KuKvU6EvDHmRTWyp -IoGk0tocIfuPSm6fxH4b15qETaVpk8nh4OI+Wh5GmpcCHihkiCSn+YAYSBaDAGdE -RtgoN0qQO9UkF40wMiiO2n5VadhWl/NUEt45E8Ym5l1xmj0y2XmUKxpbIvJatV2z -L7vqnQKBgCuV47rGYLaPz+gVgwIz0PvNFgp2fdSBYYQUf70XsaEU1bQtim6q5jxd -+ePUiT65k42Iw7oLWyGtxdyxmmKgQ18i5aDNjT2SLr3RAC2BSR5Fs1W1PLi24nV6 -QW7fepI9tOBTbwbLG8ARRzx2YXrBf9PqvmDbrMiTi0WGFGlVJatX +MIIEpAIBAAKCAQEA1RfsIHFH/58sMeDPPkKCj4sK4ujwjiSMLi/vuwBjK9h/LtnB +Z0wd5kMq9J9mFtQe21dqb4f+z2G2ZthziJ7GHDpJ7WEfHQa6cEHrk7Tct3XpyGYM +vLmSHD+y54U8cO/K66w0k9iZvTiQ1eJxdaPkoQsdqinCZ+fh2Icy9tWbGatwtddi +zcGFM71a2vJjcg8Fnb/X/D/fCbF9L8hl3EVqWSs8Y+BDgIiJqdnc/R9RW8T8W1Qe +CmkuX/Nm1dJqLF5fNXP8lMgdSMHASTgPE1v5OJqGpIvdwBYOuYCaGvjplsS+isBh +2sDA98SgmL35GGHWiNhZIQkVMKzjgiDkKKU8hwIDAQABAoIBADeUw8w6f/MWy2o/ +Hw84PeG+/Jnu9D+/HKk3a6o1EajwEUxhE+cjnXDf+CZSJUizD1Fa3bI1oKrq666r +qobqEvZt5bZ67KifhqWdLBscw60+njndFFltdcTUgI+O2xMCGMWb5yLhDkiipnSD +WeC7XPj8c0JdHg4IF4poyUxEru3kpdVNrOzTbrs4hf6LUsts25c5IPourgpk1Awk +Rs0zuKMj7K5sp3oTAY+KrsFkavsWLVRrNVNaT9vY+bR1S8kfo7TUeBl2c65yUiBO +UcLWcrd8mALN797JGYe+PK0iQbGsH3106W8k5tve4tSowe2sRvIMiArSsfkBKl+j +/lGePyECgYEA8pbt2CoaW+Iusie9cEAqip2k4nGwh0Vdh+IHb8dgXwMDRC9x+DwL +DTP84+Bdc1siVNofNshzaLjyyG1ah6YXOqSzUpr6SO6dnGzotAFleUlA/z69vejk +FEp6VkElTb7YSuUUjzsPRgLZlfSHtyRIhg3V5rA8LSGQ2MXBVH+zyCkCgYEA4N+S +MrFORTld/6or6hQJGLoBvI2Hwvql3tM+vuNJS890FJBsaJRlHFYM6/4CSdZTZR9B +Za1A7vvYEggJqGGgDtfbKFgss00zrTYRzaY46PpK488HBevY/G2HxXZ2NLg8tK3m +556M0agBULxrWpFQYwu+37cd4oW7hA83EQ77NS8CgYEApnSrxRy2s3+SvQoJscFF +r5GWNw79qwQMtpWAttFerjMaBapskIFar/eROieU1/ebqg91RZjrn9rwNFjcuqFb +5RBoP3E59dtNaK1OS1197Gg4YiwB9BKeldG4+gB/gUZHkbR4lANZapfAB2Yfzanm +3Z0WvdEFqY4Tnrqq+rkZemkCgYAGwnGwmGfT6N+Med8MEEIdvimjM1XrZIFr60mt +j0N6xeelXpoDosJPUb7dsSr8cTbciU378nNLO8LI9/jiWNzo1VA/LDdbxGxTPpbW +abK4Ph3WLzj00pwZKmm0Y9U1zHv2qmuQdtGg074GYUOQ22FhOM8qBmUdlAuI8rQj +DSI7/QKBgQDYPHpPPWjqTr5J3a0hEZefRjGqccOkon0oW62DpKSLjH6pG1LpQYVS +akWh2gx18TFNk5x5JOlAS2ujZv2TyqXsIB/sDcI1+l1Ja9ARcdM/42qaTUSMUNGL +50DTvsKLtFK7aKgfs4LcBjniuzBN/az/GwxS0s/Bi+F/njlklzStGw== -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/agent9.cnf b/test/fixtures/keys/agent9.cnf index a9f5a5f16a3a10..bf5da95e3dd4e6 100644 --- a/test/fixtures/keys/agent9.cnf +++ b/test/fixtures/keys/agent9.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 2048 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/ca1-cert.pem b/test/fixtures/keys/ca1-cert.pem index 8e45f8891c14e0..205e2f7226bd07 100644 --- a/test/fixtures/keys/ca1-cert.pem +++ b/test/fixtures/keys/ca1-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIJAI3yHAFGivOTMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV +MIIChDCCAe2gAwIBAgIJAO5Yan0JUdezMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2ExMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTA0MTgxMzI4NDFaFw00MjA5MDIxMzI4 -NDFaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzAN -BgNVBAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2ExMSAw -HgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAwbF7gKfk7nGLcH0lbok1UJEBpMiQ49YxUqT/oIfXBaRjMODX -RknQxpARWw4R8qj+Zeu9zZZ8Hzv3dAxtcpnMTgeoPUL3HCStk0bK8QrFdkFrBxQD -mF92r9Mgr/fz+x7rSZuCIKhATwB5iJOz63fRctTL5tBmzG15JUG1GN5HPZECAwEA -AaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAnAHtchz5FGqod -8twiFF3yQdGN3WE3VC3A6VrcmjKUp+M7f0uRDYw4uKUhadyZdYhMn39fe9DVN6rC -6wUUoe4hSs+0SWi6Ora7DFpCbm6fNpooSr0K0OUMZ2opwDmAEPdVOSPRhzQJ/cNp -s3mxIrkAQ5kgJSSGlPETMEumQmXDfA== +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTVaGA8yMjkyMDUyMjAx +MTY1NVowejELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEP +MA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQDDANjYTEx +IDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQC1XJLKHcMcvx9RG2L0jL3Oc7M4ogGOobVDSE8Fom9Xe4nz +HRbOxNCell+HeJIvyieLNQ+UxF5qDa0hOdXgzFI3wzRmX8mzUoLsqIxeh1Tg4MOx +yPeBrFCK4gsiCRaYWjGhfcIEAE3pIkUz9/CpQeG6psqzPNV7ZnJLbl/XopLQjQID +AQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4GBACfO4emOcWWf +sk98DJwfQQIc0i2D2ALRCgVUpszQOrhDci1ARGkSPc3oyx5xT/b9NCGYUxpHdz52 +t8bTqYJsU6u7kiOe6o0KcQT7FvKrzWgzcL+yCNiQ/2vrx6FJZBL/W3uvzVSoOYCU +D6TJXtGA5d2TnarRMflWXSk3rFqGvtUf -----END CERTIFICATE----- diff --git a/test/fixtures/keys/ca1-cert.srl b/test/fixtures/keys/ca1-cert.srl index c9650b0529c100..8ed0077c745736 100644 --- a/test/fixtures/keys/ca1-cert.srl +++ b/test/fixtures/keys/ca1-cert.srl @@ -1 +1 @@ -9A84ABCFB8A72AC0 +FAD50CC6A07F516D diff --git a/test/fixtures/keys/ca1-key.pem b/test/fixtures/keys/ca1-key.pem index 3a619fbf2484ff..e46eb322c4781a 100644 --- a/test/fixtures/keys/ca1-key.pem +++ b/test/fixtures/keys/ca1-key.pem @@ -1,17 +1,18 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI4tZeEUDNwLoCAggA -MBQGCCqGSIb3DQMHBAglCttpxF+UrASCAoCOiXoMG1+CJFtRnovzp0wSCeEtieI3 -jntJkCBF+NNUZrbWaQqWO+Id8KjXNFQdUo7lYT0d0w5lf52OHTyswjN0ILCOp/WN -eVMDfgmaJXtaah2l++hDFhcbGsOdRcwM0+yComF02Qxr13ftYnIPzUH4+Ix1i1Tr -6eBGDBJv0eXDZj/dLrploA7/pepKlytRw2stIL99TSICR54UQ7fyZ/oS6NvoQU7U -iBCVsrkjyE6jHJZ6vNe/ZjM8ZdLM9K2inoldpFaavDTh6GwHC6e3e9FJuJk6X30e -s2lhrVLOmxLuFS168iApyA8XvVTg/RG08DvkzUUFv8+HNETH0Qkb5kpJM+pPzwyu -c5et2fX8YuQRc8SdIdd+Z0lZJga1IciEXlsfzGeUtcZKUjBZ5yPTx+1InfcNFDKR -wCU2p0Haj9OCcvSBzU53I57RYXkENMEHQ46/FytGULXHimIoIR/SEbrqbKX0xDmT -rc/4c4vI5+tQPYMjo0rqydLAb5YjWCivrXDVXVHrG0YFsAoJkvTBLXlPiqTcnkea -KACuq7B+ymdVmpjV891OLuN3Yah+HgrvTkMlNexsFWvGpis03UYwpI6bppe4dHtt -rLBlgtyxFLJ9hu/YnkR6HcrjKaW5kGFDX06elAZBdPD/6foghzTb4jw3OK6a4ue0 -PE/zF6d7QWW+w5xKtNO62WWKABi9OtLhdUNVAFyBlaA43zYbnXkyfmv0l7LXPZ9t -Ps+BmG4r/gxO6GmZZ40sRXFjpkj230bTjbN6sUrU3WgOszMy0uFAph+zBUIMZWSP -wqZWmQi8MHQ4+Qm8N5GdXUTXw32eZ60bj82QGPso/NNxzDQsk5wd+bR3 +MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIq7DAvJ4TiXMCAggA +MB0GCWCGSAFlAwQBKgQQL6ValIJtDzAAQv3neNekGASCAoA54EMlceey59Q6XR4g +YAb97wr31CN/b+vyi8pg30k1QVgIvqoubNpkm8zSLBOU7trfIKQyyq2MYXiHeVHk +wEoNXDuGFesgE3xLc5aAVhh3wFNARGEwUkMhtKtrXn7rGIaQu59uHVOiSnM+9MaT +O7mhfEG+z1tO1xrd7IAGap/mZVu+jQpWAHvmQdL2F0Nf1xvBnVfS7z6PBVFBmKQG +hqtBWsDJtH2AwvdTsBAa8kNOr2/r3VuX33oJ6XHpzlbLFXqiGftqCzndCRYudpce +fB9lxHT7dN3t/D/VQ4TsjS1nfFECDxN/B1rM5Seri/n+g7b87gXZk90vA7lvtEGj ++d0kGJT/Fqnq7kusdDuhccMO7B7ZlKzc9i0umEeSoEbBgjk7RQT/AtxuRB7Nd5u+ +GWQjqePmaT3V0CR48LFCaZH0334RkF9vxKee+VVZUVOz5qbssclYDaZDR6gmZjFE +em1d+IVlmus1UI1GloVM+m9toYvyCHPpoZAwwA9iTX1Ez41Ig7I0k63UcAD+ziQY +juAP+L4HHtRBvT33TSDoLIq5unqRZD8uAd/ApHe9E3/NrCcbQNGK7vmT6A864uTS +el6xo1wCdLI6jx0PR7NHw9VnWNyFaJNhld8gu0FYMehtjw+rEMpVgnibuFYTtKCN +NRbMz+fFSOhfBgyUE+68GvqHHPoe05/Qep9uCeFJ9F6Y5uArArHMiIGNIv1ao7At +O+vK8NjPoEsK881rnjeWste/eT75qIU3iEyuDGvBnJNzGuQykI8adG6X60CruMuH +7LwS3kZK1W1QcBcG/xF3IZcs1o4le1zqzlsCH4qlWh4YfPID4HEKQGLS0DMzDY8x +tmzr -----END ENCRYPTED PRIVATE KEY----- diff --git a/test/fixtures/keys/ca1.cnf b/test/fixtures/keys/ca1.cnf index afd3066eb9daa8..0b6426dc953ba7 100644 --- a/test/fixtures/keys/ca1.cnf +++ b/test/fixtures/keys/ca1.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/ca2-cert.pem b/test/fixtures/keys/ca2-cert.pem index 34bfa410b68302..8d2d4273df7ff5 100644 --- a/test/fixtures/keys/ca2-cert.pem +++ b/test/fixtures/keys/ca2-cert.pem @@ -1,15 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICazCCAdQCCQC6w+RgcQYePDANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJV -UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO -BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA -dGlueWNsb3Vkcy5vcmcwHhcNMTUxMTEyMjEzMTQ3WhcNNDMwMzI5MjEzMTQ3WjB6 -MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK -EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqG -SIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0A -MIGJAoGBAMreMdPZsvC/FZUQWKrJ009zmeW7qgepfIpgX3IlJkptXZYiIQMJF0UF -V8COK9+0vDxd/K4ehK2bZKAP0dvyRY3UHiAYfGSAWa92s2JhGGu9SESSfahVYniI -M6bbFQb06eq0RU4KTYbsSlePY6tiGWCGzOwy6xGlUxZfySgWAdiTAgMBAAEwDQYJ -KoZIhvcNAQELBQADgYEAtiq4TqAXCGqmAkicZ4kFSuF3jq9AE9xhhIfW9FWPSRNp -V+TP7GVbSGwiW6UDy1bdemvBVKBP7LEhBpauYhDFY3Nw/FSGy6bqhSCH/OPTtM/f -fXkBkKN3mSbNohXGhevAUlWWurOddrWWWYtDydcGemqvivlamKAvkCQj+lMmi3o= +MIICbTCCAdYCCQDakSqa9pRwoTANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJV +UzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZKb3llbnQxEDAO +BgNVBAsMB05vZGUuanMxDDAKBgNVBAMMA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA +dGlueWNsb3Vkcy5vcmcwIBcNMTgwODA4MDExNjU2WhgPMjI5MjA1MjIwMTE2NTZa +MHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNV +BAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EyMSAwHgYJ +KoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEAvQ+FcEz9z9g97WelMFbnT1lPXyimgyfWr5hYDG51rVo0L8hBbxW3 +uaS+lxOodW1Sb+ycTAvyVIdfiIUi1XFROGyTUY2Vi2r8yglS7+YSQyk5+6jTJbHe ++UBLY8wO/B6vSZXBb1Ym1+LtfUeEJc1+5qtB7joyllwt3ID/qCeJxNECAwEAATAN +BgkqhkiG9w0BAQsFAAOBgQCzAc/3u++UkXTShUZgT9L5lA/wg2yfMA737EEg/FG1 +JEW7OmkvYekZdL7V3o2CpymYXpUuFaWgW6cxMRJ1wylZkqk8Ad527uAfe21fGIFl +9wiLSjXjoVYod0xHtsDE+5y3a46QspH/Rxq5gHkdhV3J4RkwYrx6deEnAEKHA5S4 +qg== -----END CERTIFICATE----- diff --git a/test/fixtures/keys/ca2-cert.srl b/test/fixtures/keys/ca2-cert.srl index 18b47ea80f4cf6..d91d153202dea3 100644 --- a/test/fixtures/keys/ca2-cert.srl +++ b/test/fixtures/keys/ca2-cert.srl @@ -1 +1 @@ -EEBE2CE5211A12FB +F8159CF540DB8F4D diff --git a/test/fixtures/keys/ca2-crl.pem b/test/fixtures/keys/ca2-crl.pem index 22467ee507a4fa..6cd77ea257cf21 100644 --- a/test/fixtures/keys/ca2-crl.pem +++ b/test/fixtures/keys/ca2-crl.pem @@ -1,10 +1,10 @@ -----BEGIN X509 CRL----- -MIIBeTCB4zANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQGEwJVUzELMAkGA1UECBMC -Q0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUu -anMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5v -cmcXDTE1MTExMjIxMzE0N1oXDTE4MDgwNzIxMzE0N1owODAaAgkA7r4s5SEaEvcX -DTE1MTAwOTIzNDIwNlowGgIJAO6+LOUhGhL6Fw0xNTExMTIyMTMxNDdaMA0GCSqG -SIb3DQEBDQUAA4GBALigobvv8r1RjPDc7DGiGdOYIKlSZR0FBWBj4U3/gmFQs3/c -q+iBlLEYjzdnW4qZ+YJ34C0LfwUjVIyFYYKA+5dRGZ5NhidMPUF9yUZyLlLN8Cqt -RD+L/PhoFFAXCETiYQzf+1XhCvqYr8pTIp+ie1Ho1GQWN0OUNih2uC3pWYPV +MIIBXTCBxzANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQGEwJVUzELMAkGA1UECAwC +Q0ExCzAJBgNVBAcMAlNGMQ8wDQYDVQQKDAZKb3llbnQxEDAOBgNVBAsMB05vZGUu +anMxDDAKBgNVBAMMA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5v +cmcXDTE4MDgwODAxMTcwMloXDTQ1MTIyMzAxMTcwMlowHDAaAgkA+BWc9UDbj0wX +DTE4MDgwODAxMTcwMlowDQYJKoZIhvcNAQENBQADgYEAQLa20feEGeSrXOrh5WZ/ +YAvsB6dPEy4lumjNOH8k+mbOmdlWEOAKlf75p3hsi02HYyVwoR02vsdbGGIxPAXi +WVa0h6/ZRmw3emLx08s7QxHLISrj3mzDgqU3mMrY27S07mtYaJqNd9gWJNusBXVF +3N7qhYNDijxwYG+e+Ty1WS8= -----END X509 CRL----- diff --git a/test/fixtures/keys/ca2-database.txt b/test/fixtures/keys/ca2-database.txt index 9e6cb45e40c2e6..c943e0c0173e8f 100644 --- a/test/fixtures/keys/ca2-database.txt +++ b/test/fixtures/keys/ca2-database.txt @@ -1,2 +1 @@ -R 401216111901Z 151009234206Z EEBE2CE5211A12F7 unknown /C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=agent4/emailAddress=ry@tinyclouds.org -R 430329213147Z 151112213147Z EEBE2CE5211A12FA unknown /C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=agent4/emailAddress=ry@tinyclouds.org +R 22920522011656Z 180808011702Z F8159CF540DB8F4C unknown /C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=agent4/emailAddress=ry@tinyclouds.org diff --git a/test/fixtures/keys/ca2-database.txt.attr b/test/fixtures/keys/ca2-database.txt.attr new file mode 100644 index 00000000000000..8f7e63a3475ce8 --- /dev/null +++ b/test/fixtures/keys/ca2-database.txt.attr @@ -0,0 +1 @@ +unique_subject = yes diff --git a/test/fixtures/keys/ca2-database.txt.old b/test/fixtures/keys/ca2-database.txt.old new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/keys/ca2-key.pem b/test/fixtures/keys/ca2-key.pem index 87c617a6c44d5a..2e48b87636f1b3 100644 --- a/test/fixtures/keys/ca2-key.pem +++ b/test/fixtures/keys/ca2-key.pem @@ -1,17 +1,18 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI+D0kZN/uPY0CAggA -MBQGCCqGSIb3DQMHBAj+U7U2/bM95wSCAoCTn+utBgersCUv06fNriyEJgzlwZec -tP5xqiXdZmUzaawdkzBeEJOWZYsawxFk/d0vxTXJMosUfoJOwEu+uv07DQVefVku -RFWaF7QHk5GQRreoAHBdP+IWhf19U7r5F5YFkt9OGfCtVhlSQPHIm3GYQOXBIAAz -Hzfv5dEBrl5G6mkUCtOYhZiy7eETP8EYmFT3cyPkW+4qMVOMkTUZUTg6z+b06Zsy -LW5wTGtc4I+9liHzQZ6tReaQZMOsiXL1/6ef3ZL3TxtUm678x6LOmEsRaH24vzoO -5hZMqj5u53hJElM/sUUXiKCjnITsgq7bjSj7gcoB5DAEPuzgw47RAzoz7iUR1IFD -p3tL7XuXD0mMgu1acrafQprNv9G3pBO2Ifcss1+etnD+bBrhoya1D46BgFIF/7Lz -xwj2D1GnrgnctAcal8f9mIP77TXM9qzG3okUVebmOqL/CuuQuVgT9a8cjwDiEmHW -oA/66ovQ1g6LFZdwcnAyl3+k2Z5ggJT9HCBbJUAHpb5+qpJwO8nKRsf5Y6wnBYPe -pRp2yl8TW7vVlUi5LeiZ4q/c4JfzcizBguzIInwBZMdRvA9ID97r4bdptKh+zazg -0cZo4VolYu8gDuxs0pUnaBi8MJxUynRFQNvAiLQtD0cG9PrCFg6WS0/vEmUtIdgF -Ah9tMb9HgEuJeRaggcaO3eVNL8EWO/pkJMtxy9xoqUxwWEbxwiYrozBRHP4cKur/ -bW+cBy0gICOc5QoISvBSack0t+U2HB3ojz0DzvAWAVpmcqRKmHitRvma4o+x/uro -bVhvAhLa7NPxOUJBI92yFBqn8zz8KIqLPVGcYGhucZcNqECPDaf6t85e +MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQI4wcMSIZ9VYYCAggA +MB0GCWCGSAFlAwQBKgQQrdlE/1g1dUWjPXe+cDF3hgSCAoBXqokDLdhUcEMNy6mp +S+yixHeWaS35QF8ESaqMa+Qc+l/ZJxLLUQRf52TimO+sz51TXfQFJtWTsZVaGyii +94uoniHVtaSirpzuQVUEPx9/o4XVRc9MtEf78z8DUwOJ6dHlVganU9BZesS0+TZc +E5apDKhWhjbrjWWhwNMUb2jYHQvaZoDjlvyhy5qUG9MQn65KbrK2WLT8Jsq9RE4y +38fxdV1S2OetDc29hSp54DWkXegjrX7iDOWLSGhG0GmjS6rggDQ71/CN7fbOAwf/ +ztniGUqriPNO2gaaivHiT9yuzYyA58FyGLCnVg6+jkQ8znhOfO9DwSWEaRWCsv2n +v1Ep4HzSopt2CogBUsJxg5Xzls7qq0e232+gndMlT4tEOfK194aOuXCReESA+yll +YRcdsjQzFUyCUrGv+RGmQmiK8QcLI9jIPa6Mi0R6VnUMyHGB3i7oY1UaKKS5+6zB +4ftXEOfx141siDymRTTALrmQd6jHqpXbbou2idbKGMNn/G6GSl/5fXmPSUOs0H2l +HdhvPJEfyYsWhS12jXRKtlWIAb+A7BKZac+y+kyhcJG2OLz2cCqmTXIZDdEMr3aE +aoz8rP2vloyKFx9LMDdK8/ec9b02cU/XctZ3XepL+0+WYfk2JKulhJsvsAyQX93l +Wdb16NzGE0X909+9N26VZzCVVeY2Ti2Xo40dLkQthMmGytz8h0sro8gTcHlasQv/ +4rQJ7nb4FL29Vv8TBLwAO0ivDSy/lDayi+eY3dOMBjHlXP4ZqBd5bybkpZNisG5f +C/p6R7czFrFZ/MMhU39O5GBZhD0Y3BfI+ih6ly0/jfqFnETNyG18jNrUOgJ8ZeEz +sVpU -----END ENCRYPTED PRIVATE KEY----- diff --git a/test/fixtures/keys/ca2.cnf b/test/fixtures/keys/ca2.cnf index 8d216c57237d59..51a72fafa70df6 100644 --- a/test/fixtures/keys/ca2.cnf +++ b/test/fixtures/keys/ca2.cnf @@ -7,13 +7,13 @@ crl = ca2-crl.pem database = ca2-database.txt name_opt = CA_default cert_opt = CA_default -default_crl_days = 999 +default_crl_days = 9999 default_md = sha512 [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/ca3-cert.pem b/test/fixtures/keys/ca3-cert.pem index 2c1cec87194426..99dbbc3096b3e3 100644 --- a/test/fixtures/keys/ca3-cert.pem +++ b/test/fixtures/keys/ca3-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIJAJqEq8+4pyq/MA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNV +MIIChDCCAe2gAwIBAgIJAPrVDMagf1FtMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVu dDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2ExMSAwHgYJKoZIhvcNAQkB -FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xNTA0MTgxMzI4NDFaFw00MjA5MDIxMzI4 -NDFaMHoxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzAN -BgNVBAoMBkpveWVudDEQMA4GA1UECwwHTm9kZS5qczEMMAoGA1UEAwwDY2EzMSAw -HgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAqs4MKn9saUIu/9EfHQPouC3kL9Mo5sd1WR6RBeSd8cqeFxXW -EWEq/P0hUeAH1sY0u8RFOccJmSJg8KTyRGc+VZzWimopz17mTuQY4hPW4bFzqmQm -7STfJz5eHzynBTU8jk5omi8hjbnRA38jOm4D7rN/vqtB+RG+vEhxONnq4DMCAwEA -AaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQBo8rX1uZWHvKHG -gWw+LXrY24Pkg8NdDRmfqEVyuaR4GoGGOXCqlVaFa6x+4/eqOUzHoC9uGfPtjrvW -BYQ1o/l0JZWW4KZYuXoVuMUSj+sel82mf9zLDeq5WYTPECgJDMfgVpXOmhHfyezn -SkUTX7XJUohjET+X5BqTFlqRT/RfIw== +FhFyeUB0aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE2NTdaGA8yMjkyMDUyMjAx +MTY1N1owejELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEP +MA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQDDANjYTMx +IDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQDIVigurX3u6qjhxxWERDRINbd8jc9VD1GD1T5SCt1oBjeK +qyUSEV4f6KFvHuh3oKjmiJy4OvuiNMkzNxI3v32yoJHkQUchB4tlBVLec4gz+ZfO +9RpM10gPBes9nSh6LUx4myZ8Rpungw0UcZaGvrwPNZYbFWvCqUSuea4GVF20fwID +AQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBACbwa28NeiUG +mqw14fpmT/ZDpc/BAR8gKO8OutMZO5oKjlFjplhujFlie3Zza/hxIlztF8IdYCE/ +/BZruPB+ed9ls5I7ODH1dFw8YAhxsa4y/lNP7Cq721SH49oFZJslqj1PYmhy1q4m +XrNdd447SPkWlB1D1s9NYINmqzNEsJyU -----END CERTIFICATE----- diff --git a/test/fixtures/keys/ca3-cert.srl b/test/fixtures/keys/ca3-cert.srl index ecab7285d692e7..b3b7875005c3dd 100644 --- a/test/fixtures/keys/ca3-cert.srl +++ b/test/fixtures/keys/ca3-cert.srl @@ -1 +1 @@ -C4CD893EF9A75DCC +E987DB4B683F4181 diff --git a/test/fixtures/keys/ca3-csr.pem b/test/fixtures/keys/ca3-csr.pem index 4daa2302ab249b..ceeab96806a53c 100644 --- a/test/fixtures/keys/ca3-csr.pem +++ b/test/fixtures/keys/ca3-csr.pem @@ -2,12 +2,12 @@ MIIB3zCCAUgCAQAwejELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQH DAJTRjEPMA0GA1UECgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQwwCgYDVQQD DANjYTMxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMIGfMA0GCSqG -SIb3DQEBAQUAA4GNADCBiQKBgQCqzgwqf2xpQi7/0R8dA+i4LeQv0yjmx3VZHpEF -5J3xyp4XFdYRYSr8/SFR4AfWxjS7xEU5xwmZImDwpPJEZz5VnNaKainPXuZO5Bji -E9bhsXOqZCbtJN8nPl4fPKcFNTyOTmiaLyGNudEDfyM6bgPus3++q0H5Eb68SHE4 -2ergMwIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3b3Jk -MA0GCSqGSIb3DQEBCwUAA4GBABMaKC7NVVdfoQeKwIy5lYo17mOr4WcWHPNRcoIy -rAHLcAzFOp0RCSZ7ROVRR6O/QIBYapUmPmdYRhKfz1g35xCX3+T28cWXngALV5v0 -XzMYJiew+97/LlNnBwoTRafAorviugdbFgJeMpYHRkG7/zXQsBz+hwgymKZnHW9D -Dl4h +SIb3DQEBAQUAA4GNADCBiQKBgQDIVigurX3u6qjhxxWERDRINbd8jc9VD1GD1T5S +Ct1oBjeKqyUSEV4f6KFvHuh3oKjmiJy4OvuiNMkzNxI3v32yoJHkQUchB4tlBVLe +c4gz+ZfO9RpM10gPBes9nSh6LUx4myZ8Rpungw0UcZaGvrwPNZYbFWvCqUSuea4G +VF20fwIDAQABoCUwIwYJKoZIhvcNAQkHMRYMFEEgY2hhbGxlbmdlIHBhc3N3b3Jk +MA0GCSqGSIb3DQEBCwUAA4GBAIDV1hoEgicY9C07qhcJi1QiI0dw6IGOGANgUbXX +HCVYqQDNGfm+wuclaqp7kcMcTvZ0WY/soNeX+wsEyTGPxcjs5qQMWZoqclZqaseR +mQZ6IdITdYSngdqwL6/CyfIkHjTSyXzBikkHuM+cFpY9f6CekoZzDavyieUVcTEm +OMIp -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/ca3-key.pem b/test/fixtures/keys/ca3-key.pem index 6c2b067abed06d..f8be36b68e9a65 100644 --- a/test/fixtures/keys/ca3-key.pem +++ b/test/fixtures/keys/ca3-key.pem @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQCqzgwqf2xpQi7/0R8dA+i4LeQv0yjmx3VZHpEF5J3xyp4XFdYR -YSr8/SFR4AfWxjS7xEU5xwmZImDwpPJEZz5VnNaKainPXuZO5BjiE9bhsXOqZCbt -JN8nPl4fPKcFNTyOTmiaLyGNudEDfyM6bgPus3++q0H5Eb68SHE42ergMwIDAQAB -AoGBAJkcc5N0/j2s8mynjXh5FJhlqvOkGjol+m+VEvNxaJRiySxwiqCxtdNrJf87 -EEvbCVJ4MoYEgfof8z5E3lerJRgqrhY2RSfiQrSUA89Lw9uYzcx28zhWpwwmuLHY -5gjz+LCDDS5okLsXnl2awHXADEmcx29sZnRS6dGRFcf8F0FhAkEA1c7HrW8Vghu2 -FlRaY6LOuoFNAHM++ugoWrC85/moYevLG8wAJCuSIp/RuWrx1FdJoa7rfhyS649v -cMGN0m1yHwJBAMyC1S1QoqXSdoqN8OrXyHJmaSbWG8IMLcT2FXA8Mk3Tk0zWSjiz -sk/O85NsmUQQnkRgbtSS+w0Kc0OMWXbfl20CQH+igFsNjEZuaoXr90WxhD2cQK57 -HebEvopdJXhJ9nX2P/qpDpCJHiTjSVyp9hFvxjnp5RUU07QhnUIvmY073rsCQFMN -ovNHNvZutVNpd3h372B+NJ/f/d/dQE0nvucYmzk9/ikLMZM7buO4YPTy+n9I3G1a -WEgd9LSEFPFOsxpyjTUCQGn9XTyeSo1EoVuV21DE0Cnx30YsnPKMT1YRS7QgjDPK -RA3fSsvnhtTzT53kfJ/ZurBV+RKbePL1JVqDtGvJVeE= +MIICXwIBAAKBgQDIVigurX3u6qjhxxWERDRINbd8jc9VD1GD1T5SCt1oBjeKqyUS +EV4f6KFvHuh3oKjmiJy4OvuiNMkzNxI3v32yoJHkQUchB4tlBVLec4gz+ZfO9RpM +10gPBes9nSh6LUx4myZ8Rpungw0UcZaGvrwPNZYbFWvCqUSuea4GVF20fwIDAQAB +AoGBAIm1/+UmSV0EXZbl/Tpwj+fbVQf/izgTUZtn6HEJGu046NEfmFn1KliQ1vfF +rVMeUzw1SFWz5em4k13rS1CbB1GczDcfRh03kFJrkGn8bI+3P1PXBJLjOWVC8dAE +r/guBreMN1K6O3FydQr8I9sZrYKiPB8ChoXj8pd4nRmwAbURAkEA8qSdoCTHbgZV +3O1x5CshLhD4wQAwOuEvEsTnTSW8MfULQMzlXJ7XofyqqL8GZGSRynp2GaS0Kwf3 +grSgM/XBFQJBANNdWRywZnSbvn/+eD//Y8LtwNuZZuf0rM4AmXGScxL51msetnGH +ALFrKsfh4c/MD3wYN2t3LhL+LPNsz3DufEMCQQCtMKZ5ugbHF6qNyMW0MLy8Hs0P +JU1HmZd59CWMwVR07A0eMaG83HvZWXmOfNrZKZeOSJ6naxJWbJdUKgz3SYCJAkEA +rEku1f/Dw9Efmt0lz6SxALcjuNx10STTpqc+bCDfw9v6Nx61wBw3KGceXAd3NRY0 +mQZ0RhjDaZ/drB5JiNgcWQJBAO39OvJf9L5AxnBNJ4Fvq+0OQTe51T90TG6+LG/Z +ipKhigb+V8dN6Xhwb7lGWFip1sfPmCJ0ehw9/uqGUJHLuGA= -----END RSA PRIVATE KEY----- diff --git a/test/fixtures/keys/ca3.cnf b/test/fixtures/keys/ca3.cnf index 53855e1419617c..83a6e7f97e4eb2 100644 --- a/test/fixtures/keys/ca3.cnf +++ b/test/fixtures/keys/ca3.cnf @@ -1,6 +1,6 @@ [ req ] default_bits = 1024 -days = 999 +days = 9999 distinguished_name = req_distinguished_name attributes = req_attributes prompt = no diff --git a/test/fixtures/keys/dh1024.pem b/test/fixtures/keys/dh1024.pem index e5556e02020cbd..2ceb5d97765800 100644 --- a/test/fixtures/keys/dh1024.pem +++ b/test/fixtures/keys/dh1024.pem @@ -1,5 +1,5 @@ -----BEGIN DH PARAMETERS----- -MIGHAoGBAO2Ij3VgqTKsxLZiK0uW0xWVszBzNbdjgLkriicMcZuUj1fQOSM6CPwv -5kdrRV8kHCK9q8dU1Dpf2dgh3l4fFFLpjIuUmUx3b7Q+GfHZ1UepNxr1NHSJaCl+ -wA0gwSDYhy8xRAsZ3bFVsLfDCuxuzPNC0yjtS5CVqci//vq0NTM7AgEC +MIGHAoGBANbhtynvkH1sZ2K9dLEyZ3keteaBUab1GvFeCgJV9akoxmtjSuD9o6bS +pD+y+GstQb1WqiPICSraJs+uX1NNzxYQTFz3Ur0vR20RN6i3aJaldnWl+HitRlfa +iEA2DUoPISmOFsrzPQdfdRh6tTYZYGbjElA5KukUsMtMRaTIDSIjAgEC -----END DH PARAMETERS----- diff --git a/test/fixtures/keys/dh2048.pem b/test/fixtures/keys/dh2048.pem index 451de9b92af931..baeb28f3a168c9 100644 --- a/test/fixtures/keys/dh2048.pem +++ b/test/fixtures/keys/dh2048.pem @@ -1,8 +1,8 @@ -----BEGIN DH PARAMETERS----- -MIIBCAKCAQEAg3ytm4B8bqS4KmLTw7eeqrzp8Y4Ew65weXKL9eY2FmudR0VUkoti -fs7/fKDsxMVgLyL+9UpbTs18CNslwWgMCSkrXe/NtXWlQQBLgXhEHOaeK/6j9zyt -S6rlSvGK68NF0/e7o6jZXOSktIeflJQXoUyeds65+la/l5O2iuX0tgnGfNjB2Pdt -RnoAPNJW+SBvyfcmiWjfd5Lh67SBgckqFMiH+CPiw54U2CeDPB343DUEPpTcnLJB -aJs4uuxDnskz/0ZVidNBpUBs1wPQ8ruVNZx3hG2+PIqNPvOfYUPXIgn1ABj3mGAR -sgtN63KUBX322zkTVPJnt30mrWp/F62GSwIBAg== +MIIBCAKCAQEAoKS3RTOlvieMbectTsczMWgZwvO6frAZkIXR+GLI8SKfsr21Xyr6 +5p8YqT5wWpEUhpEAasOxEaOhqQ6qUGWOrxtacqE+HiuM5wTuZs31UGslgLdBDwqx +XF3rRV9DBiNNRhzUlytuVnBNoh2F4YgXxl0OZ4EhldN3VAhQy+3bbI9hCt36uuwE +iGV1i1PEMk0UTZrYKKuZwpaahqznmLQN6Dbg3E5RtmvSjlgQQ8WAse37/CAUiGTx +QLFl2CKUJfEYMQKjlasZ2fPSTTM4VDJByixynzzHQ/YxPRAYCQ/HejbjegaI0b3F +pcMjtKtKYghGRnIo2cb/yj8p9RQyB0TluwIBAg== -----END DH PARAMETERS----- diff --git a/test/fixtures/keys/dh512.pem b/test/fixtures/keys/dh512.pem index dcab8db9fbc81f..de17bcc3c796df 100644 --- a/test/fixtures/keys/dh512.pem +++ b/test/fixtures/keys/dh512.pem @@ -1,4 +1,4 @@ -----BEGIN DH PARAMETERS----- -MEYCQQDpl3okBAjG92NSOaQEsIyqzvJRN06yHuGXunxYVIqxg7TnU8DBZW0ZYyiJ -rJLRA/9b9dCk5DXpq1pFGoAkYLoDAgEC +MEYCQQCyJYaQNCz0LyNQXKPNKZMq4pcvSNlxZvNLLtdixaA2SYj4nbIxOSths0Nu +ao2AsGzSfAAtMUn1WEKE4VIxzW0rAgEC -----END DH PARAMETERS----- diff --git a/test/fixtures/keys/dsa1025.pem b/test/fixtures/keys/dsa1025.pem index 1b59f5e351db15..ba5cab4548a201 100644 --- a/test/fixtures/keys/dsa1025.pem +++ b/test/fixtures/keys/dsa1025.pem @@ -1,9 +1,9 @@ -----BEGIN DSA PARAMETERS----- -MIIBLgKBiQCtjGXOH3Rq+lM09nwe6nbShOduCyfjgZhgMZ2WfY6PYLW3gNnhNYT7 -88rZbECcyKlyzRApFgs9KMfiqWfWIhQn+FmolmeUNdRXpmkGyJAqY63GobI8S1Jn -xYbwdH7PsV1IwM56ylrnpdUDhSH7+Y95rgEIUXX9OHS503gzFFEHCmQl1/RS7Qxp -AhUApmbNUvRisdjnyjhDK6RO3pafN90CgYhQLHJ+qq+nxLX/lqQL/tCFY3P6DlYc -3ezT3Ic+3GhEMMXMBMJ+WRmRkCW5vh1grQyLVa/MLWvYgNkoUAO8eGElcloUero8 -m5Tp3bFArEqb8rJXWYM1sAlnl/Y0uFpw1AyHLuZC26z+SSeDbV9REtz14EknkFXk -su4QN55ZQKoiBv2cFDMsIf9b +MIIBLgKBiQC2r/KfMa0uMf8PoW7ClzmYn41i33sJvaZnzJ376hkreEmYSov5Nn1H +s0Sgbkl/RRSXO6USVcWixIDjAkrfBFMBEQAmduy/RVLKFTm0VfOjwmgI5KswpGi6 +pMlf2gpCIjGfLNjX2D3t2fKFgNV1dHr4I2nHROnLpgXcr+2LVUijm8WdGc/uwY2b +AhUA/tubPhgw2Vo2C6uFx+4wkXc/vX8CgYh9NIz7YeCvZEFqPiHcC8HhYk0ERo4u +ynprB27vSYszw7124Mo0zQt7Je3hIq2IfltmbWXwZNBp0MHFK93VzBX4Ytbov3KA +KGdigUSZi4OsJLuZpLUFLt4Nx3kSHb7LSCflXlfk7esdd0R/3SdhUGcuvz17sCjV +p57mAYTFNoolrLZaKb+dQprw -----END DSA PARAMETERS----- diff --git a/test/fixtures/keys/dsa_private_1025.pem b/test/fixtures/keys/dsa_private_1025.pem index 11f5e807ca8e17..e2927f0097ff73 100644 --- a/test/fixtures/keys/dsa_private_1025.pem +++ b/test/fixtures/keys/dsa_private_1025.pem @@ -1,12 +1,12 @@ -----BEGIN DSA PRIVATE KEY----- -MIIB0QIBAAKBiQCtjGXOH3Rq+lM09nwe6nbShOduCyfjgZhgMZ2WfY6PYLW3gNnh -NYT788rZbECcyKlyzRApFgs9KMfiqWfWIhQn+FmolmeUNdRXpmkGyJAqY63GobI8 -S1JnxYbwdH7PsV1IwM56ylrnpdUDhSH7+Y95rgEIUXX9OHS503gzFFEHCmQl1/RS -7QxpAhUApmbNUvRisdjnyjhDK6RO3pafN90CgYhQLHJ+qq+nxLX/lqQL/tCFY3P6 -DlYc3ezT3Ic+3GhEMMXMBMJ+WRmRkCW5vh1grQyLVa/MLWvYgNkoUAO8eGElcloU -ero8m5Tp3bFArEqb8rJXWYM1sAlnl/Y0uFpw1AyHLuZC26z+SSeDbV9REtz14Ekn -kFXksu4QN55ZQKoiBv2cFDMsIf9bAoGHFPpl8uRj7sNjsnIPPI9CuqlIoZXFNXeM -X9Yu7T3s5mn5Q2ATcgnryDXwqpqle630wy1LZjjmtyE84oVJd4W6YTlzHNwIv2ql -ymMzWBE5+BrRXtqIndvkaWJRSUwtZ7XPPeeCzqR5uXRAsy54azoFDoisuOO5dVOm -VZERfp4Up+Duvws5+Gq2AhQlmsEI+CInYqsDR2ha+UcwXmGJSg== +MIIB0wIBAAKBiQC2r/KfMa0uMf8PoW7ClzmYn41i33sJvaZnzJ376hkreEmYSov5 +Nn1Hs0Sgbkl/RRSXO6USVcWixIDjAkrfBFMBEQAmduy/RVLKFTm0VfOjwmgI5Ksw +pGi6pMlf2gpCIjGfLNjX2D3t2fKFgNV1dHr4I2nHROnLpgXcr+2LVUijm8WdGc/u +wY2bAhUA/tubPhgw2Vo2C6uFx+4wkXc/vX8CgYh9NIz7YeCvZEFqPiHcC8HhYk0E +Ro4uynprB27vSYszw7124Mo0zQt7Je3hIq2IfltmbWXwZNBp0MHFK93VzBX4Ytbo +v3KAKGdigUSZi4OsJLuZpLUFLt4Nx3kSHb7LSCflXlfk7esdd0R/3SdhUGcuvz17 +sCjVp57mAYTFNoolrLZaKb+dQprwAoGIXuEQl13kgZSS01f5GZ5h+vIBlmIpx4xw +lcsDZgrhIjaDHONd1ENQ6iHlDAotO+TCaPhmC6u8/FkecCkhccbbMzTTMq2qCxKS +k3Xw1TvlBvBwc+Wy03GqGkiJjHProtWx1T5Ix/Ry+G8RxEucLSlh8xJcCrL/yueZ +KgdXLKMLKLP3t9DJcHd7WAIVAMBoRtLSze63Y7aC49Q2iFZhy9+u -----END DSA PRIVATE KEY----- diff --git a/test/fixtures/keys/dsa_public_1025.pem b/test/fixtures/keys/dsa_public_1025.pem index e55e3d8871b211..c439e5713e04b0 100644 --- a/test/fixtures/keys/dsa_public_1025.pem +++ b/test/fixtures/keys/dsa_public_1025.pem @@ -1,12 +1,12 @@ -----BEGIN PUBLIC KEY----- -MIIBzTCCATsGByqGSM44BAEwggEuAoGJAK2MZc4fdGr6UzT2fB7qdtKE524LJ+OB -mGAxnZZ9jo9gtbeA2eE1hPvzytlsQJzIqXLNECkWCz0ox+KpZ9YiFCf4WaiWZ5Q1 -1FemaQbIkCpjrcahsjxLUmfFhvB0fs+xXUjAznrKWuel1QOFIfv5j3muAQhRdf04 -dLnTeDMUUQcKZCXX9FLtDGkCFQCmZs1S9GKx2OfKOEMrpE7elp833QKBiFAscn6q -r6fEtf+WpAv+0IVjc/oOVhzd7NPchz7caEQwxcwEwn5ZGZGQJbm+HWCtDItVr8wt -a9iA2ShQA7x4YSVyWhR6ujyblOndsUCsSpvysldZgzWwCWeX9jS4WnDUDIcu5kLb -rP5JJ4NtX1ES3PXgSSeQVeSy7hA3nllAqiIG/ZwUMywh/1sDgYsAAoGHFPpl8uRj -7sNjsnIPPI9CuqlIoZXFNXeMX9Yu7T3s5mn5Q2ATcgnryDXwqpqle630wy1LZjjm -tyE84oVJd4W6YTlzHNwIv2qlymMzWBE5+BrRXtqIndvkaWJRSUwtZ7XPPeeCzqR5 -uXRAsy54azoFDoisuOO5dVOmVZERfp4Up+Duvws5+Gq2 +MIIBzjCCATsGByqGSM44BAEwggEuAoGJALav8p8xrS4x/w+hbsKXOZifjWLfewm9 +pmfMnfvqGSt4SZhKi/k2fUezRKBuSX9FFJc7pRJVxaLEgOMCSt8EUwERACZ27L9F +UsoVObRV86PCaAjkqzCkaLqkyV/aCkIiMZ8s2NfYPe3Z8oWA1XV0evgjacdE6cum +Bdyv7YtVSKObxZ0Zz+7BjZsCFQD+25s+GDDZWjYLq4XH7jCRdz+9fwKBiH00jPth +4K9kQWo+IdwLweFiTQRGji7KemsHbu9JizPDvXbgyjTNC3sl7eEirYh+W2ZtZfBk +0GnQwcUr3dXMFfhi1ui/coAoZ2KBRJmLg6wku5mktQUu3g3HeRIdvstIJ+VeV+Tt +6x13RH/dJ2FQZy6/PXuwKNWnnuYBhMU2iiWstlopv51CmvADgYwAAoGIXuEQl13k +gZSS01f5GZ5h+vIBlmIpx4xwlcsDZgrhIjaDHONd1ENQ6iHlDAotO+TCaPhmC6u8 +/FkecCkhccbbMzTTMq2qCxKSk3Xw1TvlBvBwc+Wy03GqGkiJjHProtWx1T5Ix/Ry ++G8RxEucLSlh8xJcCrL/yueZKgdXLKMLKLP3t9DJcHd7WA== -----END PUBLIC KEY----- diff --git a/test/fixtures/keys/ec-cert.pem b/test/fixtures/keys/ec-cert.pem index f2084198aa465f..ad92a1da65fc01 100644 --- a/test/fixtures/keys/ec-cert.pem +++ b/test/fixtures/keys/ec-cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB6DCCAY8CCQDxe0NTwQvhajAJBgcqhkjOPQQBMH0xCzAJBgNVBAYTAlVTMQsw -CQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoTBkpveWVudDEQMA4GA1UE -CxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQyMSAwHgYJKoZIhvcNAQkBFhFyeUB0 -aW55Y2xvdWRzLm9yZzAeFw0xNDAxMjUyMzQ1NTRaFw00MTA2MTEyMzQ1NTRaMH0x -CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoT -BkpveWVudDEQMA4GA1UECxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQyMSAwHgYJ -KoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABMF+Qkla0cb0tH6NcJDnd2drh0xr74hkJY8SWtsZ/7WyL8VHN8SfoDOo -2BZDByoBmHkFy1BEC0b7JFYOCAs/ShwwCQYHKoZIzj0EAQNIADBFAiEAwcJ6lRH6 -EhV5Iywr9VlmDsPDypEGIXMWLvw4Sbe+2+cCIC/TOweK9vmYiY2Y1ewAqhO7TGeX -9nTgmSQD2OBZrrOf +MIIB6zCCAZECCQCBokj/YZyrgDAJBgcqhkjOPQQBMH0xCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJDQTELMAkGA1UEBwwCU0YxDzANBgNVBAoMBkpveWVudDEQMA4GA1UE +CwwHTm9kZS5qczEPMA0GA1UEAwwGYWdlbnQyMSAwHgYJKoZIhvcNAQkBFhFyeUB0 +aW55Y2xvdWRzLm9yZzAgFw0xODA4MDgwMTE3MDJaGA8yMjkyMDUyMjAxMTcwMlow +fTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJTRjEPMA0GA1UE +CgwGSm95ZW50MRAwDgYDVQQLDAdOb2RlLmpzMQ8wDQYDVQQDDAZhZ2VudDIxIDAe +BgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE66yptjRZ8bbNf8udG9JEI8pyCit8csm+uKqBfZPUpzo2nygLSMkr +nGYnDbMXnGGolWnxORWqVMDwh0kP2riJojAJBgcqhkjOPQQBA0kAMEYCIQCNYxzf +kN+8CF7ueZEZrQnTmefGvQBFU6x0xP6jTlzTYgIhAOfXl9lbCACFKu8jrIlH1euw +NL+pX0A4665uHg17kZqW -----END CERTIFICATE----- diff --git a/test/fixtures/keys/ec-csr.pem b/test/fixtures/keys/ec-csr.pem index c77a6562de070a..629c42aa37a8a7 100644 --- a/test/fixtures/keys/ec-csr.pem +++ b/test/fixtures/keys/ec-csr.pem @@ -1,9 +1,9 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIBNjCB3wIBADB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcT -AlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMT +MIIBODCB3wIBADB9MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJBgNVBAcM +AlNGMQ8wDQYDVQQKDAZKb3llbnQxEDAOBgNVBAsMB05vZGUuanMxDzANBgNVBAMM BmFnZW50MjEgMB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwWTATBgcq -hkjOPQIBBggqhkjOPQMBBwNCAATBfkJJWtHG9LR+jXCQ53dna4dMa++IZCWPElrb -Gf+1si/FRzfEn6AzqNgWQwcqAZh5BctQRAtG+yRWDggLP0ocoAAwCQYHKoZIzj0E -AQNHADBEAiBqnVIhsMk35UAXt3/dgIAKUpnE652YTQ4rgidrxgbvqQIgDXs1gfj0 -3HACt3JASAlNgFGGUYmmDvKTj/7H1gQRB7Q= +hkjOPQIBBggqhkjOPQMBBwNCAATrrKm2NFnxts1/y50b0kQjynIKK3xyyb64qoF9 +k9SnOjafKAtIySucZicNsxecYaiVafE5FapUwPCHSQ/auImioAAwCgYIKoZIzj0E +AwIDSAAwRQIgIggV/82bb/c0MQEOkfZKdOcsexsit3LpEs+qzF7BSsoCIQCti/XZ +EQUMIPdE1qfPnrxSRqQKbNANDVtlkLkfAP/IRw== -----END CERTIFICATE REQUEST----- diff --git a/test/fixtures/keys/ec-key.pem b/test/fixtures/keys/ec-key.pem index 85c8d08a8bba90..bbabda235f5e32 100644 --- a/test/fixtures/keys/ec-key.pem +++ b/test/fixtures/keys/ec-key.pem @@ -2,7 +2,7 @@ BggqhkjOPQMBBw== -----END EC PARAMETERS----- -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINozA3blScV9x7C5R9RCaSqV4KOkrm0Gh0Qx7vr6VcnOoAoGCCqGSM49 -AwEHoUQDQgAEwX5CSVrRxvS0fo1wkOd3Z2uHTGvviGQljxJa2xn/tbIvxUc3xJ+g -M6jYFkMHKgGYeQXLUEQLRvskVg4ICz9KHA== +MHcCAQEEIPwpJlqX3faXUjfVXbNJ+YeZszQOgNW2pLpI9jrWdsJ5oAoGCCqGSM49 +AwEHoUQDQgAE66yptjRZ8bbNf8udG9JEI8pyCit8csm+uKqBfZPUpzo2nygLSMkr +nGYnDbMXnGGolWnxORWqVMDwh0kP2riJog== -----END EC PRIVATE KEY----- diff --git a/test/fixtures/keys/ec-pfx.pem b/test/fixtures/keys/ec-pfx.pem index 3a4aa7dd696085b04b9a169fb0bfaccb296ee714..f5e76a76118e44c62e08a24d8dbe86b4bb2bf4ab 100644 GIT binary patch delta 866 zcmV-o1D*Wt2kr-uU4Q6tO%YpRCim;9g8>|2;@E*;OML^|d{1;@eid zo{UfzhOqCI2#tsXehg%%-5g@2#Qi>nD8DIOTK4p3nx z*O*;i)xzNX=Ke2P>*{4i{$S;HG*$8y5T}Ti((klB6V&G@?B{9(-Dut!S6Go+0RL*X zqVf_NtTOOc_rlvY4k`Yi$g>A!bXelgG9w_`g!nPLgm}w_{W>H~%F)P{{rLHWjXfusr3(|JTn7xV4e8)Wp2=i{v+77NUELH zpGQXnMlP?0S|M892{nI|NoN=4gRs8$F}uc!y=Ko!3REydN)@PA3?xKD-;ru=CGict z%?M)}3MwnHdKVy_sdd&8p$ZZGdvL&Y(GhJj9Y|pFihu2URmeIvXciUccSwZ+@s0bx zq&w+KSeV|M@LTqI^A~qohqK-bc~8TOjle1&E+Ug-y}(B)c6f`#;_tk@Jz(Sc?XbA= zajcXR_TEIudZ|p8twSDdJ03%lJTO%#+pNpm=XkbpA4vAEQuc2X;p9XJ*Gzl2*47p> zAqptq2V4jG+WM7!C-r(T+Xtg%XaA7{aWm%daY7jJqM;@qQeS`1l=dFtZR3-6WqZ_MUs0tmG;(W+Mz&OMk!K$M&&5&42yjBGD%$c_Wx! zd72dPDB9r&)c)F7cbQD^9KJhD3T=9Q7zrjh^seiya>X#4kE@sg%bG2oM=VK^4H=h5 zY`2&(B`_lf2`Yw2hW8Bt2^BFG1QZboKZ~lGhBa-HkOtFH0?WH%Z!$13Fd;Ar1_dh) s0|FWa00b1dG#qf+<2qUu%@CEvue~XQN))jK2!&iC7{LHQ6aoSW0La#qo&W#< delta 866 zcmV-o1D*Wt2kr-uU4N6g>B=RoHY@@H2mpYB0!UMI-ewtX&9u5CZNfm8=B>*J8&F+S z-3$|%3I?2|s*Igj5s>^5CEyTsr3--Kc0E_Nt+|FfU)hYp$NHBw+gku4yJlDVE{Sw}XiORqrFPWx=Q&SSdEjo{?! zG`Z5YL08cuj2J|kdaO449)W`ynwm4*Ozq5aHk9WvzJIw{s${iq8=>xr)oVmrj!ydJ zd2#HbZsQo0^HA&`>j?jFMduMRKYGI&{xOxIv}Ki;3QoQT+7)Xf)E1T8lSr2A3Mvs~`G+hJvOz!H_+pKbTw79%cLModo@ufVB#cHUa+h*OdggBG60ziM; zl>}iOth&|$0tf&EfsjByosf8V*FnTgWY~SDF~+*^aIHgtQ_V1URgG9~zpp+3?RoRT zTaEX+?gq9UBNciypuw#EUMmbgYu;V^50gYpe$z$i%`mZ=Ioho+ZnzWrAf&Y3hag&f zO&#hO7j~MG6d95YQQkPj{i&lJqk($G#%{=#RJ;5ILY1t#o-#o7@ny5@=P% Date: Wed, 25 Jul 2018 19:30:07 +0200 Subject: [PATCH 055/159] deps: update V8 to 6.8.275.24 Backport-PR-URL: https://github.com/nodejs/node/pull/21668 PR-URL: https://github.com/nodejs/node/pull/21079 Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Yang Guo --- deps/v8/.gitattributes | 2 + deps/v8/AUTHORS | 7 +- deps/v8/BUILD.gn | 278 +- deps/v8/ChangeLog | 1385 +++ deps/v8/DEPS | 35 +- deps/v8/PRESUBMIT.py | 7 + deps/v8/gni/v8.gni | 4 +- deps/v8/include/libplatform/libplatform.h | 2 +- deps/v8/include/v8-inspector.h | 1 + deps/v8/include/v8-platform.h | 114 +- deps/v8/include/v8-profiler.h | 98 +- deps/v8/include/v8-version.h | 6 +- deps/v8/include/v8.h | 371 +- deps/v8/infra/config/cq.cfg | 10 +- deps/v8/infra/mb/mb_config.pyl | 66 +- deps/v8/infra/testing/PRESUBMIT.py | 183 + deps/v8/infra/testing/README.md | 63 +- deps/v8/infra/testing/builders.pyl | 432 + deps/v8/infra/testing/client.v8.pyl | 48 - deps/v8/infra/testing/tryserver.v8.pyl | 30 - deps/v8/src/DEPS | 3 +- deps/v8/src/accessors.cc | 35 +- deps/v8/src/accessors.h | 5 +- deps/v8/src/address-map.h | 14 +- deps/v8/src/allocation.cc | 33 +- deps/v8/src/allocation.h | 29 +- deps/v8/src/api-arguments-inl.h | 1 + deps/v8/src/api-natives.cc | 3 + deps/v8/src/api.cc | 748 +- deps/v8/src/api.h | 23 +- deps/v8/src/arm/assembler-arm-inl.h | 23 +- deps/v8/src/arm/assembler-arm.cc | 12 +- deps/v8/src/arm/assembler-arm.h | 7 +- deps/v8/src/arm/code-stubs-arm.cc | 405 +- deps/v8/src/arm/constants-arm.h | 2 +- deps/v8/src/arm/deoptimizer-arm.cc | 7 +- deps/v8/src/arm/disasm-arm.cc | 2 +- deps/v8/src/arm/interface-descriptors-arm.cc | 8 +- deps/v8/src/arm/macro-assembler-arm.cc | 241 +- deps/v8/src/arm/macro-assembler-arm.h | 25 +- deps/v8/src/arm/simulator-arm.cc | 26 +- deps/v8/src/arm/simulator-arm.h | 14 +- deps/v8/src/arm64/assembler-arm64-inl.h | 196 +- deps/v8/src/arm64/assembler-arm64.cc | 104 +- deps/v8/src/arm64/assembler-arm64.h | 121 +- deps/v8/src/arm64/code-stubs-arm64.cc | 503 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 9 +- deps/v8/src/arm64/instructions-arm64.h | 6 + .../src/arm64/interface-descriptors-arm64.cc | 10 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 2 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 343 +- deps/v8/src/arm64/macro-assembler-arm64.h | 66 +- deps/v8/src/arm64/simulator-arm64.cc | 2 +- deps/v8/src/arm64/simulator-arm64.h | 4 +- deps/v8/src/asan.h | 30 + deps/v8/src/asmjs/asm-parser.cc | 24 +- deps/v8/src/assembler-arch.h | 30 + deps/v8/src/assembler.cc | 70 +- deps/v8/src/assembler.h | 45 +- deps/v8/src/ast/ast-value-factory.cc | 3 - deps/v8/src/ast/ast.cc | 4 +- deps/v8/src/ast/ast.h | 12 +- deps/v8/src/ast/prettyprinter.cc | 2 +- deps/v8/src/ast/scopes.cc | 2 + deps/v8/src/base/adapters.h | 12 +- deps/v8/src/base/atomic-utils.h | 1 + deps/v8/src/base/ieee754.cc | 1 + deps/v8/src/base/logging.cc | 3 +- deps/v8/src/base/macros.h | 28 +- deps/v8/src/base/platform/mutex.h | 16 +- deps/v8/src/base/platform/platform-cygwin.cc | 2 + deps/v8/src/base/platform/platform-fuchsia.cc | 2 + deps/v8/src/base/platform/platform-posix.cc | 14 + deps/v8/src/base/platform/platform-win32.cc | 2 + deps/v8/src/base/platform/platform.h | 1 + deps/v8/src/base/template-utils.h | 7 - deps/v8/src/bootstrapper.cc | 224 +- deps/v8/src/builtins/arm/builtins-arm.cc | 438 +- deps/v8/src/builtins/arm64/builtins-arm64.cc | 514 +- deps/v8/src/builtins/array.tq | 469 + deps/v8/src/builtins/base.tq | 345 + deps/v8/src/builtins/builtins-api.cc | 1 + .../v8/src/builtins/builtins-arguments-gen.cc | 1 + deps/v8/src/builtins/builtins-array-gen.cc | 238 +- deps/v8/src/builtins/builtins-array-gen.h | 9 +- deps/v8/src/builtins/builtins-array.cc | 23 +- .../builtins/builtins-async-function-gen.cc | 6 +- .../builtins/builtins-async-generator-gen.cc | 29 +- deps/v8/src/builtins/builtins-call-gen.cc | 4 +- .../src/builtins/builtins-collections-gen.cc | 265 +- deps/v8/src/builtins/builtins-console.cc | 1 + .../src/builtins/builtins-constructor-gen.cc | 51 +- deps/v8/src/builtins/builtins-date-gen.cc | 2 +- deps/v8/src/builtins/builtins-date.cc | 31 +- deps/v8/src/builtins/builtins-definitions.h | 115 +- deps/v8/src/builtins/builtins-error.cc | 1 + deps/v8/src/builtins/builtins-function-gen.cc | 1 + deps/v8/src/builtins/builtins-function.cc | 1 + .../v8/src/builtins/builtins-generator-gen.cc | 12 +- deps/v8/src/builtins/builtins-ic-gen.cc | 1 - deps/v8/src/builtins/builtins-internal-gen.cc | 176 +- deps/v8/src/builtins/builtins-intl-gen.cc | 8 +- deps/v8/src/builtins/builtins-intl.cc | 273 + deps/v8/src/builtins/builtins-math-gen.cc | 35 +- deps/v8/src/builtins/builtins-number-gen.cc | 41 +- deps/v8/src/builtins/builtins-object-gen.cc | 322 +- deps/v8/src/builtins/builtins-object.cc | 23 - deps/v8/src/builtins/builtins-promise-gen.cc | 77 +- deps/v8/src/builtins/builtins-promise-gen.h | 9 +- deps/v8/src/builtins/builtins-proxy-gen.cc | 23 +- deps/v8/src/builtins/builtins-regexp-gen.cc | 316 +- deps/v8/src/builtins/builtins-regexp-gen.h | 14 +- deps/v8/src/builtins/builtins-string-gen.cc | 319 +- deps/v8/src/builtins/builtins-string-gen.h | 12 +- deps/v8/src/builtins/builtins-test-gen.h | 22 + deps/v8/src/builtins/builtins-trace.cc | 191 - ...ray-gen.cc => builtins-typed-array-gen.cc} | 313 +- ...array-gen.h => builtins-typed-array-gen.h} | 32 +- ...-typedarray.cc => builtins-typed-array.cc} | 0 deps/v8/src/builtins/builtins.cc | 383 +- deps/v8/src/builtins/builtins.h | 6 +- .../src/builtins/constants-table-builder.cc | 34 + .../v8/src/builtins/constants-table-builder.h | 6 + deps/v8/src/builtins/ia32/builtins-ia32.cc | 473 +- deps/v8/src/builtins/mips/builtins-mips.cc | 611 +- .../v8/src/builtins/mips64/builtins-mips64.cc | 600 +- deps/v8/src/builtins/ppc/builtins-ppc.cc | 519 +- deps/v8/src/builtins/s390/builtins-s390.cc | 489 +- .../src/builtins/setup-builtins-internal.cc | 13 +- deps/v8/src/builtins/typed-array.tq | 261 + deps/v8/src/builtins/x64/builtins-x64.cc | 538 +- deps/v8/src/checks.h | 5 +- deps/v8/src/code-events.h | 62 +- deps/v8/src/code-factory.cc | 76 +- deps/v8/src/code-factory.h | 8 +- deps/v8/src/code-reference.cc | 53 + deps/v8/src/code-reference.h | 52 + deps/v8/src/code-stub-assembler.cc | 1530 ++-- deps/v8/src/code-stub-assembler.h | 663 +- deps/v8/src/code-stubs.cc | 108 +- deps/v8/src/code-stubs.h | 158 +- deps/v8/src/compilation-cache.cc | 18 +- deps/v8/src/compilation-cache.h | 6 +- .../compiler-dispatcher.cc | 4 +- deps/v8/src/compiler.cc | 39 +- deps/v8/src/compiler/access-builder.cc | 72 +- deps/v8/src/compiler/access-builder.h | 13 +- deps/v8/src/compiler/access-info.cc | 11 +- deps/v8/src/compiler/access-info.h | 9 +- deps/v8/src/compiler/allocation-builder.h | 2 +- .../v8/src/compiler/arm/code-generator-arm.cc | 49 +- .../compiler/arm/instruction-selector-arm.cc | 25 +- .../compiler/arm64/code-generator-arm64.cc | 275 +- .../compiler/arm64/instruction-codes-arm64.h | 636 +- .../arm64/instruction-scheduler-arm64.cc | 18 + .../arm64/instruction-selector-arm64.cc | 255 +- deps/v8/src/compiler/branch-elimination.cc | 23 +- .../v8/src/compiler/bytecode-graph-builder.cc | 43 +- deps/v8/src/compiler/code-assembler.cc | 98 +- deps/v8/src/compiler/code-assembler.h | 67 +- deps/v8/src/compiler/code-generator.cc | 35 +- deps/v8/src/compiler/code-generator.h | 10 +- deps/v8/src/compiler/common-operator.cc | 51 +- deps/v8/src/compiler/common-operator.h | 21 +- .../compiler-source-position-table.cc | 6 +- .../compiler/compiler-source-position-table.h | 2 +- .../src/compiler/constant-folding-reducer.cc | 64 + .../src/compiler/constant-folding-reducer.h | 39 + deps/v8/src/compiler/dead-code-elimination.cc | 4 +- .../src/compiler/effect-control-linearizer.cc | 90 +- .../src/compiler/effect-control-linearizer.h | 7 +- .../src/compiler/escape-analysis-reducer.cc | 8 +- .../v8/src/compiler/escape-analysis-reducer.h | 2 +- deps/v8/src/compiler/escape-analysis.cc | 18 +- deps/v8/src/compiler/frame.h | 3 - deps/v8/src/compiler/graph-assembler.cc | 24 +- deps/v8/src/compiler/graph-assembler.h | 11 +- deps/v8/src/compiler/graph-visualizer.cc | 186 +- deps/v8/src/compiler/graph-visualizer.h | 71 +- .../src/compiler/ia32/code-generator-ia32.cc | 227 +- .../compiler/ia32/instruction-codes-ia32.h | 18 +- .../ia32/instruction-scheduler-ia32.cc | 14 + .../ia32/instruction-selector-ia32.cc | 44 +- deps/v8/src/compiler/instruction-codes.h | 2 +- deps/v8/src/compiler/instruction-scheduler.cc | 2 +- .../src/compiler/instruction-selector-impl.h | 9 +- deps/v8/src/compiler/instruction-selector.cc | 126 +- deps/v8/src/compiler/instruction-selector.h | 44 +- deps/v8/src/compiler/instruction.cc | 3 +- deps/v8/src/compiler/int64-lowering.cc | 45 +- deps/v8/src/compiler/int64-lowering.h | 11 +- deps/v8/src/compiler/js-builtin-reducer.cc | 449 - deps/v8/src/compiler/js-builtin-reducer.h | 73 - deps/v8/src/compiler/js-call-reducer.cc | 332 +- deps/v8/src/compiler/js-call-reducer.h | 11 + deps/v8/src/compiler/js-create-lowering.cc | 203 +- deps/v8/src/compiler/js-create-lowering.h | 1 + deps/v8/src/compiler/js-generic-lowering.cc | 24 +- deps/v8/src/compiler/js-graph.cc | 300 +- deps/v8/src/compiler/js-graph.h | 189 +- deps/v8/src/compiler/js-inlining-heuristic.cc | 2 +- deps/v8/src/compiler/js-inlining.cc | 58 +- .../js-native-context-specialization.cc | 68 +- deps/v8/src/compiler/js-operator.cc | 74 +- deps/v8/src/compiler/js-operator.h | 43 +- deps/v8/src/compiler/js-typed-lowering.cc | 354 +- deps/v8/src/compiler/js-typed-lowering.h | 6 +- deps/v8/src/compiler/linkage.cc | 56 +- deps/v8/src/compiler/linkage.h | 10 +- deps/v8/src/compiler/load-elimination.cc | 14 +- deps/v8/src/compiler/loop-peeling.cc | 7 +- deps/v8/src/compiler/loop-peeling.h | 8 +- .../src/compiler/loop-variable-optimizer.cc | 6 +- .../v8/src/compiler/machine-graph-verifier.cc | 20 +- deps/v8/src/compiler/machine-graph.cc | 99 + deps/v8/src/compiler/machine-graph.h | 92 + .../src/compiler/machine-operator-reducer.cc | 24 +- .../src/compiler/machine-operator-reducer.h | 9 +- deps/v8/src/compiler/machine-operator.cc | 52 +- deps/v8/src/compiler/machine-operator.h | 48 +- deps/v8/src/compiler/memory-optimizer.cc | 25 +- deps/v8/src/compiler/memory-optimizer.h | 6 +- .../src/compiler/mips/code-generator-mips.cc | 143 +- .../mips/instruction-selector-mips.cc | 6 +- .../compiler/mips64/code-generator-mips64.cc | 137 +- .../mips64/instruction-selector-mips64.cc | 6 +- deps/v8/src/compiler/node-origin-table.cc | 80 + deps/v8/src/compiler/node-origin-table.h | 128 + deps/v8/src/compiler/node-properties.cc | 2 +- deps/v8/src/compiler/node-properties.h | 12 +- deps/v8/src/compiler/node.cc | 1 - deps/v8/src/compiler/node.h | 6 +- deps/v8/src/compiler/opcodes.h | 16 +- deps/v8/src/compiler/operation-typer.cc | 716 +- deps/v8/src/compiler/operation-typer.h | 75 +- deps/v8/src/compiler/operator-properties.cc | 3 + deps/v8/src/compiler/pipeline.cc | 416 +- deps/v8/src/compiler/pipeline.h | 9 +- .../v8/src/compiler/ppc/code-generator-ppc.cc | 151 +- .../compiler/ppc/instruction-selector-ppc.cc | 119 +- .../src/compiler/property-access-builder.cc | 2 +- deps/v8/src/compiler/raw-machine-assembler.cc | 4 +- deps/v8/src/compiler/raw-machine-assembler.h | 36 +- .../v8/src/compiler/redundancy-elimination.cc | 2 +- deps/v8/src/compiler/register-allocator.cc | 31 +- deps/v8/src/compiler/representation-change.cc | 147 +- deps/v8/src/compiler/representation-change.h | 20 +- .../src/compiler/s390/code-generator-s390.cc | 368 +- .../s390/instruction-selector-s390.cc | 129 +- deps/v8/src/compiler/schedule.cc | 4 +- deps/v8/src/compiler/simd-scalar-lowering.cc | 225 +- deps/v8/src/compiler/simd-scalar-lowering.h | 22 +- deps/v8/src/compiler/simplified-lowering.cc | 532 +- deps/v8/src/compiler/simplified-lowering.h | 10 +- deps/v8/src/compiler/simplified-operator.cc | 67 +- deps/v8/src/compiler/simplified-operator.h | 55 +- deps/v8/src/compiler/type-cache.h | 119 +- .../v8/src/compiler/type-narrowing-reducer.cc | 86 + deps/v8/src/compiler/type-narrowing-reducer.h | 44 + deps/v8/src/compiler/typed-optimization.cc | 228 +- deps/v8/src/compiler/typed-optimization.h | 4 +- deps/v8/src/compiler/typer.cc | 1083 ++- deps/v8/src/compiler/typer.h | 7 +- deps/v8/src/compiler/types.cc | 407 +- deps/v8/src/compiler/types.h | 512 +- .../src/compiler/value-numbering-reducer.cc | 8 +- deps/v8/src/compiler/verifier.cc | 112 +- deps/v8/src/compiler/wasm-compiler.cc | 3476 ++++---- deps/v8/src/compiler/wasm-compiler.h | 257 +- deps/v8/src/compiler/wasm-linkage.cc | 367 - .../v8/src/compiler/x64/code-generator-x64.cc | 166 +- .../compiler/x64/instruction-selector-x64.cc | 389 +- deps/v8/src/contexts-inl.h | 7 +- deps/v8/src/contexts.cc | 71 +- deps/v8/src/contexts.h | 61 +- deps/v8/src/conversions-inl.h | 21 +- deps/v8/src/conversions.h | 5 +- deps/v8/src/counters.h | 8 +- deps/v8/src/d8.cc | 78 +- deps/v8/src/d8.h | 47 +- deps/v8/src/d8.js | 3 +- deps/v8/src/date.cc | 10 +- deps/v8/src/date.h | 2 + deps/v8/src/debug/arm64/debug-arm64.cc | 4 +- deps/v8/src/debug/debug-evaluate.cc | 83 +- deps/v8/src/debug/debug-evaluate.h | 8 +- deps/v8/src/debug/debug-interface.h | 7 +- deps/v8/src/debug/debug-scope-iterator.cc | 40 +- deps/v8/src/debug/debug-scope-iterator.h | 7 +- deps/v8/src/debug/debug-scopes.cc | 203 +- deps/v8/src/debug/debug-scopes.h | 18 +- .../src/debug/debug-stack-trace-iterator.cc | 4 +- .../v8/src/debug/debug-stack-trace-iterator.h | 2 +- deps/v8/src/debug/debug.cc | 102 +- deps/v8/src/debug/debug.h | 6 +- deps/v8/src/debug/interface-types.h | 2 + deps/v8/src/debug/ppc/debug-ppc.cc | 9 +- deps/v8/src/debug/s390/debug-s390.cc | 5 + deps/v8/src/deoptimizer.cc | 777 +- deps/v8/src/deoptimizer.h | 29 +- deps/v8/src/disassembler.cc | 100 +- deps/v8/src/disassembler.h | 3 +- deps/v8/src/eh-frame.cc | 13 +- deps/v8/src/eh-frame.h | 14 +- deps/v8/src/elements-kind.h | 1 + deps/v8/src/elements.cc | 115 +- deps/v8/src/execution.cc | 78 +- deps/v8/src/execution.h | 12 +- deps/v8/src/external-reference-table.cc | 15 +- deps/v8/src/external-reference-table.h | 2 +- deps/v8/src/external-reference.cc | 604 +- deps/v8/src/external-reference.h | 314 +- deps/v8/src/feedback-vector-inl.h | 53 +- deps/v8/src/feedback-vector.cc | 186 +- deps/v8/src/feedback-vector.h | 35 +- deps/v8/src/flag-definitions.h | 64 +- deps/v8/src/flags.cc | 91 +- deps/v8/src/flags.h | 11 +- deps/v8/src/frame-constants.h | 7 + deps/v8/src/frames.cc | 111 +- deps/v8/src/frames.h | 10 +- deps/v8/src/gdb-jit.cc | 25 +- deps/v8/src/globals.h | 58 +- deps/v8/src/handler-table.cc | 3 +- deps/v8/src/handles-inl.h | 71 +- deps/v8/src/handles.cc | 5 +- deps/v8/src/handles.h | 39 +- deps/v8/src/heap-symbols.h | 2 - deps/v8/src/heap/array-buffer-collector.cc | 1 + deps/v8/src/heap/array-buffer-tracker-inl.h | 30 +- deps/v8/src/heap/array-buffer-tracker.cc | 31 +- deps/v8/src/heap/array-buffer-tracker.h | 14 +- deps/v8/src/heap/code-stats.cc | 49 +- deps/v8/src/heap/concurrent-marking.cc | 6 +- deps/v8/src/heap/concurrent-marking.h | 2 +- deps/v8/src/heap/factory-inl.h | 3 +- deps/v8/src/heap/factory.cc | 551 +- deps/v8/src/heap/factory.h | 105 +- deps/v8/src/heap/heap-inl.h | 28 +- deps/v8/src/heap/heap.cc | 223 +- deps/v8/src/heap/heap.h | 163 +- deps/v8/src/heap/incremental-marking-inl.h | 6 +- deps/v8/src/heap/incremental-marking.cc | 42 +- deps/v8/src/heap/incremental-marking.h | 5 +- deps/v8/src/heap/local-allocator.h | 4 +- deps/v8/src/heap/mark-compact-inl.h | 10 + deps/v8/src/heap/mark-compact.cc | 190 +- deps/v8/src/heap/mark-compact.h | 30 +- deps/v8/src/heap/memory-reducer.cc | 9 +- deps/v8/src/heap/memory-reducer.h | 2 +- deps/v8/src/heap/object-stats.cc | 159 +- deps/v8/src/heap/object-stats.h | 7 + deps/v8/src/heap/objects-visiting-inl.h | 14 + deps/v8/src/heap/objects-visiting.h | 6 +- deps/v8/src/heap/remembered-set.h | 5 +- deps/v8/src/heap/scavenger.cc | 2 +- deps/v8/src/heap/setup-heap-internal.cc | 224 +- deps/v8/src/heap/spaces-inl.h | 18 +- deps/v8/src/heap/spaces.cc | 301 +- deps/v8/src/heap/spaces.h | 178 +- deps/v8/src/heap/store-buffer.cc | 14 +- deps/v8/src/heap/store-buffer.h | 10 +- deps/v8/src/heap/sweeper.cc | 24 +- deps/v8/src/heap/sweeper.h | 2 +- deps/v8/src/ia32/assembler-ia32-inl.h | 25 +- deps/v8/src/ia32/assembler-ia32.cc | 25 +- deps/v8/src/ia32/assembler-ia32.h | 25 +- deps/v8/src/ia32/code-stubs-ia32.cc | 413 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 9 +- deps/v8/src/ia32/disasm-ia32.cc | 9 +- .../v8/src/ia32/interface-descriptors-ia32.cc | 8 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 177 +- deps/v8/src/ia32/macro-assembler-ia32.h | 42 +- deps/v8/src/ia32/sse-instr.h | 4 + deps/v8/src/ic/accessor-assembler.cc | 383 +- deps/v8/src/ic/accessor-assembler.h | 45 +- deps/v8/src/ic/binary-op-assembler.cc | 56 +- deps/v8/src/ic/handler-configuration-inl.h | 8 - deps/v8/src/ic/handler-configuration.cc | 49 +- deps/v8/src/ic/handler-configuration.h | 14 +- deps/v8/src/ic/ic-inl.h | 20 +- deps/v8/src/ic/ic.cc | 210 +- deps/v8/src/ic/ic.h | 46 +- deps/v8/src/ic/keyed-store-generic.cc | 152 +- deps/v8/src/ic/keyed-store-generic.h | 14 +- deps/v8/src/ic/stub-cache.cc | 2 +- deps/v8/src/identity-map.cc | 21 +- deps/v8/src/identity-map.h | 17 +- deps/v8/src/inspector/DEPS | 1 + deps/v8/src/inspector/js_protocol.json | 44 + deps/v8/src/inspector/js_protocol.pdl | 21 + deps/v8/src/inspector/v8-console-message.cc | 8 + deps/v8/src/inspector/v8-console-message.h | 3 + deps/v8/src/inspector/v8-console.cc | 82 +- deps/v8/src/inspector/v8-console.h | 4 +- .../src/inspector/v8-debugger-agent-impl.cc | 70 +- .../v8/src/inspector/v8-debugger-agent-impl.h | 4 + deps/v8/src/inspector/v8-debugger-script.cc | 3 +- deps/v8/src/inspector/v8-debugger.cc | 39 +- deps/v8/src/inspector/v8-inspector-impl.cc | 48 + deps/v8/src/inspector/v8-inspector-impl.h | 16 + .../v8/src/inspector/v8-runtime-agent-impl.cc | 11 +- deps/v8/src/inspector/v8-runtime-agent-impl.h | 1 + deps/v8/src/inspector/v8-stack-trace-impl.cc | 9 + deps/v8/src/inspector/v8-stack-trace-impl.h | 1 + deps/v8/src/instruction-stream.cc | 11 +- deps/v8/src/interface-descriptors.cc | 30 +- deps/v8/src/interface-descriptors.h | 25 +- .../interpreter/bytecode-array-accessor.cc | 13 +- .../src/interpreter/bytecode-array-builder.cc | 25 +- .../src/interpreter/bytecode-array-builder.h | 18 +- .../src/interpreter/bytecode-array-writer.cc | 9 +- deps/v8/src/interpreter/bytecode-decoder.cc | 20 +- deps/v8/src/interpreter/bytecode-decoder.h | 8 +- deps/v8/src/interpreter/bytecode-generator.cc | 339 +- deps/v8/src/interpreter/bytecode-generator.h | 14 +- deps/v8/src/interpreter/bytecodes.h | 16 +- .../src/interpreter/interpreter-assembler.cc | 26 +- .../src/interpreter/interpreter-assembler.h | 22 +- .../src/interpreter/interpreter-generator.cc | 167 +- deps/v8/src/interpreter/interpreter.cc | 4 +- .../interpreter/setup-interpreter-internal.cc | 2 +- deps/v8/src/isolate.cc | 236 +- deps/v8/src/isolate.h | 160 +- deps/v8/src/js/array.js | 201 +- deps/v8/src/js/intl.js | 44 +- deps/v8/src/js/typedarray.js | 22 - deps/v8/src/json-parser.cc | 1 + deps/v8/src/json-stringifier.cc | 2 +- deps/v8/src/keys.cc | 8 +- deps/v8/src/keys.h | 1 + deps/v8/src/layout-descriptor-inl.h | 5 +- deps/v8/src/libplatform/default-platform.cc | 13 +- deps/v8/src/libplatform/default-platform.h | 4 +- .../default-worker-threads-task-runner.cc | 8 +- deps/v8/src/log.cc | 606 +- deps/v8/src/log.h | 107 +- deps/v8/src/lookup.cc | 1 + deps/v8/src/lsan.h | 31 + deps/v8/src/machine-type.h | 8 +- deps/v8/src/macro-assembler.h | 16 + deps/v8/src/managed.h | 104 - deps/v8/src/messages.cc | 25 +- deps/v8/src/messages.h | 20 +- deps/v8/src/mips/assembler-mips-inl.h | 35 +- deps/v8/src/mips/assembler-mips.cc | 29 +- deps/v8/src/mips/assembler-mips.h | 15 +- deps/v8/src/mips/code-stubs-mips.cc | 594 +- deps/v8/src/mips/constants-mips.h | 12 +- deps/v8/src/mips/deoptimizer-mips.cc | 21 +- .../v8/src/mips/interface-descriptors-mips.cc | 8 +- deps/v8/src/mips/macro-assembler-mips.cc | 351 +- deps/v8/src/mips/macro-assembler-mips.h | 72 +- deps/v8/src/mips/simulator-mips.cc | 30 +- deps/v8/src/mips/simulator-mips.h | 12 +- deps/v8/src/mips64/assembler-mips64-inl.h | 31 +- deps/v8/src/mips64/assembler-mips64.cc | 27 +- deps/v8/src/mips64/assembler-mips64.h | 15 +- deps/v8/src/mips64/code-stubs-mips64.cc | 598 +- deps/v8/src/mips64/constants-mips64.h | 12 +- deps/v8/src/mips64/deoptimizer-mips64.cc | 21 +- .../mips64/interface-descriptors-mips64.cc | 8 +- deps/v8/src/mips64/macro-assembler-mips64.cc | 351 +- deps/v8/src/mips64/macro-assembler-mips64.h | 66 +- deps/v8/src/mips64/simulator-mips64.cc | 30 +- deps/v8/src/mips64/simulator-mips64.h | 12 +- deps/v8/src/msan.h | 35 +- deps/v8/src/objects-body-descriptors-inl.h | 31 +- deps/v8/src/objects-debug.cc | 170 +- deps/v8/src/objects-inl.h | 317 +- deps/v8/src/objects-printer.cc | 259 +- deps/v8/src/objects.cc | 1032 +-- deps/v8/src/objects.h | 850 +- deps/v8/src/objects/api-callbacks-inl.h | 139 + deps/v8/src/objects/api-callbacks.h | 215 + deps/v8/src/objects/bigint.cc | 178 +- deps/v8/src/objects/bigint.h | 11 +- deps/v8/src/objects/code-inl.h | 49 +- deps/v8/src/objects/code.h | 30 +- deps/v8/src/objects/compilation-cache.h | 8 +- deps/v8/src/objects/descriptor-array.h | 3 +- deps/v8/src/objects/fixed-array-inl.h | 50 +- deps/v8/src/objects/fixed-array.h | 75 +- deps/v8/src/objects/hash-table-inl.h | 32 +- deps/v8/src/objects/hash-table.h | 528 +- deps/v8/src/objects/intl-objects.cc | 9 +- deps/v8/src/objects/js-locale-inl.h | 41 + deps/v8/src/objects/js-locale.cc | 266 + deps/v8/src/objects/js-locale.h | 78 + deps/v8/src/objects/literal-objects.cc | 1 + deps/v8/src/objects/managed.cc | 36 + deps/v8/src/objects/managed.h | 112 + deps/v8/src/objects/map-inl.h | 16 +- deps/v8/src/objects/map.h | 9 +- deps/v8/src/objects/maybe-object-inl.h | 28 + deps/v8/src/objects/maybe-object.h | 34 +- deps/v8/src/objects/module-inl.h | 14 +- deps/v8/src/objects/module.cc | 59 +- deps/v8/src/objects/module.h | 13 +- deps/v8/src/objects/object-macros-undef.h | 1 - deps/v8/src/objects/object-macros.h | 48 +- deps/v8/src/objects/ordered-hash-table-inl.h | 30 + deps/v8/src/objects/ordered-hash-table.cc | 620 ++ deps/v8/src/objects/ordered-hash-table.h | 620 ++ deps/v8/src/objects/scope-info.cc | 111 +- deps/v8/src/objects/scope-info.h | 12 + deps/v8/src/objects/script-inl.h | 3 +- deps/v8/src/objects/script.h | 4 +- .../v8/src/objects/shared-function-info-inl.h | 35 +- deps/v8/src/objects/shared-function-info.h | 49 +- deps/v8/src/objects/string-inl.h | 4 +- deps/v8/src/objects/string-table.h | 2 +- deps/v8/src/objects/string.h | 7 +- deps/v8/src/objects/templates-inl.h | 135 + deps/v8/src/objects/templates.h | 223 + deps/v8/src/optimized-compilation-info.cc | 18 +- deps/v8/src/optimized-compilation-info.h | 49 +- deps/v8/src/parsing/parser-base.h | 12 - deps/v8/src/parsing/parser.cc | 61 +- deps/v8/src/parsing/preparsed-scope-data.cc | 5 + deps/v8/src/parsing/scanner.cc | 7 +- deps/v8/src/perf-jit.cc | 69 +- deps/v8/src/ppc/assembler-ppc-inl.h | 33 +- deps/v8/src/ppc/assembler-ppc.cc | 27 +- deps/v8/src/ppc/assembler-ppc.h | 10 +- deps/v8/src/ppc/code-stubs-ppc.cc | 479 +- deps/v8/src/ppc/deoptimizer-ppc.cc | 9 +- deps/v8/src/ppc/interface-descriptors-ppc.cc | 8 +- deps/v8/src/ppc/macro-assembler-ppc.cc | 239 +- deps/v8/src/ppc/macro-assembler-ppc.h | 24 +- deps/v8/src/ppc/simulator-ppc.cc | 26 +- deps/v8/src/ppc/simulator-ppc.h | 17 +- deps/v8/src/profiler/allocation-tracker.cc | 4 +- deps/v8/src/profiler/cpu-profiler.cc | 69 +- deps/v8/src/profiler/cpu-profiler.h | 9 +- deps/v8/src/profiler/heap-profiler.cc | 25 +- deps/v8/src/profiler/heap-profiler.h | 12 +- .../src/profiler/heap-snapshot-generator.cc | 188 +- .../v8/src/profiler/heap-snapshot-generator.h | 36 +- deps/v8/src/profiler/profile-generator-inl.h | 20 +- deps/v8/src/profiler/profile-generator.cc | 186 +- deps/v8/src/profiler/profile-generator.h | 137 +- deps/v8/src/profiler/profiler-listener.cc | 115 +- deps/v8/src/profiler/profiler-listener.h | 28 +- deps/v8/src/profiler/strings-storage.cc | 32 +- deps/v8/src/profiler/strings-storage.h | 24 +- deps/v8/src/profiler/tick-sample.cc | 67 +- deps/v8/src/profiler/tracing-cpu-profiler.cc | 7 +- deps/v8/src/prototype.h | 1 - .../regexp/regexp-macro-assembler-irregexp.cc | 3 +- .../regexp/regexp-macro-assembler-irregexp.h | 2 +- deps/v8/src/regexp/regexp-macro-assembler.cc | 4 +- deps/v8/src/regexp/regexp-macro-assembler.h | 2 +- deps/v8/src/regexp/regexp-stack.cc | 16 +- deps/v8/src/regexp/regexp-stack.h | 10 +- .../regexp/x64/regexp-macro-assembler-x64.h | 2 +- deps/v8/src/runtime/runtime-array.cc | 308 +- deps/v8/src/runtime/runtime-bigint.cc | 11 + deps/v8/src/runtime/runtime-classes.cc | 1 + deps/v8/src/runtime/runtime-collections.cc | 1 + deps/v8/src/runtime/runtime-debug.cc | 22 +- deps/v8/src/runtime/runtime-function.cc | 3 +- deps/v8/src/runtime/runtime-internal.cc | 14 - deps/v8/src/runtime/runtime-interpreter.cc | 3 +- deps/v8/src/runtime/runtime-intl.cc | 146 +- deps/v8/src/runtime/runtime-literals.cc | 5 +- deps/v8/src/runtime/runtime-numbers.cc | 20 - deps/v8/src/runtime/runtime-object.cc | 24 +- deps/v8/src/runtime/runtime-promise.cc | 20 - deps/v8/src/runtime/runtime-scopes.cc | 100 +- deps/v8/src/runtime/runtime-test.cc | 122 +- deps/v8/src/runtime/runtime-wasm.cc | 52 +- deps/v8/src/runtime/runtime.cc | 40 +- deps/v8/src/runtime/runtime.h | 28 +- deps/v8/src/s390/assembler-s390-inl.h | 29 +- deps/v8/src/s390/assembler-s390.cc | 238 +- deps/v8/src/s390/assembler-s390.h | 80 +- deps/v8/src/s390/code-stubs-s390.cc | 547 +- deps/v8/src/s390/deoptimizer-s390.cc | 9 +- .../v8/src/s390/interface-descriptors-s390.cc | 8 +- deps/v8/src/s390/macro-assembler-s390.cc | 267 +- deps/v8/src/s390/macro-assembler-s390.h | 28 +- deps/v8/src/s390/simulator-s390.cc | 39 +- deps/v8/src/s390/simulator-s390.h | 17 +- deps/v8/src/signature.h | 3 + deps/v8/src/simulator-base.cc | 14 +- deps/v8/src/simulator-base.h | 23 +- deps/v8/src/simulator.h | 9 +- .../builtin-deserializer-allocator.cc | 12 +- .../snapshot/builtin-deserializer-allocator.h | 2 +- deps/v8/src/snapshot/code-serializer.cc | 6 +- .../default-deserializer-allocator.cc | 5 +- deps/v8/src/snapshot/deserializer.cc | 73 +- deps/v8/src/snapshot/partial-deserializer.cc | 2 +- deps/v8/src/snapshot/serializer-common.cc | 16 +- deps/v8/src/snapshot/serializer-common.h | 7 +- deps/v8/src/snapshot/serializer.cc | 180 +- deps/v8/src/snapshot/serializer.h | 19 +- deps/v8/src/snapshot/snapshot-common.cc | 44 +- deps/v8/src/snapshot/snapshot.h | 29 +- deps/v8/src/snapshot/startup-serializer.cc | 9 +- deps/v8/src/source-position.cc | 25 +- deps/v8/src/source-position.h | 3 +- deps/v8/src/string-hasher-inl.h | 5 + deps/v8/src/string-hasher.h | 15 + deps/v8/src/torque/Torque.g4 | 294 + deps/v8/src/torque/TorqueBaseListener.cpp | 7 + deps/v8/src/torque/TorqueBaseListener.h | 336 + deps/v8/src/torque/TorqueBaseVisitor.cpp | 7 + deps/v8/src/torque/TorqueBaseVisitor.h | 353 + deps/v8/src/torque/TorqueLexer.cpp | 997 +++ deps/v8/src/torque/TorqueLexer.h | 140 + deps/v8/src/torque/TorqueListener.cpp | 7 + deps/v8/src/torque/TorqueListener.h | 314 + deps/v8/src/torque/TorqueParser.cpp | 7631 +++++++++++++++++ deps/v8/src/torque/TorqueParser.h | 1502 ++++ deps/v8/src/torque/TorqueVisitor.cpp | 7 + deps/v8/src/torque/TorqueVisitor.h | 228 + deps/v8/src/torque/ast-generator.cc | 773 ++ deps/v8/src/torque/ast-generator.h | 185 + deps/v8/src/torque/ast.h | 706 ++ deps/v8/src/torque/contextual.h | 73 + deps/v8/src/torque/declarable.cc | 69 + deps/v8/src/torque/declarable.h | 348 + deps/v8/src/torque/declaration-visitor.cc | 367 + deps/v8/src/torque/declaration-visitor.h | 372 + deps/v8/src/torque/declarations.cc | 315 + deps/v8/src/torque/declarations.h | 193 + deps/v8/src/torque/file-visitor.cc | 129 + deps/v8/src/torque/file-visitor.h | 110 + deps/v8/src/torque/global-context.h | 169 + deps/v8/src/torque/implementation-visitor.cc | 1634 ++++ deps/v8/src/torque/implementation-visitor.h | 256 + deps/v8/src/torque/scope.cc | 51 + deps/v8/src/torque/scope.h | 167 + deps/v8/src/torque/torque.cc | 114 + deps/v8/src/torque/type-oracle.h | 91 + deps/v8/src/torque/types.cc | 73 + deps/v8/src/torque/types.h | 252 + deps/v8/src/torque/utils.cc | 69 + deps/v8/src/torque/utils.h | 43 + deps/v8/src/tracing/trace-event.h | 28 +- deps/v8/src/transitions-inl.h | 116 +- deps/v8/src/transitions.cc | 185 +- deps/v8/src/transitions.h | 66 +- .../src/trap-handler/handler-inside-linux.cc | 133 + deps/v8/src/trap-handler/handler-inside.cc | 107 +- .../src/trap-handler/handler-outside-linux.cc | 73 + .../src/trap-handler/handler-outside-win.cc | 35 + deps/v8/src/trap-handler/handler-outside.cc | 61 +- .../src/trap-handler/trap-handler-internal.h | 2 +- deps/v8/src/trap-handler/trap-handler.h | 4 +- deps/v8/src/type-hints.cc | 8 - deps/v8/src/type-hints.h | 13 +- deps/v8/src/utils.cc | 47 + deps/v8/src/utils.h | 32 +- deps/v8/src/v8.cc | 1 - deps/v8/src/v8memory.h | 9 +- deps/v8/src/value-serializer.cc | 30 +- deps/v8/src/visitors.h | 5 + deps/v8/src/vm-state.h | 2 +- .../wasm/baseline/arm/liftoff-assembler-arm.h | 136 +- .../baseline/arm64/liftoff-assembler-arm64.h | 824 +- .../baseline/ia32/liftoff-assembler-ia32.h | 636 +- .../wasm/baseline/liftoff-assembler-defs.h | 41 + .../v8/src/wasm/baseline/liftoff-assembler.cc | 11 +- deps/v8/src/wasm/baseline/liftoff-assembler.h | 147 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 1004 ++- deps/v8/src/wasm/baseline/liftoff-compiler.h | 46 + deps/v8/src/wasm/baseline/liftoff-register.h | 17 +- .../baseline/mips/liftoff-assembler-mips.h | 737 +- .../mips64/liftoff-assembler-mips64.h | 697 +- .../wasm/baseline/ppc/liftoff-assembler-ppc.h | 140 +- .../baseline/s390/liftoff-assembler-s390.h | 140 +- .../wasm/baseline/x64/liftoff-assembler-x64.h | 565 +- deps/v8/src/wasm/compilation-manager.cc | 62 - deps/v8/src/wasm/compilation-manager.h | 62 - deps/v8/src/wasm/decoder.h | 2 +- deps/v8/src/wasm/function-body-decoder-impl.h | 763 +- deps/v8/src/wasm/function-body-decoder.cc | 152 +- deps/v8/src/wasm/function-body-decoder.h | 4 +- deps/v8/src/wasm/function-compiler.cc | 155 + deps/v8/src/wasm/function-compiler.h | 115 + deps/v8/src/wasm/local-decl-encoder.cc | 3 +- deps/v8/src/wasm/memory-tracing.cc | 12 +- deps/v8/src/wasm/module-compiler.cc | 1496 ++-- deps/v8/src/wasm/module-compiler.h | 40 +- deps/v8/src/wasm/module-decoder.cc | 71 +- deps/v8/src/wasm/module-decoder.h | 12 +- deps/v8/src/wasm/signature-map.cc | 2 + deps/v8/src/wasm/signature-map.h | 9 +- deps/v8/src/wasm/streaming-decoder.cc | 1 + deps/v8/src/wasm/value-type.h | 344 + deps/v8/src/wasm/wasm-code-manager.cc | 601 +- deps/v8/src/wasm/wasm-code-manager.h | 146 +- deps/v8/src/wasm/wasm-code-specialization.cc | 84 +- deps/v8/src/wasm/wasm-code-specialization.h | 22 +- deps/v8/src/wasm/wasm-debug.cc | 92 +- deps/v8/src/wasm/wasm-engine.cc | 82 +- deps/v8/src/wasm/wasm-engine.h | 25 +- deps/v8/src/wasm/wasm-external-refs.cc | 197 +- deps/v8/src/wasm/wasm-external-refs.h | 60 +- deps/v8/src/wasm/wasm-interpreter.cc | 439 +- deps/v8/src/wasm/wasm-interpreter.h | 14 +- deps/v8/src/wasm/wasm-js.cc | 76 +- deps/v8/src/wasm/wasm-linkage.h | 182 + deps/v8/src/wasm/wasm-memory.cc | 79 +- deps/v8/src/wasm/wasm-memory.h | 35 +- deps/v8/src/wasm/wasm-module-builder.cc | 8 +- deps/v8/src/wasm/wasm-module-builder.h | 6 +- deps/v8/src/wasm/wasm-module.cc | 10 +- deps/v8/src/wasm/wasm-module.h | 25 +- deps/v8/src/wasm/wasm-objects-inl.h | 76 +- deps/v8/src/wasm/wasm-objects.cc | 439 +- deps/v8/src/wasm/wasm-objects.h | 198 +- deps/v8/src/wasm/wasm-opcodes.cc | 4 +- deps/v8/src/wasm/wasm-opcodes.h | 277 +- deps/v8/src/wasm/wasm-serialization.cc | 723 +- deps/v8/src/wasm/wasm-serialization.h | 8 +- deps/v8/src/wasm/wasm-text.cc | 73 +- deps/v8/src/wasm/wasm-value.h | 91 +- deps/v8/src/x64/assembler-x64-inl.h | 27 +- deps/v8/src/x64/assembler-x64.cc | 35 +- deps/v8/src/x64/assembler-x64.h | 15 +- deps/v8/src/x64/code-stubs-x64.cc | 413 +- deps/v8/src/x64/deoptimizer-x64.cc | 10 +- deps/v8/src/x64/disasm-x64.cc | 4 +- deps/v8/src/x64/interface-descriptors-x64.cc | 8 +- deps/v8/src/x64/macro-assembler-x64.cc | 387 +- deps/v8/src/x64/macro-assembler-x64.h | 60 +- deps/v8/src/zone/zone-segment.cc | 6 +- deps/v8/src/zone/zone-segment.h | 4 +- deps/v8/src/zone/zone.cc | 53 +- deps/v8/test/cctest/BUILD.gn | 6 +- deps/v8/test/cctest/DEPS | 1 + deps/v8/test/cctest/cctest.h | 14 +- deps/v8/test/cctest/cctest.status | 29 +- deps/v8/test/cctest/compiler/call-tester.h | 6 +- .../cctest/compiler/code-assembler-tester.h | 10 +- deps/v8/test/cctest/compiler/codegen-tester.h | 18 +- .../cctest/compiler/graph-builder-tester.h | 5 +- .../cctest/compiler/test-code-assembler.cc | 10 +- .../cctest/compiler/test-code-generator.cc | 2 +- .../cctest/compiler/test-graph-visualizer.cc | 29 +- .../compiler/test-instruction-scheduler.cc | 2 +- .../cctest/compiler/test-js-constant-cache.cc | 23 +- .../test-js-context-specialization.cc | 72 +- .../cctest/compiler/test-js-typed-lowering.cc | 85 +- .../cctest/compiler/test-multiple-return.cc | 16 +- .../compiler/test-representation-change.cc | 16 +- .../test-run-calls-to-external-references.cc | 340 +- .../test/cctest/compiler/test-run-machops.cc | 53 +- deps/v8/test/cctest/compiler/value-helper.h | 56 +- deps/v8/test/cctest/heap/heap-tester.h | 7 +- deps/v8/test/cctest/heap/test-alloc.cc | 3 +- .../cctest/heap/test-array-buffer-tracker.cc | 20 +- deps/v8/test/cctest/heap/test-heap.cc | 139 +- deps/v8/test/cctest/heap/test-lab.cc | 2 +- .../test/cctest/heap/test-page-promotion.cc | 2 +- deps/v8/test/cctest/heap/test-spaces.cc | 10 +- deps/v8/test/cctest/heap/test-unmapper.cc | 66 + .../test/cctest/heap/test-weak-references.cc | 96 + .../bytecode-expectations-printer.cc | 3 +- .../AsyncGenerators.golden | 113 +- .../bytecode_expectations/BasicLoops.golden | 7 +- .../BreakableBlocks.golden | 15 +- .../CallLookupSlot.golden | 15 +- .../ClassAndSuperClass.golden | 20 +- .../ClassDeclarations.golden | 30 +- .../CompoundExpressions.golden | 7 +- .../ConstVariableContextSlot.golden | 30 +- .../ContextParameters.golden | 28 +- .../ContextVariables.golden | 1521 ++-- .../CountOperators.golden | 14 +- .../CreateArguments.golden | 10 +- .../bytecode_expectations/Delete.golden | 9 +- .../bytecode_expectations/Eval.golden | 9 +- .../bytecode_expectations/ForAwaitOf.golden | 162 +- .../bytecode_expectations/ForOf.golden | 76 +- .../bytecode_expectations/ForOfLoop.golden | 248 +- .../bytecode_expectations/Generators.golden | 22 +- .../LetVariableContextSlot.golden | 30 +- .../bytecode_expectations/LoadGlobal.golden | 654 +- .../bytecode_expectations/LookupSlot.golden | 55 +- .../bytecode_expectations/Modules.golden | 66 +- .../PrivateClassFields.golden | 9 +- .../bytecode_expectations/PropertyCall.golden | 657 +- .../PropertyLoads.golden | 778 +- .../PropertyStores.golden | 1556 ++-- .../PublicClassFields.golden | 9 +- .../StandardForLoop.golden | 52 +- .../StaticClassFields.golden | 81 +- .../bytecode_expectations/StoreGlobal.golden | 1312 +-- .../SuperCallAndSpread.golden | 78 +- .../bytecode_expectations/TryCatch.golden | 24 +- .../bytecode_expectations/TryFinally.golden | 33 +- .../WithStatement.golden | 3 +- .../interpreter/test-bytecode-generator.cc | 61 +- .../cctest/interpreter/test-interpreter.cc | 78 +- deps/v8/test/cctest/test-accessors.cc | 3 +- deps/v8/test/cctest/test-api-accessors.cc | 93 +- deps/v8/test/cctest/test-api.cc | 504 +- deps/v8/test/cctest/test-assembler-arm.cc | 3 +- deps/v8/test/cctest/test-assembler-arm64.cc | 16 +- deps/v8/test/cctest/test-assembler-ia32.cc | 2 +- deps/v8/test/cctest/test-assembler-x64.cc | 34 +- deps/v8/test/cctest/test-code-layout.cc | 23 +- .../test/cctest/test-code-stub-assembler.cc | 59 +- deps/v8/test/cctest/test-code-stubs-arm.cc | 6 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 8 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 5 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 6 +- deps/v8/test/cctest/test-code-stubs-mips64.cc | 6 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 5 +- deps/v8/test/cctest/test-code-stubs.cc | 10 +- deps/v8/test/cctest/test-compiler.cc | 10 +- deps/v8/test/cctest/test-cpu-profiler.cc | 118 +- deps/v8/test/cctest/test-debug.cc | 25 +- deps/v8/test/cctest/test-dictionary.cc | 1 + deps/v8/test/cctest/test-disasm-arm.cc | 97 +- deps/v8/test/cctest/test-disasm-ia32.cc | 32 +- deps/v8/test/cctest/test-disasm-x64.cc | 29 +- deps/v8/test/cctest/test-feedback-vector.cc | 7 +- deps/v8/test/cctest/test-heap-profiler.cc | 154 +- deps/v8/test/cctest/test-identity-map.cc | 23 +- .../test-isolate-independent-builtins.cc | 18 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 16 +- deps/v8/test/cctest/test-log.cc | 153 +- .../test/cctest/test-macro-assembler-x64.cc | 16 +- deps/v8/test/cctest/test-managed.cc | 184 +- deps/v8/test/cctest/test-orderedhashtable.cc | 299 + deps/v8/test/cctest/test-parsing.cc | 19 +- deps/v8/test/cctest/test-profile-generator.cc | 122 +- deps/v8/test/cctest/test-regexp.cc | 21 +- deps/v8/test/cctest/test-serialize.cc | 117 +- deps/v8/test/cctest/test-strings.cc | 27 +- .../v8/test/cctest/test-thread-termination.cc | 178 + deps/v8/test/cctest/test-trace-event.cc | 142 +- deps/v8/test/cctest/test-types.cc | 753 +- deps/v8/test/cctest/test-unboxed-doubles.cc | 3 +- deps/v8/test/cctest/test-weakmaps.cc | 1 + deps/v8/test/cctest/test-weaksets.cc | 1 + deps/v8/test/cctest/torque/test-torque.cc | 161 + deps/v8/test/cctest/trace-extension.cc | 16 +- deps/v8/test/cctest/types-fuzz.h | 64 +- deps/v8/test/cctest/wasm/test-c-wasm-entry.cc | 16 +- deps/v8/test/cctest/wasm/test-run-wasm-64.cc | 40 +- .../test/cctest/wasm/test-run-wasm-atomics.cc | 38 +- .../cctest/wasm/test-run-wasm-atomics64.cc | 53 +- .../test/cctest/wasm/test-run-wasm-module.cc | 65 +- .../wasm/test-run-wasm-sign-extension.cc | 7 +- .../v8/test/cctest/wasm/test-run-wasm-simd.cc | 919 +- deps/v8/test/cctest/wasm/test-run-wasm.cc | 318 +- .../cctest/wasm/test-streaming-compilation.cc | 7 - .../test/cctest/wasm/test-wasm-breakpoints.cc | 15 +- deps/v8/test/cctest/wasm/test-wasm-stack.cc | 3 +- .../cctest/wasm/test-wasm-trap-position.cc | 6 +- deps/v8/test/cctest/wasm/wasm-run-utils.cc | 171 +- deps/v8/test/cctest/wasm/wasm-run-utils.h | 82 +- deps/v8/test/common/wasm/wasm-macro-gen.h | 20 +- .../v8/test/common/wasm/wasm-module-runner.cc | 8 +- deps/v8/test/common/wasm/wasm-module-runner.h | 3 + deps/v8/test/debugger/debug/debug-scopes.js | 89 +- .../debug/harmony/modules-debug-scopes1.js | 6 +- .../debugger/debug/regress/regress-2825.js | 2 +- ...ebug-evaluate-no-side-effect-builtins-2.js | 10 +- .../debug-evaluate-no-side-effect-builtins.js | 18 +- .../debug-evaluate-no-side-effect-control.js | 12 +- .../debug-evaluate-no-side-effect-ops.js | 4 +- .../debug-evaluate-no-side-effect-regexp.js | 28 + ...g-evaluate-no-side-effect-runtime-check.js | 133 +- .../debug-evaluate-no-side-effect.js | 1 + deps/v8/test/debugger/debugger.status | 4 +- .../debugger/regress/regress-crbug-840288.js | 25 + deps/v8/test/debugger/test-api.js | 4 +- deps/v8/test/fuzzer/multi-return.cc | 16 +- deps/v8/test/fuzzer/wasm-compile.cc | 2 +- deps/v8/test/fuzzer/wasm-fuzzer-common.cc | 3 +- ...valuate-on-call-frame-timeout-expected.txt | 7 + .../evaluate-on-call-frame-timeout.js | 40 + .../debugger/external-stack-trace.js | 1 + ...t-breakpoint-on-function-call-expected.txt | 36 + .../set-breakpoint-on-function-call.js | 66 + .../debugger/set-script-source-2-expected.txt | 20 +- .../inspector/debugger/set-script-source-2.js | 8 +- .../terminate-execution-on-pause-expected.txt | 5 + .../debugger/terminate-execution-on-pause.js | 43 + .../debugger/wasm-set-breakpoint-expected.txt | 62 + .../inspector/debugger/wasm-set-breakpoint.js | 158 + deps/v8/test/inspector/inspector-test.cc | 47 +- deps/v8/test/inspector/inspector.status | 8 +- deps/v8/test/inspector/isolate-data.cc | 1 + ...line-api-without-side-effects-expected.txt | 134 + .../command-line-api-without-side-effects.js | 83 + .../runtime/console-context-expected.txt | 19 +- .../runtime/console-methods-expected.txt | 128 + .../test/inspector/runtime/console-methods.js | 7 + .../runtime/evaluate-timeout-expected.txt | 7 + .../inspector/runtime/evaluate-timeout.js | 34 + ...evaluate-without-side-effects-expected.txt | 2 +- ...gger-stepping-and-breakpoints-expected.txt | 3 + .../debugger-stepping-and-breakpoints.js | 9 + .../test/intl/date-format/month-far-future.js | 6 +- .../language_tags_with_preferred_values.js | 29 + deps/v8/test/intl/intl.status | 4 +- .../intl/locale/locale-canonicalization.js | 24 + .../v8/test/intl/locale/locale-constructor.js | 32 + deps/v8/test/intl/locale/locale-properties.js | 35 + deps/v8/test/js-perf-test/ArraySort/run.js | 6 +- .../test/js-perf-test/ArraySort/sort-base.js | 128 + .../ArraySort/sort-cmpfn-kindchange.js | 39 + .../test/js-perf-test/ArraySort/sort-cmpfn.js | 21 + .../ArraySort/sort-megamorphic.js | 20 + .../js-perf-test/ArraySort/sort-presorted.js | 19 + deps/v8/test/js-perf-test/ArraySort/sort.js | 99 +- .../js-perf-test/DataView/dataviewtest.js | 150 + deps/v8/test/js-perf-test/DataView/run.js | 24 + deps/v8/test/js-perf-test/JSTests.json | 137 +- deps/v8/test/js-perf-test/RegExp.json | 4 +- .../test/js-perf-test/RegExp/RegExpTests.json | 3 +- deps/v8/test/js-perf-test/RegExp/run.js | 1 + deps/v8/test/js-perf-test/RegExp/test_inl.js | 17 + deps/v8/test/js-perf-test/SixSpeed.json | 1 + .../test/js-perf-test/Strings/string-split.js | 81 + .../Strings/string-startsendswith-comp.js | 47 + .../js-perf-test/TypedArrays/sort-bigint.js | 8 + .../TypedArrays/sort-cmpfn-bigint.js | 9 + deps/v8/test/js-perf-test/TypedArrays/sort.js | 23 +- deps/v8/test/memory/Memory.json | 9 + .../assert-promise-result-rejects-empty.js | 11 + .../assert-promise-result-rejects-empty.out | 12 + ...promise-result-rejects-with-throw-empty.js | 14 + ...romise-result-rejects-with-throw-empty.out | 10 + .../fail/assert-promise-result-rejects.js | 11 + .../fail/assert-promise-result-rejects.out | 12 + .../fail/assert-promise-result-resolves.js | 11 + .../fail/assert-promise-result-resolves.out | 13 + .../success/assert-promise-result-rejects.js | 12 + .../success/assert-promise-result-rejects.out | 1 + .../assert-promise-result-resolves-empty.js | 16 + .../assert-promise-result-resolves-empty.out | 0 .../success/assert-promise-result-resolves.js | 11 + .../assert-promise-result-resolves.out | 1 + .../test/message/regress/fail/regress-73.js | 12 +- .../regress/fail/regress-crbug-842101.js | 18 + .../regress/fail/regress-crbug-842101.out | 10 + .../test/message/wasm-function-name-async.out | 2 +- .../message/wasm-function-name-streaming.out | 2 +- .../wasm-module-and-function-name-async.out | 2 +- ...asm-module-and-function-name-streaming.out | 2 +- .../test/message/wasm-module-name-async.out | 2 +- .../message/wasm-module-name-streaming.out | 2 +- deps/v8/test/message/wasm-no-name-async.out | 2 +- .../test/message/wasm-no-name-streaming.out | 2 +- .../test/message/wasm-trace-memory-liftoff.js | 2 +- deps/v8/test/message/wasm-trace-memory.js | 2 +- deps/v8/test/mjsunit/array-sort.js | 234 +- deps/v8/test/mjsunit/code-comments.js | 26 + ...-no-harmony-restrict-constructor-return.js | 12 - .../mjsunit/compiler/constructor-inlining.js | 27 +- .../test/mjsunit/compiler/regress-841117.js | 11 + .../mjsunit/compiler/string-concat-deopt.js | 12 +- deps/v8/test/mjsunit/date.js | 5 + deps/v8/test/mjsunit/es6/reflect.js | 2 - .../test/mjsunit/es6/regress/regress-7706.js | 16 + .../es6/typedarray-construct-by-array-like.js | 4 +- deps/v8/test/mjsunit/es6/typedarray-sort.js | 55 + .../es8/constructor-returning-primitive.js | 318 - deps/v8/test/mjsunit/fast-literal.js | 2 +- deps/v8/test/mjsunit/harmony/bigint/basics.js | 6 +- .../mjsunit/harmony/bigint/comparisons.js | 8 +- deps/v8/test/mjsunit/harmony/futex.js | 33 +- .../harmony/public-instance-class-fields.js | 22 +- .../intl-numberformat-formattoparts.js | 3 - .../{harmony => }/intl-pluralrules-select.js | 2 - deps/v8/test/mjsunit/linecontinuation.js | 40 + deps/v8/test/mjsunit/messages.js | 21 +- deps/v8/test/mjsunit/mjsunit.js | 74 +- deps/v8/test/mjsunit/mjsunit.status | 35 +- .../proto-elements-add-during-foreach.js | 40 +- .../v8/test/mjsunit/regress/regress-484544.js | 2 +- .../v8/test/mjsunit/regress/regress-707410.js | 3 +- deps/v8/test/mjsunit/regress/regress-7642.js | 58 + deps/v8/test/mjsunit/regress/regress-7652.js | 26 + deps/v8/test/mjsunit/regress/regress-7677.js | 63 + deps/v8/test/mjsunit/regress/regress-7716.js | 51 + .../v8/test/mjsunit/regress/regress-829889.js | 17 - .../v8/test/mjsunit/regress/regress-838766.js | 14 + .../v8/test/mjsunit/regress/regress-840106.js | 17 + .../v8/test/mjsunit/regress/regress-842078.js | 14 + .../v8/test/mjsunit/regress/regress-849663.js | 7 + .../test/mjsunit/regress/regress-854066-2.js | 14 + .../v8/test/mjsunit/regress/regress-854066.js | 13 + .../mjsunit/regress/regress-crbug-347903.js | 2 +- .../mjsunit/regress/regress-crbug-743154.js | 2 + .../mjsunit/regress/regress-crbug-779344.js | 4 +- .../mjsunit/regress/regress-crbug-823130.js | 40 + .../mjsunit/regress/regress-crbug-840220.js | 12 + .../mjsunit/regress/regress-crbug-841592.js | 21 + .../mjsunit/regress/regress-crbug-851393.js | 7 + .../test/mjsunit/regress/regress-v8-7682.js | 22 + .../test/mjsunit/regress/regress-v8-7725.js | 11 + .../mjsunit/regress/wasm/regress-834624.js | 30 + .../mjsunit/regress/wasm/regress-834693.js | 20 + .../mjsunit/regress/wasm/regress-840757.js | 21 + .../mjsunit/regress/wasm/regress-842501.js | 35 + .../mjsunit/regress/wasm/regress-843563.js | 20 + deps/v8/test/mjsunit/string-split.js | 9 + .../mjsunit/tools/compiler-trace-flags.js | 36 + deps/v8/test/mjsunit/wasm/async-compile.js | 4 +- .../wasm/compiled-module-management.js | 3 +- .../wasm/compiled-module-serialization.js | 52 + .../mjsunit/wasm/export-mutable-global.js | 86 + deps/v8/test/mjsunit/wasm/import-function.js | 96 +- .../mjsunit/wasm/import-mutable-global.js | 193 + deps/v8/test/mjsunit/wasm/indirect-tables.js | 38 - deps/v8/test/mjsunit/wasm/liftoff.js | 1 + deps/v8/test/mjsunit/wasm/mutable-globals.js | 59 +- deps/v8/test/mjsunit/wasm/start-function.js | 21 +- .../test/mjsunit/wasm/wasm-module-builder.js | 4 +- deps/v8/test/mkgrokdump/mkgrokdump.cc | 2 - deps/v8/test/mozilla/mozilla.status | 4 +- deps/v8/test/test262/harness-agent.js | 12 +- deps/v8/test/test262/test262.status | 56 +- deps/v8/test/torque/test-torque.tq | 192 + deps/v8/test/unittests/BUILD.gn | 3 +- deps/v8/test/unittests/allocation-unittest.cc | 1 + .../unittests/code-stub-assembler-unittest.cc | 6 +- .../compiler-dispatcher-unittest.cc | 33 +- .../compiler/code-assembler-unittest.cc | 2 +- .../constant-folding-reducer-unittest.cc | 223 + .../compiler/control-equivalence-unittest.cc | 4 +- .../effect-control-linearizer-unittest.cc | 12 +- .../test/unittests/compiler/graph-unittest.cc | 8 +- .../test/unittests/compiler/graph-unittest.h | 5 +- .../compiler/instruction-selector-unittest.cc | 2 +- .../compiler/int64-lowering-unittest.cc | 21 +- .../compiler/js-builtin-reducer-unittest.cc | 242 - .../compiler/js-call-reducer-unittest.cc | 67 + .../compiler/js-create-lowering-unittest.cc | 19 +- .../compiler/js-typed-lowering-unittest.cc | 8 +- .../compiler/loop-peeling-unittest.cc | 12 +- .../machine-operator-reducer-unittest.cc | 3 +- .../unittests/compiler/node-test-utils.cc | 7 +- .../test/unittests/compiler/node-test-utils.h | 4 + .../unittests/compiler/scheduler-unittest.cc | 4 +- .../compiler/simplified-lowering-unittest.cc | 4 +- .../compiler/typed-optimization-unittest.cc | 165 - .../test/unittests/compiler/typer-unittest.cc | 148 +- .../test/unittests/heap/slot-set-unittest.cc | 16 +- .../test/unittests/heap/unmapper-unittest.cc | 4 +- .../bytecode-array-builder-unittest.cc | 10 +- .../interpreter-assembler-unittest.cc | 41 +- .../libplatform/default-platform-unittest.cc | 32 +- deps/v8/test/unittests/object-unittest.cc | 20 + .../unittests/strings-storage-unittest.cc | 134 + deps/v8/test/unittests/utils-unittest.cc | 23 + .../wasm/function-body-decoder-unittest.cc | 23 +- .../unittests/wasm/module-decoder-unittest.cc | 8 +- .../wasm/wasm-code-manager-unittest.cc | 53 +- .../v8/test/wasm-spec-tests/tests.tar.gz.sha1 | 2 +- deps/v8/test/webkit/webkit.status | 6 +- deps/v8/third_party/antlr4/BUILD.gn | 339 + deps/v8/third_party/googletest/BUILD.gn | 14 +- deps/v8/tools/codemap.js | 14 +- deps/v8/tools/dev/gm.py | 2 +- deps/v8/tools/format-torque.py | 36 + deps/v8/tools/gcmole/BUILD.gn | 5 + deps/v8/tools/gcmole/gcmole.lua | 1 + deps/v8/tools/gcmole/run-gcmole.py | 6 + deps/v8/tools/gen-postmortem-metadata.py | 9 +- deps/v8/tools/grokdump.py | 2 +- .../tools/heap-stats/details-selection.html | 14 +- deps/v8/tools/heap-stats/details-selection.js | 35 +- deps/v8/tools/heap-stats/global-timeline.js | 60 +- deps/v8/tools/heap-stats/histogram-viewer.js | 37 +- deps/v8/tools/heap-stats/trace-file-reader.js | 23 + deps/v8/tools/make-torque-parser.py | 71 + deps/v8/tools/node/build_gn.py | 103 +- deps/v8/tools/node/fetch_deps.py | 21 +- deps/v8/tools/node/node_common.py | 6 +- deps/v8/tools/parser-shell.cc | 162 - deps/v8/tools/presubmit.py | 2 +- deps/v8/tools/release/auto_roll.py | 2 +- deps/v8/tools/release/common_includes.py | 26 +- deps/v8/tools/release/git_recipes.py | 4 +- deps/v8/tools/release/releases.py | 576 -- deps/v8/tools/release/test_scripts.py | 526 +- deps/v8/tools/run_perf.py | 7 + deps/v8/tools/testrunner/local/variants.py | 3 +- deps/v8/tools/testrunner/num_fuzzer.py | 8 + deps/v8/tools/testrunner/standard_runner.py | 9 +- deps/v8/tools/try_perf.py | 1 + deps/v8/tools/turbolizer/code-view.js | 329 +- deps/v8/tools/turbolizer/constants.js | 1 - deps/v8/tools/turbolizer/disassembly-view.js | 134 +- deps/v8/tools/turbolizer/empty-view.js | 19 - deps/v8/tools/turbolizer/graph-layout.js | 3 +- deps/v8/tools/turbolizer/graph-view.js | 732 +- deps/v8/tools/turbolizer/index.html | 35 +- deps/v8/tools/turbolizer/node.js | 6 +- deps/v8/tools/turbolizer/schedule-view.js | 253 +- deps/v8/tools/turbolizer/selection-broker.js | 140 +- deps/v8/tools/turbolizer/selection.js | 130 +- deps/v8/tools/turbolizer/source-resolver.js | 326 + deps/v8/tools/turbolizer/text-view.js | 391 +- deps/v8/tools/turbolizer/turbo-visualizer.css | 246 +- deps/v8/tools/turbolizer/turbo-visualizer.js | 239 +- deps/v8/tools/turbolizer/turbolizer.png | Bin 0 -> 79281 bytes deps/v8/tools/turbolizer/util.js | 56 +- deps/v8/tools/turbolizer/view.js | 10 +- deps/v8/tools/v8heapconst.py | 460 +- deps/v8/tools/whitespace.txt | 2 +- 1113 files changed, 76959 insertions(+), 41169 deletions(-) create mode 100644 deps/v8/.gitattributes create mode 100644 deps/v8/infra/testing/PRESUBMIT.py create mode 100644 deps/v8/infra/testing/builders.pyl delete mode 100644 deps/v8/infra/testing/client.v8.pyl delete mode 100644 deps/v8/infra/testing/tryserver.v8.pyl create mode 100644 deps/v8/src/asan.h create mode 100644 deps/v8/src/assembler-arch.h create mode 100644 deps/v8/src/builtins/array.tq create mode 100644 deps/v8/src/builtins/base.tq create mode 100644 deps/v8/src/builtins/builtins-test-gen.h delete mode 100644 deps/v8/src/builtins/builtins-trace.cc rename deps/v8/src/builtins/{builtins-typedarray-gen.cc => builtins-typed-array-gen.cc} (89%) rename deps/v8/src/builtins/{builtins-typedarray-gen.h => builtins-typed-array-gen.h} (83%) rename deps/v8/src/builtins/{builtins-typedarray.cc => builtins-typed-array.cc} (100%) create mode 100644 deps/v8/src/builtins/typed-array.tq create mode 100644 deps/v8/src/code-reference.cc create mode 100644 deps/v8/src/code-reference.h create mode 100644 deps/v8/src/compiler/constant-folding-reducer.cc create mode 100644 deps/v8/src/compiler/constant-folding-reducer.h delete mode 100644 deps/v8/src/compiler/js-builtin-reducer.cc delete mode 100644 deps/v8/src/compiler/js-builtin-reducer.h create mode 100644 deps/v8/src/compiler/machine-graph.cc create mode 100644 deps/v8/src/compiler/machine-graph.h create mode 100644 deps/v8/src/compiler/node-origin-table.cc create mode 100644 deps/v8/src/compiler/node-origin-table.h create mode 100644 deps/v8/src/compiler/type-narrowing-reducer.cc create mode 100644 deps/v8/src/compiler/type-narrowing-reducer.h delete mode 100644 deps/v8/src/compiler/wasm-linkage.cc create mode 100644 deps/v8/src/lsan.h delete mode 100644 deps/v8/src/managed.h create mode 100644 deps/v8/src/objects/api-callbacks-inl.h create mode 100644 deps/v8/src/objects/api-callbacks.h create mode 100644 deps/v8/src/objects/js-locale-inl.h create mode 100644 deps/v8/src/objects/js-locale.cc create mode 100644 deps/v8/src/objects/js-locale.h create mode 100644 deps/v8/src/objects/managed.cc create mode 100644 deps/v8/src/objects/managed.h create mode 100644 deps/v8/src/objects/ordered-hash-table-inl.h create mode 100644 deps/v8/src/objects/ordered-hash-table.cc create mode 100644 deps/v8/src/objects/ordered-hash-table.h create mode 100644 deps/v8/src/objects/templates-inl.h create mode 100644 deps/v8/src/objects/templates.h create mode 100644 deps/v8/src/torque/Torque.g4 create mode 100644 deps/v8/src/torque/TorqueBaseListener.cpp create mode 100644 deps/v8/src/torque/TorqueBaseListener.h create mode 100644 deps/v8/src/torque/TorqueBaseVisitor.cpp create mode 100644 deps/v8/src/torque/TorqueBaseVisitor.h create mode 100644 deps/v8/src/torque/TorqueLexer.cpp create mode 100644 deps/v8/src/torque/TorqueLexer.h create mode 100644 deps/v8/src/torque/TorqueListener.cpp create mode 100644 deps/v8/src/torque/TorqueListener.h create mode 100644 deps/v8/src/torque/TorqueParser.cpp create mode 100644 deps/v8/src/torque/TorqueParser.h create mode 100644 deps/v8/src/torque/TorqueVisitor.cpp create mode 100644 deps/v8/src/torque/TorqueVisitor.h create mode 100644 deps/v8/src/torque/ast-generator.cc create mode 100644 deps/v8/src/torque/ast-generator.h create mode 100644 deps/v8/src/torque/ast.h create mode 100644 deps/v8/src/torque/contextual.h create mode 100644 deps/v8/src/torque/declarable.cc create mode 100644 deps/v8/src/torque/declarable.h create mode 100644 deps/v8/src/torque/declaration-visitor.cc create mode 100644 deps/v8/src/torque/declaration-visitor.h create mode 100644 deps/v8/src/torque/declarations.cc create mode 100644 deps/v8/src/torque/declarations.h create mode 100644 deps/v8/src/torque/file-visitor.cc create mode 100644 deps/v8/src/torque/file-visitor.h create mode 100644 deps/v8/src/torque/global-context.h create mode 100644 deps/v8/src/torque/implementation-visitor.cc create mode 100644 deps/v8/src/torque/implementation-visitor.h create mode 100644 deps/v8/src/torque/scope.cc create mode 100644 deps/v8/src/torque/scope.h create mode 100644 deps/v8/src/torque/torque.cc create mode 100644 deps/v8/src/torque/type-oracle.h create mode 100644 deps/v8/src/torque/types.cc create mode 100644 deps/v8/src/torque/types.h create mode 100644 deps/v8/src/torque/utils.cc create mode 100644 deps/v8/src/torque/utils.h create mode 100644 deps/v8/src/trap-handler/handler-inside-linux.cc create mode 100644 deps/v8/src/trap-handler/handler-outside-linux.cc create mode 100644 deps/v8/src/trap-handler/handler-outside-win.cc create mode 100644 deps/v8/src/wasm/baseline/liftoff-compiler.h delete mode 100644 deps/v8/src/wasm/compilation-manager.cc delete mode 100644 deps/v8/src/wasm/compilation-manager.h create mode 100644 deps/v8/src/wasm/function-compiler.cc create mode 100644 deps/v8/src/wasm/function-compiler.h create mode 100644 deps/v8/src/wasm/value-type.h create mode 100644 deps/v8/src/wasm/wasm-linkage.h create mode 100644 deps/v8/test/cctest/heap/test-unmapper.cc create mode 100644 deps/v8/test/cctest/torque/test-torque.cc create mode 100644 deps/v8/test/debugger/debug/side-effect/debug-evaluate-no-side-effect-regexp.js create mode 100644 deps/v8/test/debugger/regress/regress-crbug-840288.js create mode 100644 deps/v8/test/inspector/debugger/evaluate-on-call-frame-timeout-expected.txt create mode 100644 deps/v8/test/inspector/debugger/evaluate-on-call-frame-timeout.js create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-on-function-call-expected.txt create mode 100644 deps/v8/test/inspector/debugger/set-breakpoint-on-function-call.js create mode 100644 deps/v8/test/inspector/debugger/terminate-execution-on-pause-expected.txt create mode 100644 deps/v8/test/inspector/debugger/terminate-execution-on-pause.js create mode 100644 deps/v8/test/inspector/debugger/wasm-set-breakpoint-expected.txt create mode 100644 deps/v8/test/inspector/debugger/wasm-set-breakpoint.js create mode 100644 deps/v8/test/inspector/runtime/command-line-api-without-side-effects-expected.txt create mode 100644 deps/v8/test/inspector/runtime/command-line-api-without-side-effects.js create mode 100644 deps/v8/test/inspector/runtime/evaluate-timeout-expected.txt create mode 100644 deps/v8/test/inspector/runtime/evaluate-timeout.js create mode 100644 deps/v8/test/intl/general/language_tags_with_preferred_values.js create mode 100644 deps/v8/test/intl/locale/locale-canonicalization.js create mode 100644 deps/v8/test/intl/locale/locale-constructor.js create mode 100644 deps/v8/test/intl/locale/locale-properties.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort-base.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort-cmpfn-kindchange.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort-cmpfn.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort-megamorphic.js create mode 100644 deps/v8/test/js-perf-test/ArraySort/sort-presorted.js create mode 100644 deps/v8/test/js-perf-test/DataView/dataviewtest.js create mode 100644 deps/v8/test/js-perf-test/DataView/run.js create mode 100644 deps/v8/test/js-perf-test/RegExp/test_inl.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-split.js create mode 100644 deps/v8/test/js-perf-test/Strings/string-startsendswith-comp.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-bigint.js create mode 100644 deps/v8/test/js-perf-test/TypedArrays/sort-cmpfn-bigint.js create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects-empty.js create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects-empty.out create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects-with-throw-empty.js create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects-with-throw-empty.out create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects.js create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-rejects.out create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-resolves.js create mode 100644 deps/v8/test/message/mjsunit/fail/assert-promise-result-resolves.out create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-rejects.js create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-rejects.out create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-resolves-empty.js create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-resolves-empty.out create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-resolves.js create mode 100644 deps/v8/test/message/mjsunit/success/assert-promise-result-resolves.out create mode 100644 deps/v8/test/message/regress/fail/regress-crbug-842101.js create mode 100644 deps/v8/test/message/regress/fail/regress-crbug-842101.out create mode 100644 deps/v8/test/mjsunit/code-comments.js delete mode 100644 deps/v8/test/mjsunit/compiler/constructor-inlining-no-harmony-restrict-constructor-return.js create mode 100644 deps/v8/test/mjsunit/compiler/regress-841117.js create mode 100644 deps/v8/test/mjsunit/es6/regress/regress-7706.js delete mode 100644 deps/v8/test/mjsunit/es8/constructor-returning-primitive.js rename deps/v8/test/mjsunit/{harmony => }/intl-numberformat-formattoparts.js (99%) rename deps/v8/test/mjsunit/{harmony => }/intl-pluralrules-select.js (97%) create mode 100644 deps/v8/test/mjsunit/linecontinuation.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7642.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7652.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7677.js create mode 100644 deps/v8/test/mjsunit/regress/regress-7716.js delete mode 100644 deps/v8/test/mjsunit/regress/regress-829889.js create mode 100644 deps/v8/test/mjsunit/regress/regress-838766.js create mode 100644 deps/v8/test/mjsunit/regress/regress-840106.js create mode 100644 deps/v8/test/mjsunit/regress/regress-842078.js create mode 100644 deps/v8/test/mjsunit/regress/regress-849663.js create mode 100644 deps/v8/test/mjsunit/regress/regress-854066-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-854066.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-823130.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-840220.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-841592.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-851393.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-7682.js create mode 100644 deps/v8/test/mjsunit/regress/regress-v8-7725.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-834624.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-834693.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-840757.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-842501.js create mode 100644 deps/v8/test/mjsunit/regress/wasm/regress-843563.js create mode 100644 deps/v8/test/mjsunit/tools/compiler-trace-flags.js create mode 100644 deps/v8/test/mjsunit/wasm/export-mutable-global.js create mode 100644 deps/v8/test/mjsunit/wasm/import-mutable-global.js create mode 100644 deps/v8/test/torque/test-torque.tq create mode 100644 deps/v8/test/unittests/compiler/constant-folding-reducer-unittest.cc delete mode 100644 deps/v8/test/unittests/compiler/js-builtin-reducer-unittest.cc create mode 100644 deps/v8/test/unittests/strings-storage-unittest.cc create mode 100644 deps/v8/third_party/antlr4/BUILD.gn create mode 100755 deps/v8/tools/format-torque.py create mode 100755 deps/v8/tools/make-torque-parser.py delete mode 100644 deps/v8/tools/parser-shell.cc delete mode 100755 deps/v8/tools/release/releases.py delete mode 100644 deps/v8/tools/turbolizer/empty-view.js create mode 100644 deps/v8/tools/turbolizer/source-resolver.js create mode 100644 deps/v8/tools/turbolizer/turbolizer.png diff --git a/deps/v8/.gitattributes b/deps/v8/.gitattributes new file mode 100644 index 00000000000000..d38eef01ae5203 --- /dev/null +++ b/deps/v8/.gitattributes @@ -0,0 +1,2 @@ +# Automatically normalize line endings (to LF) for all text-based files. +* text=auto diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index d1df5403e9c7a0..ba54db5505663d 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -32,6 +32,7 @@ Facebook, Inc. <*@fb.com> Facebook, Inc. <*@oculus.com> Vewd Software AS <*@vewd.com> Groupon <*@groupon.com> +Cloudflare, Inc. <*@cloudflare.com> Aaron Bieber Abdulla Kamar @@ -41,6 +42,7 @@ Alexander Botero-Lowry Alexander Karpinsky Alexandre Vassalotti Alexis Campailla +Amos Lim Andreas Anyuru Andrew Paprocki Andrei Kashcha @@ -61,6 +63,7 @@ Daniel Andersson Daniel Bevenius Daniel James Deon Dior +Dominic Farolini Douglas Crosher Dusan Milosavljevic Erich Ocean @@ -75,6 +78,7 @@ Gwang Yoon Hwang Henrique Ferreiro Hirofumi Mako Honggyu Kim +Ingvar Stepanyan Ioseb Dzmanashvili Isiah Meadows Jaime Bernardo @@ -82,7 +86,6 @@ Jan de Mooij Jan Krems Jay Freeman James Pike -James M Snell Jianghua Yang Joel Stanley Johan Bergström @@ -126,8 +129,10 @@ Paul Lind Qingyan Li Qiuyi Zhang Rafal Krypa +Ray Glover Refael Ackermann Rene Rebe +Rick Waldron Rob Wu Robert Mustacchi Robert Nagy diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 1d42461ba73128..456a318c1c6052 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -70,7 +70,7 @@ declare_args() { # Enable embedded builtins. # TODO(jgruber,v8:6666): Support ia32 and maybe MSVC. - # TODO(jgruber,v8:6666): Re-enable after the M67 branch point. + # TODO(jgruber,v8:6666): Re-enable. v8_enable_embedded_builtins = false # Enable code-generation-time checking of types in the CodeStubAssembler. @@ -190,7 +190,10 @@ v8_toolset_for_shell = "host" config("internal_config") { visibility = [ ":*" ] # Only targets in this file can depend on this. - include_dirs = [ "." ] + include_dirs = [ + ".", + "$target_gen_dir", + ] if (is_component_build) { defines = [ "BUILDING_V8_SHARED" ] @@ -200,7 +203,10 @@ config("internal_config") { config("internal_config_base") { visibility = [ ":*" ] # Only targets in this file can depend on this. - include_dirs = [ "." ] + include_dirs = [ + ".", + "$target_gen_dir", + ] } # This config should be applied to code using the libplatform. @@ -569,7 +575,14 @@ config("toolchain") { "/wd4703", # Potentially uninitialized local pointer variable. "/wd4709", # Comma operator within array index expr (bugged). "/wd4714", # Function marked forceinline not inlined. + + # MSVC assumes that control can get past an exhaustive switch and then + # warns if there's no return there (see https://crbug.com/v8/7658) + "/wd4715", # Not all control paths return a value. + "/wd4718", # Recursive call has no side-effect. + "/wd4723", # https://crbug.com/v8/7771 + "/wd4724", # https://crbug.com/v8/7771 "/wd4800", # Forcing value to bool. ] } @@ -580,6 +593,10 @@ config("toolchain") { # signed overflow does not occur. Generates false positives (see # http://crbug.com/v8/6341). "-Wno-strict-overflow", + + # GCC assumes that control can get past an exhaustive switch and then + # warns if there's no return there (see https://crbug.com/v8/7658). + "-Wno-return-type", ] } } @@ -827,6 +844,99 @@ action("postmortem-metadata") { rebase_path(sources, root_build_dir) } +torque_files = [ + "src/builtins/base.tq", + "src/builtins/array.tq", + "src/builtins/typed-array.tq", + "test/torque/test-torque.tq", +] + +torque_modules = [ + "base", + "array", + "typed-array", + "test", +] + +action("run_torque") { + visibility = [ + ":*", + "tools/gcmole/:*", + "test/cctest/:*", + ] + + # We reuse the snapshot toolchain for building torque to not build v8_libbase + # on the host more than once. On mips with big endian, the snapshot toolchain + # is the target toolchain and, hence, can't be used. + v8_torque_toolchain = v8_snapshot_toolchain + if (host_cpu == "x64" && + (v8_current_cpu == "mips" || v8_current_cpu == "mips64")) { + v8_torque_toolchain = "//build/toolchain/linux:clang_x64" + } + + deps = [ + ":torque($v8_torque_toolchain)", + ] + + script = "tools/run.py" + + sources = torque_files + + outputs = [ + "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", + ] + foreach(module, torque_modules) { + outputs += [ + "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + ] + } + + args = [ + "./" + rebase_path(get_label_info(":torque($v8_torque_toolchain)", + "root_out_dir") + "/torque", + root_build_dir), + "-o", + rebase_path("$target_gen_dir/torque-generated", root_build_dir), + ] + + foreach(file, torque_files) { + args += [ rebase_path(file, root_build_dir) ] + } +} + +v8_source_set("torque_generated_core") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + deps = [ + ":run_torque", + ] + + sources = [ + "$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h", + ] + + configs = [ ":internal_config" ] +} + +v8_source_set("torque_generated_initializers") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + deps = [ + ":run_torque", + ] + + sources = [] + foreach(module, torque_modules) { + sources += [ + "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.cc", + "$target_gen_dir/torque-generated/builtins-$module-from-dsl-gen.h", + ] + } + + configs = [ ":internal_config" ] +} + # Template to generate different V8 snapshots based on different runtime flags. # Can be invoked with run_mksnapshot(). The target will resolve to # run_mksnapshot_. If is "default", no file suffixes will be used. @@ -1054,6 +1164,9 @@ if (v8_use_snapshot && !v8_use_external_startup_data) { ":run_mksnapshot_default", ] + # Do not publicize any header to remove build dependency. + public = [] + sources = [ "$target_gen_dir/experimental-extras-libraries.cc", "$target_gen_dir/extras-libraries.cc", @@ -1104,6 +1217,9 @@ if (v8_use_snapshot && v8_use_external_startup_data) { "src/snapshot/snapshot-external.cc", ] + # Do not publicize any header to remove build dependency. + public = [] + if (v8_enable_embedded_builtins) { sources += [ "$target_gen_dir/embedded.cc" ] @@ -1130,6 +1246,7 @@ v8_source_set("v8_initializers") { ] deps = [ + ":torque_generated_initializers", ":v8_base", ] @@ -1180,8 +1297,8 @@ v8_source_set("v8_initializers") { "src/builtins/builtins-string-gen.cc", "src/builtins/builtins-string-gen.h", "src/builtins/builtins-symbol-gen.cc", - "src/builtins/builtins-typedarray-gen.cc", - "src/builtins/builtins-typedarray-gen.h", + "src/builtins/builtins-typed-array-gen.cc", + "src/builtins/builtins-typed-array-gen.h", "src/builtins/builtins-utils-gen.h", "src/builtins/builtins-wasm-gen.cc", "src/builtins/growable-fixed-array-gen.cc", @@ -1340,6 +1457,7 @@ v8_source_set("v8_base") { "src/api.h", "src/arguments.cc", "src/arguments.h", + "src/asan.h", "src/asmjs/asm-js.cc", "src/asmjs/asm-js.h", "src/asmjs/asm-names.h", @@ -1351,6 +1469,7 @@ v8_source_set("v8_base") { "src/asmjs/asm-types.h", "src/asmjs/switch-logic.cc", "src/asmjs/switch-logic.h", + "src/assembler-arch.h", "src/assembler-inl.h", "src/assembler.cc", "src/assembler.h", @@ -1420,8 +1539,7 @@ v8_source_set("v8_base") { "src/builtins/builtins-sharedarraybuffer.cc", "src/builtins/builtins-string.cc", "src/builtins/builtins-symbol.cc", - "src/builtins/builtins-trace.cc", - "src/builtins/builtins-typedarray.cc", + "src/builtins/builtins-typed-array.cc", "src/builtins/builtins-utils.h", "src/builtins/builtins.cc", "src/builtins/builtins.h", @@ -1439,6 +1557,8 @@ v8_source_set("v8_base") { "src/code-events.h", "src/code-factory.cc", "src/code-factory.h", + "src/code-reference.cc", + "src/code-reference.h", "src/code-stub-assembler.cc", "src/code-stub-assembler.h", "src/code-stubs-utils.h", @@ -1498,6 +1618,8 @@ v8_source_set("v8_base") { "src/compiler/common-operator.h", "src/compiler/compiler-source-position-table.cc", "src/compiler/compiler-source-position-table.h", + "src/compiler/constant-folding-reducer.cc", + "src/compiler/constant-folding-reducer.h", "src/compiler/control-equivalence.cc", "src/compiler/control-equivalence.h", "src/compiler/control-flow-optimizer.cc", @@ -1540,8 +1662,6 @@ v8_source_set("v8_base") { "src/compiler/instruction.h", "src/compiler/int64-lowering.cc", "src/compiler/int64-lowering.h", - "src/compiler/js-builtin-reducer.cc", - "src/compiler/js-builtin-reducer.h", "src/compiler/js-call-reducer.cc", "src/compiler/js-call-reducer.h", "src/compiler/js-context-specialization.cc", @@ -1582,6 +1702,8 @@ v8_source_set("v8_base") { "src/compiler/loop-variable-optimizer.h", "src/compiler/machine-graph-verifier.cc", "src/compiler/machine-graph-verifier.h", + "src/compiler/machine-graph.cc", + "src/compiler/machine-graph.h", "src/compiler/machine-operator-reducer.cc", "src/compiler/machine-operator-reducer.h", "src/compiler/machine-operator.cc", @@ -1597,6 +1719,8 @@ v8_source_set("v8_base") { "src/compiler/node-marker.h", "src/compiler/node-matchers.cc", "src/compiler/node-matchers.h", + "src/compiler/node-origin-table.cc", + "src/compiler/node-origin-table.h", "src/compiler/node-properties.cc", "src/compiler/node-properties.h", "src/compiler/node.cc", @@ -1648,6 +1772,8 @@ v8_source_set("v8_base") { "src/compiler/store-store-elimination.h", "src/compiler/type-cache.cc", "src/compiler/type-cache.h", + "src/compiler/type-narrowing-reducer.cc", + "src/compiler/type-narrowing-reducer.h", "src/compiler/typed-optimization.cc", "src/compiler/typed-optimization.h", "src/compiler/typer.cc", @@ -1661,7 +1787,6 @@ v8_source_set("v8_base") { "src/compiler/verifier.h", "src/compiler/wasm-compiler.cc", "src/compiler/wasm-compiler.h", - "src/compiler/wasm-linkage.cc", "src/compiler/zone-stats.cc", "src/compiler/zone-stats.h", "src/contexts-inl.h", @@ -1922,11 +2047,11 @@ v8_source_set("v8_base") { "src/lookup-cache.h", "src/lookup.cc", "src/lookup.h", + "src/lsan.h", "src/machine-type.cc", "src/machine-type.h", "src/macro-assembler-inl.h", "src/macro-assembler.h", - "src/managed.h", "src/map-updater.cc", "src/map-updater.h", "src/messages.cc", @@ -1939,6 +2064,8 @@ v8_source_set("v8_base") { "src/objects-printer.cc", "src/objects.cc", "src/objects.h", + "src/objects/api-callbacks-inl.h", + "src/objects/api-callbacks.h", "src/objects/arguments-inl.h", "src/objects/arguments.h", "src/objects/bigint.cc", @@ -1964,6 +2091,9 @@ v8_source_set("v8_base") { "src/objects/js-array.h", "src/objects/js-collection-inl.h", "src/objects/js-collection.h", + "src/objects/js-locale-inl.h", + "src/objects/js-locale.cc", + "src/objects/js-locale.h", "src/objects/js-promise-inl.h", "src/objects/js-promise.h", "src/objects/js-regexp-inl.h", @@ -1973,6 +2103,8 @@ v8_source_set("v8_base") { "src/objects/literal-objects-inl.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", + "src/objects/managed.cc", + "src/objects/managed.h", "src/objects/map-inl.h", "src/objects/map.h", "src/objects/maybe-object-inl.h", @@ -1986,6 +2118,9 @@ v8_source_set("v8_base") { "src/objects/name.h", "src/objects/object-macros-undef.h", "src/objects/object-macros.h", + "src/objects/ordered-hash-table-inl.h", + "src/objects/ordered-hash-table.cc", + "src/objects/ordered-hash-table.h", "src/objects/promise-inl.h", "src/objects/promise.h", "src/objects/property-descriptor-object-inl.h", @@ -2002,6 +2137,8 @@ v8_source_set("v8_base") { "src/objects/string.h", "src/objects/template-objects.cc", "src/objects/template-objects.h", + "src/objects/templates-inl.h", + "src/objects/templates.h", "src/optimized-compilation-info.cc", "src/optimized-compilation-info.h", "src/ostreams.cc", @@ -2208,6 +2345,7 @@ v8_source_set("v8_base") { "src/transitions-inl.h", "src/transitions.cc", "src/transitions.h", + "src/trap-handler/handler-inside.cc", "src/trap-handler/handler-outside.cc", "src/trap-handler/handler-shared.cc", "src/trap-handler/trap-handler-internal.h", @@ -2248,13 +2386,14 @@ v8_source_set("v8_base") { "src/wasm/baseline/liftoff-assembler.cc", "src/wasm/baseline/liftoff-assembler.h", "src/wasm/baseline/liftoff-compiler.cc", + "src/wasm/baseline/liftoff-compiler.h", "src/wasm/baseline/liftoff-register.h", - "src/wasm/compilation-manager.cc", - "src/wasm/compilation-manager.h", "src/wasm/decoder.h", "src/wasm/function-body-decoder-impl.h", "src/wasm/function-body-decoder.cc", "src/wasm/function-body-decoder.h", + "src/wasm/function-compiler.cc", + "src/wasm/function-compiler.h", "src/wasm/leb-helper.h", "src/wasm/local-decl-encoder.cc", "src/wasm/local-decl-encoder.h", @@ -2268,6 +2407,7 @@ v8_source_set("v8_base") { "src/wasm/signature-map.h", "src/wasm/streaming-decoder.cc", "src/wasm/streaming-decoder.h", + "src/wasm/value-type.h", "src/wasm/wasm-code-manager.cc", "src/wasm/wasm-code-manager.h", "src/wasm/wasm-code-specialization.cc", @@ -2283,6 +2423,7 @@ v8_source_set("v8_base") { "src/wasm/wasm-js.cc", "src/wasm/wasm-js.h", "src/wasm/wasm-limits.h", + "src/wasm/wasm-linkage.h", "src/wasm/wasm-memory.cc", "src/wasm/wasm-memory.h", "src/wasm/wasm-module-builder.cc", @@ -2389,7 +2530,13 @@ v8_source_set("v8_base") { "src/x64/sse-instr.h", ] if (is_linux) { - sources += [ "src/trap-handler/handler-inside.cc" ] + sources += [ + "src/trap-handler/handler-inside-linux.cc", + "src/trap-handler/handler-outside-linux.cc", + ] + } + if (is_win) { + sources += [ "src/trap-handler/handler-outside-win.cc" ] } } else if (v8_current_cpu == "arm") { sources += [ ### gcmole(arch:arm) ### @@ -2598,6 +2745,7 @@ v8_source_set("v8_base") { defines = [] deps = [ + ":torque_generated_core", ":v8_headers", ":v8_libbase", ":v8_libsampler", @@ -2620,6 +2768,9 @@ v8_source_set("v8_base") { "src/intl.h", "src/objects/intl-objects.cc", "src/objects/intl-objects.h", + "src/objects/js-locale-inl.h", + "src/objects/js-locale.cc", + "src/objects/js-locale.h", "src/runtime/runtime-intl.cc", ] } @@ -2699,6 +2850,8 @@ v8_component("v8_libbase") { public_configs = [ ":libbase_config" ] + public_deps = [] + data = [] data_deps = [] @@ -2770,6 +2923,7 @@ v8_component("v8_libbase") { "src/base/debug/stack_trace_fuchsia.cc", "src/base/platform/platform-fuchsia.cc", ] + public_deps += [ "//third_party/fuchsia-sdk:launchpad" ] } else if (is_mac) { sources += [ "src/base/debug/stack_trace_posix.cc", @@ -2925,6 +3079,73 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) { } } +if (current_toolchain == v8_snapshot_toolchain) { + v8_executable("torque") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + defines = [ "ANTLR4CPP_STATIC" ] + + include_dirs = [ + "third_party/antlr4/runtime/Cpp/runtime/src", + "src/torque", + ] + + sources = [ + "src/torque/TorqueBaseVisitor.cpp", + "src/torque/TorqueBaseVisitor.h", + "src/torque/TorqueLexer.cpp", + "src/torque/TorqueLexer.h", + "src/torque/TorqueParser.cpp", + "src/torque/TorqueParser.h", + "src/torque/TorqueVisitor.cpp", + "src/torque/TorqueVisitor.h", + "src/torque/ast-generator.cc", + "src/torque/ast-generator.h", + "src/torque/ast.h", + "src/torque/contextual.h", + "src/torque/declarable.cc", + "src/torque/declarable.h", + "src/torque/declaration-visitor.cc", + "src/torque/declaration-visitor.h", + "src/torque/declarations.cc", + "src/torque/declarations.h", + "src/torque/file-visitor.cc", + "src/torque/file-visitor.h", + "src/torque/global-context.h", + "src/torque/implementation-visitor.cc", + "src/torque/implementation-visitor.h", + "src/torque/scope.cc", + "src/torque/scope.h", + "src/torque/torque.cc", + "src/torque/type-oracle.h", + "src/torque/types.cc", + "src/torque/types.h", + "src/torque/utils.cc", + "src/torque/utils.h", + ] + + deps = [ + ":v8_libbase", + "third_party/antlr4:antlr4", + "//build/config:exe_and_shlib_deps", + "//build/win:default_exe_manifest", + ] + + remove_configs = [ + "//build/config/compiler:no_rtti", + "//build/config/compiler:no_exceptions", + ] + + configs = [ + "//build/config/compiler:rtti", + "//build/config/compiler:exceptions", + "third_party/antlr4:antlr-compatibility", + ":external_config", + ":internal_config_base", + ] + } +} + ############################################################################### # Public targets # @@ -2942,7 +3163,6 @@ group("gn_all") { ":d8", ":v8_fuzzers", ":v8_hello_world", - ":v8_parser_shell", ":v8_sample_process", "test:gn_all", "tools:gn_all", @@ -3144,26 +3364,6 @@ v8_executable("v8_sample_process") { ] } -v8_executable("v8_parser_shell") { - sources = [ - "tools/parser-shell.cc", - "tools/shell-utils.h", - ] - - configs = [ - ":external_config", - ":internal_config_base", - ] - - deps = [ - ":v8", - ":v8_libbase", - ":v8_libplatform", - "//build/config:exe_and_shlib_deps", - "//build/win:default_exe_manifest", - ] -} - if (want_v8_shell) { v8_executable("v8_shell") { sources = [ @@ -3302,6 +3502,10 @@ v8_source_set("wasm_module_runner") { "test/common/wasm/wasm-module-runner.h", ] + deps = [ + ":torque_generated_core", + ] + configs = [ ":external_config", ":internal_config_base", @@ -3375,6 +3579,10 @@ v8_source_set("lib_wasm_fuzzer_common") { "test/fuzzer/wasm-fuzzer-common.h", ] + deps = [ + ":torque_generated_core", + ] + configs = [ ":external_config", ":internal_config_base", diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index e6b825092c4a1d..437c09b4d0fb04 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,1388 @@ +2018-05-22: Version 6.8.275 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.274 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.273 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.272 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.271 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.270 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.269 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.268 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.267 + + Performance and stability improvements on all platforms. + + +2018-05-22: Version 6.8.266 + + Performance and stability improvements on all platforms. + + +2018-05-21: Version 6.8.265 + + Performance and stability improvements on all platforms. + + +2018-05-21: Version 6.8.264 + + Performance and stability improvements on all platforms. + + +2018-05-21: Version 6.8.263 + + Performance and stability improvements on all platforms. + + +2018-05-21: Version 6.8.262 + + Performance and stability improvements on all platforms. + + +2018-05-19: Version 6.8.261 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.260 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.259 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.258 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.257 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.256 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.255 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.254 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.253 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.252 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.251 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.250 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.249 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.248 + + Performance and stability improvements on all platforms. + + +2018-05-18: Version 6.8.247 + + Performance and stability improvements on all platforms. + + +2018-05-17: Version 6.8.246 + + Performance and stability improvements on all platforms. + + +2018-05-17: Version 6.8.245 + + Performance and stability improvements on all platforms. + + +2018-05-17: Version 6.8.244 + + Performance and stability improvements on all platforms. + + +2018-05-17: Version 6.8.243 + + Performance and stability improvements on all platforms. + + +2018-05-17: Version 6.8.242 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.241 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.240 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.239 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.238 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.237 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.236 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.235 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.234 + + Performance and stability improvements on all platforms. + + +2018-05-16: Version 6.8.233 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.232 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.231 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.230 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.229 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.228 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.227 + + Performance and stability improvements on all platforms. + + +2018-05-15: Version 6.8.226 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.225 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.224 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.223 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.222 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.221 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.220 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.219 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.218 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.217 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.216 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.215 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.214 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.213 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.212 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.211 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.210 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.209 + + Performance and stability improvements on all platforms. + + +2018-05-14: Version 6.8.208 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.207 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.206 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.205 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.204 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.203 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.202 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.201 + + Performance and stability improvements on all platforms. + + +2018-05-11: Version 6.8.200 + + Performance and stability improvements on all platforms. + + +2018-05-10: Version 6.8.199 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.198 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.197 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.196 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.195 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.194 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.193 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.192 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.191 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.190 + + Performance and stability improvements on all platforms. + + +2018-05-08: Version 6.8.189 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.188 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.187 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.186 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.185 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.184 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.183 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.182 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.181 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.180 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.179 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.178 + + Performance and stability improvements on all platforms. + + +2018-05-07: Version 6.8.177 + + Performance and stability improvements on all platforms. + + +2018-05-05: Version 6.8.176 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.175 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.174 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.173 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.172 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.171 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.170 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.169 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.168 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.167 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.166 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.165 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.164 + + Performance and stability improvements on all platforms. + + +2018-05-04: Version 6.8.163 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.162 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.161 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.160 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.159 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.158 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.157 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.156 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.155 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.154 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.153 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.152 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.151 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.150 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.149 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.148 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.147 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.146 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.145 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.144 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.143 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.142 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.141 + + Performance and stability improvements on all platforms. + + +2018-05-03: Version 6.8.140 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.139 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.138 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.137 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.136 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.135 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.134 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.133 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.132 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.131 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.130 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.129 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.128 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.127 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.126 + + Performance and stability improvements on all platforms. + + +2018-05-02: Version 6.8.125 + + Performance and stability improvements on all platforms. + + +2018-05-01: Version 6.8.124 + + Performance and stability improvements on all platforms. + + +2018-05-01: Version 6.8.123 + + Performance and stability improvements on all platforms. + + +2018-05-01: Version 6.8.122 + + Performance and stability improvements on all platforms. + + +2018-05-01: Version 6.8.121 + + Performance and stability improvements on all platforms. + + +2018-05-01: Version 6.8.120 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.119 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.118 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.117 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.116 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.115 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.114 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.113 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.112 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.111 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.110 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.109 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.108 + + Performance and stability improvements on all platforms. + + +2018-04-30: Version 6.8.107 + + Performance and stability improvements on all platforms. + + +2018-04-29: Version 6.8.106 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.105 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.104 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.103 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.102 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.101 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.100 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.99 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.98 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.97 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.96 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.95 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.94 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.93 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.92 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.91 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.90 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.89 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.88 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.87 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.86 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.85 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.84 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.83 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.82 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.81 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.80 + + Performance and stability improvements on all platforms. + + +2018-04-27: Version 6.8.79 + + Performance and stability improvements on all platforms. + + +2018-04-26: Version 6.8.78 + + Performance and stability improvements on all platforms. + + +2018-04-26: Version 6.8.77 + + Performance and stability improvements on all platforms. + + +2018-04-26: Version 6.8.76 + + Performance and stability improvements on all platforms. + + +2018-04-26: Version 6.8.75 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.74 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.73 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.72 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.71 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.70 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.69 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.68 + + Performance and stability improvements on all platforms. + + +2018-04-25: Version 6.8.67 + + Performance and stability improvements on all platforms. + + +2018-04-24: Version 6.8.66 + + Performance and stability improvements on all platforms. + + +2018-04-24: Version 6.8.65 + + Performance and stability improvements on all platforms. + + +2018-04-24: Version 6.8.64 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.63 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.62 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.61 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.60 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.59 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.58 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.57 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.56 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.55 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.54 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.53 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.52 + + Performance and stability improvements on all platforms. + + +2018-04-23: Version 6.8.51 + + Performance and stability improvements on all platforms. + + +2018-04-20: Version 6.8.50 + + Performance and stability improvements on all platforms. + + +2018-04-20: Version 6.8.49 + + Performance and stability improvements on all platforms. + + +2018-04-20: Version 6.8.48 + + Performance and stability improvements on all platforms. + + +2018-04-20: Version 6.8.47 + + Performance and stability improvements on all platforms. + + +2018-04-20: Version 6.8.46 + + Performance and stability improvements on all platforms. + + +2018-04-19: Version 6.8.45 + + Performance and stability improvements on all platforms. + + +2018-04-19: Version 6.8.44 + + Performance and stability improvements on all platforms. + + +2018-04-19: Version 6.8.43 + + Performance and stability improvements on all platforms. + + +2018-04-19: Version 6.8.42 + + Performance and stability improvements on all platforms. + + +2018-04-19: Version 6.8.41 + + Performance and stability improvements on all platforms. + + +2018-04-18: Version 6.8.40 + + Performance and stability improvements on all platforms. + + +2018-04-18: Version 6.8.39 + + Performance and stability improvements on all platforms. + + +2018-04-18: Version 6.8.38 + + Performance and stability improvements on all platforms. + + +2018-04-18: Version 6.8.37 + + Performance and stability improvements on all platforms. + + +2018-04-18: Version 6.8.36 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.35 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.34 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.33 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.32 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.31 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.30 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.29 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.28 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.27 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.26 + + Performance and stability improvements on all platforms. + + +2018-04-17: Version 6.8.25 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.24 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.23 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.22 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.21 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.20 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.19 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.18 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.17 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.16 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.15 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.14 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.13 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.12 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.11 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.10 + + Performance and stability improvements on all platforms. + + +2018-04-16: Version 6.8.9 + + Performance and stability improvements on all platforms. + + +2018-04-15: Version 6.8.8 + + Performance and stability improvements on all platforms. + + +2018-04-15: Version 6.8.7 + + Performance and stability improvements on all platforms. + + +2018-04-14: Version 6.8.6 + + Performance and stability improvements on all platforms. + + +2018-04-14: Version 6.8.5 + + Performance and stability improvements on all platforms. + + +2018-04-13: Version 6.8.4 + + Performance and stability improvements on all platforms. + + +2018-04-13: Version 6.8.3 + + Performance and stability improvements on all platforms. + + +2018-04-12: Version 6.8.2 + + Performance and stability improvements on all platforms. + + +2018-04-12: Version 6.8.1 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.290 + + Performance and stability improvements on all platforms. + + +2018-04-11: Version 6.7.289 + + Performance and stability improvements on all platforms. + + 2018-04-11: Version 6.7.288 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 7c4fe68361593d..4bac02255de459 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -12,21 +12,21 @@ vars = { deps = { 'v8/build': - Var('chromium_url') + '/chromium/src/build.git' + '@' + '73e352e758d90603e23bdc84734c12aa5817ab5f', + Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b5df2518f091eea3d358f30757dec3e33db56156', 'v8/tools/gyp': Var('chromium_url') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb', 'v8/third_party/depot_tools': - Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '024a3317597b06418efea2d45aa54dd2a7030c8a', + Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '083eb25f9acbe034db94a1bd5c1659125b6ebf98', 'v8/third_party/icu': - Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'd888fd2a1be890f4d35e43f68d6d79f42519a357', + Var('chromium_url') + '/chromium/deps/icu.git' + '@' + 'f61e46dbee9d539a32551493e3bcc1dea92f83ec', 'v8/third_party/instrumented_libraries': Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '323cf32193caecbf074d1a0cb5b02b905f163e0f', 'v8/buildtools': - Var('chromium_url') + '/chromium/buildtools.git' + '@' + 'e8aa02ea839e087f2db66100d02c3b5d47993852', + Var('chromium_url') + '/chromium/buildtools.git' + '@' + '94288c26d2ffe3aec9848c147839afee597acefd', 'v8/base/trace_event/common': Var('chromium_url') + '/chromium/src/base/trace_event/common.git' + '@' + '211b3ed9d0481b4caddbee1322321b86a483ca1f', 'v8/third_party/android_ndk': { - 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '635bc380968a76f6948fee65f80a0b28db53ae81', + 'url': Var('chromium_url') + '/android_ndk.git' + '@' + '5cd86312e794bdf542a3685c6f10cbb96072990b', 'condition': 'checkout_android', }, 'v8/third_party/android_tools': { @@ -34,21 +34,25 @@ deps = { 'condition': 'checkout_android', }, 'v8/third_party/catapult': { - 'url': Var('chromium_url') + '/catapult.git' + '@' + '2c59f678c7ede8a844fb687525d594b71aabe3dd', + 'url': Var('chromium_url') + '/catapult.git' + '@' + '49edbd3a2b582cbab0a912cb1989062e9b8453ff', 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { 'url': Var('chromium_url') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8', 'condition': 'checkout_android', }, + 'v8/third_party/fuchsia-sdk': { + 'url': Var('chromium_url') + '/chromium/src/third_party/fuchsia-sdk.git' + '@' + 'afac8ecd6300c9903009e6f233f61aae401aced6', + 'condition': 'checkout_fuchsia', + }, 'v8/third_party/googletest/src': - Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '7e5f90d3780d553cb86771141fb81349f3a63508', + Var('chromium_url') + '/external/github.com/google/googletest.git' + '@' + '08d5b1f33af8c18785fb8ca02792b5fac81e248f', 'v8/third_party/jinja2': Var('chromium_url') + '/chromium/src/third_party/jinja2.git' + '@' + '45571de473282bd1d8b63a8dfcb1fd268d0635d2', 'v8/third_party/markupsafe': Var('chromium_url') + '/chromium/src/third_party/markupsafe.git' + '@' + '8f45f5cfa0009d2a70589bcda0349b8cb2b72783', 'v8/tools/swarming_client': - Var('chromium_url') + '/infra/luci/client-py.git' + '@' + '88229872dd17e71658fe96763feaa77915d8cbd6', + Var('chromium_url') + '/infra/luci/client-py.git' + '@' + '833f5ebf894be1e3e6d13678d5de8479bf12ff28', 'v8/test/benchmarks/data': Var('chromium_url') + '/v8/deps/third_party/benchmarks.git' + '@' + '05d7188267b4560491ff9155c5ee13e207ecd65f', 'v8/test/mozilla/data': @@ -58,11 +62,11 @@ deps = { 'v8/test/test262/harness': Var('chromium_url') + '/external/github.com/test262-utils/test262-harness-py.git' + '@' + '0f2acdd882c84cff43b9d60df7574a1901e2cdcd', 'v8/tools/clang': - Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'd7c36b0ae001a5cc31f2da79a430154916a3def2', + Var('chromium_url') + '/chromium/src/tools/clang.git' + '@' + 'c893c7eec4706f8c7fc244ee254b1dadd8f8d158', 'v8/tools/luci-go': Var('chromium_url') + '/chromium/src/tools/luci-go.git' + '@' + 'ff0709d4283b1f233dcf0c9fec1672c6ecaed2f1', 'v8/test/wasm-js': - Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '586d34770c6445bfb93c9bae8ac50baade7ee168', + Var('chromium_url') + '/external/github.com/WebAssembly/spec.git' + '@' + '27d63f22e72395248d314520b3ad5b1e0943fc10', } recursedeps = [ @@ -84,6 +88,17 @@ skip_child_includes = [ ] hooks = [ + { + # Ensure that the DEPS'd "depot_tools" has its self-update capability + # disabled. + 'name': 'disable_depot_tools_selfupdate', + 'pattern': '.', + 'action': [ + 'python', + 'v8/third_party/depot_tools/update_depot_tools_toggle.py', + '--disable', + ], + }, { # This clobbers when necessary (based on get_landmines.py). It must be the # first hook so that other things that get/generate into the output diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index e6dbb7939568fd..055027c7bb6050 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -289,6 +289,13 @@ def FilterFile(affected_file): def _CommonChecks(input_api, output_api): """Checks common to both upload and commit.""" results = [] + # TODO(machenbach): Replace some of those checks, e.g. owners and copyright, + # with the canned PanProjectChecks. Need to make sure that the checks all + # pass on all existing files. + results.extend(input_api.canned_checks.CheckOwnersFormat( + input_api, output_api)) + results.extend(input_api.canned_checks.CheckOwners( + input_api, output_api)) results.extend(_CheckCommitMessageBugEntry(input_api, output_api)) results.extend(input_api.canned_checks.CheckPatchFormatted( input_api, output_api)) diff --git a/deps/v8/gni/v8.gni b/deps/v8/gni/v8.gni index 211f15aab944d4..1cbba9fefdd795 100644 --- a/deps/v8/gni/v8.gni +++ b/deps/v8/gni/v8.gni @@ -96,7 +96,7 @@ if (is_debug && !v8_optimized_debug) { # TODO(crbug.com/621335) Rework this so that we don't have the confusion # between "optimize_speed" and "optimize_max". - if (is_posix && !is_android && !using_sanitizer) { + if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) { v8_add_configs += [ "//build/config/compiler:optimize_speed" ] } else { v8_add_configs += [ "//build/config/compiler:optimize_max" ] @@ -110,7 +110,7 @@ if (v8_code_coverage && !is_clang) { ] } -if (is_posix && (v8_enable_backtrace || v8_monolithic)) { +if ((is_posix || is_fuchsia) && (v8_enable_backtrace || v8_monolithic)) { v8_remove_configs += [ "//build/config/gcc:symbol_visibility_hidden" ] v8_add_configs += [ "//build/config/gcc:symbol_visibility_default" ] } diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index 2c830bf834b786..a381b97f889749 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -62,7 +62,7 @@ V8_PLATFORM_EXPORT bool PumpMessageLoop( v8::Platform* platform, v8::Isolate* isolate, MessageLoopBehavior behavior = MessageLoopBehavior::kDoNotWait); -V8_PLATFORM_EXPORT V8_DEPRECATE_SOON( +V8_PLATFORM_EXPORT V8_DEPRECATED( "This function has become obsolete and is essentially a nop", void EnsureEventLoopInitialized(v8::Platform* platform, v8::Isolate* isolate)); diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index 6de8234fb83bcf..d879a94373e427 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -99,6 +99,7 @@ class V8_EXPORT V8ContextInfo { class V8_EXPORT V8StackTrace { public: + virtual StringView firstNonEmptySourceURL() const = 0; virtual bool isEmpty() const = 0; virtual StringView topSourceURL() const = 0; virtual int topLineNumber() const = 0; diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index ddc200abab0dd9..cfeb13b65829f9 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -207,6 +207,7 @@ class PageAllocator { */ enum Permission { kNoAccess, + kRead, kReadWrite, // TODO(hpayer): Remove this flag. Memory should never be rwx. kReadWriteExecute, @@ -245,16 +246,6 @@ class PageAllocator { */ class Platform { public: - /** - * This enum is used to indicate whether a task is potentially long running, - * or causes a long wait. The embedder might want to use this hint to decide - * whether to execute the task on a dedicated thread. - */ - enum ExpectedRuntime { - kShortRunningTask, - kLongRunningTask - }; - virtual ~Platform() = default; /** @@ -289,101 +280,25 @@ class Platform { virtual bool OnCriticalMemoryPressure(size_t length) { return false; } /** - * Gets the number of worker threads used by GetWorkerThreadsTaskRunner() and - * CallOnWorkerThread(). This can be used to estimate the number of tasks a - * work package should be split into. A return value of 0 means that there are - * no worker threads available. Note that a value of 0 won't prohibit V8 from - * posting tasks using |CallOnWorkerThread|. - */ - virtual int NumberOfWorkerThreads() { - return static_cast(NumberOfAvailableBackgroundThreads()); - } - - /** - * Deprecated. Use NumberOfWorkerThreads() instead. - * TODO(gab): Remove this when all embedders override - * NumberOfWorkerThreads() instead. + * Gets the number of worker threads used by + * Call(BlockingTask)OnWorkerThread(). This can be used to estimate the number + * of tasks a work package should be split into. A return value of 0 means + * that there are no worker threads available. Note that a value of 0 won't + * prohibit V8 from posting tasks using |CallOnWorkerThread|. */ - V8_DEPRECATE_SOON( - "NumberOfAvailableBackgroundThreads() is deprecated, use " - "NumberOfAvailableBackgroundThreads() instead.", - virtual size_t NumberOfAvailableBackgroundThreads()) { - return 0; - } + virtual int NumberOfWorkerThreads() = 0; /** * Returns a TaskRunner which can be used to post a task on the foreground. * This function should only be called from a foreground thread. */ virtual std::shared_ptr GetForegroundTaskRunner( - Isolate* isolate) { - // TODO(ahaas): Make this function abstract after it got implemented on all - // platforms. - return {}; - } - - /** - * Returns a TaskRunner which can be used to post a task on a background. - * This function should only be called from a foreground thread. - */ - V8_DEPRECATE_SOON( - "GetBackgroundTaskRunner() is deprecated, use " - "GetWorkerThreadsTaskRunner() " - "instead.", - virtual std::shared_ptr GetBackgroundTaskRunner( - Isolate* isolate)) { - // TODO(gab): Remove this method when all embedders have moved to - // GetWorkerThreadsTaskRunner(). - - // An implementation needs to be provided here because this is called by the - // default GetWorkerThreadsTaskRunner() implementation below. In practice - // however, all code either: - // - Overrides GetWorkerThreadsTaskRunner() (thus not making this call) -- - // i.e. all v8 code. - // - Overrides this method (thus not making this call) -- i.e. all - // unadapted embedders. - abort(); - } - - /** - * Returns a TaskRunner which can be used to post async tasks on a worker. - * This function should only be called from a foreground thread. - */ - virtual std::shared_ptr GetWorkerThreadsTaskRunner( - Isolate* isolate) { - // TODO(gab): Make this function abstract after it got implemented on all - // platforms. - return GetBackgroundTaskRunner(isolate); - } - - /** - * Schedules a task to be invoked on a background thread. |expected_runtime| - * indicates that the task will run a long time. The Platform implementation - * takes ownership of |task|. There is no guarantee about order of execution - * of tasks wrt order of scheduling, nor is there a guarantee about the - * thread the task will be run on. - */ - V8_DEPRECATE_SOON( - "ExpectedRuntime is deprecated, use CallOnWorkerThread() instead.", - virtual void CallOnBackgroundThread(Task* task, - ExpectedRuntime expected_runtime)) { - // An implementation needs to be provided here because this is called by the - // default implementation below. In practice however, all code either: - // - Overrides the new method (thus not making this call) -- i.e. all v8 - // code. - // - Overrides this method (thus not making this call) -- i.e. all - // unadapted embedders. - abort(); - } + Isolate* isolate) = 0; /** * Schedules a task to be invoked on a worker thread. - * TODO(gab): Make pure virtual when all embedders override this instead of - * CallOnBackgroundThread(). */ - virtual void CallOnWorkerThread(std::unique_ptr task) { - CallOnBackgroundThread(task.release(), kShortRunningTask); - } + virtual void CallOnWorkerThread(std::unique_ptr task) = 0; /** * Schedules a task that blocks the main thread to be invoked with @@ -395,6 +310,13 @@ class Platform { CallOnWorkerThread(std::move(task)); } + /** + * Schedules a task to be invoked on a worker thread after |delay_in_seconds| + * expires. + */ + virtual void CallDelayedOnWorkerThread(std::unique_ptr task, + double delay_in_seconds) = 0; + /** * Schedules a task to be invoked on a foreground thread wrt a specific * |isolate|. Tasks posted for the same isolate should be execute in order of @@ -420,14 +342,14 @@ class Platform { * The definition of "foreground" is opaque to V8. */ virtual void CallIdleOnForegroundThread(Isolate* isolate, IdleTask* task) { - // TODO(ulan): Make this function abstract after V8 roll in Chromium. + // This must be overriden if |IdleTasksEnabled()|. + abort(); } /** * Returns true if idle tasks are enabled for the given |isolate|. */ virtual bool IdleTasksEnabled(Isolate* isolate) { - // TODO(ulan): Make this function abstract after V8 roll in Chromium. return false; } diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index c61027b3b94e45..34ad2b9cea5445 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -54,7 +54,11 @@ namespace v8 { */ class V8_EXPORT TracingCpuProfiler { public: - static std::unique_ptr Create(Isolate*); + V8_DEPRECATE_SOON( + "The profiler is created automatically with the isolate.\n" + "No need to create it explicitly.", + static std::unique_ptr Create(Isolate*)); + virtual ~TracingCpuProfiler() = default; protected: @@ -636,7 +640,7 @@ class V8_EXPORT AllocationProfile { * Usage: * 1) Define derived class of EmbedderGraph::Node for embedder objects. * 2) Set the build embedder graph callback on the heap profiler using - * HeapProfiler::AddBuildEmbedderGraphCallback. + * HeapProfiler::SetBuildEmbedderGraphCallback. * 3) In the callback use graph->AddEdge(node1, node2) to add an edge from * node1 to node2. * 4) To represent references from/to V8 object, construct V8 nodes using @@ -736,12 +740,7 @@ class V8_EXPORT HeapProfiler { * The callback must not trigger garbage collection in V8. */ typedef void (*BuildEmbedderGraphCallback)(v8::Isolate* isolate, - v8::EmbedderGraph* graph, - void* data); - - /** TODO(addaleax): Remove */ - typedef void (*LegacyBuildEmbedderGraphCallback)(v8::Isolate* isolate, - v8::EmbedderGraph* graph); + v8::EmbedderGraph* graph); /** Returns the number of snapshots taken. */ int GetSnapshotCount(); @@ -883,22 +882,15 @@ class V8_EXPORT HeapProfiler { /** Binds a callback to embedder's class ID. */ V8_DEPRECATED( - "Use AddBuildEmbedderGraphCallback to provide info about embedder nodes", + "Use SetBuildEmbedderGraphCallback to provide info about embedder nodes", void SetWrapperClassInfoProvider(uint16_t class_id, WrapperInfoCallback callback)); V8_DEPRECATED( - "Use AddBuildEmbedderGraphCallback to provide info about embedder nodes", + "Use SetBuildEmbedderGraphCallback to provide info about embedder nodes", void SetGetRetainerInfosCallback(GetRetainerInfosCallback callback)); - V8_DEPRECATE_SOON( - "Use AddBuildEmbedderGraphCallback to provide info about embedder nodes", - void SetBuildEmbedderGraphCallback( - LegacyBuildEmbedderGraphCallback callback)); - void AddBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback, - void* data); - void RemoveBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback, - void* data); + void SetBuildEmbedderGraphCallback(BuildEmbedderGraphCallback callback); /** * Default value of persistent handle class ID. Must not be used to @@ -1000,76 +992,6 @@ struct HeapStatsUpdate { uint32_t size; // New value of size field for the interval with this index. }; -#define CODE_EVENTS_LIST(V) \ - V(Builtin) \ - V(Callback) \ - V(Eval) \ - V(Function) \ - V(InterpretedFunction) \ - V(Handler) \ - V(BytecodeHandler) \ - V(LazyCompile) \ - V(RegExp) \ - V(Script) \ - V(Stub) - -/** - * Note that this enum may be extended in the future. Please include a default - * case if this enum is used in a switch statement. - */ -enum CodeEventType { - kUnknownType = 0 -#define V(Name) , k##Name##Type - CODE_EVENTS_LIST(V) -#undef V -}; - -/** - * Representation of a code creation event - */ -class V8_EXPORT CodeEvent { - public: - uintptr_t GetCodeStartAddress(); - size_t GetCodeSize(); - Local GetFunctionName(); - Local GetScriptName(); - int GetScriptLine(); - int GetScriptColumn(); - /** - * NOTE (mmarchini): We can't allocate objects in the heap when we collect - * existing code, and both the code type and the comment are not stored in the - * heap, so we return those as const char*. - */ - CodeEventType GetCodeType(); - const char* GetComment(); - - static const char* GetCodeEventTypeName(CodeEventType code_event_type); -}; - -/** - * Interface to listen to code creation events. - */ -class V8_EXPORT CodeEventHandler { - public: - /** - * Creates a new listener for the |isolate|. The isolate must be initialized. - * The listener object must be disposed after use by calling |Dispose| method. - * Multiple listeners can be created for the same isolate. - */ - explicit CodeEventHandler(Isolate* isolate); - virtual ~CodeEventHandler(); - - virtual void Handle(CodeEvent* code_event) = 0; - - void Enable(); - void Disable(); - - private: - CodeEventHandler(); - CodeEventHandler(const CodeEventHandler&); - CodeEventHandler& operator=(const CodeEventHandler&); - void* internal_listener_; -}; } // namespace v8 diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h index 09c47d7e91196d..e57efc3084acba 100644 --- a/deps/v8/include/v8-version.h +++ b/deps/v8/include/v8-version.h @@ -9,9 +9,9 @@ // NOTE these macros are used by some of the tool scripts and the build // system so their names cannot be changed without changing the scripts. #define V8_MAJOR_VERSION 6 -#define V8_MINOR_VERSION 7 -#define V8_BUILD_NUMBER 288 -#define V8_PATCH_LEVEL 49 +#define V8_MINOR_VERSION 8 +#define V8_BUILD_NUMBER 275 +#define V8_PATCH_LEVEL 24 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 389a7c01b0583a..b68d9fbbfc3c86 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -156,6 +156,95 @@ class GlobalHandles; namespace wasm { class StreamingDecoder; } // namespace wasm + +/** + * Configuration of tagging scheme. + */ +const int kApiPointerSize = sizeof(void*); // NOLINT +const int kApiDoubleSize = sizeof(double); // NOLINT +const int kApiIntSize = sizeof(int); // NOLINT +const int kApiInt64Size = sizeof(int64_t); // NOLINT + +// Tag information for HeapObject. +const int kHeapObjectTag = 1; +const int kWeakHeapObjectTag = 3; +const int kHeapObjectTagSize = 2; +const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1; + +// Tag information for Smi. +const int kSmiTag = 0; +const int kSmiTagSize = 1; +const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1; + +template +struct SmiTagging; + +template +V8_INLINE internal::Object* IntToSmi(int value) { + int smi_shift_bits = kSmiTagSize + kSmiShiftSize; + uintptr_t tagged_value = + (static_cast(value) << smi_shift_bits) | kSmiTag; + return reinterpret_cast(tagged_value); +} + +// Smi constants for 32-bit systems. +template <> +struct SmiTagging<4> { + enum { kSmiShiftSize = 0, kSmiValueSize = 31 }; + static int SmiShiftSize() { return kSmiShiftSize; } + static int SmiValueSize() { return kSmiValueSize; } + V8_INLINE static int SmiToInt(const internal::Object* value) { + int shift_bits = kSmiTagSize + kSmiShiftSize; + // Throw away top 32 bits and shift down (requires >> to be sign extending). + return static_cast(reinterpret_cast(value)) >> shift_bits; + } + V8_INLINE static internal::Object* IntToSmi(int value) { + return internal::IntToSmi(value); + } + V8_INLINE static bool IsValidSmi(intptr_t value) { + // To be representable as an tagged small integer, the two + // most-significant bits of 'value' must be either 00 or 11 due to + // sign-extension. To check this we add 01 to the two + // most-significant bits, and check if the most-significant bit is 0 + // + // CAUTION: The original code below: + // bool result = ((value + 0x40000000) & 0x80000000) == 0; + // may lead to incorrect results according to the C language spec, and + // in fact doesn't work correctly with gcc4.1.1 in some cases: The + // compiler may produce undefined results in case of signed integer + // overflow. The computation must be done w/ unsigned ints. + return static_cast(value) + 0x40000000U < 0x80000000U; + } +}; + +// Smi constants for 64-bit systems. +template <> +struct SmiTagging<8> { + enum { kSmiShiftSize = 31, kSmiValueSize = 32 }; + static int SmiShiftSize() { return kSmiShiftSize; } + static int SmiValueSize() { return kSmiValueSize; } + V8_INLINE static int SmiToInt(const internal::Object* value) { + int shift_bits = kSmiTagSize + kSmiShiftSize; + // Shift down and throw away top 32 bits. + return static_cast(reinterpret_cast(value) >> shift_bits); + } + V8_INLINE static internal::Object* IntToSmi(int value) { + return internal::IntToSmi(value); + } + V8_INLINE static bool IsValidSmi(intptr_t value) { + // To be representable as a long smi, the value must be a 32-bit integer. + return (value == static_cast(value)); + } +}; + +typedef SmiTagging PlatformSmiTagging; +const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize; +const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize; +const int kSmiMinValue = (static_cast(-1)) << (kSmiValueSize - 1); +const int kSmiMaxValue = -(kSmiMinValue + 1); +constexpr bool SmiValuesAre31Bits() { return kSmiValueSize == 31; } +constexpr bool SmiValuesAre32Bits() { return kSmiValueSize == 32; } + } // namespace internal namespace debug { @@ -1123,6 +1212,13 @@ class V8_EXPORT UnboundScript { static const int kNoScriptId = 0; }; +/** + * A compiled JavaScript module, not yet tied to a Context. + */ +class V8_EXPORT UnboundModuleScript { + // Only used as a container for code caching. +}; + /** * A location in JavaScript source. */ @@ -1222,6 +1318,14 @@ class V8_EXPORT Module { * The module's status must be at least kInstantiated. */ Local GetModuleNamespace(); + + /** + * Returns the corresponding context-unbound module script. + * + * The module must be unevaluated, i.e. its status must not be kEvaluating, + * kEvaluated or kErrored. + */ + Local GetUnboundModuleScript(); }; /** @@ -1580,9 +1684,17 @@ class V8_EXPORT ScriptCompiler { */ static CachedData* CreateCodeCache(Local unbound_script); - // Deprecated. - static CachedData* CreateCodeCache(Local unbound_script, - Local source); + /** + * Creates and returns code cache for the specified unbound_module_script. + * This will return nullptr if the script cannot be serialized. The + * CachedData returned by this function should be owned by the caller. + */ + static CachedData* CreateCodeCache( + Local unbound_module_script); + + V8_DEPRECATED("Source string is no longer required", + static CachedData* CreateCodeCache( + Local unbound_script, Local source)); /** * Creates and returns code cache for the specified function that was @@ -1592,9 +1704,9 @@ class V8_EXPORT ScriptCompiler { */ static CachedData* CreateCodeCacheForFunction(Local function); - // Deprecated. - static CachedData* CreateCodeCacheForFunction(Local function, - Local source); + V8_DEPRECATED("Source string is no longer required", + static CachedData* CreateCodeCacheForFunction( + Local function, Local source)); private: static V8_WARN_UNUSED_RESULT MaybeLocal CompileUnboundInternal( @@ -1913,12 +2025,16 @@ class V8_EXPORT ValueSerializer { * If the memory cannot be allocated, nullptr should be returned. * |actual_size| will be ignored. It is assumed that |old_buffer| is still * valid in this case and has not been modified. + * + * The default implementation uses the stdlib's `realloc()` function. */ virtual void* ReallocateBufferMemory(void* old_buffer, size_t size, size_t* actual_size); /** * Frees a buffer allocated with |ReallocateBufferMemory|. + * + * The default implementation uses the stdlib's `free()` function. */ virtual void FreeBufferMemory(void* buffer); }; @@ -1946,9 +2062,9 @@ class V8_EXPORT ValueSerializer { /** * Returns the stored data (allocated using the delegate's - * AllocateBufferMemory) and its size. This serializer should not be used once - * the buffer is released. The contents are undefined if a previous write has - * failed. + * ReallocateBufferMemory) and its size. This serializer should not be used + * once the buffer is released. The contents are undefined if a previous write + * has failed. Ownership of the buffer is transferred to the caller. */ V8_WARN_UNUSED_RESULT std::pair Release(); @@ -2538,8 +2654,9 @@ enum class NewStringType { */ class V8_EXPORT String : public Name { public: - static constexpr int kMaxLength = - sizeof(void*) == 4 ? (1 << 28) - 16 : (1 << 30) - 1 - 24; + static constexpr int kMaxLength = internal::kApiPointerSize == 4 + ? (1 << 28) - 16 + : internal::kSmiMaxValue / 2 - 24; enum Encoding { UNKNOWN_ENCODING = 0x1, @@ -3048,48 +3165,6 @@ class V8_EXPORT Uint32 : public Integer { class V8_EXPORT BigInt : public Primitive { public: static Local New(Isolate* isolate, int64_t value); - static Local NewFromUnsigned(Isolate* isolate, uint64_t value); - /** - * Creates a new BigInt object using a specified sign bit and a - * specified list of digits/words. - * The resulting number is calculated as: - * - * (-1)^sign_bit * (words[0] * (2^64)^0 + words[1] * (2^64)^1 + ...) - */ - static MaybeLocal NewFromWords(Local context, int sign_bit, - int word_count, const uint64_t* words); - - /** - * Returns the value of this BigInt as an unsigned 64-bit integer. - * If `lossless` is provided, it will reflect whether the return value was - * truncated or wrapped around. In particular, it is set to `false` if this - * BigInt is negative. - */ - uint64_t Uint64Value(bool* lossless = nullptr) const; - - /** - * Returns the value of this BigInt as a signed 64-bit integer. - * If `lossless` is provided, it will reflect whether this BigInt was - * truncated or not. - */ - int64_t Int64Value(bool* lossless = nullptr) const; - - /** - * Returns the number of 64-bit words needed to store the result of - * ToWordsArray(). - */ - int WordCount() const; - - /** - * Writes the contents of this BigInt to a specified memory location. - * `sign_bit` must be provided and will be set to 1 if this BigInt is - * negative. - * `*word_count` has to be initialized to the length of the `words` array. - * Upon return, it will be set to the actual number of words that would - * be needed to store this BigInt (i.e. the return value of `WordCount()`). - */ - void ToWordsArray(int* sign_bit, int* word_count, uint64_t* words) const; - V8_INLINE static BigInt* Cast(v8::Value* obj); private: @@ -3958,6 +4033,15 @@ class V8_EXPORT Function : public Object { return NewInstance(context, 0, nullptr); } + /** + * When side effect checks are enabled, passing kHasNoSideEffect allows the + * constructor to be invoked without throwing. Calls made within the + * constructor are still checked. + */ + V8_WARN_UNUSED_RESULT MaybeLocal NewInstanceWithSideEffectType( + Local context, int argc, Local argv[], + SideEffectType side_effect_type = SideEffectType::kHasSideEffect) const; + V8_DEPRECATE_SOON("Use maybe version", Local Call(Local recv, int argc, Local argv[])); @@ -4308,8 +4392,6 @@ class V8_EXPORT WasmModuleObjectBuilderStreaming final { ~WasmModuleObjectBuilderStreaming(); private: - typedef std::pair, size_t> Buffer; - WasmModuleObjectBuilderStreaming(const WasmModuleObjectBuilderStreaming&) = delete; WasmModuleObjectBuilderStreaming(WasmModuleObjectBuilderStreaming&&) = @@ -4332,8 +4414,6 @@ class V8_EXPORT WasmModuleObjectBuilderStreaming final { #else Persistent promise_; #endif - std::vector received_buffers_; - size_t total_size_ = 0; std::shared_ptr streaming_decoder_; }; @@ -4584,8 +4664,7 @@ class V8_EXPORT TypedArray : public ArrayBufferView { /* * The largest typed array size that can be constructed using New. */ - static constexpr size_t kMaxLength = - sizeof(void*) == 4 ? (1u << 30) - 1 : (1u << 31) - 1; + static constexpr size_t kMaxLength = internal::kSmiMaxValue; /** * Number of elements in this typed array @@ -5170,22 +5249,25 @@ class V8_EXPORT Template : public Data { // TODO(dcarney): gcc can't handle Local below Local data = Local(), PropertyAttribute attribute = None, Local signature = Local(), - AccessControl settings = DEFAULT); + AccessControl settings = DEFAULT, + SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect); void SetNativeDataProperty( Local name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter = 0, // TODO(dcarney): gcc can't handle Local below Local data = Local(), PropertyAttribute attribute = None, Local signature = Local(), - AccessControl settings = DEFAULT); + AccessControl settings = DEFAULT, + SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect); /** * Like SetNativeDataProperty, but V8 will replace the native data property * with a real data property on first access. */ - void SetLazyDataProperty(Local name, AccessorNameGetterCallback getter, - Local data = Local(), - PropertyAttribute attribute = None); + void SetLazyDataProperty( + Local name, AccessorNameGetterCallback getter, + Local data = Local(), PropertyAttribute attribute = None, + SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect); /** * During template instantiation, sets the value with the intrinsic property @@ -5909,12 +5991,14 @@ class V8_EXPORT ObjectTemplate : public Template { Local name, AccessorGetterCallback getter, AccessorSetterCallback setter = 0, Local data = Local(), AccessControl settings = DEFAULT, PropertyAttribute attribute = None, - Local signature = Local()); + Local signature = Local(), + SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect); void SetAccessor( Local name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter = 0, Local data = Local(), AccessControl settings = DEFAULT, PropertyAttribute attribute = None, - Local signature = Local()); + Local signature = Local(), + SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect); /** * Sets a named property handler on the object template. @@ -6394,9 +6478,7 @@ typedef void (*PromiseHook)(PromiseHookType type, Local promise, // --- Promise Reject Callback --- enum PromiseRejectEvent { kPromiseRejectWithNoHandler = 0, - kPromiseHandlerAddedAfterReject = 1, - kPromiseRejectAfterResolved = 2, - kPromiseResolveAfterResolved = 3, + kPromiseHandlerAddedAfterReject = 1 }; class PromiseRejectMessage { @@ -6643,10 +6725,12 @@ class V8_EXPORT HeapCodeStatistics { HeapCodeStatistics(); size_t code_and_metadata_size() { return code_and_metadata_size_; } size_t bytecode_and_metadata_size() { return bytecode_and_metadata_size_; } + size_t external_script_source_size() { return external_script_source_size_; } private: size_t code_and_metadata_size_; size_t bytecode_and_metadata_size_; + size_t external_script_source_size_; friend class Isolate; }; @@ -6946,7 +7030,8 @@ class V8_EXPORT Isolate { add_histogram_sample_callback(nullptr), array_buffer_allocator(nullptr), external_references(nullptr), - allow_atomics_wait(true) {} + allow_atomics_wait(true), + only_terminate_in_safe_scope(false) {} /** * The optional entry_hook allows the host application to provide the @@ -7009,6 +7094,11 @@ class V8_EXPORT Isolate { * this isolate. This can also be configured via SetAllowAtomicsWait. */ bool allow_atomics_wait; + + /** + * Termination is postponed when there is no active SafeForTerminationScope. + */ + bool only_terminate_in_safe_scope; }; @@ -7093,6 +7183,24 @@ class V8_EXPORT Isolate { internal::Isolate* const isolate_; }; + /** + * This scope allows terminations inside direct V8 API calls and forbid them + * inside any recursice API calls without explicit SafeForTerminationScope. + */ + class V8_EXPORT SafeForTerminationScope { + public: + explicit SafeForTerminationScope(v8::Isolate* isolate); + ~SafeForTerminationScope(); + + // Prevent copying of Scope objects. + SafeForTerminationScope(const SafeForTerminationScope&) = delete; + SafeForTerminationScope& operator=(const SafeForTerminationScope&) = delete; + + private: + internal::Isolate* isolate_; + bool prev_value_; + }; + /** * Types of garbage collections that can be requested via * RequestGarbageCollectionForTesting. @@ -7156,6 +7264,7 @@ class V8_EXPORT Isolate { kErrorStackTraceLimit = 45, kWebAssemblyInstantiation = 46, kDeoptimizerDisableSpeculation = 47, + kArrayPrototypeSortJSArrayModifiedPrototype = 48, // If you add new values here, you'll also need to update Chromium's: // web_feature.mojom, UseCounterCallback.cpp, and enums.xml. V8 changes to @@ -7176,6 +7285,26 @@ class V8_EXPORT Isolate { typedef void (*UseCounterCallback)(Isolate* isolate, UseCounterFeature feature); + /** + * Allocates a new isolate but does not initialize it. Does not change the + * currently entered isolate. + * + * Only Isolate::GetData() and Isolate::SetData(), which access the + * embedder-controlled parts of the isolate, are allowed to be called on the + * uninitialized isolate. To initialize the isolate, call + * Isolate::Initialize(). + * + * When an isolate is no longer used its resources should be freed + * by calling Dispose(). Using the delete operator is not allowed. + * + * V8::Initialize() must have run prior to this. + */ + static Isolate* Allocate(); + + /** + * Initialize an Isolate previously allocated by Isolate::Allocate(). + */ + static void Initialize(Isolate* isolate, const CreateParams& params); /** * Creates a new isolate. Does not change the currently entered @@ -8024,7 +8153,9 @@ class V8_EXPORT V8 { * Returns { NULL, 0 } on failure. * The caller acquires ownership of the data array in the return value. */ - static StartupData CreateSnapshotDataBlob(const char* embedded_source = NULL); + V8_DEPRECATED("Use SnapshotCreator", + static StartupData CreateSnapshotDataBlob( + const char* embedded_source = NULL)); /** * Bootstrap an isolate and a context from the cold startup blob, run the @@ -8034,8 +8165,9 @@ class V8_EXPORT V8 { * The caller acquires ownership of the data array in the return value. * The argument startup blob is untouched. */ - static StartupData WarmUpSnapshotDataBlob(StartupData cold_startup_blob, - const char* warmup_source); + V8_DEPRECATED("Use SnapshotCreator", + static StartupData WarmUpSnapshotDataBlob( + StartupData cold_startup_blob, const char* warmup_source)); /** Set the callback to invoke in case of Dcheck failures. */ static void SetDcheckErrorHandler(DcheckErrorCallback that); @@ -8230,6 +8362,18 @@ class V8_EXPORT SnapshotCreator { public: enum class FunctionCodeHandling { kClear, kKeep }; + /** + * Initialize and enter an isolate, and set it up for serialization. + * The isolate is either created from scratch or from an existing snapshot. + * The caller keeps ownership of the argument snapshot. + * \param existing_blob existing snapshot from which to create this one. + * \param external_references a null-terminated array of external references + * that must be equivalent to CreateParams::external_references. + */ + SnapshotCreator(Isolate* isolate, + const intptr_t* external_references = nullptr, + StartupData* existing_blob = nullptr); + /** * Create and enter an isolate, and set it up for serialization. * The isolate is either created from scratch or from an existing snapshot. @@ -8990,85 +9134,6 @@ class V8_EXPORT Locker { namespace internal { -const int kApiPointerSize = sizeof(void*); // NOLINT -const int kApiIntSize = sizeof(int); // NOLINT -const int kApiInt64Size = sizeof(int64_t); // NOLINT - -// Tag information for HeapObject. -const int kHeapObjectTag = 1; -const int kWeakHeapObjectTag = 3; -const int kHeapObjectTagSize = 2; -const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1; - -// Tag information for Smi. -const int kSmiTag = 0; -const int kSmiTagSize = 1; -const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1; - -template struct SmiTagging; - -template -V8_INLINE internal::Object* IntToSmi(int value) { - int smi_shift_bits = kSmiTagSize + kSmiShiftSize; - uintptr_t tagged_value = - (static_cast(value) << smi_shift_bits) | kSmiTag; - return reinterpret_cast(tagged_value); -} - -// Smi constants for 32-bit systems. -template <> struct SmiTagging<4> { - enum { kSmiShiftSize = 0, kSmiValueSize = 31 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { - int shift_bits = kSmiTagSize + kSmiShiftSize; - // Throw away top 32 bits and shift down (requires >> to be sign extending). - return static_cast(reinterpret_cast(value)) >> shift_bits; - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); - } - V8_INLINE static bool IsValidSmi(intptr_t value) { - // To be representable as an tagged small integer, the two - // most-significant bits of 'value' must be either 00 or 11 due to - // sign-extension. To check this we add 01 to the two - // most-significant bits, and check if the most-significant bit is 0 - // - // CAUTION: The original code below: - // bool result = ((value + 0x40000000) & 0x80000000) == 0; - // may lead to incorrect results according to the C language spec, and - // in fact doesn't work correctly with gcc4.1.1 in some cases: The - // compiler may produce undefined results in case of signed integer - // overflow. The computation must be done w/ unsigned ints. - return static_cast(value + 0x40000000U) < 0x80000000U; - } -}; - -// Smi constants for 64-bit systems. -template <> struct SmiTagging<8> { - enum { kSmiShiftSize = 31, kSmiValueSize = 32 }; - static int SmiShiftSize() { return kSmiShiftSize; } - static int SmiValueSize() { return kSmiValueSize; } - V8_INLINE static int SmiToInt(const internal::Object* value) { - int shift_bits = kSmiTagSize + kSmiShiftSize; - // Shift down and throw away top 32 bits. - return static_cast(reinterpret_cast(value) >> shift_bits); - } - V8_INLINE static internal::Object* IntToSmi(int value) { - return internal::IntToSmi(value); - } - V8_INLINE static bool IsValidSmi(intptr_t value) { - // To be representable as a long smi, the value must be a 32-bit integer. - return (value == static_cast(value)); - } -}; - -typedef SmiTagging PlatformSmiTagging; -const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize; -const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize; -V8_INLINE static bool SmiValuesAre31Bits() { return kSmiValueSize == 31; } -V8_INLINE static bool SmiValuesAre32Bits() { return kSmiValueSize == 32; } - /** * This class exports constants and functionality from within v8 that * is necessary to implement inline functions in the v8 api. Don't @@ -9082,7 +9147,7 @@ class Internals { static const int kMapInstanceTypeOffset = 1 * kApiPointerSize + kApiIntSize; static const int kStringResourceOffset = 3 * kApiPointerSize; - static const int kOddballKindOffset = 4 * kApiPointerSize + sizeof(double); + static const int kOddballKindOffset = 4 * kApiPointerSize + kApiDoubleSize; static const int kForeignAddressOffset = kApiPointerSize; static const int kJSObjectHeaderSize = 3 * kApiPointerSize; static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; diff --git a/deps/v8/infra/config/cq.cfg b/deps/v8/infra/config/cq.cfg index 6159b3f1cdeca4..49c13c000bcbf9 100644 --- a/deps/v8/infra/config/cq.cfg +++ b/deps/v8/infra/config/cq.cfg @@ -30,6 +30,11 @@ verifiers { name: "v8_linux64_asan_rel_ng_triggered" triggered_by: "v8_linux64_asan_rel_ng" } + builders { name: "v8_linux64_dbg_ng" } + builders { + name: "v8_linux64_dbg_ng_triggered" + triggered_by: "v8_linux64_dbg_ng" + } builders { name: "v8_linux64_gcc_compile_dbg" } builders { name: "v8_linux64_jumbo_compile_rel" } builders { name: "v8_linux64_rel_ng" } @@ -61,11 +66,6 @@ verifiers { experiment_percentage: 100 } builders { name: "v8_linux_chromium_gn_rel" } - builders { name: "v8_linux_dbg_ng" } - builders { - name: "v8_linux_dbg_ng_triggered" - triggered_by: "v8_linux_dbg_ng" - } builders { name: "v8_linux_gcc_compile_rel" } builders { name: "v8_linux_mips64el_compile_rel" } builders { name: "v8_linux_mipsel_compile_rel" } diff --git a/deps/v8/infra/mb/mb_config.pyl b/deps/v8/infra/mb/mb_config.pyl index 70a7ad5754e0cb..23b00624557606 100644 --- a/deps/v8/infra/mb/mb_config.pyl +++ b/deps/v8/infra/mb/mb_config.pyl @@ -43,12 +43,6 @@ 'x64.optdebug': 'default_optdebug_x64', 'x64.release': 'default_release_x64', }, - - 'client.dart.fyi': { - 'v8-linux-release': 'release_x86_disassembler', - 'v8-win-release': 'release_x86_disassembler', - 'v8-mac-release': 'release_x86_disassembler', - }, 'client.dynamorio': { 'linux-v8-dr': 'release_x64', }, @@ -110,37 +104,39 @@ 'V8 Random Deopt Fuzzer - debug': 'debug_x64', }, 'client.v8.clusterfuzz': { - 'V8 Win64 ASAN - release builder': + 'V8 Clusterfuzz Win64 ASAN - release builder': 'release_x64_asan_no_lsan_verify_heap', # Note this is called a debug builder, but it uses a release build # configuration with dchecks (which enables DEBUG in V8), since win-asan # debug is not supported. - 'V8 Win64 ASAN - debug builder': + 'V8 Clusterfuzz Win64 ASAN - debug builder': 'release_x64_asan_no_lsan_verify_heap_dchecks', - 'V8 Mac64 ASAN - release builder': + 'V8 Clusterfuzz Mac64 ASAN - release builder': 'release_x64_asan_no_lsan_edge_verify_heap', - 'V8 Mac64 ASAN - debug builder': + 'V8 Clusterfuzz Mac64 ASAN - debug builder': 'debug_x64_asan_no_lsan_static_edge', - 'V8 Linux64 - release builder': 'release_x64_correctness_fuzzer', - 'V8 Linux64 - debug builder': 'debug_x64', - 'V8 Linux64 - nosnap release builder': 'release_x64_no_snap', - 'V8 Linux64 - nosnap debug builder': 'debug_x64_no_snap', - 'V8 Linux64 ASAN no inline - release builder': + 'V8 Clusterfuzz Linux64 - release builder': + 'release_x64_correctness_fuzzer', + 'V8 Clusterfuzz Linux64 - debug builder': 'debug_x64', + 'V8 Clusterfuzz Linux64 - nosnap release builder': 'release_x64_no_snap', + 'V8 Clusterfuzz Linux64 - nosnap debug builder': 'debug_x64_no_snap', + 'V8 Clusterfuzz Linux64 ASAN no inline - release builder': 'release_x64_asan_symbolized_edge_verify_heap', - 'V8 Linux64 ASAN - debug builder': 'debug_x64_asan_edge', - 'V8 Linux64 ASAN arm64 - debug builder': + 'V8 Clusterfuzz Linux64 ASAN - debug builder': 'debug_x64_asan_edge', + 'V8 Clusterfuzz Linux64 ASAN arm64 - debug builder': 'debug_simulate_arm64_asan_edge', - 'V8 Linux ASAN arm - debug builder': + 'V8 Clusterfuzz Linux ASAN arm - debug builder': 'debug_simulate_arm_asan_edge', - 'V8 Linux ASAN mipsel - debug builder': + 'V8 Clusterfuzz Linux ASAN mipsel - debug builder': 'debug_simulate_mipsel_asan_edge', - 'V8 Linux64 CFI - release builder': 'release_x64_cfi_clusterfuzz', - 'V8 Linux MSAN no origins': + 'V8 Clusterfuzz Linux64 CFI - release builder': + 'release_x64_cfi_clusterfuzz', + 'V8 Clusterfuzz Linux MSAN no origins': 'release_simulate_arm64_msan_no_origins_edge', - 'V8 Linux MSAN chained origins': + 'V8 Clusterfuzz Linux MSAN chained origins': 'release_simulate_arm64_msan_edge', - 'V8 Linux64 TSAN - release builder': 'release_x64_tsan', - 'V8 Linux64 UBSanVptr - release builder': + 'V8 Clusterfuzz Linux64 TSAN - release builder': 'release_x64_tsan', + 'V8 Clusterfuzz Linux64 UBSanVptr - release builder': 'release_x64_ubsan_vptr_recover_edge', }, 'client.v8.ports': { @@ -207,6 +203,7 @@ 'v8_linux_gcc_compile_rel': 'release_x86_gcc_minimal_symbols', 'v8_linux_gcc_rel': 'release_x86_gcc_minimal_symbols', 'v8_linux_shared_compile_rel': 'release_x86_shared_verify_heap', + 'v8_linux64_dbg_ng': 'debug_x64_trybot', 'v8_linux64_gcc_compile_dbg': 'debug_x64_gcc', 'v8_linux64_fyi_rel_ng': 'release_x64_test_features_trybot', 'v8_linux64_rel_ng': 'release_x64_test_features_trybot', @@ -238,6 +235,7 @@ 'v8_mac64_dbg': 'debug_x64', 'v8_mac64_dbg_ng': 'debug_x64', 'v8_mac64_asan_rel': 'release_x64_asan_no_lsan', + 'v8_mips_compile_rel': 'release_mips_no_snap_no_i18n', 'v8_linux_arm_rel_ng': 'release_simulate_arm_trybot', 'v8_linux_arm_dbg': 'debug_simulate_arm', 'v8_linux_arm_armv8a_rel': 'release_simulate_arm_trybot', @@ -417,7 +415,7 @@ 'release_x64_fuchsia_trybot': [ 'release_trybot', 'x64', 'fuchsia'], 'release_x64_gcc_coverage': [ - 'release_bot', 'x64', 'coverage', 'gcc'], + 'release_bot', 'x64', 'coverage', 'gcc', 'no_custom_libcxx', 'no_sysroot'], 'release_x64_internal': [ 'release_bot', 'x64', 'v8_enable_embedded_builtins', 'v8_snapshot_internal'], @@ -503,8 +501,6 @@ # Release configs for x86. 'release_x86': [ 'release_bot', 'x86'], - 'release_x86_disassembler': [ - 'release_bot', 'x86', 'v8_enable_disassembler'], 'release_x86_gcc': [ 'release_bot', 'x86', 'gcc'], 'release_x86_gcc_minimal_symbols': [ @@ -566,14 +562,14 @@ 'cfi': { 'mixins': ['v8_enable_test_features'], - 'gn_args': ('is_cfi=true use_cfi_cast=true use_cfi_diag=true ' - 'use_cfi_recover=false'), + 'gn_args': ('is_cfi=true use_cfi_cast=true use_cfi_icall=true ' + 'use_cfi_diag=true use_cfi_recover=false'), }, 'cfi_clusterfuzz': { 'mixins': ['v8_enable_test_features'], - 'gn_args': ('is_cfi=true use_cfi_cast=true use_cfi_diag=true ' - 'use_cfi_recover=true'), + 'gn_args': ('is_cfi=true use_cfi_cast=true use_cfi_icall=true ' + 'use_cfi_diag=true use_cfi_recover=true'), }, 'clang': { @@ -669,6 +665,10 @@ 'gn_args': 'is_clang=false', }, + 'no_custom_libcxx': { + 'gn_args': 'use_custom_libcxx=false', + }, + 'no_sysroot': { 'gn_args': 'use_sysroot=false', }, @@ -763,10 +763,6 @@ 'gn_args': 'v8_correctness_fuzzer=true v8_multi_arch_build=true', }, - 'v8_enable_disassembler': { - 'gn_args': 'v8_enable_disassembler=true', - }, - 'v8_enable_embedded_builtins': { 'gn_args': 'v8_enable_embedded_builtins=true', }, diff --git a/deps/v8/infra/testing/PRESUBMIT.py b/deps/v8/infra/testing/PRESUBMIT.py new file mode 100644 index 00000000000000..9f242a929943af --- /dev/null +++ b/deps/v8/infra/testing/PRESUBMIT.py @@ -0,0 +1,183 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Presubmit checks for the validity of V8-side test specifications in pyl files. + +For simplicity, we check all pyl files on any changes in this folder. +""" + +import ast +import os + + +SUPPORTED_BUILDER_SPEC_KEYS = [ + 'swarming_dimensions', + 'swarming_task_attrs', + 'tests', +] + +# This is not an exhaustive list. It only reflects what we currently use. If +# there's need to specify a different dimension, just add it here. +SUPPORTED_SWARMING_DIMENSIONS = [ + 'cores', + 'cpu', + 'os', +] + +# This is not an exhaustive list. It only reflects what we currently use. If +# there's need to specify a different property, just add it here. +SUPPORTED_SWARMING_TASK_ATTRS = [ + 'expiration', + 'hard_timeout', + 'priority', +] + +SUPPORTED_TEST_KEYS = [ + 'name', + 'shards', + 'suffix', + 'swarming_dimensions', + 'swarming_task_attrs', + 'test_args', + 'variant', +] + +def check_keys(error_msg, src_dict, supported_keys): + errors = [] + for key in src_dict.keys(): + if key not in supported_keys: + errors += error_msg('Key "%s" must be one of %s' % (key, supported_keys)) + return errors + + +def _check_properties(error_msg, src_dict, prop_name, supported_keys): + properties = src_dict.get(prop_name, {}) + if not isinstance(properties, dict): + return error_msg('Value for %s must be a dict' % prop_name) + return check_keys(error_msg, properties, supported_keys) + + +def _check_int_range(error_msg, src_dict, prop_name, lower_bound=None, + upper_bound=None): + if prop_name not in src_dict: + # All properties are optional. + return [] + try: + value = int(src_dict[prop_name]) + except ValueError: + return error_msg('If specified, %s must be an int' % prop_name) + if lower_bound is not None and value < lower_bound: + return error_msg('If specified, %s must be >=%d' % (prop_name, lower_bound)) + if upper_bound is not None and value > upper_bound: + return error_msg('If specified, %s must be <=%d' % (prop_name, upper_bound)) + return [] + + +def _check_swarming_task_attrs(error_msg, src_dict): + errors = [] + task_attrs = src_dict.get('swarming_task_attrs', {}) + errors += _check_int_range( + error_msg, task_attrs, 'priority', lower_bound=25, upper_bound=100) + errors += _check_int_range( + error_msg, task_attrs, 'expiration', lower_bound=1) + errors += _check_int_range( + error_msg, task_attrs, 'hard_timeout', lower_bound=1) + return errors + + +def _check_swarming_config(error_msg, src_dict): + errors = [] + errors += _check_properties( + error_msg, src_dict, 'swarming_dimensions', + SUPPORTED_SWARMING_DIMENSIONS) + errors += _check_properties( + error_msg, src_dict, 'swarming_task_attrs', + SUPPORTED_SWARMING_TASK_ATTRS) + errors += _check_swarming_task_attrs(error_msg, src_dict) + return errors + + +def _check_test(error_msg, test): + if not isinstance(test, dict): + return error_msg('Each test must be specified with a dict') + errors = check_keys(error_msg, test, SUPPORTED_TEST_KEYS) + if not test.get('name'): + errors += error_msg('A test requires a name') + errors += _check_swarming_config(error_msg, test) + + test_args = test.get('test_args', []) + if not isinstance(test_args, list): + errors += error_msg('If specified, test_args must be a list of arguments') + if not all(isinstance(x, basestring) for x in test_args): + errors += error_msg('If specified, all test_args must be strings') + + # Limit shards to 10 to avoid erroneous resource exhaustion. + errors += _check_int_range( + error_msg, test, 'shards', lower_bound=1, upper_bound=10) + + variant = test.get('variant', 'default') + if not variant or not isinstance(variant, basestring): + errors += error_msg('If specified, variant must be a non-empty string') + + return errors + + +def _check_test_spec(file_path, raw_pyl): + def error_msg(msg): + return ['Error in %s:\n%s' % (file_path, msg)] + + try: + # Eval python literal file. + full_test_spec = ast.literal_eval(raw_pyl) + except SyntaxError as e: + return error_msg('Pyl parsing failed with:\n%s' % e) + + if not isinstance(full_test_spec, dict): + return error_msg('Test spec must be a dict') + + errors = [] + for buildername, builder_spec in full_test_spec.iteritems(): + def error_msg(msg): + return ['Error in %s for builder %s:\n%s' % (file_path, buildername, msg)] + + if not isinstance(buildername, basestring) or not buildername: + errors += error_msg('Buildername must be a non-empty string') + + if not isinstance(builder_spec, dict) or not builder_spec: + errors += error_msg('Value must be a non-empty dict') + continue + + errors += check_keys(error_msg, builder_spec, SUPPORTED_BUILDER_SPEC_KEYS) + errors += _check_swarming_config(error_msg, builder_spec) + + for test in builder_spec.get('tests', []): + errors += _check_test(error_msg, test) + + return errors + + + +def CheckChangeOnCommit(input_api, output_api): + def file_filter(regexp): + return lambda f: input_api.FilterSourceFile(f, white_list=(regexp,)) + + # Calculate which files are affected. + if input_api.AffectedFiles(False, file_filter(r'.*PRESUBMIT\.py')): + # If PRESUBMIT.py itself was changed, check also the test spec. + affected_files = [ + os.path.join(input_api.PresubmitLocalPath(), 'builders.pyl'), + ] + else: + # Otherwise, check test spec only when changed. + affected_files = [ + f.AbsoluteLocalPath() + for f in input_api.AffectedFiles(False, file_filter(r'.*builders\.pyl')) + ] + + errors = [] + for file_path in affected_files: + with open(file_path) as f: + errors += _check_test_spec(file_path, f.read()) + return [output_api.PresubmitError(r) for r in errors] diff --git a/deps/v8/infra/testing/README.md b/deps/v8/infra/testing/README.md index 8658768cac9102..438ba2e6d064c4 100644 --- a/deps/v8/infra/testing/README.md +++ b/deps/v8/infra/testing/README.md @@ -7,38 +7,65 @@ variants specified [here](https://chromium.googlesource.com/v8/v8/+/master/tools Changes to src-side test specifications go through CQ like any other CL and require tests added for specific trybots to pass. -The test specifications are defined in a V8-side folder called infra/testing. -Every master has an optional file named `.pyl`. E.g. -`tryserver.v8.pyl`. +The test specifications are defined in a V8-side python-literal file +`infra/testing/builders.pyl`. -The structure of each file is: +The structure of the file is: ``` { - : [ - { - 'name': , - 'variant': , - 'shards': , - }, - ... - ], + : { + 'tests': [ + { + 'name': , + 'suffix': , + 'variant': , + 'shards': , + 'test_args': , + 'swarming_task_attrs': {...}, + 'swarming_dimensions': {...}, + }, + ... + ], + 'swarming_task_attrs': {...}, + 'swarming_dimensions': {...}, + }, ... } ``` The `` is a string name of the builder to execute the tests. `` is a label defining a test specification matching the [infra-side](https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/slave/recipe_modules/v8/testing.py#58). -The `` is a testing variant specified +The optional `suffix` will be appended to test-step names for disambiguation. +The optional `variant` is a testing variant specified [here](https://chromium.googlesource.com/v8/v8/+/master/tools/testrunner/local/variants.py). -`` is optional (default 1), but can be provided to increase -the swarming shards for long-running tests. +The optional `shards` (default 1) can be provided to increase the swarming +shards for long-running tests. +The optional `test_args` is a list of string flags that will be passed to the +V8 test driver. +The optional `swarming_task_attrs` is a dict allowing to override the defaults +for `priority`, `expiration` and `hard_timeout`. +The optional `swarming_dimensions` is a dict allowing to override the defaults +for `cpu`, `cores` and `os`. +Both `swarming_task_attrs` and `swarming_dimensions` can be defined per builder +and per test, whereas the latter takes precedence. Example: ``` { - 'v8_linux64_rel_ng_triggered': [ - {'name': 'v8testing', 'variant': 'nooptimization', 'shards': 2}, - ], + 'v8_linux64_rel_ng_triggered': { + 'tests': [ + { + 'name': 'v8testing', + 'suffix': 'stress', + 'variant': 'nooptimization', + 'shards': 2, + 'test_args': ['--gc-stress'], + 'swarming_dimensions': {'os': 'Ubuntu-14.4'}, + }, + ], + 'swarming_properties': {'priority': 35}, + 'swarming_dimensions': {'os': 'Ubuntu'}, + }, } ``` diff --git a/deps/v8/infra/testing/builders.pyl b/deps/v8/infra/testing/builders.pyl new file mode 100644 index 00000000000000..4d76d696b5dccd --- /dev/null +++ b/deps/v8/infra/testing/builders.pyl @@ -0,0 +1,432 @@ +# Copyright 2018 The V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# Please keep builder names, builder configs and test definitions sorted. +# Builder names should be sorted alphabetically. Builder configs should have +# keys sorted in the alphabetical order except 'tests' key, which should always +# come last. Test definitions must have keys in the following order, but omit +# optional fields: +# * name (required) +# * variant +# * test_args +# * shards +# * suffix +# * swarming_dimensions +# * swarming_task_attrs +# +# Please also format test definitions as a single line with ', ' separating +# fields, e.g. +# +# {'name': 'v8testing', 'variant': 'extra', 'shards': 2} +# +# After formatting test definitions this way, please sort them alphabetically by +# test name. For all variants of the test with the same name, the +# least-qualified test (no variant, no test args) should come first. You may +# also deviate from the alphabetical order if necessary and group tests +# differently, but in this case please add a comment before each group and +# continue to sort tests using the rules above within each group. + +{ + ############################################################################## + ### luci.v8.try + ############################################################################## + # Linux32 + 'v8_linux_dbg_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64-avx2', + }, + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'benchmarks', 'variant': 'extra'}, + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'mozilla', 'variant': 'extra'}, + {'name': 'test262'}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, + {'name': 'v8testing', 'shards': 3}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, + ], + }, + 'v8_linux_gc_stress_dbg': { + 'tests': [ + {'name': 'mjsunit', 'variant': 'slow_path', 'test_args': ['--gc-stress'], 'shards': 2}, + {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 5}, + ], + }, + 'v8_linux_gcc_rel': { + 'tests': [ + {'name': 'v8testing'}, + ], + }, + 'v8_linux_nodcheck_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64-avx2', + }, + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'benchmarks', 'variant': 'extra'}, + {'name': 'mozilla'}, + {'name': 'mozilla', 'variant': 'extra'}, + {'name': 'test262_variants', 'shards': 2}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, + ], + }, + 'v8_linux_noi18n_rel_ng_triggered': { + 'tests': [ + {'name': 'mozilla', 'variant': 'default'}, + {'name': 'test262', 'variant': 'default'}, + {'name': 'v8testing', 'variant': 'default', 'shards': 2}, + ], + }, + 'v8_linux_nosnap_rel': { + 'tests': [ + {'name': 'v8testing', 'variant': 'default', 'shards': 4}, + ], + }, + 'v8_linux_nosnap_dbg': { + 'swarming_task_attrs': { + 'hard_timeout': 3600, + }, + 'tests': [ + {'name': 'v8testing', 'variant': 'default', 'shards': 9}, + ], + }, + 'v8_linux_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64-avx2', + }, + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'benchmarks', 'variant': 'extra'}, + {'name': 'gcmole'}, + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'mozilla', 'variant': 'extra'}, + {'name': 'optimize_for_size'}, + {'name': 'test262_variants', 'shards': 4}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, + ], + }, + 'v8_linux_verify_csa_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing'}, + ], + }, + ############################################################################## + # Linux32 with arm simulators + 'v8_linux_arm_dbg': { + 'tests': [ + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + ], + }, + 'v8_linux_arm_rel_ng_triggered': { + 'tests': [ + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + ], + }, + ############################################################################## + # Linux64 + 'v8_linux64_asan_rel_ng_triggered': { + 'tests': [ + {'name': 'test262_variants', 'shards': 7}, + {'name': 'v8testing', 'shards': 3}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, + {'name': 'v8testing', 'variant': 'slow_path'}, + ], + }, + 'v8_linux64_cfi_rel_ng_triggered': { + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'mozilla'}, + {'name': 'optimize_for_size'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 2}, + ], + }, + 'v8_linux64_dbg_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64-avx2', + }, + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'benchmarks', 'variant': 'extra'}, + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'mozilla', 'variant': 'extra'}, + {'name': 'test262'}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 3}, + {'name': 'v8testing', 'shards': 3}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, + {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, + ], + }, + 'v8_linux64_fyi_rel_ng_triggered': { + 'tests': [ + # Stress sampling. + {'name': 'mjsunit', 'variant': 'stress_sampling'}, + {'name': 'webkit', 'variant': 'stress_sampling'}, + # Infra staging. + {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 2}, + {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2}, + ], + }, + 'v8_linux64_msan_rel': { + 'tests': [ + {'name': 'test262', 'shards': 2}, + {'name': 'v8testing', 'shards': 5}, + ], + }, + 'v8_linux64_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64-avx2', + }, + 'tests': [ + # TODO(machenbach): Add benchmarks. + # TODO(machenbach): Add mozilla tests. + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'optimize_for_size'}, + {'name': 'test262_variants', 'shards': 4}, + {'name': 'test262_variants', 'variant': 'extra', 'shards': 2}, + {'name': 'v8initializers'}, + {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, + {'name': 'v8testing', 'variant': 'minor_mc'}, + {'name': 'v8testing', 'variant': 'slow_path'}, + ], + }, + 'v8_linux64_tsan_rel': { + 'tests': [ + {'name': 'benchmarks'}, + {'name': 'mozilla'}, + {'name': 'test262', 'shards': 3}, + {'name': 'v8testing', 'shards': 5}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + {'name': 'v8testing', 'variant': 'slow_path'}, + ], + }, + 'v8_linux64_ubsan_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing', 'shards': 2}, + ], + }, + 'v8_linux64_verify_csa_rel_ng_triggered': { + 'tests': [ + {'name': 'v8testing'}, + ], + }, + ############################################################################## + # Linux64 with arm64 simulators + 'v8_linux_arm64_dbg': { + 'tests': [ + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + ], + }, + 'v8_linux_arm64_gc_stress_dbg': { + 'tests': [ + {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 8}, + ], + }, + 'v8_linux_arm64_rel_ng_triggered': { + 'tests': [ + {'name': 'mjsunit_sp_frame_access'}, + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 7}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 3}, + ], + }, + ############################################################################## + # Win32 + 'v8_win_dbg': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'mozilla'}, + {'name': 'v8testing', 'shards': 3}, + ], + }, + 'v8_win_nosnap_shared_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'v8testing', 'variant': 'default', 'shards': 3}, + ], + }, + 'v8_win_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'test262'}, + {'name': 'v8testing'}, + ], + }, + ############################################################################## + # Win64 + 'v8_win64_asan_rel_ng_triggered': { + 'swarming_dimensions' : { + 'os': 'Windows-10', + }, + 'tests': [ + {'name': 'v8testing', 'shards': 5}, + ], + }, + 'v8_win64_dbg': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262', 'shards': 2}, + {'name': 'v8testing', 'shards': 3}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, + ], + }, + 'v8_win64_msvc_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing'}, + ], + }, + 'v8_win64_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Windows-7-SP1', + }, + 'tests': [ + {'name': 'test262'}, + {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, + ], + }, + ############################################################################## + # Mac64 + 'v8_mac64_asan_rel': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Mac-10.13', + }, + 'tests': [ + {'name': 'v8testing', 'shards': 4}, + ], + }, + 'v8_mac64_dbg_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Mac-10.13', + }, + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing', 'shards': 3}, + {'name': 'v8testing', 'variant': 'extra', 'shards': 2}, + ], + }, + 'v8_mac64_gc_stress_dbg': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Mac-10.13', + }, + 'tests': [ + {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 4}, + ], + }, + 'v8_mac64_rel_ng_triggered': { + 'swarming_dimensions' : { + 'cpu': 'x86-64', + 'os': 'Mac-10.13', + }, + 'tests': [ + {'name': 'mozilla'}, + {'name': 'test262'}, + {'name': 'v8testing'}, + {'name': 'v8testing', 'variant': 'extra'}, + ], + }, + ############################################################################## + ### luci.v8.ci + ############################################################################## + # Linux32 + 'V8 Linux - debug': { + 'tests': [ + {'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1}, + {'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1}, + {'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1}, + {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1}, + ], + }, + 'V8 Linux - gc stress': { + 'tests': [ + {'name': 'mjsunit', 'variant': 'slow_path', 'shards': 2}, + ], + }, + ############################################################################## + # Linux64 + 'V8 Linux64': { + 'tests': [ + {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, + ], + }, + 'V8 Linux64 - debug': { + 'tests': [ + {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, + {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, + ], + }, + 'V8 Linux64 - debug - fyi': { + 'tests': [ + # Infra staging. + {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 3}, + {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2}, + # Stress sampling. + {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1}, + {'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1}, + ], + }, + 'V8 Linux64 - fyi': { + 'tests': [ + {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1}, + {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 2}, + {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 1}, + {'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1}, + ], + }, + 'V8 Linux64 ASAN': { + 'tests': [ + {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, + ], + }, + 'V8 Linux64 TSAN': { + 'tests': [ + {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, + ], + }, +} diff --git a/deps/v8/infra/testing/client.v8.pyl b/deps/v8/infra/testing/client.v8.pyl deleted file mode 100644 index ab1744fc78b33e..00000000000000 --- a/deps/v8/infra/testing/client.v8.pyl +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2017 The V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -{ - ### Example configuration for CI bots (please keep as reference). - # 'V8 Linux64': [ - # {'name': 'benchmarks', 'variant': 'default', 'shards': 1}, - # ], - # 'V8 Linux64 - debug': [ - # {'name': 'benchmarks', 'variant': 'default', 'shards': 1}, - # ], - - 'V8 Linux - debug': [ - {'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1}, - {'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1}, - {'name': 'test262_variants', 'variant': 'code_serializer', 'shards': 1}, - {'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1}, - ], - 'V8 Linux - gc stress': [ - {'name': 'mjsunit', 'variant': 'slow_path', 'shards': 2}, - ], - 'V8 Linux64': [ - {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, - ], - 'V8 Linux64 - debug': [ - {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], - 'V8 Linux64 ASAN': [ - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], - 'V8 Linux64 TSAN': [ - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], - 'V8 Linux64 - fyi': [ - {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 1}, - {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 2}, - {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1}, - {'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1}, - ], - 'V8 Linux64 - debug - fyi': [ - {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2}, - {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 3}, - {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1}, - {'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1}, - ], -} diff --git a/deps/v8/infra/testing/tryserver.v8.pyl b/deps/v8/infra/testing/tryserver.v8.pyl deleted file mode 100644 index ee6abae5d533d3..00000000000000 --- a/deps/v8/infra/testing/tryserver.v8.pyl +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2017 The V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -{ - ### Example configuration for trybots (please keep as reference). - # 'v8_linux64_rel_ng_triggered': [ - # {'name': 'benchmarks', 'variant': 'default', 'shards': 1}, - # ], - - 'v8_linux64_fyi_rel_ng_triggered': [ - {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2}, - {'name': 'test262_variants', 'variant': 'infra_staging', 'shards': 2}, - {'name': 'mjsunit', 'variant': 'stress_sampling', 'shards': 1}, - {'name': 'webkit', 'variant': 'stress_sampling', 'shards': 1}, - ], - 'v8_linux64_rel_ng_triggered': [ - {'name': 'v8testing', 'variant': 'minor_mc', 'shards': 1}, - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], - 'v8_linux_gc_stress_dbg': [ - {'name': 'mjsunit', 'variant': 'slow_path', 'shards': 2}, - ], - 'v8_linux64_asan_rel_ng_triggered': [ - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], - 'v8_linux64_tsan_rel': [ - {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1}, - ], -} diff --git a/deps/v8/src/DEPS b/deps/v8/src/DEPS index 050f91d6d6d990..275595d0d80481 100644 --- a/deps/v8/src/DEPS +++ b/deps/v8/src/DEPS @@ -27,7 +27,8 @@ include_rules = [ "+src/trap-handler/trap-handler.h", "+testing/gtest/include/gtest/gtest_prod.h", "-src/libplatform", - "-include/libplatform" + "-include/libplatform", + "+torque-generated" ] specific_include_rules = { diff --git a/deps/v8/src/accessors.cc b/deps/v8/src/accessors.cc index f292988b8e1e5d..565c019092b8a1 100644 --- a/deps/v8/src/accessors.cc +++ b/deps/v8/src/accessors.cc @@ -12,6 +12,7 @@ #include "src/heap/factory.h" #include "src/isolate-inl.h" #include "src/messages.h" +#include "src/objects/api-callbacks.h" #include "src/property-details.h" #include "src/prototype.h" @@ -37,7 +38,7 @@ Handle Accessors::MakeAccessor( info->set_getter(*get); info->set_setter(*set); Address redirected = info->redirected_getter(); - if (redirected != nullptr) { + if (redirected != kNullAddress) { Handle js_get = v8::FromCData(isolate, redirected); info->set_js_getter(*js_get); } @@ -76,12 +77,12 @@ bool Accessors::IsJSObjectFieldAccessor(Handle map, Handle name, } } - -namespace { - -V8_WARN_UNUSED_RESULT MaybeHandle ReplaceAccessorWithDataProperty( - Isolate* isolate, Handle receiver, Handle holder, - Handle name, Handle value) { +V8_WARN_UNUSED_RESULT MaybeHandle +Accessors::ReplaceAccessorWithDataProperty(Isolate* isolate, + Handle receiver, + Handle holder, + Handle name, + Handle value) { LookupIterator it(receiver, name, holder, LookupIterator::OWN_SKIP_INTERCEPTOR); // Skip any access checks we might hit. This accessor should never hit in a @@ -96,7 +97,6 @@ V8_WARN_UNUSED_RESULT MaybeHandle ReplaceAccessorWithDataProperty( return value; } -} // namespace // // Accessors::ReconfigureToDataProperty @@ -113,8 +113,8 @@ void Accessors::ReconfigureToDataProperty( Handle::cast(Utils::OpenHandle(*info.Holder())); Handle name = Utils::OpenHandle(*key); Handle value = Utils::OpenHandle(*val); - MaybeHandle result = - ReplaceAccessorWithDataProperty(isolate, receiver, holder, name, value); + MaybeHandle result = Accessors::ReplaceAccessorWithDataProperty( + isolate, receiver, holder, name, value); if (result.is_null()) { isolate->OptionalRescheduleException(false); } else { @@ -122,17 +122,6 @@ void Accessors::ReconfigureToDataProperty( } } -void Accessors::ReconfigureToDataPropertyGetter( - v8::Local name, const v8::PropertyCallbackInfo& info) { - UNREACHABLE(); -} - -Handle Accessors::MakeReconfigureToDataPropertyInfo( - Isolate* isolate) { - Handle name = isolate->factory()->ReconfigureToDataProperty_string(); - return MakeAccessor(isolate, name, &ReconfigureToDataPropertyGetter, - &ReconfigureToDataProperty); -} // // Accessors::ArgumentsIterator @@ -1194,8 +1183,8 @@ void Accessors::ErrorStackGetter( Utils::OpenHandle(*v8::Local(info.This())); Handle name = Utils::OpenHandle(*key); if (IsAccessor(receiver, name, holder)) { - result = ReplaceAccessorWithDataProperty(isolate, receiver, holder, name, - formatted_stack_trace); + result = Accessors::ReplaceAccessorWithDataProperty( + isolate, receiver, holder, name, formatted_stack_trace); if (result.is_null()) { isolate->OptionalRescheduleException(false); return; diff --git a/deps/v8/src/accessors.h b/deps/v8/src/accessors.h index 1911f92dbf93dd..4a1a67e93e6822 100644 --- a/deps/v8/src/accessors.h +++ b/deps/v8/src/accessors.h @@ -33,7 +33,6 @@ class JavaScriptFrame; V(function_name, FunctionName) \ V(function_length, FunctionLength) \ V(function_prototype, FunctionPrototype) \ - V(reconfigure_to_data_property, ReconfigureToDataProperty) \ V(script_column_offset, ScriptColumnOffset) \ V(script_compilation_type, ScriptCompilationType) \ V(script_context_data, ScriptContextData) \ @@ -110,6 +109,10 @@ class Accessors : public AllStatic { static bool IsJSObjectFieldAccessor(Handle map, Handle name, FieldIndex* field_index); + static MaybeHandle ReplaceAccessorWithDataProperty( + Isolate* isolate, Handle receiver, Handle holder, + Handle name, Handle value); + // Create an AccessorInfo. The setter is optional (can be nullptr). // // Note that the type of setter is AccessorNameBooleanSetterCallback instead diff --git a/deps/v8/src/address-map.h b/deps/v8/src/address-map.h index e2b815daff0aba..f3e2770847b156 100644 --- a/deps/v8/src/address-map.h +++ b/deps/v8/src/address-map.h @@ -34,13 +34,21 @@ class PointerToIndexHashMap } private: - static uintptr_t Key(Type value) { - return reinterpret_cast(value); - } + static inline uintptr_t Key(Type value); static uint32_t Hash(uintptr_t key) { return static_cast(key); } }; +template <> +inline uintptr_t PointerToIndexHashMap
    ::Key(Address value) { + return static_cast(value); +} + +template +inline uintptr_t PointerToIndexHashMap::Key(Type value) { + return reinterpret_cast(value); +} + class AddressToIndexHashMap : public PointerToIndexHashMap
    {}; class HeapObjectToIndexHashMap : public PointerToIndexHashMap {}; diff --git a/deps/v8/src/allocation.cc b/deps/v8/src/allocation.cc index f63c2f292f5b00..55c68dea89482e 100644 --- a/deps/v8/src/allocation.cc +++ b/deps/v8/src/allocation.cc @@ -206,15 +206,15 @@ bool OnCriticalMemoryPressure(size_t length) { return true; } -VirtualMemory::VirtualMemory() : address_(nullptr), size_(0) {} +VirtualMemory::VirtualMemory() : address_(kNullAddress), size_(0) {} VirtualMemory::VirtualMemory(size_t size, void* hint, size_t alignment) - : address_(nullptr), size_(0) { + : address_(kNullAddress), size_(0) { size_t page_size = AllocatePageSize(); size_t alloc_size = RoundUp(size, page_size); - address_ = - AllocatePages(hint, alloc_size, alignment, PageAllocator::kNoAccess); - if (address_ != nullptr) { + address_ = reinterpret_cast
    ( + AllocatePages(hint, alloc_size, alignment, PageAllocator::kNoAccess)); + if (address_ != kNullAddress) { size_ = alloc_size; } } @@ -226,31 +226,29 @@ VirtualMemory::~VirtualMemory() { } void VirtualMemory::Reset() { - address_ = nullptr; + address_ = kNullAddress; size_ = 0; } -bool VirtualMemory::SetPermissions(void* address, size_t size, +bool VirtualMemory::SetPermissions(Address address, size_t size, PageAllocator::Permission access) { CHECK(InVM(address, size)); bool result = v8::internal::SetPermissions(address, size, access); DCHECK(result); - USE(result); return result; } -size_t VirtualMemory::Release(void* free_start) { +size_t VirtualMemory::Release(Address free_start) { DCHECK(IsReserved()); - DCHECK(IsAddressAligned(static_cast
    (free_start), CommitPageSize())); + DCHECK(IsAddressAligned(free_start, CommitPageSize())); // Notice: Order is important here. The VirtualMemory object might live // inside the allocated region. - const size_t free_size = size_ - (reinterpret_cast(free_start) - - reinterpret_cast(address_)); + const size_t free_size = size_ - (free_start - address_); CHECK(InVM(free_start, free_size)); DCHECK_LT(address_, free_start); - DCHECK_LT(free_start, reinterpret_cast( - reinterpret_cast(address_) + size_)); - CHECK(ReleasePages(address_, size_, size_ - free_size)); + DCHECK_LT(free_start, address_ + size_); + CHECK(ReleasePages(reinterpret_cast(address_), size_, + size_ - free_size)); size_ -= free_size; return free_size; } @@ -259,13 +257,14 @@ void VirtualMemory::Free() { DCHECK(IsReserved()); // Notice: Order is important here. The VirtualMemory object might live // inside the allocated region. - void* address = address_; + Address address = address_; size_t size = size_; CHECK(InVM(address, size)); Reset(); // FreePages expects size to be aligned to allocation granularity. Trimming // may leave size at only commit granularity. Align it here. - CHECK(FreePages(address, RoundUp(size, AllocatePageSize()))); + CHECK(FreePages(reinterpret_cast(address), + RoundUp(size, AllocatePageSize()))); } void VirtualMemory::TakeControl(VirtualMemory* from) { diff --git a/deps/v8/src/allocation.h b/deps/v8/src/allocation.h index 13dc3e508f3d3c..67a510c611c866 100644 --- a/deps/v8/src/allocation.h +++ b/deps/v8/src/allocation.h @@ -126,6 +126,10 @@ V8_WARN_UNUSED_RESULT bool ReleasePages(void* address, size_t size, V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT bool SetPermissions(void* address, size_t size, PageAllocator::Permission access); +inline bool SetPermissions(Address address, size_t size, + PageAllocator::Permission access) { + return SetPermissions(reinterpret_cast(address), size, access); +} // Convenience function that allocates a single system page with read and write // permissions. |address| is a hint. Returns the base address of the memory and @@ -151,14 +155,15 @@ class V8_EXPORT_PRIVATE VirtualMemory { // Construct a virtual memory by assigning it some already mapped address // and size. - VirtualMemory(void* address, size_t size) : address_(address), size_(size) {} + VirtualMemory(Address address, size_t size) + : address_(address), size_(size) {} // Releases the reserved memory, if any, controlled by this VirtualMemory // object. ~VirtualMemory(); // Returns whether the memory has been reserved. - bool IsReserved() const { return address_ != nullptr; } + bool IsReserved() const { return address_ != kNullAddress; } // Initialize or resets an embedded VirtualMemory object. void Reset(); @@ -167,15 +172,14 @@ class V8_EXPORT_PRIVATE VirtualMemory { // If the memory was reserved with an alignment, this address is not // necessarily aligned. The user might need to round it up to a multiple of // the alignment to get the start of the aligned block. - void* address() const { + Address address() const { DCHECK(IsReserved()); return address_; } - void* end() const { + Address end() const { DCHECK(IsReserved()); - return reinterpret_cast(reinterpret_cast(address_) + - size_); + return address_ + size_; } // Returns the size of the reserved memory. The returned value is only @@ -186,11 +190,11 @@ class V8_EXPORT_PRIVATE VirtualMemory { // Sets permissions according to the access argument. address and size must be // multiples of CommitPageSize(). Returns true on success, otherwise false. - bool SetPermissions(void* address, size_t size, + bool SetPermissions(Address address, size_t size, PageAllocator::Permission access); // Releases memory after |free_start|. Returns the number of bytes released. - size_t Release(void* free_start); + size_t Release(Address free_start); // Frees all memory. void Free(); @@ -199,15 +203,12 @@ class V8_EXPORT_PRIVATE VirtualMemory { // The old object is no longer functional (IsReserved() returns false). void TakeControl(VirtualMemory* from); - bool InVM(void* address, size_t size) { - return (reinterpret_cast(address_) <= - reinterpret_cast(address)) && - ((reinterpret_cast(address_) + size_) >= - (reinterpret_cast(address) + size)); + bool InVM(Address address, size_t size) { + return (address_ <= address) && ((address_ + size_) >= (address + size)); } private: - void* address_; // Start address of the virtual memory. + Address address_; // Start address of the virtual memory. size_t size_; // Size of the virtual memory. }; diff --git a/deps/v8/src/api-arguments-inl.h b/deps/v8/src/api-arguments-inl.h index 1cf9662b94997b..503cea8dcb65ab 100644 --- a/deps/v8/src/api-arguments-inl.h +++ b/deps/v8/src/api-arguments-inl.h @@ -7,6 +7,7 @@ #include "src/api-arguments.h" +#include "src/objects/api-callbacks.h" #include "src/tracing/trace-event.h" #include "src/vm-state-inl.h" diff --git a/deps/v8/src/api-natives.cc b/deps/v8/src/api-natives.cc index 981f592f5a08ed..1b6df15d7a69d4 100644 --- a/deps/v8/src/api-natives.cc +++ b/deps/v8/src/api-natives.cc @@ -8,6 +8,9 @@ #include "src/isolate-inl.h" #include "src/lookup.h" #include "src/messages.h" +#include "src/objects/api-callbacks.h" +#include "src/objects/hash-table-inl.h" +#include "src/objects/templates.h" namespace v8 { namespace internal { diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 192ad90f83e55c..89bcb2e4fa556f 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -5,10 +5,7 @@ #include "src/api.h" #include // For memcpy, strlen. -#ifdef V8_USE_ADDRESS_SANITIZER -#include -#endif // V8_USE_ADDRESS_SANITIZER -#include // For isnan. +#include // For isnan. #include #include #include "include/v8-profiler.h" @@ -49,6 +46,9 @@ #include "src/json-stringifier.h" #include "src/messages.h" #include "src/objects-inl.h" +#include "src/objects/api-callbacks.h" +#include "src/objects/ordered-hash-table-inl.h" +#include "src/objects/templates.h" #include "src/parsing/parser.h" #include "src/parsing/scanner-character-streams.h" #include "src/pending-compilation-error-handler.h" @@ -79,7 +79,6 @@ #include "src/value-serializer.h" #include "src/version.h" #include "src/vm-state-inl.h" -#include "src/wasm/compilation-manager.h" #include "src/wasm/streaming-decoder.h" #include "src/wasm/wasm-engine.h" #include "src/wasm/wasm-objects-inl.h" @@ -233,10 +232,20 @@ template class CallDepthScope { public: explicit CallDepthScope(i::Isolate* isolate, Local context) - : isolate_(isolate), context_(context), escaped_(false) { + : isolate_(isolate), + context_(context), + escaped_(false), + safe_for_termination_(isolate->next_v8_call_is_safe_for_termination()), + interrupts_scope_(isolate_, i::StackGuard::TERMINATE_EXECUTION, + isolate_->only_terminate_in_safe_scope() + ? (safe_for_termination_ + ? i::InterruptsScope::kRunInterrupts + : i::InterruptsScope::kPostponeInterrupts) + : i::InterruptsScope::kNoop) { // TODO(dcarney): remove this when blink stops crashing. DCHECK(!isolate_->external_caught_exception()); isolate_->handle_scope_implementer()->IncrementCallDepth(); + isolate_->set_next_v8_call_is_safe_for_termination(false); if (!context.IsEmpty()) { i::Handle env = Utils::OpenHandle(*context); i::HandleScopeImplementer* impl = isolate->handle_scope_implementer(); @@ -261,6 +270,7 @@ class CallDepthScope { #ifdef V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY if (do_callback) CheckMicrotasksScopesConsistency(isolate_); #endif + isolate_->set_next_v8_call_is_safe_for_termination(safe_for_termination_); } void Escape() { @@ -277,6 +287,8 @@ class CallDepthScope { Local context_; bool escaped_; bool do_callback_; + bool safe_for_termination_; + i::InterruptsScope interrupts_scope_; }; } // namespace @@ -332,7 +344,9 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, memset(&heap_stats, 0xBADC0DE, sizeof(heap_stats)); // Note that the embedder's oom handler won't be called in this case. We // just crash. - FATAL("API fatal error handler returned after process out of memory"); + FATAL( + "API fatal error handler returned after process out of memory on the " + "background thread"); UNREACHABLE(); } @@ -341,6 +355,10 @@ void i::V8::FatalProcessOutOfMemory(i::Isolate* isolate, const char* location, intptr_t start_marker; heap_stats.start_marker = &start_marker; + size_t ro_space_size; + heap_stats.ro_space_size = &ro_space_size; + size_t ro_space_capacity; + heap_stats.ro_space_capacity = &ro_space_capacity; size_t new_space_size; heap_stats.new_space_size = &new_space_size; size_t new_space_capacity; @@ -539,14 +557,15 @@ struct SnapshotCreatorData { } // namespace -SnapshotCreator::SnapshotCreator(const intptr_t* external_references, +SnapshotCreator::SnapshotCreator(Isolate* isolate, + const intptr_t* external_references, StartupData* existing_snapshot) { - i::Isolate* internal_isolate = new i::Isolate(true); - Isolate* isolate = reinterpret_cast(internal_isolate); SnapshotCreatorData* data = new SnapshotCreatorData(isolate); data->isolate_ = isolate; + i::Isolate* internal_isolate = reinterpret_cast(isolate); internal_isolate->set_array_buffer_allocator(&data->allocator_); internal_isolate->set_api_external_references(external_references); + internal_isolate->enable_serializer(); isolate->Enter(); const StartupData* blob = existing_snapshot ? existing_snapshot @@ -560,6 +579,11 @@ SnapshotCreator::SnapshotCreator(const intptr_t* external_references, data_ = data; } +SnapshotCreator::SnapshotCreator(const intptr_t* external_references, + StartupData* existing_snapshot) + : SnapshotCreator(reinterpret_cast(new i::Isolate()), + external_references, existing_snapshot) {} + SnapshotCreator::~SnapshotCreator() { SnapshotCreatorData* data = SnapshotCreatorData::cast(data_); DCHECK(data->created_); @@ -710,6 +734,8 @@ StartupData SnapshotCreator::CreateBlob( i::GarbageCollectionReason::kSnapshotCreator); isolate->heap()->CompactFixedArraysOfWeakCells(); + isolate->heap()->read_only_space()->ClearStringPaddingIfNeeded(); + i::DisallowHeapAllocation no_gc_from_here_on; int num_contexts = num_additional_contexts + 1; @@ -753,7 +779,7 @@ StartupData SnapshotCreator::CreateBlob( if (shared->CanFlushCompiled()) { shared->FlushCompiled(); } - DCHECK(shared->HasCodeObject() || shared->HasBuiltinId() || + DCHECK(shared->HasWasmExportedFunctionData() || shared->HasBuiltinId() || shared->IsApiFunction()); } } @@ -1527,7 +1553,9 @@ i::Handle MakeAccessorInfo( } SET_FIELD_WRAPPED(obj, set_setter, setter); i::Address redirected = obj->redirected_getter(); - if (redirected != nullptr) SET_FIELD_WRAPPED(obj, set_js_getter, redirected); + if (redirected != i::kNullAddress) { + SET_FIELD_WRAPPED(obj, set_js_getter, redirected); + } if (data.IsEmpty()) { data = v8::Undefined(reinterpret_cast(isolate)); } @@ -1694,13 +1722,11 @@ static i::Handle EnsureConstructor( } template -static void TemplateSetAccessor(Template* template_obj, v8::Local name, - Getter getter, Setter setter, Data data, - AccessControl settings, - PropertyAttribute attribute, - v8::Local signature, - bool is_special_data_property, - bool replace_on_access) { +static void TemplateSetAccessor( + Template* template_obj, v8::Local name, Getter getter, Setter setter, + Data data, AccessControl settings, PropertyAttribute attribute, + v8::Local signature, bool is_special_data_property, + bool replace_on_access, SideEffectType getter_side_effect_type) { auto info = Utils::OpenHandle(template_obj); auto isolate = info->GetIsolate(); ENTER_V8_NO_SCRIPT_NO_EXCEPTION(isolate); @@ -1710,40 +1736,38 @@ static void TemplateSetAccessor(Template* template_obj, v8::Local name, is_special_data_property, replace_on_access); accessor_info->set_initial_property_attributes( static_cast(attribute)); + accessor_info->set_has_no_side_effect(getter_side_effect_type == + SideEffectType::kHasNoSideEffect); i::ApiNatives::AddNativeDataProperty(isolate, info, accessor_info); } - -void Template::SetNativeDataProperty(v8::Local name, - AccessorGetterCallback getter, - AccessorSetterCallback setter, - v8::Local data, - PropertyAttribute attribute, - v8::Local signature, - AccessControl settings) { +void Template::SetNativeDataProperty( + v8::Local name, AccessorGetterCallback getter, + AccessorSetterCallback setter, v8::Local data, + PropertyAttribute attribute, v8::Local signature, + AccessControl settings, SideEffectType getter_side_effect_type) { TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, - signature, true, false); + signature, true, false, getter_side_effect_type); } - -void Template::SetNativeDataProperty(v8::Local name, - AccessorNameGetterCallback getter, - AccessorNameSetterCallback setter, - v8::Local data, - PropertyAttribute attribute, - v8::Local signature, - AccessControl settings) { +void Template::SetNativeDataProperty( + v8::Local name, AccessorNameGetterCallback getter, + AccessorNameSetterCallback setter, v8::Local data, + PropertyAttribute attribute, v8::Local signature, + AccessControl settings, SideEffectType getter_side_effect_type) { TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, - signature, true, false); + signature, true, false, getter_side_effect_type); } void Template::SetLazyDataProperty(v8::Local name, AccessorNameGetterCallback getter, v8::Local data, - PropertyAttribute attribute) { - TemplateSetAccessor( - this, name, getter, static_cast(nullptr), - data, DEFAULT, attribute, Local(), true, true); + PropertyAttribute attribute, + SideEffectType getter_side_effect_type) { + TemplateSetAccessor(this, name, getter, + static_cast(nullptr), data, + DEFAULT, attribute, Local(), true, + true, getter_side_effect_type); } void Template::SetIntrinsicDataProperty(Local name, Intrinsic intrinsic, @@ -1757,26 +1781,28 @@ void Template::SetIntrinsicDataProperty(Local name, Intrinsic intrinsic, static_cast(attribute)); } - void ObjectTemplate::SetAccessor(v8::Local name, AccessorGetterCallback getter, AccessorSetterCallback setter, v8::Local data, AccessControl settings, PropertyAttribute attribute, - v8::Local signature) { + v8::Local signature, + SideEffectType getter_side_effect_type) { TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, - signature, i::FLAG_disable_old_api_accessors, false); + signature, i::FLAG_disable_old_api_accessors, false, + getter_side_effect_type); } - void ObjectTemplate::SetAccessor(v8::Local name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter, v8::Local data, AccessControl settings, PropertyAttribute attribute, - v8::Local signature) { + v8::Local signature, + SideEffectType getter_side_effect_type) { TemplateSetAccessor(this, name, getter, setter, data, settings, attribute, - signature, i::FLAG_disable_old_api_accessors, false); + signature, i::FLAG_disable_old_api_accessors, false, + getter_side_effect_type); } template Module::GetModuleNamespace() { return ToApiHandle(module_namespace); } +Local Module::GetUnboundModuleScript() { + Utils::ApiCheck( + GetStatus() < kEvaluating, "v8::Module::GetUnboundScript", + "v8::Module::GetUnboundScript must be used on an unevaluated module"); + i::Handle self = Utils::OpenHandle(this); + return ToApiHandle( + i::Handle(self->GetSharedFunctionInfo())); +} + int Module::GetIdentityHash() const { return Utils::OpenHandle(this)->hash(); } Maybe Module::InstantiateModule(Local context, @@ -2505,8 +2540,10 @@ MaybeLocal ScriptCompiler::CompileFunctionInContext( options == CompileOptions::kNoCompileOptions); i::Handle context = Utils::OpenHandle(*v8_context); - i::Handle outer_info(context->closure()->shared(), - isolate); + + DCHECK(context->IsNativeContext()); + i::Handle outer_info( + context->empty_function()->shared(), isolate); i::Handle fun; i::Handle arguments_list = @@ -2522,9 +2559,8 @@ MaybeLocal ScriptCompiler::CompileFunctionInContext( i::Handle extension = Utils::OpenHandle(*context_extensions[i]); if (!extension->IsJSObject()) return Local(); - i::Handle closure(context->closure(), isolate); context = isolate->factory()->NewWithContext( - closure, context, + context, i::ScopeInfo::CreateForWithScope( isolate, context->IsNativeContext() ? i::Handle::null() @@ -2638,6 +2674,16 @@ ScriptCompiler::CachedData* ScriptCompiler::CreateCodeCache( return i::CodeSerializer::Serialize(shared); } +// static +ScriptCompiler::CachedData* ScriptCompiler::CreateCodeCache( + Local unbound_module_script) { + i::Handle shared = + i::Handle::cast( + Utils::OpenHandle(*unbound_module_script)); + DCHECK(shared->is_toplevel()); + return i::CodeSerializer::Serialize(shared); +} + ScriptCompiler::CachedData* ScriptCompiler::CreateCodeCacheForFunction( Local function, Local source) { return CreateCodeCacheForFunction(function); @@ -5079,9 +5125,15 @@ Local Function::New(Isolate* v8_isolate, FunctionCallback callback, .FromMaybe(Local()); } - MaybeLocal Function::NewInstance(Local context, int argc, v8::Local argv[]) const { + return NewInstanceWithSideEffectType(context, argc, argv, + SideEffectType::kHasSideEffect); +} + +MaybeLocal Function::NewInstanceWithSideEffectType( + Local context, int argc, v8::Local argv[], + SideEffectType side_effect_type) const { auto isolate = reinterpret_cast(context->GetIsolate()); TRACE_EVENT_CALL_STATS_SCOPED(isolate, "v8", "V8.Execute"); ENTER_V8(isolate, context, Function, NewInstance, MaybeLocal(), @@ -5089,10 +5141,39 @@ MaybeLocal Function::NewInstance(Local context, int argc, i::TimerEventScope timer_scope(isolate); auto self = Utils::OpenHandle(this); STATIC_ASSERT(sizeof(v8::Local) == sizeof(i::Object**)); + bool should_set_has_no_side_effect = + side_effect_type == SideEffectType::kHasNoSideEffect && + isolate->debug_execution_mode() == i::DebugInfo::kSideEffects; + if (should_set_has_no_side_effect) { + CHECK(self->IsJSFunction() && + i::JSFunction::cast(*self)->shared()->IsApiFunction()); + i::Object* obj = + i::JSFunction::cast(*self)->shared()->get_api_func_data()->call_code(); + if (obj->IsCallHandlerInfo()) { + i::CallHandlerInfo* handler_info = i::CallHandlerInfo::cast(obj); + if (!handler_info->IsSideEffectFreeCallHandlerInfo()) { + handler_info->SetNextCallHasNoSideEffect(); + } + } + } i::Handle* args = reinterpret_cast*>(argv); Local result; has_pending_exception = !ToLocal( i::Execution::New(isolate, self, self, argc, args), &result); + if (should_set_has_no_side_effect) { + i::Object* obj = + i::JSFunction::cast(*self)->shared()->get_api_func_data()->call_code(); + if (obj->IsCallHandlerInfo()) { + i::CallHandlerInfo* handler_info = i::CallHandlerInfo::cast(obj); + if (has_pending_exception) { + // Restore the map if an exception prevented restoration. + handler_info->NextCallHasNoSideEffect(); + } else { + DCHECK(handler_info->IsSideEffectCallHandlerInfo() || + handler_info->IsSideEffectFreeCallHandlerInfo()); + } + } + } RETURN_ON_FAILED_EXECUTION(Object); RETURN_ESCAPED(result); } @@ -5403,202 +5484,28 @@ bool String::ContainsOnlyOneByte() const { } -class Utf8LengthHelper : public i::AllStatic { - public: - enum State { - kEndsWithLeadingSurrogate = 1 << 0, - kStartsWithTrailingSurrogate = 1 << 1, - kLeftmostEdgeIsCalculated = 1 << 2, - kRightmostEdgeIsCalculated = 1 << 3, - kLeftmostEdgeIsSurrogate = 1 << 4, - kRightmostEdgeIsSurrogate = 1 << 5 - }; - - static const uint8_t kInitialState = 0; - - static inline bool EndsWithSurrogate(uint8_t state) { - return state & kEndsWithLeadingSurrogate; - } - - static inline bool StartsWithSurrogate(uint8_t state) { - return state & kStartsWithTrailingSurrogate; - } - - class Visitor { - public: - Visitor() : utf8_length_(0), state_(kInitialState) {} - - void VisitOneByteString(const uint8_t* chars, int length) { - int utf8_length = 0; - // Add in length 1 for each non-Latin1 character. - for (int i = 0; i < length; i++) { - utf8_length += *chars++ >> 7; - } - // Add in length 1 for each character. - utf8_length_ = utf8_length + length; - state_ = kInitialState; - } - - void VisitTwoByteString(const uint16_t* chars, int length) { - int utf8_length = 0; - int last_character = unibrow::Utf16::kNoPreviousCharacter; - for (int i = 0; i < length; i++) { - uint16_t c = chars[i]; - utf8_length += unibrow::Utf8::Length(c, last_character); - last_character = c; - } - utf8_length_ = utf8_length; - uint8_t state = 0; - if (unibrow::Utf16::IsTrailSurrogate(chars[0])) { - state |= kStartsWithTrailingSurrogate; - } - if (unibrow::Utf16::IsLeadSurrogate(chars[length-1])) { - state |= kEndsWithLeadingSurrogate; - } - state_ = state; - } - - static i::ConsString* VisitFlat(i::String* string, - int* length, - uint8_t* state) { - Visitor visitor; - i::ConsString* cons_string = i::String::VisitFlat(&visitor, string); - *length = visitor.utf8_length_; - *state = visitor.state_; - return cons_string; - } - - private: - int utf8_length_; - uint8_t state_; - DISALLOW_COPY_AND_ASSIGN(Visitor); - }; - - static inline void MergeLeafLeft(int* length, - uint8_t* state, - uint8_t leaf_state) { - bool edge_surrogate = StartsWithSurrogate(leaf_state); - if (!(*state & kLeftmostEdgeIsCalculated)) { - DCHECK(!(*state & kLeftmostEdgeIsSurrogate)); - *state |= kLeftmostEdgeIsCalculated - | (edge_surrogate ? kLeftmostEdgeIsSurrogate : 0); - } else if (EndsWithSurrogate(*state) && edge_surrogate) { - *length -= unibrow::Utf8::kBytesSavedByCombiningSurrogates; - } - if (EndsWithSurrogate(leaf_state)) { - *state |= kEndsWithLeadingSurrogate; - } else { - *state &= ~kEndsWithLeadingSurrogate; - } - } - - static inline void MergeLeafRight(int* length, - uint8_t* state, - uint8_t leaf_state) { - bool edge_surrogate = EndsWithSurrogate(leaf_state); - if (!(*state & kRightmostEdgeIsCalculated)) { - DCHECK(!(*state & kRightmostEdgeIsSurrogate)); - *state |= (kRightmostEdgeIsCalculated - | (edge_surrogate ? kRightmostEdgeIsSurrogate : 0)); - } else if (edge_surrogate && StartsWithSurrogate(*state)) { - *length -= unibrow::Utf8::kBytesSavedByCombiningSurrogates; - } - if (StartsWithSurrogate(leaf_state)) { - *state |= kStartsWithTrailingSurrogate; - } else { - *state &= ~kStartsWithTrailingSurrogate; - } - } - - static inline void MergeTerminal(int* length, - uint8_t state, - uint8_t* state_out) { - DCHECK((state & kLeftmostEdgeIsCalculated) && - (state & kRightmostEdgeIsCalculated)); - if (EndsWithSurrogate(state) && StartsWithSurrogate(state)) { - *length -= unibrow::Utf8::kBytesSavedByCombiningSurrogates; - } - *state_out = kInitialState | - (state & kLeftmostEdgeIsSurrogate ? kStartsWithTrailingSurrogate : 0) | - (state & kRightmostEdgeIsSurrogate ? kEndsWithLeadingSurrogate : 0); - } - - static int Calculate(i::ConsString* current, uint8_t* state_out) { - using internal::ConsString; - int total_length = 0; - uint8_t state = kInitialState; - while (true) { - i::String* left = current->first(); - i::String* right = current->second(); - uint8_t right_leaf_state; - uint8_t left_leaf_state; - int leaf_length; - ConsString* left_as_cons = - Visitor::VisitFlat(left, &leaf_length, &left_leaf_state); - if (left_as_cons == nullptr) { - total_length += leaf_length; - MergeLeafLeft(&total_length, &state, left_leaf_state); - } - ConsString* right_as_cons = - Visitor::VisitFlat(right, &leaf_length, &right_leaf_state); - if (right_as_cons == nullptr) { - total_length += leaf_length; - MergeLeafRight(&total_length, &state, right_leaf_state); - if (left_as_cons != nullptr) { - // 1 Leaf node. Descend in place. - current = left_as_cons; - continue; - } else { - // Terminal node. - MergeTerminal(&total_length, state, state_out); - return total_length; - } - } else if (left_as_cons == nullptr) { - // 1 Leaf node. Descend in place. - current = right_as_cons; - continue; - } - // Both strings are ConsStrings. - // Recurse on smallest. - if (left->length() < right->length()) { - total_length += Calculate(left_as_cons, &left_leaf_state); - MergeLeafLeft(&total_length, &state, left_leaf_state); - current = right_as_cons; - } else { - total_length += Calculate(right_as_cons, &right_leaf_state); - MergeLeafRight(&total_length, &state, right_leaf_state); - current = left_as_cons; - } - } - UNREACHABLE(); - } - - static inline int Calculate(i::ConsString* current) { - uint8_t state = kInitialState; - return Calculate(current, &state); - } - - private: - DISALLOW_IMPLICIT_CONSTRUCTORS(Utf8LengthHelper); -}; - - -static int Utf8Length(i::String* str, i::Isolate* isolate) { - int length = str->length(); - if (length == 0) return 0; - uint8_t state; - i::ConsString* cons_string = - Utf8LengthHelper::Visitor::VisitFlat(str, &length, &state); - if (cons_string == nullptr) return length; - return Utf8LengthHelper::Calculate(cons_string); -} - - int String::Utf8Length() const { i::Handle str = Utils::OpenHandle(this); str = i::String::Flatten(str); - i::Isolate* isolate = str->GetIsolate(); - return v8::Utf8Length(*str, isolate); + int length = str->length(); + if (length == 0) return 0; + i::DisallowHeapAllocation no_gc; + i::String::FlatContent flat = str->GetFlatContent(); + DCHECK(flat.IsFlat()); + int utf8_length = 0; + if (flat.IsOneByte()) { + for (uint8_t c : flat.ToOneByteVector()) { + utf8_length += c >> 7; + } + utf8_length += length; + } else { + int last_character = unibrow::Utf16::kNoPreviousCharacter; + for (uint16_t c : flat.ToUC16Vector()) { + utf8_length += unibrow::Utf8::Length(c, last_character); + last_character = c; + } + } + return utf8_length; } @@ -5823,7 +5730,7 @@ int String::WriteUtf8(char* buffer, if (success) return writer.CompleteWrite(write_null, nchars_ref); } else if (capacity >= string_length) { // First check that the buffer is large enough. - int utf8_bytes = v8::Utf8Length(*str, isolate); + int utf8_bytes = Utf8Length(); if (utf8_bytes <= capacity) { // one-byte fast path. if (utf8_bytes == string_length) { @@ -5843,8 +5750,6 @@ int String::WriteUtf8(char* buffer, return WriteUtf8(buffer, -1, nchars_ref, options); } } - // Recursive slow path can potentially be unreasonable slow. Flatten. - str = i::String::Flatten(str); Utf8WriterVisitor writer(buffer, capacity, false, replace_invalid_utf8); i::String::VisitFlat(&writer, *str); return writer.CompleteWrite(write_null, nchars_ref); @@ -6083,7 +5988,7 @@ static void* ExternalValue(i::Object* obj) { return nullptr; } i::Object* foreign = i::JSObject::cast(obj)->GetEmbedderField(0); - return i::Foreign::cast(foreign)->foreign_address(); + return reinterpret_cast(i::Foreign::cast(foreign)->foreign_address()); } @@ -6120,7 +6025,7 @@ bool V8::TryHandleSignal(int signum, void* info, void* context) { #endif bool V8::RegisterDefaultSignalHandler() { - return v8::internal::trap_handler::RegisterDefaultSignalHandler(); + return v8::internal::trap_handler::RegisterDefaultTrapHandler(); } bool V8::EnableWebAssemblyTrapHandler(bool use_v8_signal_handler) { @@ -6173,7 +6078,9 @@ HeapObjectStatistics::HeapObjectStatistics() object_size_(0) {} HeapCodeStatistics::HeapCodeStatistics() - : code_and_metadata_size_(0), bytecode_and_metadata_size_(0) {} + : code_and_metadata_size_(0), + bytecode_and_metadata_size_(0), + external_script_source_size_(0) {} bool v8::V8::InitializeICU(const char* icu_data_file) { return i::InitializeICU(icu_data_file); @@ -6867,8 +6774,9 @@ bool v8::String::CanMakeExternal() { if (obj->IsExternalString()) return false; // Old space strings should be externalized. - i::Isolate* isolate = obj->GetIsolate(); - return !isolate->heap()->new_space()->Contains(*obj); + i::Heap* heap = obj->GetIsolate()->heap(); + return !heap->new_space()->Contains(*obj) && + !heap->read_only_space()->Contains(*obj); } @@ -7509,9 +7417,7 @@ MaybeLocal Proxy::New(Local context, Local local_target, Local WasmCompiledModule::GetWasmWireBytes() { i::Handle obj = i::Handle::cast(Utils::OpenHandle(this)); - i::Handle compiled_part = - i::handle(obj->compiled_module()); - i::Handle wire_bytes(compiled_part->shared()->module_bytes()); + i::Handle wire_bytes(obj->shared()->module_bytes()); return Local::Cast(Utils::ToLocal(wire_bytes)); } @@ -7550,7 +7456,13 @@ WasmCompiledModule::SerializedModule WasmCompiledModule::Serialize() { i::Handle::cast(Utils::OpenHandle(this)); i::Handle compiled_part = i::handle(i::WasmCompiledModule::cast(obj->compiled_module())); - return i::wasm::SerializeNativeModule(obj->GetIsolate(), compiled_part); + size_t buffer_size = + i::wasm::GetSerializedNativeModuleSize(obj->GetIsolate(), compiled_part); + std::unique_ptr buffer(new uint8_t[buffer_size]); + if (i::wasm::SerializeNativeModule(obj->GetIsolate(), compiled_part, + {buffer.get(), buffer_size})) + return {std::move(buffer), buffer_size}; + return {}; } MaybeLocal WasmCompiledModule::Deserialize( @@ -7558,17 +7470,16 @@ MaybeLocal WasmCompiledModule::Deserialize( const WasmCompiledModule::CallerOwnedBuffer& serialized_module, const WasmCompiledModule::CallerOwnedBuffer& wire_bytes) { i::Isolate* i_isolate = reinterpret_cast(isolate); - i::MaybeHandle maybe_compiled_module = + i::MaybeHandle maybe_module_object = i::wasm::DeserializeNativeModule( i_isolate, {serialized_module.first, serialized_module.second}, {wire_bytes.first, wire_bytes.second}); - i::Handle compiled_module; - if (!maybe_compiled_module.ToHandle(&compiled_module)) { + i::Handle module_object; + if (!maybe_module_object.ToHandle(&module_object)) { return MaybeLocal(); } return Local::Cast( - Utils::ToLocal(i::Handle::cast( - i::WasmModuleObject::New(i_isolate, compiled_module)))); + Utils::ToLocal(i::Handle::cast(module_object))); } MaybeLocal WasmCompiledModule::DeserializeOrCompile( @@ -7607,15 +7518,10 @@ WasmModuleObjectBuilderStreaming::WasmModuleObjectBuilderStreaming( Local resolver = maybe_resolver.ToLocalChecked(); promise_.Reset(isolate, resolver->GetPromise()); - if (i::FLAG_wasm_stream_compilation) { - i::Handle promise = Utils::OpenHandle(*GetPromise()); - i::Isolate* i_isolate = reinterpret_cast(isolate); - streaming_decoder_ = - i_isolate->wasm_engine() - ->compilation_manager() - ->StartStreamingCompilation(i_isolate, handle(i_isolate->context()), - promise); - } + i::Handle promise = Utils::OpenHandle(*GetPromise()); + i::Isolate* i_isolate = reinterpret_cast(isolate); + streaming_decoder_ = i_isolate->wasm_engine()->StartStreamingCompilation( + i_isolate, handle(i_isolate->context()), promise); } Local WasmModuleObjectBuilderStreaming::GetPromise() { @@ -7624,38 +7530,11 @@ Local WasmModuleObjectBuilderStreaming::GetPromise() { void WasmModuleObjectBuilderStreaming::OnBytesReceived(const uint8_t* bytes, size_t size) { - if (i::FLAG_wasm_stream_compilation) { - streaming_decoder_->OnBytesReceived(i::Vector(bytes, size)); - return; - } - std::unique_ptr cloned_bytes(new uint8_t[size]); - memcpy(cloned_bytes.get(), bytes, size); - received_buffers_.push_back( - Buffer(std::unique_ptr( - const_cast(cloned_bytes.release())), - size)); - total_size_ += size; + streaming_decoder_->OnBytesReceived(i::Vector(bytes, size)); } void WasmModuleObjectBuilderStreaming::Finish() { - if (i::FLAG_wasm_stream_compilation) { - streaming_decoder_->Finish(); - return; - } - std::unique_ptr wire_bytes(new uint8_t[total_size_]); - uint8_t* insert_at = wire_bytes.get(); - - for (size_t i = 0; i < received_buffers_.size(); ++i) { - const Buffer& buff = received_buffers_[i]; - memcpy(insert_at, buff.first.get(), buff.second); - insert_at += buff.second; - } - // AsyncCompile makes its own copy of the wire bytes. This inefficiency - // will be resolved when we move to true streaming compilation. - auto i_isolate = reinterpret_cast(isolate_); - i_isolate->wasm_engine()->AsyncCompile( - i_isolate, Utils::OpenHandle(*promise_.Get(isolate_)), - {wire_bytes.get(), wire_bytes.get() + total_size_}, false); + streaming_decoder_->Finish(); } void WasmModuleObjectBuilderStreaming::Abort(MaybeLocal exception) { @@ -7663,7 +7542,7 @@ void WasmModuleObjectBuilderStreaming::Abort(MaybeLocal exception) { // The promise has already been resolved, e.g. because of a compilation // error. if (promise->State() != v8::Promise::kPending) return; - if (i::FLAG_wasm_stream_compilation) streaming_decoder_->Abort(); + streaming_decoder_->Abort(); // If no exception value is provided, we do not reject the promise. This can // happen when streaming compilation gets aborted when no script execution is @@ -8121,49 +8000,6 @@ Local v8::BigInt::New(Isolate* isolate, int64_t value) { return Utils::ToLocal(result); } -Local v8::BigInt::NewFromUnsigned(Isolate* isolate, uint64_t value) { - CHECK(i::FLAG_harmony_bigint); - i::Isolate* internal_isolate = reinterpret_cast(isolate); - ENTER_V8_NO_SCRIPT_NO_EXCEPTION(internal_isolate); - i::Handle result = i::BigInt::FromUint64(internal_isolate, value); - return Utils::ToLocal(result); -} - -MaybeLocal v8::BigInt::NewFromWords(Local context, - int sign_bit, int word_count, - const uint64_t* words) { - CHECK(i::FLAG_harmony_bigint); - i::Isolate* isolate = reinterpret_cast(context->GetIsolate()); - ENTER_V8_NO_SCRIPT(isolate, context, BigInt, NewFromWords, - MaybeLocal(), InternalEscapableScope); - i::MaybeHandle result = - i::BigInt::FromWords64(isolate, sign_bit, word_count, words); - has_pending_exception = result.is_null(); - RETURN_ON_FAILED_EXECUTION(BigInt); - RETURN_ESCAPED(Utils::ToLocal(result.ToHandleChecked())); -} - -uint64_t v8::BigInt::Uint64Value(bool* lossless) const { - i::Handle handle = Utils::OpenHandle(this); - return handle->AsUint64(lossless); -} - -int64_t v8::BigInt::Int64Value(bool* lossless) const { - i::Handle handle = Utils::OpenHandle(this); - return handle->AsInt64(lossless); -} - -int BigInt::WordCount() const { - i::Handle handle = Utils::OpenHandle(this); - return handle->Words64Count(); -} - -void BigInt::ToWordsArray(int* sign_bit, int* word_count, - uint64_t* words) const { - i::Handle handle = Utils::OpenHandle(this); - return handle->ToWordsArray64(sign_bit, word_count, words); -} - void Isolate::ReportExternalAllocationLimitReached() { i::Heap* heap = reinterpret_cast(this)->heap(); if (heap->gc_state() != i::Heap::NOT_IN_GC) return; @@ -8185,7 +8021,7 @@ HeapProfiler* Isolate::GetHeapProfiler() { CpuProfiler* Isolate::GetCpuProfiler() { i::CpuProfiler* cpu_profiler = - reinterpret_cast(this)->cpu_profiler(); + reinterpret_cast(this)->EnsureCpuProfiler(); return reinterpret_cast(cpu_profiler); } @@ -8363,22 +8199,22 @@ Isolate* Isolate::GetCurrent() { return reinterpret_cast(isolate); } - -Isolate* Isolate::New(const Isolate::CreateParams& params) { - i::Isolate* isolate = new i::Isolate(false); - return IsolateNewImpl(isolate, params); +// static +Isolate* Isolate::Allocate() { + return reinterpret_cast(new i::Isolate()); } +// static // This is separate so that tests can provide a different |isolate|. -Isolate* IsolateNewImpl(internal::Isolate* isolate, - const v8::Isolate::CreateParams& params) { - Isolate* v8_isolate = reinterpret_cast(isolate); +void Isolate::Initialize(Isolate* isolate, + const v8::Isolate::CreateParams& params) { + i::Isolate* i_isolate = reinterpret_cast(isolate); CHECK_NOT_NULL(params.array_buffer_allocator); - isolate->set_array_buffer_allocator(params.array_buffer_allocator); + i_isolate->set_array_buffer_allocator(params.array_buffer_allocator); if (params.snapshot_blob != nullptr) { - isolate->set_snapshot_blob(params.snapshot_blob); + i_isolate->set_snapshot_blob(params.snapshot_blob); } else { - isolate->set_snapshot_blob(i::Snapshot::DefaultSnapshotBlob()); + i_isolate->set_snapshot_blob(i::Snapshot::DefaultSnapshotBlob()); } if (params.entry_hook) { #ifdef V8_USE_SNAPSHOT @@ -8387,7 +8223,7 @@ Isolate* IsolateNewImpl(internal::Isolate* isolate, false, "v8::Isolate::New", "Setting a FunctionEntryHook is only supported in no-snapshot builds."); #endif - isolate->set_function_entry_hook(params.entry_hook); + i_isolate->set_function_entry_hook(params.entry_hook); } auto code_event_handler = params.code_event_handler; #ifdef ENABLE_GDB_JIT_INTERFACE @@ -8396,44 +8232,50 @@ Isolate* IsolateNewImpl(internal::Isolate* isolate, } #endif // ENABLE_GDB_JIT_INTERFACE if (code_event_handler) { - isolate->InitializeLoggingAndCounters(); - isolate->logger()->SetCodeEventHandler(kJitCodeEventDefault, - code_event_handler); + i_isolate->InitializeLoggingAndCounters(); + i_isolate->logger()->SetCodeEventHandler(kJitCodeEventDefault, + code_event_handler); } if (params.counter_lookup_callback) { - v8_isolate->SetCounterFunction(params.counter_lookup_callback); + isolate->SetCounterFunction(params.counter_lookup_callback); } if (params.create_histogram_callback) { - v8_isolate->SetCreateHistogramFunction(params.create_histogram_callback); + isolate->SetCreateHistogramFunction(params.create_histogram_callback); } if (params.add_histogram_sample_callback) { - v8_isolate->SetAddHistogramSampleFunction( + isolate->SetAddHistogramSampleFunction( params.add_histogram_sample_callback); } - isolate->set_api_external_references(params.external_references); - isolate->set_allow_atomics_wait(params.allow_atomics_wait); + i_isolate->set_api_external_references(params.external_references); + i_isolate->set_allow_atomics_wait(params.allow_atomics_wait); - SetResourceConstraints(isolate, params.constraints); + SetResourceConstraints(i_isolate, params.constraints); // TODO(jochen): Once we got rid of Isolate::Current(), we can remove this. - Isolate::Scope isolate_scope(v8_isolate); - if (params.entry_hook || !i::Snapshot::Initialize(isolate)) { + Isolate::Scope isolate_scope(isolate); + if (params.entry_hook || !i::Snapshot::Initialize(i_isolate)) { // If snapshot data was provided and we failed to deserialize it must // have been corrupted. - CHECK_NULL(isolate->snapshot_blob()); + CHECK_NULL(i_isolate->snapshot_blob()); base::ElapsedTimer timer; if (i::FLAG_profile_deserialization) timer.Start(); - isolate->Init(nullptr); + i_isolate->Init(nullptr); if (i::FLAG_profile_deserialization) { double ms = timer.Elapsed().InMillisecondsF(); i::PrintF("[Initializing isolate from scratch took %0.3f ms]\n", ms); } } - return v8_isolate; + i_isolate->set_only_terminate_in_safe_scope( + params.only_terminate_in_safe_scope); } +Isolate* Isolate::New(const Isolate::CreateParams& params) { + Isolate* isolate = Allocate(); + Initialize(isolate, params); + return isolate; +} void Isolate::Dispose() { i::Isolate* isolate = reinterpret_cast(this); @@ -8540,6 +8382,16 @@ Isolate::SuppressMicrotaskExecutionScope::~SuppressMicrotaskExecutionScope() { isolate_->handle_scope_implementer()->DecrementCallDepth(); } +Isolate::SafeForTerminationScope::SafeForTerminationScope(v8::Isolate* isolate) + : isolate_(reinterpret_cast(isolate)), + prev_value_(isolate_->next_v8_call_is_safe_for_termination()) { + isolate_->set_next_v8_call_is_safe_for_termination(true); +} + +Isolate::SafeForTerminationScope::~SafeForTerminationScope() { + isolate_->set_next_v8_call_is_safe_for_termination(prev_value_); +} + i::Object** Isolate::GetDataFromSnapshotOnce(size_t index) { i::Isolate* i_isolate = reinterpret_cast(this); i::FixedArray* list = i_isolate->heap()->serialized_objects(); @@ -8635,6 +8487,8 @@ bool Isolate::GetHeapCodeAndMetadataStatistics( code_statistics->code_and_metadata_size_ = isolate->code_and_metadata_size(); code_statistics->bytecode_and_metadata_size_ = isolate->bytecode_and_metadata_size(); + code_statistics->external_script_source_size_ = + isolate->external_script_source_size(); return true; } @@ -8835,7 +8689,7 @@ int Isolate::ContextDisposedNotification(bool dependant_context) { if (!dependant_context) { // We left the current context, we can abort all running WebAssembly // compilations. - isolate->wasm_engine()->compilation_manager()->AbortAllJobs(); + isolate->wasm_engine()->AbortAllCompileJobs(); } // TODO(ahaas): move other non-heap activity out of the heap call. return isolate->heap()->NotifyContextDisposed(dependant_context); @@ -8898,7 +8752,8 @@ void Isolate::SetStackLimit(uintptr_t stack_limit) { void Isolate::GetCodeRange(void** start, size_t* length_in_bytes) { i::Isolate* isolate = reinterpret_cast(this); if (isolate->heap()->memory_allocator()->code_range()->valid()) { - *start = isolate->heap()->memory_allocator()->code_range()->start(); + *start = reinterpret_cast( + isolate->heap()->memory_allocator()->code_range()->start()); *length_in_bytes = isolate->heap()->memory_allocator()->code_range()->size(); } else { @@ -9095,8 +8950,7 @@ String::Utf8Value::Utf8Value(v8::Isolate* isolate, v8::Local obj) TryCatch try_catch(isolate); Local str; if (!obj->ToString(context).ToLocal(&str)) return; - i::Handle i_str = Utils::OpenHandle(*str); - length_ = v8::Utf8Length(*i_str, i_isolate); + length_ = str->Utf8Length(); str_ = i::NewArray(length_ + 1); str->WriteUtf8(str_); } @@ -9413,7 +9267,7 @@ bool debug::Script::GetPossibleBreakpoints( i::Handle script = Utils::OpenHandle(this); if (script->type() == i::Script::TYPE_WASM) { i::WasmSharedModuleData* shared = - i::WasmCompiledModule::cast(script->wasm_compiled_module())->shared(); + i::WasmModuleObject::cast(script->wasm_module_object())->shared(); return shared->GetPossibleBreakpoints(start, end, locations); } @@ -9462,7 +9316,7 @@ bool debug::Script::GetPossibleBreakpoints( int debug::Script::GetSourceOffset(const debug::Location& location) const { i::Handle script = Utils::OpenHandle(this); if (script->type() == i::Script::TYPE_WASM) { - return i::WasmCompiledModule::cast(script->wasm_compiled_module()) + return i::WasmModuleObject::cast(script->wasm_module_object()) ->shared() ->GetFunctionOffset(location.GetLineNumber()) + location.GetColumnNumber(); @@ -9522,6 +9376,10 @@ void debug::RemoveBreakpoint(Isolate* v8_isolate, BreakpointId id) { isolate->debug()->RemoveBreakpoint(id); } +v8::Platform* debug::GetCurrentPlatform() { + return i::V8::GetCurrentPlatform(); +} + debug::WasmScript* debug::WasmScript::Cast(debug::Script* script) { CHECK(script->IsWasm()); return static_cast(script); @@ -9531,9 +9389,9 @@ int debug::WasmScript::NumFunctions() const { i::DisallowHeapAllocation no_gc; i::Handle script = Utils::OpenHandle(this); DCHECK_EQ(i::Script::TYPE_WASM, script->type()); - i::WasmCompiledModule* compiled_module = - i::WasmCompiledModule::cast(script->wasm_compiled_module()); - i::wasm::WasmModule* module = compiled_module->shared()->module(); + i::WasmModuleObject* module_object = + i::WasmModuleObject::cast(script->wasm_module_object()); + i::wasm::WasmModule* module = module_object->shared()->module(); DCHECK_GE(i::kMaxInt, module->functions.size()); return static_cast(module->functions.size()); } @@ -9542,9 +9400,9 @@ int debug::WasmScript::NumImportedFunctions() const { i::DisallowHeapAllocation no_gc; i::Handle script = Utils::OpenHandle(this); DCHECK_EQ(i::Script::TYPE_WASM, script->type()); - i::WasmCompiledModule* compiled_module = - i::WasmCompiledModule::cast(script->wasm_compiled_module()); - i::wasm::WasmModule* module = compiled_module->shared()->module(); + i::WasmModuleObject* module_object = + i::WasmModuleObject::cast(script->wasm_module_object()); + i::wasm::WasmModule* module = module_object->shared()->module(); DCHECK_GE(i::kMaxInt, module->num_imported_functions); return static_cast(module->num_imported_functions); } @@ -9554,9 +9412,9 @@ std::pair debug::WasmScript::GetFunctionRange( i::DisallowHeapAllocation no_gc; i::Handle script = Utils::OpenHandle(this); DCHECK_EQ(i::Script::TYPE_WASM, script->type()); - i::WasmCompiledModule* compiled_module = - i::WasmCompiledModule::cast(script->wasm_compiled_module()); - i::wasm::WasmModule* module = compiled_module->shared()->module(); + i::WasmModuleObject* module_object = + i::WasmModuleObject::cast(script->wasm_module_object()); + i::wasm::WasmModule* module = module_object->shared()->module(); DCHECK_LE(0, function_index); DCHECK_GT(module->functions.size(), function_index); i::wasm::WasmFunction& func = module->functions[function_index]; @@ -9570,13 +9428,13 @@ uint32_t debug::WasmScript::GetFunctionHash(int function_index) { i::DisallowHeapAllocation no_gc; i::Handle script = Utils::OpenHandle(this); DCHECK_EQ(i::Script::TYPE_WASM, script->type()); - i::WasmCompiledModule* compiled_module = - i::WasmCompiledModule::cast(script->wasm_compiled_module()); - i::wasm::WasmModule* module = compiled_module->shared()->module(); + i::WasmModuleObject* module_object = + i::WasmModuleObject::cast(script->wasm_module_object()); + i::wasm::WasmModule* module = module_object->shared()->module(); DCHECK_LE(0, function_index); DCHECK_GT(module->functions.size(), function_index); i::wasm::WasmFunction& func = module->functions[function_index]; - i::SeqOneByteString* module_bytes = compiled_module->shared()->module_bytes(); + i::SeqOneByteString* module_bytes = module_object->shared()->module_bytes(); i::wasm::ModuleWireBytes wire_bytes( module_bytes->GetFlatContent().ToOneByteVector()); i::Vector function_bytes = wire_bytes.GetFunctionBytes(&func); @@ -9590,9 +9448,9 @@ debug::WasmDisassembly debug::WasmScript::DisassembleFunction( i::DisallowHeapAllocation no_gc; i::Handle script = Utils::OpenHandle(this); DCHECK_EQ(i::Script::TYPE_WASM, script->type()); - i::WasmCompiledModule* compiled_module = - i::WasmCompiledModule::cast(script->wasm_compiled_module()); - return compiled_module->shared()->DisassembleFunction(function_index); + i::WasmModuleObject* module_object = + i::WasmModuleObject::cast(script->wasm_module_object()); + return module_object->shared()->DisassembleFunction(function_index); } debug::Location::Location(int line_number, int column_number) @@ -9951,15 +9809,7 @@ Local CpuProfileNode::GetFunctionName() const { const i::CodeEntry* entry = node->entry(); i::Handle name = isolate->factory()->InternalizeUtf8String(entry->name()); - if (!entry->has_name_prefix()) { - return ToApiHandle(name); - } else { - // We do not expect this to fail. Change this if it does. - i::Handle cons = isolate->factory()->NewConsString( - isolate->factory()->InternalizeUtf8String(entry->name_prefix()), - name).ToHandleChecked(); - return ToApiHandle(cons); - } + return ToApiHandle(name); } int debug::Coverage::BlockData::StartOffset() const { return block_->start; } @@ -10254,74 +10104,6 @@ void CpuProfiler::SetIdle(bool is_idle) { isolate->SetIdle(is_idle); } -uintptr_t CodeEvent::GetCodeStartAddress() { - return reinterpret_cast(this)->code_start_address; -} - -size_t CodeEvent::GetCodeSize() { - return reinterpret_cast(this)->code_size; -} - -Local CodeEvent::GetFunctionName() { - return ToApiHandle( - reinterpret_cast(this)->function_name); -} - -Local CodeEvent::GetScriptName() { - return ToApiHandle( - reinterpret_cast(this)->script_name); -} - -int CodeEvent::GetScriptLine() { - return reinterpret_cast(this)->script_line; -} - -int CodeEvent::GetScriptColumn() { - return reinterpret_cast(this)->script_column; -} - -CodeEventType CodeEvent::GetCodeType() { - return reinterpret_cast(this)->code_type; -} - -const char* CodeEvent::GetComment() { - return reinterpret_cast(this)->comment; -} - -const char* CodeEvent::GetCodeEventTypeName(CodeEventType code_event_type) { - switch (code_event_type) { - case kUnknownType: - return "Unknown"; -#define V(Name) \ - case k##Name##Type: \ - return #Name; - CODE_EVENTS_LIST(V) -#undef V - } - // The execution should never pass here - UNREACHABLE(); - // NOTE(mmarchini): Workaround to fix a compiler failure on GCC 4.9 - return "Unknown"; -} - -CodeEventHandler::CodeEventHandler(Isolate* isolate) { - internal_listener_ = - new i::ExternalCodeEventListener(reinterpret_cast(isolate)); -} - -CodeEventHandler::~CodeEventHandler() { - delete reinterpret_cast(internal_listener_); -} - -void CodeEventHandler::Enable() { - reinterpret_cast(internal_listener_) - ->StartListening(this); -} - -void CodeEventHandler::Disable() { - reinterpret_cast(internal_listener_) - ->StopListening(); -} static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { return const_cast( @@ -10558,25 +10340,9 @@ void HeapProfiler::SetGetRetainerInfosCallback( } void HeapProfiler::SetBuildEmbedderGraphCallback( - LegacyBuildEmbedderGraphCallback callback) { - reinterpret_cast(this)->AddBuildEmbedderGraphCallback( - [](v8::Isolate* isolate, v8::EmbedderGraph* graph, void* data) { - reinterpret_cast(data)(isolate, - graph); - }, - reinterpret_cast(callback)); -} - -void HeapProfiler::AddBuildEmbedderGraphCallback( - BuildEmbedderGraphCallback callback, void* data) { - reinterpret_cast(this)->AddBuildEmbedderGraphCallback( - callback, data); -} - -void HeapProfiler::RemoveBuildEmbedderGraphCallback( - BuildEmbedderGraphCallback callback, void* data) { - reinterpret_cast(this)->RemoveBuildEmbedderGraphCallback( - callback, data); + BuildEmbedderGraphCallback callback) { + reinterpret_cast(this)->SetBuildEmbedderGraphCallback( + callback); } v8::Testing::StressType internal::Testing::stress_type_ = @@ -10804,8 +10570,7 @@ void InvokeAccessorGetterCallback( Isolate* isolate = reinterpret_cast(info.GetIsolate()); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kAccessorGetterCallback); - Address getter_address = reinterpret_cast
    (reinterpret_cast( - getter)); + Address getter_address = reinterpret_cast
    (getter); VMState state(isolate); ExternalCallbackScope call_scope(isolate, getter_address); getter(property, info); @@ -10817,8 +10582,7 @@ void InvokeFunctionCallback(const v8::FunctionCallbackInfo& info, Isolate* isolate = reinterpret_cast(info.GetIsolate()); RuntimeCallTimerScope timer(isolate, RuntimeCallCounterId::kInvokeFunctionCallback); - Address callback_address = - reinterpret_cast
    (reinterpret_cast(callback)); + Address callback_address = reinterpret_cast
    (callback); VMState state(isolate); ExternalCallbackScope call_scope(isolate, callback_address); callback(info); diff --git a/deps/v8/src/api.h b/deps/v8/src/api.h index c67de0482df66c..d1297c8f38c65a 100644 --- a/deps/v8/src/api.h +++ b/deps/v8/src/api.h @@ -31,10 +31,14 @@ template inline T ToCData(v8::internal::Object* obj) { STATIC_ASSERT(sizeof(T) == sizeof(v8::internal::Address)); if (obj == v8::internal::Smi::kZero) return nullptr; return reinterpret_cast( - reinterpret_cast( - v8::internal::Foreign::cast(obj)->foreign_address())); + v8::internal::Foreign::cast(obj)->foreign_address()); } +template <> +inline v8::internal::Address ToCData(v8::internal::Object* obj) { + if (obj == v8::internal::Smi::kZero) return v8::internal::kNullAddress; + return v8::internal::Foreign::cast(obj)->foreign_address(); +} template inline v8::internal::Handle FromCData( @@ -42,9 +46,17 @@ inline v8::internal::Handle FromCData( STATIC_ASSERT(sizeof(T) == sizeof(v8::internal::Address)); if (obj == nullptr) return handle(v8::internal::Smi::kZero, isolate); return isolate->factory()->NewForeign( - reinterpret_cast(reinterpret_cast(obj))); + reinterpret_cast(obj)); } +template <> +inline v8::internal::Handle FromCData( + v8::internal::Isolate* isolate, v8::internal::Address obj) { + if (obj == v8::internal::kNullAddress) { + return handle(v8::internal::Smi::kZero, isolate); + } + return isolate->factory()->NewForeign(obj); +} class ApiFunction { public: @@ -100,6 +112,7 @@ class RegisteredExtension { V(String, String) \ V(Symbol, Symbol) \ V(Script, JSFunction) \ + V(UnboundModuleScript, SharedFunctionInfo) \ V(UnboundScript, SharedFunctionInfo) \ V(Module, Module) \ V(Function, JSReceiver) \ @@ -114,7 +127,6 @@ class RegisteredExtension { V(Promise, JSPromise) \ V(Primitive, Object) \ V(PrimitiveArray, FixedArray) \ - V(BigInt, BigInt) \ V(ScriptOrModule, Script) class Utils { @@ -365,9 +377,6 @@ OPEN_HANDLE_LIST(MAKE_OPEN_HANDLE) #undef MAKE_OPEN_HANDLE #undef OPEN_HANDLE_LIST -extern Isolate* IsolateNewImpl(internal::Isolate* isolate, - const Isolate::CreateParams& params); - namespace internal { class V8_EXPORT_PRIVATE DeferredHandles { diff --git a/deps/v8/src/arm/assembler-arm-inl.h b/deps/v8/src/arm/assembler-arm-inl.h index 280e4ddfae7444..4c4eb00ec284ca 100644 --- a/deps/v8/src/arm/assembler-arm-inl.h +++ b/deps/v8/src/arm/assembler-arm-inl.h @@ -76,7 +76,7 @@ Address RelocInfo::target_address_address() { IsEmbeddedObject(rmode_) || IsExternalReference(rmode_) || IsOffHeapTarget(rmode_)); if (Assembler::IsMovW(Memory::int32_at(pc_))) { - return reinterpret_cast
    (pc_); + return pc_; } else { DCHECK(Assembler::IsLdrPcImmediateOffset(Memory::int32_at(pc_))); return constant_pool_entry_address(); @@ -141,7 +141,7 @@ Address RelocInfo::target_internal_reference() { Address RelocInfo::target_internal_reference_address() { DCHECK(rmode_ == INTERNAL_REFERENCE); - return reinterpret_cast
    (pc_); + return pc_; } void RelocInfo::set_wasm_code_table_entry(Address target, @@ -174,9 +174,9 @@ void RelocInfo::WipeOut() { IsRuntimeEntry(rmode_) || IsExternalReference(rmode_) || IsInternalReference(rmode_)); if (IsInternalReference(rmode_)) { - Memory::Address_at(pc_) = nullptr; + Memory::Address_at(pc_) = kNullAddress; } else { - Assembler::set_target_address_at(pc_, constant_pool_, nullptr); + Assembler::set_target_address_at(pc_, constant_pool_, kNullAddress); } } @@ -206,7 +206,7 @@ Operand Operand::Zero() { return Operand(static_cast(0)); } Operand::Operand(const ExternalReference& f) : rmode_(RelocInfo::EXTERNAL_REFERENCE) { - value_.immediate = reinterpret_cast(f.address()); + value_.immediate = static_cast(f.address()); } Operand::Operand(Smi* value) : rmode_(RelocInfo::NONE) { @@ -298,6 +298,10 @@ void Assembler::deserialization_set_special_target_at( Memory::Address_at(constant_pool_entry) = target; } +int Assembler::deserialization_special_target_size(Address location) { + return kSpecialTargetSize; +} + void Assembler::deserialization_set_target_internal_reference_at( Address pc, Address target, RelocInfo::Mode mode) { Memory::Address_at(pc) = target; @@ -327,9 +331,8 @@ Address Assembler::target_address_at(Address pc, Address constant_pool) { IsMovT(Memory::int32_at(pc + kInstrSize))); Instruction* movw_instr = Instruction::At(pc); Instruction* movt_instr = Instruction::At(pc + kInstrSize); - return reinterpret_cast
    ( - (movt_instr->ImmedMovwMovtValue() << 16) | - movw_instr->ImmedMovwMovtValue()); + return static_cast
    ((movt_instr->ImmedMovwMovtValue() << 16) | + movw_instr->ImmedMovwMovtValue()); } else { // This is an mov / orr immediate load. Return the immediate. DCHECK(IsMovImmed(Memory::int32_at(pc)) && @@ -340,7 +343,7 @@ Address Assembler::target_address_at(Address pc, Address constant_pool) { Instr orr_instr_1 = instr_at(pc + kInstrSize); Instr orr_instr_2 = instr_at(pc + 2 * kInstrSize); Instr orr_instr_3 = instr_at(pc + 3 * kInstrSize); - Address ret = reinterpret_cast
    ( + Address ret = static_cast
    ( DecodeShiftImm(mov_instr) | DecodeShiftImm(orr_instr_1) | DecodeShiftImm(orr_instr_2) | DecodeShiftImm(orr_instr_3)); return ret; @@ -367,7 +370,7 @@ void Assembler::set_target_address_at(Address pc, Address constant_pool, DCHECK(IsMovW(Memory::int32_at(pc))); DCHECK(IsMovT(Memory::int32_at(pc + kInstrSize))); uint32_t* instr_ptr = reinterpret_cast(pc); - uint32_t immediate = reinterpret_cast(target); + uint32_t immediate = static_cast(target); instr_ptr[0] = PatchMovwImmediate(instr_ptr[0], immediate & 0xFFFF); instr_ptr[1] = PatchMovwImmediate(instr_ptr[1], immediate >> 16); DCHECK(IsMovW(Memory::int32_at(pc))); diff --git a/deps/v8/src/arm/assembler-arm.cc b/deps/v8/src/arm/assembler-arm.cc index 87acd59e84e997..da5e4663450a98 100644 --- a/deps/v8/src/arm/assembler-arm.cc +++ b/deps/v8/src/arm/assembler-arm.cc @@ -374,7 +374,7 @@ Address RelocInfo::js_to_wasm_address() const { Operand::Operand(Handle handle) { rm_ = no_reg; - value_.immediate = reinterpret_cast(handle.address()); + value_.immediate = static_cast(handle.address()); rmode_ = RelocInfo::EMBEDDED_OBJECT; } @@ -491,7 +491,7 @@ void Assembler::AllocateAndInstallRequestedHeapObjects(Isolate* isolate) { object = request.code_stub()->GetCode(); break; } - Address pc = buffer_ + request.offset(); + Address pc = reinterpret_cast
    (buffer_) + request.offset(); Memory::Address_at(constant_pool_entry_address(pc, 0 /* unused */)) = object.address(); } @@ -5152,7 +5152,7 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { return; } DCHECK_GE(buffer_space(), kMaxRelocSize); // too late to grow buffer here - RelocInfo rinfo(pc_, rmode, data, nullptr); + RelocInfo rinfo(reinterpret_cast
    (pc_), rmode, data, nullptr); reloc_info_writer.Write(&rinfo); } @@ -5191,7 +5191,7 @@ void Assembler::ConstantPoolAddEntry(int position, RelocInfo::Mode rmode, value != 0) { // Sharing entries here relies on canonicalized handles - without them, we // will miss the optimisation opportunity. - Address handle_address = reinterpret_cast
    (value); + Address handle_address = static_cast
    (value); auto existing = handle_to_index_map_.find(handle_address); if (existing != handle_to_index_map_.end()) { int index = existing->second; @@ -5476,9 +5476,7 @@ PatchingAssembler::~PatchingAssembler() { DCHECK_EQ(reloc_info_writer.pos(), buffer_ + buffer_size_); } -void PatchingAssembler::Emit(Address addr) { - emit(reinterpret_cast(addr)); -} +void PatchingAssembler::Emit(Address addr) { emit(static_cast(addr)); } UseScratchRegisterScope::UseScratchRegisterScope(Assembler* assembler) : assembler_(assembler), diff --git a/deps/v8/src/arm/assembler-arm.h b/deps/v8/src/arm/assembler-arm.h index bbe0ba753e8639..4a424ccea22ee7 100644 --- a/deps/v8/src/arm/assembler-arm.h +++ b/deps/v8/src/arm/assembler-arm.h @@ -689,6 +689,9 @@ class Assembler : public AssemblerBase { inline static void deserialization_set_special_target_at( Address constant_pool_entry, Code* code, Address target); + // Get the size of the special target encoded at 'location'. + inline static int deserialization_special_target_size(Address location); + // This sets the internal reference at the pc. inline static void deserialization_set_target_internal_reference_at( Address pc, Address target, @@ -1496,8 +1499,8 @@ class Assembler : public AssemblerBase { void instr_at_put(int pos, Instr instr) { *reinterpret_cast(buffer_ + pos) = instr; } - static Instr instr_at(byte* pc) { return *reinterpret_cast(pc); } - static void instr_at_put(byte* pc, Instr instr) { + static Instr instr_at(Address pc) { return *reinterpret_cast(pc); } + static void instr_at_put(Address pc, Instr instr) { *reinterpret_cast(pc) = instr; } static Condition GetCondition(Instr instr); diff --git a/deps/v8/src/arm/code-stubs-arm.cc b/deps/v8/src/arm/code-stubs-arm.cc index 814d341f7e55db..8267da47030360 100644 --- a/deps/v8/src/arm/code-stubs-arm.cc +++ b/deps/v8/src/arm/code-stubs-arm.cc @@ -17,6 +17,7 @@ #include "src/ic/ic.h" #include "src/ic/stub-cache.h" #include "src/isolate.h" +#include "src/objects/api-callbacks.h" #include "src/objects/regexp-match-info.h" #include "src/regexp/jsregexp.h" #include "src/regexp/regexp-macro-assembler.h" @@ -38,355 +39,11 @@ void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) { __ TailCallRuntime(Runtime::kNewArray); } - -void DoubleToIStub::Generate(MacroAssembler* masm) { - Label negate, done; - Register result_reg = destination(); - - UseScratchRegisterScope temps(masm); - Register double_low = GetRegisterThatIsNotOneOf(result_reg); - Register double_high = GetRegisterThatIsNotOneOf(result_reg, double_low); - LowDwVfpRegister double_scratch = temps.AcquireLowD(); - - // Save the old values from these temporary registers on the stack. - __ Push(double_high, double_low); - - // Account for saved regs. - const int kArgumentOffset = 2 * kPointerSize; - - // Load double input. - __ vldr(double_scratch, MemOperand(sp, kArgumentOffset)); - __ vmov(double_low, double_high, double_scratch); - // Try to convert with a FPU convert instruction. This handles all - // non-saturating cases. - __ TryInlineTruncateDoubleToI(result_reg, double_scratch, &done); - - Register scratch = temps.Acquire(); - __ Ubfx(scratch, double_high, HeapNumber::kExponentShift, - HeapNumber::kExponentBits); - // Load scratch with exponent - 1. This is faster than loading - // with exponent because Bias + 1 = 1024 which is an *ARM* immediate value. - STATIC_ASSERT(HeapNumber::kExponentBias + 1 == 1024); - __ sub(scratch, scratch, Operand(HeapNumber::kExponentBias + 1)); - // If exponent is greater than or equal to 84, the 32 less significant - // bits are 0s (2^84 = 1, 52 significant bits, 32 uncoded bits), - // the result is 0. - // Compare exponent with 84 (compare exponent - 1 with 83). If the exponent is - // greater than this, the conversion is out of range, so return zero. - __ cmp(scratch, Operand(83)); - __ mov(result_reg, Operand::Zero(), LeaveCC, ge); - __ b(ge, &done); - - // If we reach this code, 30 <= exponent <= 83. - // `TryInlineTruncateDoubleToI` above will have truncated any double with an - // exponent lower than 30. - if (masm->emit_debug_code()) { - // Scratch is exponent - 1. - __ cmp(scratch, Operand(30 - 1)); - __ Check(ge, AbortReason::kUnexpectedValue); - } - - // We don't have to handle cases where 0 <= exponent <= 20 for which we would - // need to shift right the high part of the mantissa. - // Scratch contains exponent - 1. - // Load scratch with 52 - exponent (load with 51 - (exponent - 1)). - __ rsb(scratch, scratch, Operand(51), SetCC); - - // 52 <= exponent <= 83, shift only double_low. - // On entry, scratch contains: 52 - exponent. - __ rsb(scratch, scratch, Operand::Zero(), LeaveCC, ls); - __ mov(result_reg, Operand(double_low, LSL, scratch), LeaveCC, ls); - __ b(ls, &negate); - - // 21 <= exponent <= 51, shift double_low and double_high - // to generate the result. - __ mov(double_low, Operand(double_low, LSR, scratch)); - // Scratch contains: 52 - exponent. - // We needs: exponent - 20. - // So we use: 32 - scratch = 32 - 52 + exponent = exponent - 20. - __ rsb(scratch, scratch, Operand(32)); - __ Ubfx(result_reg, double_high, 0, HeapNumber::kMantissaBitsInTopWord); - // Set the implicit 1 before the mantissa part in double_high. - __ orr(result_reg, result_reg, - Operand(1 << HeapNumber::kMantissaBitsInTopWord)); - __ orr(result_reg, double_low, Operand(result_reg, LSL, scratch)); - - __ bind(&negate); - // If input was positive, double_high ASR 31 equals 0 and - // double_high LSR 31 equals zero. - // New result = (result eor 0) + 0 = result. - // If the input was negative, we have to negate the result. - // Input_high ASR 31 equals 0xFFFFFFFF and double_high LSR 31 equals 1. - // New result = (result eor 0xFFFFFFFF) + 1 = 0 - result. - __ eor(result_reg, result_reg, Operand(double_high, ASR, 31)); - __ add(result_reg, result_reg, Operand(double_high, LSR, 31)); - - __ bind(&done); - - // Restore registers corrupted in this routine and return. - __ Pop(double_high, double_low); - __ Ret(); -} - - -void MathPowStub::Generate(MacroAssembler* masm) { - const Register exponent = MathPowTaggedDescriptor::exponent(); - DCHECK(exponent == r2); - const LowDwVfpRegister double_base = d0; - const LowDwVfpRegister double_exponent = d1; - const LowDwVfpRegister double_result = d2; - const LowDwVfpRegister double_scratch = d3; - const SwVfpRegister single_scratch = s6; - const Register scratch = r9; - const Register scratch2 = r4; - - Label call_runtime, done, int_exponent; - - // Detect integer exponents stored as double. - __ TryDoubleToInt32Exact(scratch, double_exponent, double_scratch); - __ b(eq, &int_exponent); - - __ push(lr); - { - AllowExternalCallThatCantCauseGC scope(masm); - __ PrepareCallCFunction(0, 2); - __ MovToFloatParameters(double_base, double_exponent); - __ CallCFunction(ExternalReference::power_double_double_function(isolate()), - 0, 2); - } - __ pop(lr); - __ MovFromFloatResult(double_result); - __ b(&done); - - // Calculate power with integer exponent. - __ bind(&int_exponent); - - // Get two copies of exponent in the registers scratch and exponent. - // Exponent has previously been stored into scratch as untagged integer. - __ mov(exponent, scratch); - - __ vmov(double_scratch, double_base); // Back up base. - __ vmov(double_result, Double(1.0), scratch2); - - // Get absolute value of exponent. - __ cmp(scratch, Operand::Zero()); - __ rsb(scratch, scratch, Operand::Zero(), LeaveCC, mi); - - Label while_true; - __ bind(&while_true); - __ mov(scratch, Operand(scratch, LSR, 1), SetCC); - __ vmul(double_result, double_result, double_scratch, cs); - __ vmul(double_scratch, double_scratch, double_scratch, ne); - __ b(ne, &while_true); - - __ cmp(exponent, Operand::Zero()); - __ b(ge, &done); - __ vmov(double_scratch, Double(1.0), scratch); - __ vdiv(double_result, double_scratch, double_result); - // Test whether result is zero. Bail out to check for subnormal result. - // Due to subnormals, x^-y == (1/x)^y does not hold in all cases. - __ VFPCompareAndSetFlags(double_result, 0.0); - __ b(ne, &done); - // double_exponent may not containe the exponent value if the input was a - // smi. We set it with exponent value before bailing out. - __ vmov(single_scratch, exponent); - __ vcvt_f64_s32(double_exponent, single_scratch); - - // Returning or bailing out. - __ push(lr); - { - AllowExternalCallThatCantCauseGC scope(masm); - __ PrepareCallCFunction(0, 2); - __ MovToFloatParameters(double_base, double_exponent); - __ CallCFunction(ExternalReference::power_double_double_function(isolate()), - 0, 2); - } - __ pop(lr); - __ MovFromFloatResult(double_result); - - __ bind(&done); - __ Ret(); -} - -Movability CEntryStub::NeedsImmovableCode() { return kImmovable; } - void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) { - CEntryStub::GenerateAheadOfTime(isolate); CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate); StoreFastElementStub::GenerateAheadOfTime(isolate); } - -void CodeStub::GenerateFPStubs(Isolate* isolate) { - // Generate if not already in cache. - SaveFPRegsMode mode = kSaveFPRegs; - CEntryStub(isolate, 1, mode).GetCode(); -} - - -void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { - CEntryStub stub(isolate, 1, kDontSaveFPRegs); - stub.GetCode(); -} - - -void CEntryStub::Generate(MacroAssembler* masm) { - // Called from JavaScript; parameters are on stack as if calling JS function. - // r0: number of arguments including receiver - // r1: pointer to builtin function - // fp: frame pointer (restored after C call) - // sp: stack pointer (restored as callee's sp after C call) - // cp: current context (C callee-saved) - // - // If argv_in_register(): - // r2: pointer to the first argument - ProfileEntryHookStub::MaybeCallEntryHook(masm); - - __ mov(r5, Operand(r1)); - - if (argv_in_register()) { - // Move argv into the correct register. - __ mov(r1, Operand(r2)); - } else { - // Compute the argv pointer in a callee-saved register. - __ add(r1, sp, Operand(r0, LSL, kPointerSizeLog2)); - __ sub(r1, r1, Operand(kPointerSize)); - } - - // Enter the exit frame that transitions from JavaScript to C++. - FrameScope scope(masm, StackFrame::MANUAL); - __ EnterExitFrame(save_doubles(), 0, is_builtin_exit() - ? StackFrame::BUILTIN_EXIT - : StackFrame::EXIT); - - // Store a copy of argc in callee-saved registers for later. - __ mov(r4, Operand(r0)); - - // r0, r4: number of arguments including receiver (C callee-saved) - // r1: pointer to the first argument (C callee-saved) - // r5: pointer to builtin function (C callee-saved) - -#if V8_HOST_ARCH_ARM - int frame_alignment = MacroAssembler::ActivationFrameAlignment(); - int frame_alignment_mask = frame_alignment - 1; - if (FLAG_debug_code) { - if (frame_alignment > kPointerSize) { - Label alignment_as_expected; - DCHECK(base::bits::IsPowerOfTwo(frame_alignment)); - __ tst(sp, Operand(frame_alignment_mask)); - __ b(eq, &alignment_as_expected); - // Don't use Check here, as it will call Runtime_Abort re-entering here. - __ stop("Unexpected alignment"); - __ bind(&alignment_as_expected); - } - } -#endif - - // Call C built-in. - // r0 = argc, r1 = argv, r2 = isolate - __ mov(r2, Operand(ExternalReference::isolate_address(isolate()))); - - // To let the GC traverse the return address of the exit frames, we need to - // know where the return address is. The CEntryStub is unmovable, so - // we can store the address on the stack to be able to find it again and - // we never have to restore it, because it will not change. - // Compute the return address in lr to return to after the jump below. Pc is - // already at '+ 8' from the current instruction but return is after three - // instructions so add another 4 to pc to get the return address. - { - // Prevent literal pool emission before return address. - Assembler::BlockConstPoolScope block_const_pool(masm); - __ add(lr, pc, Operand(4)); - __ str(lr, MemOperand(sp)); - __ Call(r5); - } - - // Result returned in r0 or r1:r0 - do not destroy these registers! - - // Check result for exception sentinel. - Label exception_returned; - __ CompareRoot(r0, Heap::kExceptionRootIndex); - __ b(eq, &exception_returned); - - // Check that there is no pending exception, otherwise we - // should have returned the exception sentinel. - if (FLAG_debug_code) { - Label okay; - ExternalReference pending_exception_address( - IsolateAddressId::kPendingExceptionAddress, isolate()); - __ mov(r3, Operand(pending_exception_address)); - __ ldr(r3, MemOperand(r3)); - __ CompareRoot(r3, Heap::kTheHoleValueRootIndex); - // Cannot use check here as it attempts to generate call into runtime. - __ b(eq, &okay); - __ stop("Unexpected pending exception"); - __ bind(&okay); - } - - // Exit C frame and return. - // r0:r1: result - // sp: stack pointer - // fp: frame pointer - Register argc = argv_in_register() - // We don't want to pop arguments so set argc to no_reg. - ? no_reg - // Callee-saved register r4 still holds argc. - : r4; - __ LeaveExitFrame(save_doubles(), argc); - __ mov(pc, lr); - - // Handling of exception. - __ bind(&exception_returned); - - ExternalReference pending_handler_context_address( - IsolateAddressId::kPendingHandlerContextAddress, isolate()); - ExternalReference pending_handler_entrypoint_address( - IsolateAddressId::kPendingHandlerEntrypointAddress, isolate()); - ExternalReference pending_handler_fp_address( - IsolateAddressId::kPendingHandlerFPAddress, isolate()); - ExternalReference pending_handler_sp_address( - IsolateAddressId::kPendingHandlerSPAddress, isolate()); - - // Ask the runtime for help to determine the handler. This will set r0 to - // contain the current pending exception, don't clobber it. - ExternalReference find_handler(Runtime::kUnwindAndFindExceptionHandler, - isolate()); - { - FrameScope scope(masm, StackFrame::MANUAL); - __ PrepareCallCFunction(3, 0); - __ mov(r0, Operand(0)); - __ mov(r1, Operand(0)); - __ mov(r2, Operand(ExternalReference::isolate_address(isolate()))); - __ CallCFunction(find_handler, 3); - } - - // Retrieve the handler context, SP and FP. - __ mov(cp, Operand(pending_handler_context_address)); - __ ldr(cp, MemOperand(cp)); - __ mov(sp, Operand(pending_handler_sp_address)); - __ ldr(sp, MemOperand(sp)); - __ mov(fp, Operand(pending_handler_fp_address)); - __ ldr(fp, MemOperand(fp)); - - // If the handler is a JS frame, restore the context to the frame. Note that - // the context will be set to (cp == 0) for non-JS frames. - __ cmp(cp, Operand(0)); - __ str(cp, MemOperand(fp, StandardFrameConstants::kContextOffset), ne); - - // Reset the masking register. This is done independent of the underlying - // feature flag {FLAG_branch_load_poisoning} to make the snapshot work with - // both configurations. It is safe to always do this, because the underlying - // register is caller-saved and can be arbitrarily clobbered. - __ ResetSpeculationPoisonRegister(); - - // Compute the handler entry address and jump to it. - ConstantPoolUnavailableScope constant_pool_unavailable(masm); - __ mov(r1, Operand(pending_handler_entrypoint_address)); - __ ldr(r1, MemOperand(r1)); - __ Jump(r1); -} - - void JSEntryStub::Generate(MacroAssembler* masm) { // r0: code entry // r1: function @@ -396,19 +53,23 @@ void JSEntryStub::Generate(MacroAssembler* masm) { Label invoke, handler_entry, exit; - ProfileEntryHookStub::MaybeCallEntryHook(masm); + { + NoRootArrayScope no_root_array(masm); + + ProfileEntryHookStub::MaybeCallEntryHook(masm); - // Called from C, so do not pop argc and args on exit (preserve sp) - // No need to save register-passed args - // Save callee-saved registers (incl. cp and fp), sp, and lr - __ stm(db_w, sp, kCalleeSaved | lr.bit()); + // Called from C, so do not pop argc and args on exit (preserve sp) + // No need to save register-passed args + // Save callee-saved registers (incl. cp and fp), sp, and lr + __ stm(db_w, sp, kCalleeSaved | lr.bit()); - // Save callee-saved vfp registers. - __ vstm(db_w, sp, kFirstCalleeSavedDoubleReg, kLastCalleeSavedDoubleReg); - // Set up the reserved register for 0.0. - __ vmov(kDoubleRegZero, Double(0.0)); + // Save callee-saved vfp registers. + __ vstm(db_w, sp, kFirstCalleeSavedDoubleReg, kLastCalleeSavedDoubleReg); + // Set up the reserved register for 0.0. + __ vmov(kDoubleRegZero, Double(0.0)); - __ InitializeRootRegister(); + __ InitializeRootRegister(); + } // Get address of argv, see stm above. // r0: code entry @@ -430,8 +91,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { StackFrame::Type marker = type(); __ mov(r7, Operand(StackFrame::TypeToMarker(marker))); __ mov(r6, Operand(StackFrame::TypeToMarker(marker))); - __ mov(r5, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + __ mov(r5, Operand(ExternalReference::Create( + IsolateAddressId::kCEntryFPAddress, isolate()))); __ ldr(r5, MemOperand(r5)); { UseScratchRegisterScope temps(masm); @@ -449,7 +110,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { // If this is the outermost JS call, set js_entry_sp value. Label non_outermost_js; - ExternalReference js_entry_sp(IsolateAddressId::kJSEntrySPAddress, isolate()); + ExternalReference js_entry_sp = + ExternalReference::Create(IsolateAddressId::kJSEntrySPAddress, isolate()); __ mov(r5, Operand(ExternalReference(js_entry_sp))); __ ldr(scratch, MemOperand(r5)); __ cmp(scratch, Operand::Zero()); @@ -479,8 +141,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { // fp will be invalid because the PushStackHandler below sets it to 0 to // signal the existence of the JSEntry frame. __ mov(scratch, - Operand(ExternalReference(IsolateAddressId::kPendingExceptionAddress, - isolate()))); + Operand(ExternalReference::Create( + IsolateAddressId::kPendingExceptionAddress, isolate()))); } __ str(r0, MemOperand(scratch)); __ LoadRoot(r0, Heap::kExceptionRootIndex); @@ -523,8 +185,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { // Restore the top frame descriptors from the stack. __ pop(r3); - __ mov(scratch, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + __ mov(scratch, Operand(ExternalReference::Create( + IsolateAddressId::kCEntryFPAddress, isolate()))); __ str(r3, MemOperand(scratch)); // Reset the stack to the callee saved registers. @@ -638,9 +300,8 @@ void ProfileEntryHookStub::Generate(MacroAssembler* masm) { __ mov(r2, Operand(ExternalReference::isolate_address(isolate()))); ApiFunction dispatcher(FUNCTION_ADDR(EntryHookTrampoline)); - __ mov(scratch, - Operand(ExternalReference( - &dispatcher, ExternalReference::BUILTIN_CALL, isolate()))); + __ mov(scratch, Operand(ExternalReference::Create( + &dispatcher, ExternalReference::BUILTIN_CALL))); #endif __ Call(scratch); } @@ -849,7 +510,7 @@ void ArrayConstructorStub::Generate(MacroAssembler* masm) { __ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2)); __ add(r0, r0, Operand(3)); __ Push(r3, r2); - __ JumpToExternalReference(ExternalReference(Runtime::kNewArray, isolate())); + __ JumpToExternalReference(ExternalReference::Create(Runtime::kNewArray)); } @@ -982,8 +643,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, __ PushSafepointRegisters(); __ PrepareCallCFunction(1); __ mov(r0, Operand(ExternalReference::isolate_address(isolate))); - __ CallCFunction(ExternalReference::log_enter_external_function(isolate), - 1); + __ CallCFunction(ExternalReference::log_enter_external_function(), 1); __ PopSafepointRegisters(); } @@ -998,8 +658,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, __ PushSafepointRegisters(); __ PrepareCallCFunction(1); __ mov(r0, Operand(ExternalReference::isolate_address(isolate))); - __ CallCFunction(ExternalReference::log_leave_external_function(isolate), - 1); + __ CallCFunction(ExternalReference::log_leave_external_function(), 1); __ PopSafepointRegisters(); } @@ -1054,8 +713,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, __ mov(r4, r0); __ PrepareCallCFunction(1); __ mov(r0, Operand(ExternalReference::isolate_address(isolate))); - __ CallCFunction(ExternalReference::delete_handle_scope_extensions(isolate), - 1); + __ CallCFunction(ExternalReference::delete_handle_scope_extensions(), 1); __ mov(r0, r4); __ jmp(&leave_exit_frame); } @@ -1131,8 +789,7 @@ void CallApiCallbackStub::Generate(MacroAssembler* masm) { __ mov(scratch0, Operand(argc())); __ str(scratch0, MemOperand(r0, 2 * kPointerSize)); - ExternalReference thunk_ref = - ExternalReference::invoke_function_callback(masm->isolate()); + ExternalReference thunk_ref = ExternalReference::invoke_function_callback(); AllowExternalCallThatCantCauseGC scope(masm); // Stores return the first js argument @@ -1194,7 +851,7 @@ void CallApiGetterStub::Generate(MacroAssembler* masm) { __ add(r1, sp, Operand(1 * kPointerSize)); // r1 = v8::PropertyCallbackInfo& ExternalReference thunk_ref = - ExternalReference::invoke_accessor_getter_callback(isolate()); + ExternalReference::invoke_accessor_getter_callback(); __ ldr(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset)); __ ldr(api_function_address, diff --git a/deps/v8/src/arm/constants-arm.h b/deps/v8/src/arm/constants-arm.h index 4e52a91738398f..02d1c6b1dd2d98 100644 --- a/deps/v8/src/arm/constants-arm.h +++ b/deps/v8/src/arm/constants-arm.h @@ -666,7 +666,7 @@ class Instruction { // reference to an instruction is to convert a pointer. There is no way // to allocate or create instances of class Instruction. // Use the At(pc) function to create references to Instruction. - static Instruction* At(byte* pc) { + static Instruction* At(Address pc) { return reinterpret_cast(pc); } diff --git a/deps/v8/src/arm/deoptimizer-arm.cc b/deps/v8/src/arm/deoptimizer-arm.cc index a4a540512d9dc2..73131d7d1843c2 100644 --- a/deps/v8/src/arm/deoptimizer-arm.cc +++ b/deps/v8/src/arm/deoptimizer-arm.cc @@ -58,7 +58,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { { UseScratchRegisterScope temps(masm()); Register scratch = temps.Acquire(); - __ mov(scratch, Operand(ExternalReference( + __ mov(scratch, Operand(ExternalReference::Create( IsolateAddressId::kCEntryFPAddress, isolate()))); __ str(fp, MemOperand(scratch)); } @@ -95,7 +95,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { // Call Deoptimizer::New(). { AllowExternalCallThatCantCauseGC scope(masm()); - __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate()), 6); + __ CallCFunction(ExternalReference::new_deoptimizer_function(), 6); } // Preserve "deoptimizer" object in register r0 and get the input @@ -164,8 +164,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { // Call Deoptimizer::ComputeOutputFrames(). { AllowExternalCallThatCantCauseGC scope(masm()); - __ CallCFunction( - ExternalReference::compute_output_frames_function(isolate()), 1); + __ CallCFunction(ExternalReference::compute_output_frames_function(), 1); } __ pop(r0); // Restore deoptimizer object (class Deoptimizer). diff --git a/deps/v8/src/arm/disasm-arm.cc b/deps/v8/src/arm/disasm-arm.cc index 9459a7e60de85a..5dab458889624c 100644 --- a/deps/v8/src/arm/disasm-arm.cc +++ b/deps/v8/src/arm/disasm-arm.cc @@ -2592,7 +2592,7 @@ int Decoder::ConstantPoolSizeAt(byte* instr_ptr) { // Disassemble the instruction at *instr_ptr into the output buffer. int Decoder::InstructionDecode(byte* instr_ptr) { - Instruction* instr = Instruction::At(instr_ptr); + Instruction* instr = Instruction::At(reinterpret_cast
    (instr_ptr)); // Print raw instruction bytes. out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_, "%08x ", diff --git a/deps/v8/src/arm/interface-descriptors-arm.cc b/deps/v8/src/arm/interface-descriptors-arm.cc index 20ecef6c1cc5d7..a40b323d831fd5 100644 --- a/deps/v8/src/arm/interface-descriptors-arm.cc +++ b/deps/v8/src/arm/interface-descriptors-arm.cc @@ -34,7 +34,7 @@ void RecordWriteDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(kParameterCount, default_stub_registers); } -const Register FastNewFunctionContextDescriptor::FunctionRegister() { +const Register FastNewFunctionContextDescriptor::ScopeInfoRegister() { return r1; } const Register FastNewFunctionContextDescriptor::SlotsRegister() { return r0; } @@ -254,12 +254,6 @@ void BinaryOpDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(arraysize(registers), registers); } -void StringAddDescriptor::InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - Register registers[] = {r1, r0}; - data->InitializePlatformSpecific(arraysize(registers), registers); -} - void ArgumentAdaptorDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { static PlatformInterfaceDescriptor default_descriptor = diff --git a/deps/v8/src/arm/macro-assembler-arm.cc b/deps/v8/src/arm/macro-assembler-arm.cc index e363e0ecfe9313..5a013da14104e5 100644 --- a/deps/v8/src/arm/macro-assembler-arm.cc +++ b/deps/v8/src/arm/macro-assembler-arm.cc @@ -11,7 +11,9 @@ #include "src/base/division-by-constant.h" #include "src/base/utils/random-number-generator.h" #include "src/bootstrapper.h" +#include "src/builtins/constants-table-builder.h" #include "src/callable.h" +#include "src/code-factory.h" #include "src/code-stubs.h" #include "src/counters.h" #include "src/debug/debug.h" @@ -22,6 +24,7 @@ #include "src/objects-inl.h" #include "src/register-configuration.h" #include "src/runtime/runtime.h" +#include "src/snapshot/serializer-common.h" #include "src/arm/macro-assembler-arm.h" @@ -30,14 +33,24 @@ namespace internal { MacroAssembler::MacroAssembler(Isolate* isolate, void* buffer, int size, CodeObjectRequired create_code_object) - : TurboAssembler(isolate, buffer, size, create_code_object) {} + : TurboAssembler(isolate, buffer, size, create_code_object) { + if (create_code_object == CodeObjectRequired::kYes) { + // Unlike TurboAssembler, which can be used off the main thread and may not + // allocate, macro assembler creates its own copy of the self-reference + // marker in order to disambiguate between self-references during nested + // code generation (e.g.: codegen of the current object triggers stub + // compilation through CodeStub::GetCode()). + code_object_ = Handle::New( + *isolate->factory()->NewSelfReferenceMarker(), isolate); + } +} TurboAssembler::TurboAssembler(Isolate* isolate, void* buffer, int buffer_size, CodeObjectRequired create_code_object) : Assembler(isolate, buffer, buffer_size), isolate_(isolate) { if (create_code_object == CodeObjectRequired::kYes) { - code_object_ = - Handle::New(isolate->heap()->undefined_value(), isolate); + code_object_ = Handle::New( + isolate->heap()->self_reference_marker(), isolate); } } @@ -122,6 +135,74 @@ int TurboAssembler::PopCallerSaved(SaveFPRegsMode fp_mode, Register exclusion1, return bytes; } +#ifdef V8_EMBEDDED_BUILTINS +void TurboAssembler::LookupConstant(Register destination, + Handle object) { + CHECK(isolate()->ShouldLoadConstantsFromRootList()); + CHECK(root_array_available_); + + // Ensure the given object is in the builtins constants table and fetch its + // index. + BuiltinsConstantsTableBuilder* builder = + isolate()->builtins_constants_table_builder(); + uint32_t index = builder->AddObject(object); + + // TODO(jgruber): Load builtins from the builtins table. + // TODO(jgruber): Ensure that code generation can recognize constant targets + // in kArchCallCodeObject. + + DCHECK(isolate()->heap()->RootCanBeTreatedAsConstant( + Heap::kBuiltinsConstantsTableRootIndex)); + + // The ldr call below could end up clobbering the destination register when + // the offset does not fit into 12 bits (and thus needs to be loaded from the + // constant pool). In that case, we need to be extra-careful and temporarily + // use another register as the target. + + const uint32_t offset = + FixedArray::kHeaderSize + index * kPointerSize - kHeapObjectTag; + const bool could_clobber_ip = !is_uint12(offset) && destination == ip; + + Register reg = destination; + if (could_clobber_ip) { + Push(r7); + reg = r7; + } + + LoadRoot(reg, Heap::kBuiltinsConstantsTableRootIndex); + ldr(destination, MemOperand(reg, offset)); + + if (could_clobber_ip) { + DCHECK_EQ(reg, r7); + Pop(r7); + } +} + +void TurboAssembler::LookupExternalReference(Register destination, + ExternalReference reference) { + CHECK(reference.address() != + ExternalReference::roots_array_start(isolate()).address()); + CHECK(isolate()->ShouldLoadConstantsFromRootList()); + CHECK(root_array_available_); + + // Encode as an index into the external reference table stored on the isolate. + + ExternalReferenceEncoder encoder(isolate()); + ExternalReferenceEncoder::Value v = encoder.Encode(reference.address()); + CHECK(!v.is_from_api()); + uint32_t index = v.index(); + + // Generate code to load from the external reference table. + + int32_t roots_to_external_reference_offset = + Heap::roots_to_external_reference_table_offset() + + ExternalReferenceTable::OffsetOfEntry(index); + + ldr(destination, + MemOperand(kRootRegister, roots_to_external_reference_offset)); +} +#endif // V8_EMBEDDED_BUILTINS + void TurboAssembler::Jump(Register target, Condition cond) { bx(target, cond); } void TurboAssembler::Jump(intptr_t target, RelocInfo::Mode rmode, @@ -133,14 +214,24 @@ void TurboAssembler::Jump(intptr_t target, RelocInfo::Mode rmode, void TurboAssembler::Jump(Address target, RelocInfo::Mode rmode, Condition cond) { DCHECK(!RelocInfo::IsCodeTarget(rmode)); - Jump(reinterpret_cast(target), rmode, cond); + Jump(static_cast(target), rmode, cond); } void TurboAssembler::Jump(Handle code, RelocInfo::Mode rmode, Condition cond) { DCHECK(RelocInfo::IsCodeTarget(rmode)); +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + UseScratchRegisterScope temps(this); + Register scratch = temps.Acquire(); + LookupConstant(scratch, code); + add(scratch, scratch, Operand(Code::kHeaderSize - kHeapObjectTag)); + Jump(scratch, cond); + return; + } +#endif // V8_EMBEDDED_BUILTINS // 'code' is always generated ARM code, never THUMB code - Jump(reinterpret_cast(code.address()), rmode, cond); + Jump(static_cast(code.address()), rmode, cond); } int TurboAssembler::CallSize(Register target, Condition cond) { @@ -159,7 +250,7 @@ void TurboAssembler::Call(Register target, Condition cond) { int TurboAssembler::CallSize(Address target, RelocInfo::Mode rmode, Condition cond) { Instr mov_instr = cond | MOV | LeaveCC; - Operand mov_operand = Operand(reinterpret_cast(target), rmode); + Operand mov_operand = Operand(target, rmode); return kInstrSize + mov_operand.InstructionsRequired(this, mov_instr) * kInstrSize; } @@ -203,7 +294,7 @@ void TurboAssembler::Call(Address target, RelocInfo::Mode rmode, Condition cond, // blx ip // @ return address - mov(ip, Operand(reinterpret_cast(target), rmode)); + mov(ip, Operand(target, rmode)); blx(ip, cond); DCHECK_EQ(expected_size, SizeOfCodeGeneratedSince(&start)); @@ -221,6 +312,16 @@ void TurboAssembler::Call(Handle code, RelocInfo::Mode rmode, Condition cond, TargetAddressStorageMode mode, bool check_constant_pool) { DCHECK(RelocInfo::IsCodeTarget(rmode)); +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + // Use ip directly instead of using UseScratchRegisterScope, as we do not + // preserve scratch registers across calls. + LookupConstant(ip, code); + add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag)); + Call(ip, cond); + return; + } +#endif // V8_EMBEDDED_BUILTINS // 'code' is always generated ARM code, never THUMB code Call(code.address(), rmode, cond, mode); } @@ -261,9 +362,32 @@ void TurboAssembler::Push(Smi* smi) { void TurboAssembler::Move(Register dst, Smi* smi) { mov(dst, Operand(smi)); } void TurboAssembler::Move(Register dst, Handle value) { +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + Heap::RootListIndex root_index; + if (!isolate()->heap()->IsRootHandle(value, &root_index)) { + LookupConstant(dst, value); + } else { + LoadRoot(dst, root_index); + } + return; + } +#endif // V8_EMBEDDED_BUILTINS mov(dst, Operand(value)); } +void TurboAssembler::Move(Register dst, ExternalReference reference) { +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList() && + reference.address() != + ExternalReference::roots_array_start(isolate()).address()) { + LookupExternalReference(dst, reference); + return; + } +#endif // V8_EMBEDDED_BUILTINS + mov(dst, Operand(reference)); +} + void TurboAssembler::Move(Register dst, Register src, Condition cond) { if (dst != src) { mov(dst, src, LeaveCC, cond); @@ -539,8 +663,7 @@ void TurboAssembler::CallRecordWriteStub( Pop(slot_parameter); Pop(object_parameter); - Move(isolate_parameter, - Operand(ExternalReference::isolate_address(isolate()))); + Move(isolate_parameter, ExternalReference::isolate_address(isolate())); Move(remembered_set_parameter, Smi::FromEnum(remembered_set_action)); Move(fp_mode_parameter, Smi::FromEnum(fp_mode)); Call(callable.code(), RelocInfo::CODE_TARGET); @@ -558,10 +681,12 @@ void MacroAssembler::RecordWrite(Register object, Register address, SmiCheck smi_check) { DCHECK(object != value); if (emit_debug_code()) { - UseScratchRegisterScope temps(this); - Register scratch = temps.Acquire(); - ldr(scratch, MemOperand(address)); - cmp(scratch, value); + { + UseScratchRegisterScope temps(this); + Register scratch = temps.Acquire(); + ldr(scratch, MemOperand(address)); + cmp(scratch, value); + } Check(eq, AbortReason::kWrongAddressOrValuePassedToRecordWrite); } @@ -1100,7 +1225,7 @@ void TurboAssembler::EnterFrame(StackFrame::Type type, mov(scratch, Operand(StackFrame::TypeToMarker(type))); PushCommonFrame(scratch); if (type == StackFrame::INTERNAL) { - mov(scratch, Operand(CodeObject())); + Move(scratch, CodeObject()); push(scratch); } } @@ -1137,15 +1262,15 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space, mov(scratch, Operand::Zero()); str(scratch, MemOperand(fp, ExitFrameConstants::kSPOffset)); } - mov(scratch, Operand(CodeObject())); + Move(scratch, CodeObject()); str(scratch, MemOperand(fp, ExitFrameConstants::kCodeOffset)); // Save the frame pointer and the context in top. - mov(scratch, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + Move(scratch, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, + isolate())); str(fp, MemOperand(scratch)); - mov(scratch, - Operand(ExternalReference(IsolateAddressId::kContextAddress, isolate()))); + Move(scratch, + ExternalReference::Create(IsolateAddressId::kContextAddress, isolate())); str(cp, MemOperand(scratch)); // Optionally save all double registers. @@ -1204,18 +1329,18 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, Register argument_count, // Clear top frame. mov(r3, Operand::Zero()); - mov(scratch, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + Move(scratch, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, + isolate())); str(r3, MemOperand(scratch)); // Restore current context from top and clear it in debug mode. - mov(scratch, - Operand(ExternalReference(IsolateAddressId::kContextAddress, isolate()))); + Move(scratch, + ExternalReference::Create(IsolateAddressId::kContextAddress, isolate())); ldr(cp, MemOperand(scratch)); #ifdef DEBUG mov(r3, Operand(Context::kInvalidContext)); - mov(scratch, - Operand(ExternalReference(IsolateAddressId::kContextAddress, isolate()))); + Move(scratch, + ExternalReference::Create(IsolateAddressId::kContextAddress, isolate())); str(r3, MemOperand(scratch)); #endif @@ -1372,14 +1497,21 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, const ParameterCount& actual) { Label skip_hook; - ExternalReference debug_hook_avtive = + ExternalReference debug_hook_active = ExternalReference::debug_hook_on_function_call_address(isolate()); - mov(r4, Operand(debug_hook_avtive)); + Move(r4, debug_hook_active); ldrsb(r4, MemOperand(r4)); cmp(r4, Operand(0)); b(eq, &skip_hook); { + // Load receiver to pass it later to DebugOnFunctionCall hook. + if (actual.is_reg()) { + mov(r4, actual.reg()); + } else { + mov(r4, Operand(actual.immediate())); + } + ldr(r4, MemOperand(sp, r4, LSL, kPointerSizeLog2)); FrameScope frame(this, has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); if (expected.is_reg()) { @@ -1395,6 +1527,7 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, } Push(fun); Push(fun); + Push(r4); CallRuntime(Runtime::kDebugOnFunctionCall); Pop(fun); if (new_target.is_valid()) { @@ -1494,7 +1627,7 @@ void MacroAssembler::MaybeDropFrames() { // Check whether we need to drop frames to restart a function on the stack. ExternalReference restart_fp = ExternalReference::debug_restart_fp_address(isolate()); - mov(r1, Operand(restart_fp)); + Move(r1, restart_fp); ldr(r1, MemOperand(r1)); tst(r1, r1); Jump(BUILTIN_CODE(isolate(), FrameDropperTrampoline), RelocInfo::CODE_TARGET, @@ -1508,8 +1641,8 @@ void MacroAssembler::PushStackHandler() { Push(Smi::kZero); // Padding. // Link the current handler as the next handler. - mov(r6, - Operand(ExternalReference(IsolateAddressId::kHandlerAddress, isolate()))); + mov(r6, Operand(ExternalReference::Create(IsolateAddressId::kHandlerAddress, + isolate()))); ldr(r5, MemOperand(r6)); push(r5); // Set this new handler as the current one. @@ -1522,8 +1655,8 @@ void MacroAssembler::PopStackHandler() { Register scratch = temps.Acquire(); STATIC_ASSERT(StackHandlerConstants::kNextOffset == 0); pop(r1); - mov(scratch, - Operand(ExternalReference(IsolateAddressId::kHandlerAddress, isolate()))); + mov(scratch, Operand(ExternalReference::Create( + IsolateAddressId::kHandlerAddress, isolate()))); str(r1, MemOperand(scratch)); add(sp, sp, Operand(StackHandlerConstants::kSize - kPointerSize)); } @@ -1639,8 +1772,9 @@ void TurboAssembler::TryInlineTruncateDoubleToI(Register result, b(lt, done); } -void TurboAssembler::TruncateDoubleToIDelayed(Zone* zone, Register result, - DwVfpRegister double_input) { +void TurboAssembler::TruncateDoubleToI(Isolate* isolate, Zone* zone, + Register result, + DwVfpRegister double_input) { Label done; TryInlineTruncateDoubleToI(result, double_input, &done); @@ -1650,7 +1784,8 @@ void TurboAssembler::TruncateDoubleToIDelayed(Zone* zone, Register result, sub(sp, sp, Operand(kDoubleSize)); // Put input on stack. vstr(double_input, MemOperand(sp, 0)); - CallStubDelayed(new (zone) DoubleToIStub(nullptr, result)); + Call(BUILTIN_CODE(isolate, DoubleToI), RelocInfo::CODE_TARGET); + ldr(result, MemOperand(sp, 0)); add(sp, sp, Operand(kDoubleSize)); pop(lr); @@ -1666,8 +1801,10 @@ void TurboAssembler::CallRuntimeDelayed(Zone* zone, Runtime::FunctionId fid, // should remove this need and make the runtime routine entry code // smarter. mov(r0, Operand(f->nargs)); - mov(r1, Operand(ExternalReference(f, isolate()))); - CallStubDelayed(new (zone) CEntryStub(nullptr, 1, save_doubles)); + Move(r1, ExternalReference::Create(f)); + Handle code = + CodeFactory::CEntry(isolate(), f->result_size, save_doubles); + Call(code, RelocInfo::CODE_TARGET); } void MacroAssembler::CallRuntime(const Runtime::Function* f, @@ -1685,9 +1822,10 @@ void MacroAssembler::CallRuntime(const Runtime::Function* f, // should remove this need and make the runtime routine entry code // smarter. mov(r0, Operand(num_arguments)); - mov(r1, Operand(ExternalReference(f, isolate()))); - CEntryStub stub(isolate(), 1, save_doubles); - CallStub(&stub); + Move(r1, ExternalReference::Create(f)); + Handle code = + CodeFactory::CEntry(isolate(), f->result_size, save_doubles); + Call(code, RelocInfo::CODE_TARGET); } void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) { @@ -1700,24 +1838,23 @@ void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) { // smarter. mov(r0, Operand(function->nargs)); } - JumpToExternalReference(ExternalReference(fid, isolate())); + JumpToExternalReference(ExternalReference::Create(fid)); } void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin, bool builtin_exit_frame) { #if defined(__thumb__) // Thumb mode builtin. - DCHECK_EQ(reinterpret_cast(builtin.address()) & 1, 1); + DCHECK_EQ(builtin.address() & 1, 1); #endif - mov(r1, Operand(builtin)); - CEntryStub stub(isolate(), 1, kDontSaveFPRegs, kArgvOnStack, - builtin_exit_frame); - Jump(stub.GetCode(), RelocInfo::CODE_TARGET); + Move(r1, builtin); + Handle code = CodeFactory::CEntry(isolate(), 1, kDontSaveFPRegs, + kArgvOnStack, builtin_exit_frame); + Jump(code, RelocInfo::CODE_TARGET); } void MacroAssembler::JumpToInstructionStream(Address entry) { - mov(kOffHeapTrampolineRegister, - Operand(reinterpret_cast(entry), RelocInfo::OFF_HEAP_TARGET)); + mov(kOffHeapTrampolineRegister, Operand(entry, RelocInfo::OFF_HEAP_TARGET)); Jump(kOffHeapTrampolineRegister); } @@ -1733,7 +1870,7 @@ void MacroAssembler::IncrementCounter(StatsCounter* counter, int value, Register scratch1, Register scratch2) { DCHECK_GT(value, 0); if (FLAG_native_code_counters && counter->Enabled()) { - mov(scratch2, Operand(ExternalReference(counter))); + Move(scratch2, ExternalReference::Create(counter)); ldr(scratch1, MemOperand(scratch2)); add(scratch1, scratch1, Operand(value)); str(scratch1, MemOperand(scratch2)); @@ -1745,7 +1882,7 @@ void MacroAssembler::DecrementCounter(StatsCounter* counter, int value, Register scratch1, Register scratch2) { DCHECK_GT(value, 0); if (FLAG_native_code_counters && counter->Enabled()) { - mov(scratch2, Operand(ExternalReference(counter))); + Move(scratch2, ExternalReference::Create(counter)); ldr(scratch1, MemOperand(scratch2)); sub(scratch1, scratch1, Operand(value)); str(scratch1, MemOperand(scratch2)); @@ -1965,7 +2102,7 @@ void MacroAssembler::AssertUndefinedOrAllocationSite(Register object, void TurboAssembler::CheckFor32DRegs(Register scratch) { - mov(scratch, Operand(ExternalReference::cpu_features(isolate()))); + Move(scratch, ExternalReference::cpu_features()); ldr(scratch, MemOperand(scratch)); tst(scratch, Operand(1u << VFP32DREGS)); } @@ -2197,7 +2334,7 @@ void TurboAssembler::CallCFunction(ExternalReference function, int num_double_arguments) { UseScratchRegisterScope temps(this); Register scratch = temps.Acquire(); - mov(scratch, Operand(function)); + Move(scratch, function); CallCFunctionHelper(scratch, num_reg_arguments, num_double_arguments); } diff --git a/deps/v8/src/arm/macro-assembler-arm.h b/deps/v8/src/arm/macro-assembler-arm.h index af8b449de6dbe7..51ef552a921bba 100644 --- a/deps/v8/src/arm/macro-assembler-arm.h +++ b/deps/v8/src/arm/macro-assembler-arm.h @@ -28,9 +28,10 @@ constexpr Register kInterpreterDispatchTableRegister = r8; constexpr Register kJavaScriptCallArgCountRegister = r0; constexpr Register kJavaScriptCallCodeStartRegister = r2; constexpr Register kJavaScriptCallNewTargetRegister = r3; -constexpr Register kOffHeapTrampolineRegister = r6; +constexpr Register kOffHeapTrampolineRegister = ip; constexpr Register kRuntimeCallFunctionRegister = r1; constexpr Register kRuntimeCallArgCountRegister = r0; +constexpr Register kWasmInstanceRegister = r3; // ---------------------------------------------------------------------------- // Static helper functions @@ -320,6 +321,12 @@ class TurboAssembler : public Assembler { void AsrPair(Register dst_low, Register dst_high, Register src_low, Register src_high, uint32_t shift); +#ifdef V8_EMBEDDED_BUILTINS + void LookupConstant(Register destination, Handle object); + void LookupExternalReference(Register destination, + ExternalReference reference); +#endif // V8_EMBEDDED_BUILTINS + // Returns the size of a call in instructions. Note, the value returned is // only valid as long as no entries are added to the constant pool between // checking the call size and emitting the actual call. @@ -331,6 +338,7 @@ class TurboAssembler : public Assembler { int CallStubSize(); void CallStubDelayed(CodeStub* stub); + // TODO(jgruber): Remove in favor of MacroAssembler::CallRuntime. void CallRuntimeDelayed(Zone* zone, Runtime::FunctionId fid, SaveFPRegsMode save_doubles = kDontSaveFPRegs); @@ -465,6 +473,7 @@ class TurboAssembler : public Assembler { // Register move. May do nothing if the registers are identical. void Move(Register dst, Smi* smi); void Move(Register dst, Handle value); + void Move(Register dst, ExternalReference reference); void Move(Register dst, Register src, Condition cond = al); void Move(Register dst, const Operand& src, SBit sbit = LeaveCC, Condition cond = al) { @@ -520,8 +529,8 @@ class TurboAssembler : public Assembler { // Performs a truncating conversion of a floating point number as used by // the JS bitwise operations. See ECMA-262 9.5: ToInt32. // Exits with 'result' holding the answer. - void TruncateDoubleToIDelayed(Zone* zone, Register result, - DwVfpRegister double_input); + void TruncateDoubleToI(Isolate* isolate, Zone* zone, Register result, + DwVfpRegister double_input); // EABI variant for double arguments in use. bool use_eabi_hardfloat() { @@ -540,11 +549,17 @@ class TurboAssembler : public Assembler { void ResetSpeculationPoisonRegister(); + bool root_array_available() const { return root_array_available_; } + void set_root_array_available(bool v) { root_array_available_ = v; } + + protected: + // This handle will be patched with the code object on installation. + Handle code_object_; + private: bool has_frame_ = false; + bool root_array_available_ = true; Isolate* const isolate_; - // This handle will be patched with the code object on installation. - Handle code_object_; // Compare single values and then load the fpscr flags to a register. void VFPCompareAndLoadFlags(const SwVfpRegister src1, diff --git a/deps/v8/src/arm/simulator-arm.cc b/deps/v8/src/arm/simulator-arm.cc index 6a735fcef6f8cd..e8eb4740900c21 100644 --- a/deps/v8/src/arm/simulator-arm.cc +++ b/deps/v8/src/arm/simulator-arm.cc @@ -1666,17 +1666,18 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { case ExternalReference::BUILTIN_FP_FP_CALL: case ExternalReference::BUILTIN_COMPARE_CALL: PrintF("Call to host function at %p with args %f, %f", - static_cast(FUNCTION_ADDR(generic_target)), dval0, - dval1); + reinterpret_cast(FUNCTION_ADDR(generic_target)), + dval0, dval1); break; case ExternalReference::BUILTIN_FP_CALL: PrintF("Call to host function at %p with arg %f", - static_cast(FUNCTION_ADDR(generic_target)), dval0); + reinterpret_cast(FUNCTION_ADDR(generic_target)), + dval0); break; case ExternalReference::BUILTIN_FP_INT_CALL: PrintF("Call to host function at %p with args %f, %d", - static_cast(FUNCTION_ADDR(generic_target)), dval0, - ival); + reinterpret_cast(FUNCTION_ADDR(generic_target)), + dval0, ival); break; default: UNREACHABLE(); @@ -1803,8 +1804,8 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { PrintF( "Call to host function at %p " "args %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x", - static_cast(FUNCTION_ADDR(target)), arg0, arg1, arg2, arg3, - arg4, arg5, arg6, arg7, arg8); + reinterpret_cast(FUNCTION_ADDR(target)), arg0, arg1, arg2, + arg3, arg4, arg5, arg6, arg7, arg8); if (!stack_aligned) { PrintF(" with unaligned stack %08x\n", get_register(sp)); } @@ -3651,6 +3652,8 @@ int VFPConversionSaturate(double val, bool unsigned_res) { int32_t Simulator::ConvertDoubleToInt(double val, bool unsigned_integer, VFPRoundingMode mode) { + // TODO(jkummerow): These casts are undefined behavior if the integral + // part of {val} does not fit into the destination type. int32_t result = unsigned_integer ? static_cast(val) : static_cast(val); @@ -5731,13 +5734,12 @@ void Simulator::Execute() { } } - -void Simulator::CallInternal(byte* entry) { +void Simulator::CallInternal(Address entry) { // Adjust JS-based stack limit to C-based stack limit. isolate_->stack_guard()->AdjustStackLimitForSimulator(); // Prepare to execute the code at entry - set_register(pc, reinterpret_cast(entry)); + set_register(pc, static_cast(entry)); // Put down marker for end of simulation. The simulator will stop simulation // when the PC reaches this value. By saving the "end simulation" value into // the LR the simulation stops when returning to this call point. @@ -5791,7 +5793,7 @@ void Simulator::CallInternal(byte* entry) { set_register(r11, r11_val); } -intptr_t Simulator::CallImpl(byte* entry, int argument_count, +intptr_t Simulator::CallImpl(Address entry, int argument_count, const intptr_t* arguments) { // Set up arguments @@ -5823,7 +5825,7 @@ intptr_t Simulator::CallImpl(byte* entry, int argument_count, return get_register(r0); } -intptr_t Simulator::CallFPImpl(byte* entry, double d0, double d1) { +intptr_t Simulator::CallFPImpl(Address entry, double d0, double d1) { if (use_eabi_hardfloat()) { set_d_register_from_double(0, d0); set_d_register_from_double(1, d1); diff --git a/deps/v8/src/arm/simulator-arm.h b/deps/v8/src/arm/simulator-arm.h index 46a84ff4b44ec4..6eb3cf6c6be595 100644 --- a/deps/v8/src/arm/simulator-arm.h +++ b/deps/v8/src/arm/simulator-arm.h @@ -148,9 +148,7 @@ class Simulator : public SimulatorBase { void set_pc(int32_t value); int32_t get_pc() const; - Address get_sp() const { - return reinterpret_cast
    (static_cast(get_register(sp))); - } + Address get_sp() const { return static_cast
    (get_register(sp)); } // Accessor to the internal simulator stack area. uintptr_t StackLimit(uintptr_t c_limit) const; @@ -159,13 +157,13 @@ class Simulator : public SimulatorBase { void Execute(); template - Return Call(byte* entry, Args... args) { + Return Call(Address entry, Args... args) { return VariadicCall(this, &Simulator::CallImpl, entry, args...); } // Alternative: call a 2-argument double function. template - Return CallFP(byte* entry, double d0, double d1) { + Return CallFP(Address entry, double d0, double d1) { return ConvertReturn(CallFPImpl(entry, d0, d1)); } @@ -212,9 +210,9 @@ class Simulator : public SimulatorBase { end_sim_pc = -2 }; - V8_EXPORT_PRIVATE intptr_t CallImpl(byte* entry, int argument_count, + V8_EXPORT_PRIVATE intptr_t CallImpl(Address entry, int argument_count, const intptr_t* arguments); - intptr_t CallFPImpl(byte* entry, double d0, double d1); + intptr_t CallFPImpl(Address entry, double d0, double d1); // Unsupported instructions use Format to print an error and stop execution. void Format(Instruction* instr, const char* format); @@ -344,7 +342,7 @@ class Simulator : public SimulatorBase { void SetSpecialRegister(SRegisterFieldMask reg_and_mask, uint32_t value); uint32_t GetFromSpecialRegister(SRegister reg); - void CallInternal(byte* entry); + void CallInternal(Address entry); // Architecture state. // Saturating instructions require a Q flag to indicate saturation. diff --git a/deps/v8/src/arm64/assembler-arm64-inl.h b/deps/v8/src/arm64/assembler-arm64-inl.h index 52f552270a7d9c..0c43fbe0e1ee6c 100644 --- a/deps/v8/src/arm64/assembler-arm64-inl.h +++ b/deps/v8/src/arm64/assembler-arm64-inl.h @@ -18,12 +18,20 @@ bool CpuFeatures::SupportsOptimizer() { return true; } bool CpuFeatures::SupportsWasmSimd128() { return true; } void RelocInfo::apply(intptr_t delta) { - // On arm64 only internal references need extra work. - DCHECK(RelocInfo::IsInternalReference(rmode_)); - - // Absolute code pointer inside code object moves with the code object. - intptr_t* p = reinterpret_cast(pc_); - *p += delta; // Relocate entry. + // On arm64 only internal references and immediate branches need extra work. + if (RelocInfo::IsInternalReference(rmode_)) { + // Absolute code pointer inside code object moves with the code object. + intptr_t* p = reinterpret_cast(pc_); + *p += delta; // Relocate entry. + } else { + Instruction* instr = reinterpret_cast(pc_); + if (instr->IsBranchAndLink() || instr->IsUnconditionalBranch()) { + Address old_target = + reinterpret_cast
    (instr->ImmPCOffsetTarget()); + Address new_target = old_target - delta; + instr->SetBranchImmTarget(reinterpret_cast(new_target)); + } + } } @@ -222,7 +230,7 @@ struct ImmediateInitializer { return RelocInfo::EXTERNAL_REFERENCE; } static inline int64_t immediate_for(ExternalReference t) {; - return reinterpret_cast(t.address()); + return static_cast(t.address()); } }; @@ -348,6 +356,10 @@ int64_t Operand::ImmediateValue() const { return immediate_.value(); } +RelocInfo::Mode Operand::ImmediateRMode() const { + DCHECK(IsImmediate() || IsHeapObjectRequest()); + return immediate_.rmode(); +} Register Operand::reg() const { DCHECK(IsShiftedRegister() || IsExtendedRegister()); @@ -523,9 +535,39 @@ Address Assembler::target_pointer_address_at(Address pc) { // Read/Modify the code target address in the branch/call instruction at pc. Address Assembler::target_address_at(Address pc, Address constant_pool) { - return Memory::Address_at(target_pointer_address_at(pc)); + Instruction* instr = reinterpret_cast(pc); + if (instr->IsLdrLiteralX()) { + return Memory::Address_at(target_pointer_address_at(pc)); + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + return reinterpret_cast
    (instr->ImmPCOffsetTarget()); + } } +Handle Assembler::code_target_object_handle_at(Address pc) { + Instruction* instr = reinterpret_cast(pc); + if (instr->IsLdrLiteralX()) { + return Handle(reinterpret_cast( + Assembler::target_address_at(pc, 0 /* unused */))); + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + DCHECK_GE(instr->ImmPCOffset(), 0); + DCHECK_EQ(instr->ImmPCOffset() % kInstructionSize, 0); + DCHECK_LT(instr->ImmPCOffset() >> kInstructionSizeLog2, + code_targets_.size()); + return code_targets_[instr->ImmPCOffset() >> kInstructionSizeLog2]; + } +} + +Address Assembler::runtime_entry_at(Address pc) { + Instruction* instr = reinterpret_cast(pc); + if (instr->IsLdrLiteralX()) { + return Assembler::target_address_at(pc, 0 /* unused */); + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + return instr->ImmPCOffset() + isolate_data().code_range_start_; + } +} Address Assembler::target_address_from_return_address(Address pc) { // Returns the address of the call target from the return address that will @@ -540,45 +582,37 @@ Address Assembler::target_address_from_return_address(Address pc) { return candidate; } - -Address Assembler::return_address_from_call_start(Address pc) { - // The call, generated by MacroAssembler::Call, is one of two possible - // sequences: - // - // Without relocation: - // movz temp, #(target & 0x000000000000ffff) - // movk temp, #(target & 0x00000000ffff0000) - // movk temp, #(target & 0x0000ffff00000000) - // blr temp - // - // With relocation: - // ldr temp, =target - // blr temp - // - // The return address is immediately after the blr instruction in both cases, - // so it can be found by adding the call size to the address at the start of - // the call sequence. - STATIC_ASSERT(Assembler::kCallSizeWithoutRelocation == 4 * kInstructionSize); - STATIC_ASSERT(Assembler::kCallSizeWithRelocation == 2 * kInstructionSize); - - Instruction* instr = reinterpret_cast(pc); - if (instr->IsMovz()) { - // Verify the instruction sequence. - DCHECK(instr->following(1)->IsMovk()); - DCHECK(instr->following(2)->IsMovk()); - DCHECK(instr->following(3)->IsBranchAndLinkToRegister()); - return pc + Assembler::kCallSizeWithoutRelocation; +int Assembler::deserialization_special_target_size(Address location) { + Instruction* instr = reinterpret_cast(location); + if (instr->IsBranchAndLink() || instr->IsUnconditionalBranch()) { + return kSpecialTargetSize; } else { - // Verify the instruction sequence. - DCHECK(instr->IsLdrLiteralX()); - DCHECK(instr->following(1)->IsBranchAndLinkToRegister()); - return pc + Assembler::kCallSizeWithRelocation; + DCHECK_EQ(instr->InstructionBits(), 0); + return kPointerSize; } } -void Assembler::deserialization_set_special_target_at( - Address constant_pool_entry, Code* code, Address target) { - Memory::Address_at(constant_pool_entry) = target; +void Assembler::deserialization_set_special_target_at(Address location, + Code* code, + Address target) { + Instruction* instr = reinterpret_cast(location); + if (instr->IsBranchAndLink() || instr->IsUnconditionalBranch()) { + if (target == 0) { + // We are simply wiping the target out for serialization. Set the offset + // to zero instead. + target = location; + } + instr->SetBranchImmTarget(reinterpret_cast(target)); + Assembler::FlushICache(location, kInstructionSize); + } else { + DCHECK_EQ(instr->InstructionBits(), 0); + Memory::Address_at(location) = target; + // Intuitively, we would think it is necessary to always flush the + // instruction cache after patching a target address in the code. However, + // in this case, only the constant pool contents change. The instruction + // accessing the constant pool remains unchanged, so a flush is not + // required. + } } void Assembler::deserialization_set_target_internal_reference_at( @@ -589,20 +623,35 @@ void Assembler::deserialization_set_target_internal_reference_at( void Assembler::set_target_address_at(Address pc, Address constant_pool, Address target, ICacheFlushMode icache_flush_mode) { - Memory::Address_at(target_pointer_address_at(pc)) = target; - // Intuitively, we would think it is necessary to always flush the - // instruction cache after patching a target address in the code as follows: - // Assembler::FlushICache(pc, sizeof(target)); - // However, on ARM, an instruction is actually patched in the case of - // embedded constants of the form: - // ldr ip, [pc, #...] - // since the instruction accessing this address in the constant pool remains - // unchanged, a flush is not required. + Instruction* instr = reinterpret_cast(pc); + if (instr->IsLdrLiteralX()) { + Memory::Address_at(target_pointer_address_at(pc)) = target; + // Intuitively, we would think it is necessary to always flush the + // instruction cache after patching a target address in the code. However, + // in this case, only the constant pool contents change. The instruction + // accessing the constant pool remains unchanged, so a flush is not + // required. + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + if (target == 0) { + // We are simply wiping the target out for serialization. Set the offset + // to zero instead. + target = pc; + } + instr->SetBranchImmTarget(reinterpret_cast(target)); + if (icache_flush_mode != SKIP_ICACHE_FLUSH) { + Assembler::FlushICache(pc, kInstructionSize); + } + } } - int RelocInfo::target_address_size() { - return kPointerSize; + if (IsCodedSpecially()) { + return Assembler::kSpecialTargetSize; + } else { + DCHECK(reinterpret_cast(pc_)->IsLdrLiteralX()); + return kPointerSize; + } } @@ -615,7 +664,26 @@ Address RelocInfo::target_address_address() { DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) || IsWasmCall(rmode_) || IsEmbeddedObject(rmode_) || IsExternalReference(rmode_) || IsOffHeapTarget(rmode_)); - return Assembler::target_pointer_address_at(pc_); + Instruction* instr = reinterpret_cast(pc_); + // Read the address of the word containing the target_address in an + // instruction stream. + // The only architecture-independent user of this function is the serializer. + // The serializer uses it to find out how many raw bytes of instruction to + // output before the next target. + // For an instruction like B/BL, where the target bits are mixed into the + // instruction bits, the size of the target will be zero, indicating that the + // serializer should not step forward in memory after a target is resolved + // and written. + // For LDR literal instructions, we can skip up to the constant pool entry + // address. We make sure that RelocInfo is ordered by the + // target_address_address so that we do not skip over any relocatable + // instruction sequences. + if (instr->IsLdrLiteralX()) { + return constant_pool_entry_address(); + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + return reinterpret_cast
    (pc_); + } } @@ -631,9 +699,13 @@ HeapObject* RelocInfo::target_object() { } Handle RelocInfo::target_object_handle(Assembler* origin) { - DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT); - return Handle(reinterpret_cast( - Assembler::target_address_at(pc_, constant_pool_))); + if (rmode_ == EMBEDDED_OBJECT) { + return Handle(reinterpret_cast( + Assembler::target_address_at(pc_, constant_pool_))); + } else { + DCHECK(IsCodeTarget(rmode_)); + return origin->code_target_object_handle_at(pc_); + } } void RelocInfo::set_target_object(HeapObject* target, @@ -671,7 +743,7 @@ Address RelocInfo::target_internal_reference() { Address RelocInfo::target_internal_reference_address() { DCHECK(rmode_ == INTERNAL_REFERENCE); - return reinterpret_cast
    (pc_); + return pc_; } void RelocInfo::set_wasm_code_table_entry(Address target, @@ -683,7 +755,7 @@ void RelocInfo::set_wasm_code_table_entry(Address target, Address RelocInfo::target_runtime_entry(Assembler* origin) { DCHECK(IsRuntimeEntry(rmode_)); - return target_address(); + return origin->runtime_entry_at(pc_); } void RelocInfo::set_target_runtime_entry(Address target, @@ -705,9 +777,9 @@ void RelocInfo::WipeOut() { IsRuntimeEntry(rmode_) || IsExternalReference(rmode_) || IsInternalReference(rmode_)); if (IsInternalReference(rmode_)) { - Memory::Address_at(pc_) = nullptr; + Memory::Address_at(pc_) = kNullAddress; } else { - Assembler::set_target_address_at(pc_, constant_pool_, nullptr); + Assembler::set_target_address_at(pc_, constant_pool_, kNullAddress); } } diff --git a/deps/v8/src/arm64/assembler-arm64.cc b/deps/v8/src/arm64/assembler-arm64.cc index fe81147d768ad5..121c15aac9ca6c 100644 --- a/deps/v8/src/arm64/assembler-arm64.cc +++ b/deps/v8/src/arm64/assembler-arm64.cc @@ -157,14 +157,20 @@ CPURegList CPURegList::GetSafepointSavedRegisters() { // ----------------------------------------------------------------------------- // Implementation of RelocInfo -const int RelocInfo::kApplyMask = 1 << RelocInfo::INTERNAL_REFERENCE; - +const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask | + 1 << RelocInfo::RUNTIME_ENTRY | + 1 << RelocInfo::INTERNAL_REFERENCE; bool RelocInfo::IsCodedSpecially() { // The deserializer needs to know whether a pointer is specially coded. Being - // specially coded on ARM64 means that it is a movz/movk sequence. We don't - // generate those for relocatable pointers. - return false; + // specially coded on ARM64 means that it is an immediate branch. + Instruction* instr = reinterpret_cast(pc_); + if (instr->IsLdrLiteralX()) { + return false; + } else { + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + return true; + } } @@ -174,7 +180,7 @@ bool RelocInfo::IsInConstantPool() { } Address RelocInfo::embedded_address() const { - return Memory::Address_at(Assembler::target_pointer_address_at(pc_)); + return Assembler::target_address_at(pc_, constant_pool_); } uint32_t RelocInfo::embedded_size() const { @@ -290,7 +296,7 @@ bool AreConsecutive(const VRegister& reg1, const VRegister& reg2, } void Immediate::InitializeHandle(Handle handle) { - value_ = reinterpret_cast(handle.address()); + value_ = static_cast(handle.address()); rmode_ = RelocInfo::EMBEDDED_OBJECT; } @@ -570,8 +576,8 @@ void Assembler::Reset() { memset(buffer_, 0, pc_ - buffer_); #endif pc_ = buffer_; - reloc_info_writer.Reposition(reinterpret_cast(buffer_ + buffer_size_), - reinterpret_cast(pc_)); + code_targets_.reserve(64); + reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); constpool_.Clear(); next_constant_pool_check_ = 0; next_veneer_pool_check_ = kMaxInt; @@ -580,19 +586,27 @@ void Assembler::Reset() { void Assembler::AllocateAndInstallRequestedHeapObjects(Isolate* isolate) { for (auto& request : heap_object_requests_) { - Handle object; + Address pc = reinterpret_cast
    (buffer_) + request.offset(); switch (request.kind()) { - case HeapObjectRequest::kHeapNumber: - object = isolate->factory()->NewHeapNumber(request.heap_number(), - IMMUTABLE, TENURED); + case HeapObjectRequest::kHeapNumber: { + Handle object = isolate->factory()->NewHeapNumber( + request.heap_number(), IMMUTABLE, TENURED); + set_target_address_at(pc, 0 /* unused */, object.address()); break; - case HeapObjectRequest::kCodeStub: + } + case HeapObjectRequest::kCodeStub: { request.code_stub()->set_isolate(isolate); - object = request.code_stub()->GetCode(); + Instruction* instr = reinterpret_cast(pc); + DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); + DCHECK_GE(instr->ImmPCOffset(), 0); + DCHECK_EQ(instr->ImmPCOffset() % kInstructionSize, 0); + DCHECK_LT(instr->ImmPCOffset() >> kInstructionSizeLog2, + code_targets_.size()); + code_targets_[instr->ImmPCOffset() >> kInstructionSizeLog2] = + request.code_stub()->GetCode(); break; + } } - Address pc = buffer_ + request.offset(); - Memory::Address_at(target_pointer_address_at(pc)) = object.address(); } } @@ -4722,7 +4736,7 @@ void Assembler::GrowBuffer() { DeleteArray(buffer_); buffer_ = desc.buffer; buffer_size_ = desc.buffer_size; - pc_ = reinterpret_cast(pc_) + pc_delta; + pc_ = pc_ + pc_delta; reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta, reloc_info_writer.last_pc() + pc_delta); @@ -4739,13 +4753,13 @@ void Assembler::GrowBuffer() { // Pending relocation entries are also relative, no need to relocate. } - -void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { +void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data, + ConstantPoolMode constant_pool_mode) { // Non-relocatable constants should not end up in the literal pool. DCHECK(!RelocInfo::IsNone(rmode)); // We do not try to reuse pool constants. - RelocInfo rinfo(reinterpret_cast(pc_), rmode, data, nullptr); + RelocInfo rinfo(reinterpret_cast
    (pc_), rmode, data, nullptr); bool write_reloc_info = true; if ((rmode == RelocInfo::COMMENT) || @@ -4760,12 +4774,14 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { RelocInfo::IsInternalReference(rmode) || RelocInfo::IsConstPool(rmode) || RelocInfo::IsVeneerPool(rmode)); // These modes do not need an entry in the constant pool. - } else { + } else if (constant_pool_mode == NEEDS_POOL_ENTRY) { write_reloc_info = constpool_.RecordEntry(data, rmode); // Make sure the constant pool is not emitted in place of the next // instruction for which we just recorded relocation info. BlockConstPoolFor(1); } + // For modes that cannot use the constant pool, a different sequence of + // instructions will be emitted by this function's caller. if (!RelocInfo::IsNone(rmode) && write_reloc_info) { // Don't record external references unless the heap will be serialized. @@ -4778,6 +4794,34 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { } } +int Assembler::GetCodeTargetIndex(Handle target) { + int current = static_cast(code_targets_.size()); + if (current > 0 && !target.is_null() && + code_targets_.back().address() == target.address()) { + // Optimization if we keep jumping to the same code target. + return (current - 1); + } else { + code_targets_.push_back(target); + return current; + } +} + +void Assembler::near_jump(int offset, RelocInfo::Mode rmode) { + if (!RelocInfo::IsNone(rmode)) RecordRelocInfo(rmode, offset, NO_POOL_ENTRY); + b(offset); +} + +void Assembler::near_call(int offset, RelocInfo::Mode rmode) { + if (!RelocInfo::IsNone(rmode)) RecordRelocInfo(rmode, offset, NO_POOL_ENTRY); + bl(offset); +} + +void Assembler::near_call(HeapObjectRequest request) { + RequestHeapObject(request); + int index = GetCodeTargetIndex(Handle()); + RecordRelocInfo(RelocInfo::CODE_TARGET, index, NO_POOL_ENTRY); + bl(index); +} void Assembler::BlockConstPoolFor(int instructions) { int pc_limit = pc_offset() + instructions * kInstructionSize; @@ -4858,8 +4902,8 @@ bool Assembler::ShouldEmitVeneer(int max_reachable_pc, int margin) { void Assembler::RecordVeneerPool(int location_offset, int size) { - RelocInfo rinfo(buffer_ + location_offset, RelocInfo::VENEER_POOL, - static_cast(size), nullptr); + RelocInfo rinfo(reinterpret_cast
    (buffer_) + location_offset, + RelocInfo::VENEER_POOL, static_cast(size), nullptr); reloc_info_writer.Write(&rinfo); } @@ -4965,8 +5009,7 @@ void Assembler::CheckVeneerPool(bool force_emit, bool require_jump, int Assembler::buffer_space() const { - return static_cast(reloc_info_writer.pos() - - reinterpret_cast(pc_)); + return static_cast(reloc_info_writer.pos() - pc_); } @@ -5009,6 +5052,15 @@ void PatchingAssembler::PatchAdrFar(int64_t target_offset) { add(rd, rd, scratch); } +void PatchingAssembler::PatchSubSp(uint32_t immediate) { + // The code at the current instruction should be: + // sub sp, sp, #0 + + // Verify the expected code. + Instruction* expected_adr = InstructionAt(0); + CHECK(expected_adr->IsAddSubImmediate()); + sub(sp, sp, immediate); +} } // namespace internal } // namespace v8 diff --git a/deps/v8/src/arm64/assembler-arm64.h b/deps/v8/src/arm64/assembler-arm64.h index 94122e3939119d..431b5208112845 100644 --- a/deps/v8/src/arm64/assembler-arm64.h +++ b/deps/v8/src/arm64/assembler-arm64.h @@ -124,10 +124,6 @@ class CPURegister : public RegisterBase { } RegisterType type() const { return reg_type_; } - RegList bit() const { - DCHECK(static_cast(reg_code_) < (sizeof(RegList) * kBitsPerByte)); - return IsValid() ? 1UL << reg_code_ : 0; - } int SizeInBits() const { DCHECK(IsValid()); return reg_size_; @@ -445,7 +441,7 @@ ALIAS_REGISTER(Register, ip1, x17); ALIAS_REGISTER(Register, wip0, w16); ALIAS_REGISTER(Register, wip1, w17); // Root register. -ALIAS_REGISTER(Register, root, x26); +ALIAS_REGISTER(Register, kRootRegister, x26); ALIAS_REGISTER(Register, rr, x26); // Context pointer register. ALIAS_REGISTER(Register, cp, x27); @@ -485,14 +481,11 @@ bool AreAliased(const CPURegister& reg1, // same size, and are of the same type. The system stack pointer may be // specified. Arguments set to NoReg are ignored, as are any subsequent // arguments. At least one argument (reg1) must be valid (not NoCPUReg). -bool AreSameSizeAndType(const CPURegister& reg1, - const CPURegister& reg2, - const CPURegister& reg3 = NoCPUReg, - const CPURegister& reg4 = NoCPUReg, - const CPURegister& reg5 = NoCPUReg, - const CPURegister& reg6 = NoCPUReg, - const CPURegister& reg7 = NoCPUReg, - const CPURegister& reg8 = NoCPUReg); +bool AreSameSizeAndType( + const CPURegister& reg1, const CPURegister& reg2 = NoCPUReg, + const CPURegister& reg3 = NoCPUReg, const CPURegister& reg4 = NoCPUReg, + const CPURegister& reg5 = NoCPUReg, const CPURegister& reg6 = NoCPUReg, + const CPURegister& reg7 = NoCPUReg, const CPURegister& reg8 = NoCPUReg); // AreSameFormat returns true if all of the specified VRegisters have the same // vector format. Arguments set to NoVReg are ignored, as are any subsequent @@ -517,12 +510,12 @@ typedef VRegister Simd128Register; // Lists of registers. class CPURegList { public: - explicit CPURegList(CPURegister reg1, CPURegister reg2 = NoCPUReg, - CPURegister reg3 = NoCPUReg, CPURegister reg4 = NoCPUReg) - : list_(reg1.bit() | reg2.bit() | reg3.bit() | reg4.bit()), - size_(reg1.SizeInBits()), - type_(reg1.type()) { - DCHECK(AreSameSizeAndType(reg1, reg2, reg3, reg4)); + template + explicit CPURegList(CPURegister reg0, CPURegisters... regs) + : list_(CPURegister::ListOf(reg0, regs...)), + size_(reg0.SizeInBits()), + type_(reg0.type()) { + DCHECK(AreSameSizeAndType(reg0, regs...)); DCHECK(IsValid()); } @@ -646,8 +639,8 @@ class CPURegList { CPURegister::RegisterType type_; bool IsValid() const { - const RegList kValidRegisters = 0x8000000ffffffff; - const RegList kValidVRegisters = 0x0000000ffffffff; + constexpr RegList kValidRegisters{0x8000000ffffffff}; + constexpr RegList kValidVRegisters{0x0000000ffffffff}; switch (type_) { case CPURegister::kRegister: return (list_ & kValidRegisters) == list_; @@ -751,6 +744,7 @@ class Operand { inline Immediate immediate() const; inline int64_t ImmediateValue() const; + inline RelocInfo::Mode ImmediateRMode() const; inline Register reg() const; inline Shift shift() const; inline Extend extend() const; @@ -950,7 +944,22 @@ class Assembler : public AssemblerBase { // RelocInfo and pools ------------------------------------------------------ // Record relocation information for current pc_. - void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); + enum ConstantPoolMode { NEEDS_POOL_ENTRY, NO_POOL_ENTRY }; + void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0, + ConstantPoolMode constant_pool_mode = NEEDS_POOL_ENTRY); + + // Generate a B immediate instruction with the corresponding relocation info. + // 'offset' is the immediate to encode in the B instruction (so it is the + // difference between the target and the PC of the instruction, divided by + // the instruction size). + void near_jump(int offset, RelocInfo::Mode rmode); + // Generate a BL immediate instruction with the corresponding relocation info. + // As for near_jump, 'offset' is the immediate to encode in the BL + // instruction. + void near_call(int offset, RelocInfo::Mode rmode); + // Generate a BL immediate instruction with the corresponding relocation info + // for the input HeapObjectRequest. + void near_call(HeapObjectRequest request); // Return the address in the constant pool of the code target address used by // the branch/call instruction at pc. @@ -963,42 +972,59 @@ class Assembler : public AssemblerBase { Address pc, Address constant_pool, Address target, ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED); + // Add 'target' to the code_targets_ vector, if necessary, and return the + // offset at which it is stored. + int GetCodeTargetIndex(Handle target); + + // Returns the handle for the code object called at 'pc'. + // This might need to be temporarily encoded as an offset into code_targets_. + inline Handle code_target_object_handle_at(Address pc); + + // Returns the target address for a runtime function for the call encoded + // at 'pc'. + // Runtime entries can be temporarily encoded as the offset between the + // runtime function entrypoint and the code range start (stored in the + // code_range_start_ field), in order to be encodable as we generate the code, + // before it is moved into the code space. + inline Address runtime_entry_at(Address pc); + // Return the code target address at a call site from the return address of // that call in the instruction stream. inline static Address target_address_from_return_address(Address pc); - // Given the address of the beginning of a call, return the address in the - // instruction stream that call will return from. - inline static Address return_address_from_call_start(Address pc); - - // This sets the branch destination (which is in the constant pool on ARM). + // This sets the branch destination. 'location' here can be either the pc of + // an immediate branch or the address of an entry in the constant pool. // This is for calls and branches within generated code. - inline static void deserialization_set_special_target_at( - Address constant_pool_entry, Code* code, Address target); + inline static void deserialization_set_special_target_at(Address location, + Code* code, + Address target); + + // Get the size of the special target encoded at 'location'. + inline static int deserialization_special_target_size(Address location); // This sets the internal reference at the pc. inline static void deserialization_set_target_internal_reference_at( Address pc, Address target, RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE); - // All addresses in the constant pool are the same size as pointers. - static constexpr int kSpecialTargetSize = kPointerSize; + // This value is used in the serialization process and must be zero for + // ARM64, as the code target is split across multiple instructions and does + // not exist separately in the code, so the serializer should not step + // forwards in memory after a target is resolved and written. + static constexpr int kSpecialTargetSize = 0; // The sizes of the call sequences emitted by MacroAssembler::Call. // Wherever possible, use MacroAssembler::CallSize instead of these constants, // as it will choose the correct value for a given relocation mode. // - // Without relocation: - // movz temp, #(target & 0x000000000000ffff) - // movk temp, #(target & 0x00000000ffff0000) - // movk temp, #(target & 0x0000ffff00000000) - // blr temp + // A "near" call is encoded in a BL immediate instruction: + // bl target // - // With relocation: - // ldr temp, =target - // blr temp - static constexpr int kCallSizeWithoutRelocation = 4 * kInstructionSize; - static constexpr int kCallSizeWithRelocation = 2 * kInstructionSize; + // whereas a "far" call will be encoded like this: + // ldr temp, =target + // blr temp + static constexpr int kNearCallSize = 1 * kInstructionSize; + static constexpr int kFarCallSize = 2 * kInstructionSize; // Size of the generated code in bytes uint64_t SizeOfGeneratedCode() const { @@ -1021,7 +1047,7 @@ class Assembler : public AssemblerBase { // change things to be consistent. void AssertSizeOfCodeGeneratedSince(const Label* label, ptrdiff_t size) { DCHECK_GE(size, 0); - DCHECK(static_cast(size) == SizeOfCodeGeneratedSince(label)); + DCHECK_EQ(static_cast(size), SizeOfCodeGeneratedSince(label)); } // Return the number of instructions generated from label to the @@ -3431,8 +3457,6 @@ class Assembler : public AssemblerBase { // Verify that a label's link chain is intact. void CheckLabelLinkChain(Label const * label); - void RecordLiteral(int64_t imm, unsigned size); - // Postpone the generation of the constant pool for the specified number of // instructions. void BlockConstPoolFor(int instructions); @@ -3522,6 +3546,14 @@ class Assembler : public AssemblerBase { // are already bound. std::deque internal_reference_positions_; + // Before we copy code into the code space, we cannot encode calls to code + // targets as we normally would, as the difference between the instruction's + // location in the temporary buffer and the call target is not guaranteed to + // fit in the offset field. We keep track of the code handles we encounter + // in calls in this vector, and encode the index of the code handle in the + // vector instead. + std::vector> code_targets_; + // Relocation info records are also used during code generation as temporary // containers for constants and code target addresses until they are emitted // to the constant pool. These pending relocation info records are temporarily @@ -3666,6 +3698,7 @@ class PatchingAssembler : public Assembler { static constexpr int kAdrFarPatchableNNops = 2; static constexpr int kAdrFarPatchableNInstrs = kAdrFarPatchableNNops + 2; void PatchAdrFar(int64_t target_offset); + void PatchSubSp(uint32_t immediate); }; diff --git a/deps/v8/src/arm64/code-stubs-arm64.cc b/deps/v8/src/arm64/code-stubs-arm64.cc index c1cb3025a1fcef..cca4c302696ecb 100644 --- a/deps/v8/src/arm64/code-stubs-arm64.cc +++ b/deps/v8/src/arm64/code-stubs-arm64.cc @@ -16,6 +16,7 @@ #include "src/ic/ic.h" #include "src/ic/stub-cache.h" #include "src/isolate.h" +#include "src/objects/api-callbacks.h" #include "src/objects/regexp-match-info.h" #include "src/regexp/jsregexp.h" #include "src/regexp/regexp-macro-assembler.h" @@ -36,437 +37,13 @@ void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) { __ TailCallRuntime(Runtime::kNewArray); } - -void DoubleToIStub::Generate(MacroAssembler* masm) { - Label done; - Register result = destination(); - - DCHECK(result.Is64Bits()); - - UseScratchRegisterScope temps(masm); - Register scratch1 = temps.AcquireX(); - Register scratch2 = temps.AcquireX(); - DoubleRegister double_scratch = temps.AcquireD(); - - __ Peek(double_scratch, 0); - // Try to convert with a FPU convert instruction. This handles all - // non-saturating cases. - __ TryConvertDoubleToInt64(result, double_scratch, &done); - __ Fmov(result, double_scratch); - - // If we reach here we need to manually convert the input to an int32. - - // Extract the exponent. - Register exponent = scratch1; - __ Ubfx(exponent, result, HeapNumber::kMantissaBits, - HeapNumber::kExponentBits); - - // It the exponent is >= 84 (kMantissaBits + 32), the result is always 0 since - // the mantissa gets shifted completely out of the int32_t result. - __ Cmp(exponent, HeapNumber::kExponentBias + HeapNumber::kMantissaBits + 32); - __ CzeroX(result, ge); - __ B(ge, &done); - - // The Fcvtzs sequence handles all cases except where the conversion causes - // signed overflow in the int64_t target. Since we've already handled - // exponents >= 84, we can guarantee that 63 <= exponent < 84. - - if (masm->emit_debug_code()) { - __ Cmp(exponent, HeapNumber::kExponentBias + 63); - // Exponents less than this should have been handled by the Fcvt case. - __ Check(ge, AbortReason::kUnexpectedValue); - } - - // Isolate the mantissa bits, and set the implicit '1'. - Register mantissa = scratch2; - __ Ubfx(mantissa, result, 0, HeapNumber::kMantissaBits); - __ Orr(mantissa, mantissa, 1UL << HeapNumber::kMantissaBits); - - // Negate the mantissa if necessary. - __ Tst(result, kXSignMask); - __ Cneg(mantissa, mantissa, ne); - - // Shift the mantissa bits in the correct place. We know that we have to shift - // it left here, because exponent >= 63 >= kMantissaBits. - __ Sub(exponent, exponent, - HeapNumber::kExponentBias + HeapNumber::kMantissaBits); - __ Lsl(result, mantissa, exponent); - - __ Bind(&done); - __ Ret(); -} - - -void MathPowStub::Generate(MacroAssembler* masm) { - // Stack on entry: - // sp[0]: Exponent (as a tagged value). - // sp[1]: Base (as a tagged value). - // - // The (tagged) result will be returned in x0, as a heap number. - - Register exponent_tagged = MathPowTaggedDescriptor::exponent(); - DCHECK(exponent_tagged.is(x11)); - Register exponent_integer = MathPowIntegerDescriptor::exponent(); - DCHECK(exponent_integer.is(x12)); - Register saved_lr = x19; - VRegister result_double = d0; - VRegister base_double = d0; - VRegister exponent_double = d1; - VRegister base_double_copy = d2; - VRegister scratch1_double = d6; - VRegister scratch0_double = d7; - - // A fast-path for integer exponents. - Label exponent_is_smi, exponent_is_integer; - // Allocate a heap number for the result, and return it. - Label done; - - // Unpack the inputs. - - // Handle double (heap number) exponents. - // Detect integer exponents stored as doubles and handle those in the - // integer fast-path. - __ TryRepresentDoubleAsInt64(exponent_integer, exponent_double, - scratch0_double, &exponent_is_integer); - - { - AllowExternalCallThatCantCauseGC scope(masm); - __ Mov(saved_lr, lr); - __ CallCFunction(ExternalReference::power_double_double_function(isolate()), - 0, 2); - __ Mov(lr, saved_lr); - __ B(&done); - } - - // Handle SMI exponents. - __ Bind(&exponent_is_smi); - // x10 base_tagged The tagged base (input). - // x11 exponent_tagged The tagged exponent (input). - // d1 base_double The base as a double. - __ SmiUntag(exponent_integer, exponent_tagged); - - __ Bind(&exponent_is_integer); - // x10 base_tagged The tagged base (input). - // x11 exponent_tagged The tagged exponent (input). - // x12 exponent_integer The exponent as an integer. - // d1 base_double The base as a double. - - // Find abs(exponent). For negative exponents, we can find the inverse later. - Register exponent_abs = x13; - __ Cmp(exponent_integer, 0); - __ Cneg(exponent_abs, exponent_integer, mi); - // x13 exponent_abs The value of abs(exponent_integer). - - // Repeatedly multiply to calculate the power. - // result = 1.0; - // For each bit n (exponent_integer{n}) { - // if (exponent_integer{n}) { - // result *= base; - // } - // base *= base; - // if (remaining bits in exponent_integer are all zero) { - // break; - // } - // } - Label power_loop, power_loop_entry, power_loop_exit; - __ Fmov(scratch1_double, base_double); - __ Fmov(base_double_copy, base_double); - __ Fmov(result_double, 1.0); - __ B(&power_loop_entry); - - __ Bind(&power_loop); - __ Fmul(scratch1_double, scratch1_double, scratch1_double); - __ Lsr(exponent_abs, exponent_abs, 1); - __ Cbz(exponent_abs, &power_loop_exit); - - __ Bind(&power_loop_entry); - __ Tbz(exponent_abs, 0, &power_loop); - __ Fmul(result_double, result_double, scratch1_double); - __ B(&power_loop); - - __ Bind(&power_loop_exit); - - // If the exponent was positive, result_double holds the result. - __ Tbz(exponent_integer, kXSignBit, &done); - - // The exponent was negative, so find the inverse. - __ Fmov(scratch0_double, 1.0); - __ Fdiv(result_double, scratch0_double, result_double); - // ECMA-262 only requires Math.pow to return an 'implementation-dependent - // approximation' of base^exponent. However, mjsunit/math-pow uses Math.pow - // to calculate the subnormal value 2^-1074. This method of calculating - // negative powers doesn't work because 2^1074 overflows to infinity. To - // catch this corner-case, we bail out if the result was 0. (This can only - // occur if the divisor is infinity or the base is zero.) - __ Fcmp(result_double, 0.0); - __ B(&done, ne); - - AllowExternalCallThatCantCauseGC scope(masm); - __ Mov(saved_lr, lr); - __ Fmov(base_double, base_double_copy); - __ Scvtf(exponent_double, exponent_integer); - __ CallCFunction(ExternalReference::power_double_double_function(isolate()), - 0, 2); - __ Mov(lr, saved_lr); - __ Bind(&done); - __ Ret(); -} - void CodeStub::GenerateStubsAheadOfTime(Isolate* isolate) { // It is important that the following stubs are generated in this order // because pregenerated stubs can only call other pregenerated stubs. - CEntryStub::GenerateAheadOfTime(isolate); CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate); StoreFastElementStub::GenerateAheadOfTime(isolate); } - -void CodeStub::GenerateFPStubs(Isolate* isolate) { - // Floating-point code doesn't get special handling in ARM64, so there's - // nothing to do here. - USE(isolate); -} - -Movability CEntryStub::NeedsImmovableCode() { - // CEntryStub stores the return address on the stack before calling into - // C++ code. In some cases, the VM accesses this address, but it is not used - // when the C++ code returns to the stub because LR holds the return address - // in AAPCS64. If the stub is moved (perhaps during a GC), we could end up - // returning to dead code. - // TODO(jbramley): Whilst this is the only analysis that makes sense, I can't - // find any comment to confirm this, and I don't hit any crashes whatever - // this function returns. The anaylsis should be properly confirmed. - return kImmovable; -} - - -void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { - CEntryStub stub(isolate, 1, kDontSaveFPRegs); - stub.GetCode(); - CEntryStub stub_fp(isolate, 1, kSaveFPRegs); - stub_fp.GetCode(); -} - - -void CEntryStub::Generate(MacroAssembler* masm) { - // The Abort mechanism relies on CallRuntime, which in turn relies on - // CEntryStub, so until this stub has been generated, we have to use a - // fall-back Abort mechanism. - // - // Note that this stub must be generated before any use of Abort. - MacroAssembler::NoUseRealAbortsScope no_use_real_aborts(masm); - - ASM_LOCATION("CEntryStub::Generate entry"); - ProfileEntryHookStub::MaybeCallEntryHook(masm); - - // Register parameters: - // x0: argc (including receiver, untagged) - // x1: target - // If argv_in_register(): - // x11: argv (pointer to first argument) - // - // The stack on entry holds the arguments and the receiver, with the receiver - // at the highest address: - // - // sp]argc-1]: receiver - // sp[argc-2]: arg[argc-2] - // ... ... - // sp[1]: arg[1] - // sp[0]: arg[0] - // - // The arguments are in reverse order, so that arg[argc-2] is actually the - // first argument to the target function and arg[0] is the last. - const Register& argc_input = x0; - const Register& target_input = x1; - - // Calculate argv, argc and the target address, and store them in - // callee-saved registers so we can retry the call without having to reload - // these arguments. - // TODO(jbramley): If the first call attempt succeeds in the common case (as - // it should), then we might be better off putting these parameters directly - // into their argument registers, rather than using callee-saved registers and - // preserving them on the stack. - const Register& argv = x21; - const Register& argc = x22; - const Register& target = x23; - - // Derive argv from the stack pointer so that it points to the first argument - // (arg[argc-2]), or just below the receiver in case there are no arguments. - // - Adjust for the arg[] array. - Register temp_argv = x11; - if (!argv_in_register()) { - __ SlotAddress(temp_argv, x0); - // - Adjust for the receiver. - __ Sub(temp_argv, temp_argv, 1 * kPointerSize); - } - - // Reserve three slots to preserve x21-x23 callee-saved registers. - int extra_stack_space = 3; - // Enter the exit frame. - FrameScope scope(masm, StackFrame::MANUAL); - __ EnterExitFrame( - save_doubles(), x10, extra_stack_space, - is_builtin_exit() ? StackFrame::BUILTIN_EXIT : StackFrame::EXIT); - - // Poke callee-saved registers into reserved space. - __ Poke(argv, 1 * kPointerSize); - __ Poke(argc, 2 * kPointerSize); - __ Poke(target, 3 * kPointerSize); - - // We normally only keep tagged values in callee-saved registers, as they - // could be pushed onto the stack by called stubs and functions, and on the - // stack they can confuse the GC. However, we're only calling C functions - // which can push arbitrary data onto the stack anyway, and so the GC won't - // examine that part of the stack. - __ Mov(argc, argc_input); - __ Mov(target, target_input); - __ Mov(argv, temp_argv); - - // x21 : argv - // x22 : argc - // x23 : call target - // - // The stack (on entry) holds the arguments and the receiver, with the - // receiver at the highest address: - // - // argv[8]: receiver - // argv -> argv[0]: arg[argc-2] - // ... ... - // argv[...]: arg[1] - // argv[...]: arg[0] - // - // Immediately below (after) this is the exit frame, as constructed by - // EnterExitFrame: - // fp[8]: CallerPC (lr) - // fp -> fp[0]: CallerFP (old fp) - // fp[-8]: Space reserved for SPOffset. - // fp[-16]: CodeObject() - // sp[...]: Saved doubles, if saved_doubles is true. - // sp[32]: Alignment padding, if necessary. - // sp[24]: Preserved x23 (used for target). - // sp[16]: Preserved x22 (used for argc). - // sp[8]: Preserved x21 (used for argv). - // sp -> sp[0]: Space reserved for the return address. - // - // After a successful call, the exit frame, preserved registers (x21-x23) and - // the arguments (including the receiver) are dropped or popped as - // appropriate. The stub then returns. - // - // After an unsuccessful call, the exit frame and suchlike are left - // untouched, and the stub either throws an exception by jumping to one of - // the exception_returned label. - - // Prepare AAPCS64 arguments to pass to the builtin. - __ Mov(x0, argc); - __ Mov(x1, argv); - __ Mov(x2, ExternalReference::isolate_address(isolate())); - - Label return_location; - __ Adr(x12, &return_location); - __ Poke(x12, 0); - - if (__ emit_debug_code()) { - // Verify that the slot below fp[kSPOffset]-8 points to the return location - // (currently in x12). - UseScratchRegisterScope temps(masm); - Register temp = temps.AcquireX(); - __ Ldr(temp, MemOperand(fp, ExitFrameConstants::kSPOffset)); - __ Ldr(temp, MemOperand(temp, -static_cast(kXRegSize))); - __ Cmp(temp, x12); - __ Check(eq, AbortReason::kReturnAddressNotFoundInFrame); - } - - // Call the builtin. - __ Blr(target); - __ Bind(&return_location); - - // Result returned in x0 or x1:x0 - do not destroy these registers! - - // x0 result0 The return code from the call. - // x1 result1 For calls which return ObjectPair. - // x21 argv - // x22 argc - // x23 target - const Register& result = x0; - - // Check result for exception sentinel. - Label exception_returned; - __ CompareRoot(result, Heap::kExceptionRootIndex); - __ B(eq, &exception_returned); - - // The call succeeded, so unwind the stack and return. - - // Restore callee-saved registers x21-x23. - __ Mov(x11, argc); - - __ Peek(argv, 1 * kPointerSize); - __ Peek(argc, 2 * kPointerSize); - __ Peek(target, 3 * kPointerSize); - - __ LeaveExitFrame(save_doubles(), x10, x9); - if (!argv_in_register()) { - // Drop the remaining stack slots and return from the stub. - __ DropArguments(x11); - } - __ AssertFPCRState(); - __ Ret(); - - // Handling of exception. - __ Bind(&exception_returned); - - ExternalReference pending_handler_context_address( - IsolateAddressId::kPendingHandlerContextAddress, isolate()); - ExternalReference pending_handler_entrypoint_address( - IsolateAddressId::kPendingHandlerEntrypointAddress, isolate()); - ExternalReference pending_handler_fp_address( - IsolateAddressId::kPendingHandlerFPAddress, isolate()); - ExternalReference pending_handler_sp_address( - IsolateAddressId::kPendingHandlerSPAddress, isolate()); - - // Ask the runtime for help to determine the handler. This will set x0 to - // contain the current pending exception, don't clobber it. - ExternalReference find_handler(Runtime::kUnwindAndFindExceptionHandler, - isolate()); - { - FrameScope scope(masm, StackFrame::MANUAL); - __ Mov(x0, 0); // argc. - __ Mov(x1, 0); // argv. - __ Mov(x2, ExternalReference::isolate_address(isolate())); - __ CallCFunction(find_handler, 3); - } - - // Retrieve the handler context, SP and FP. - __ Mov(cp, Operand(pending_handler_context_address)); - __ Ldr(cp, MemOperand(cp)); - { - UseScratchRegisterScope temps(masm); - Register scratch = temps.AcquireX(); - __ Mov(scratch, Operand(pending_handler_sp_address)); - __ Ldr(scratch, MemOperand(scratch)); - __ Mov(sp, scratch); - } - __ Mov(fp, Operand(pending_handler_fp_address)); - __ Ldr(fp, MemOperand(fp)); - - // If the handler is a JS frame, restore the context to the frame. Note that - // the context will be set to (cp == 0) for non-JS frames. - Label not_js_frame; - __ Cbz(cp, ¬_js_frame); - __ Str(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); - __ Bind(¬_js_frame); - - // Reset the masking register. This is done independent of the underlying - // feature flag {FLAG_branch_load_poisoning} to make the snapshot work with - // both configurations. It is safe to always do this, because the underlying - // register is caller-saved and can be arbitrarily clobbered. - __ ResetSpeculationPoisonRegister(); - - // Compute the handler entry address and jump to it. - __ Mov(x10, Operand(pending_handler_entrypoint_address)); - __ Ldr(x10, MemOperand(x10)); - __ Br(x10); -} - // This is the entry point from C++. 5 arguments are provided in x0-x4. // See use of the JSEntryFunction for example in src/execution.cc. // Input: @@ -478,30 +55,35 @@ void CEntryStub::Generate(MacroAssembler* masm) { // Output: // x0: result. void JSEntryStub::Generate(MacroAssembler* masm) { + Label invoke, handler_entry, exit; + Register code_entry = x0; - // Enable instruction instrumentation. This only works on the simulator, and - // will have no effect on the model or real hardware. - __ EnableInstrumentation(); + { + NoRootArrayScope no_root_array(masm); - Label invoke, handler_entry, exit; + // Enable instruction instrumentation. This only works on the simulator, and + // will have no effect on the model or real hardware. + __ EnableInstrumentation(); - __ PushCalleeSavedRegisters(); + __ PushCalleeSavedRegisters(); - ProfileEntryHookStub::MaybeCallEntryHook(masm); + ProfileEntryHookStub::MaybeCallEntryHook(masm); - // Set up the reserved register for 0.0. - __ Fmov(fp_zero, 0.0); + // Set up the reserved register for 0.0. + __ Fmov(fp_zero, 0.0); - // Initialize the root array register - __ InitializeRootRegister(); + // Initialize the root array register + __ InitializeRootRegister(); + } // Build an entry frame (see layout below). StackFrame::Type marker = type(); int64_t bad_frame_pointer = -1L; // Bad frame pointer to fail if it is used. __ Mov(x13, bad_frame_pointer); __ Mov(x12, StackFrame::TypeToMarker(marker)); - __ Mov(x11, ExternalReference(IsolateAddressId::kCEntryFPAddress, isolate())); + __ Mov(x11, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, + isolate())); __ Ldr(x10, MemOperand(x11)); __ Push(x13, x12, xzr, x10); @@ -511,8 +93,9 @@ void JSEntryStub::Generate(MacroAssembler* masm) { // Push the JS entry frame marker. Also set js_entry_sp if this is the // outermost JS call. Label non_outermost_js, done; - ExternalReference js_entry_sp(IsolateAddressId::kJSEntrySPAddress, isolate()); - __ Mov(x10, ExternalReference(js_entry_sp)); + ExternalReference js_entry_sp = + ExternalReference::Create(IsolateAddressId::kJSEntrySPAddress, isolate()); + __ Mov(x10, js_entry_sp); __ Ldr(x11, MemOperand(x10)); // Select between the inner and outermost frame marker, based on the JS entry @@ -552,7 +135,7 @@ void JSEntryStub::Generate(MacroAssembler* masm) { // field in the JSEnv and return a failure sentinel. Coming in here the // fp will be invalid because the PushTryHandler below sets it to 0 to // signal the existence of the JSEntry frame. - __ Mov(x10, Operand(ExternalReference( + __ Mov(x10, Operand(ExternalReference::Create( IsolateAddressId::kPendingExceptionAddress, isolate()))); } __ Str(code_entry, MemOperand(x10)); @@ -569,7 +152,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { "Unexpected offset for StackHandlerConstants::kNextOffset"); // Link the current handler as the next handler. - __ Mov(x11, ExternalReference(IsolateAddressId::kHandlerAddress, isolate())); + __ Mov(x11, ExternalReference::Create(IsolateAddressId::kHandlerAddress, + isolate())); __ Ldr(x10, MemOperand(x11)); __ Push(padreg, x10); @@ -602,7 +186,8 @@ void JSEntryStub::Generate(MacroAssembler* masm) { static_assert(StackHandlerConstants::kNextOffset == 0 * kPointerSize, "Unexpected offset for StackHandlerConstants::kNextOffset"); __ Pop(x10, padreg); - __ Mov(x11, ExternalReference(IsolateAddressId::kHandlerAddress, isolate())); + __ Mov(x11, ExternalReference::Create(IsolateAddressId::kHandlerAddress, + isolate())); __ Drop(StackHandlerConstants::kSlotCount - 2); __ Str(x10, MemOperand(x11)); @@ -624,13 +209,13 @@ void JSEntryStub::Generate(MacroAssembler* masm) { __ PeekPair(x10, c_entry_fp, 1 * kPointerSize); __ Cmp(x10, StackFrame::OUTERMOST_JSENTRY_FRAME); __ B(ne, &non_outermost_js_2); - __ Mov(x12, ExternalReference(js_entry_sp)); + __ Mov(x12, js_entry_sp); __ Str(xzr, MemOperand(x12)); __ Bind(&non_outermost_js_2); // Restore the top frame descriptors from the stack. - __ Mov(x12, - ExternalReference(IsolateAddressId::kCEntryFPAddress, isolate())); + __ Mov(x12, ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, + isolate())); __ Str(c_entry_fp, MemOperand(x12)); } @@ -643,9 +228,9 @@ void JSEntryStub::Generate(MacroAssembler* masm) { __ Ret(); } -// The entry hook is a Push (stp) instruction, followed by a call. +// The entry hook is a Push (stp) instruction, followed by a near call. static const unsigned int kProfileEntryHookCallSize = - (1 * kInstructionSize) + Assembler::kCallSizeWithRelocation; + (1 * kInstructionSize) + Assembler::kNearCallSize; void ProfileEntryHookStub::MaybeCallEntryHookDelayed(TurboAssembler* tasm, Zone* zone) { @@ -700,9 +285,8 @@ void ProfileEntryHookStub::Generate(MacroAssembler* masm) { // Under the simulator we need to indirect the entry hook through a trampoline // function at a known address. ApiFunction dispatcher(FUNCTION_ADDR(EntryHookTrampoline)); - __ Mov(x10, Operand(ExternalReference(&dispatcher, - ExternalReference::BUILTIN_CALL, - isolate()))); + __ Mov(x10, Operand(ExternalReference::Create( + &dispatcher, ExternalReference::BUILTIN_CALL))); // It additionally takes an isolate as a third parameter __ Mov(x2, ExternalReference::isolate_address(isolate())); #endif @@ -735,12 +319,9 @@ void DirectCEntryStub::Generate(MacroAssembler* masm) { void DirectCEntryStub::GenerateCall(MacroAssembler* masm, Register target) { - intptr_t code = - reinterpret_cast(GetCode().location()); - __ Mov(lr, Operand(code, RelocInfo::CODE_TARGET)); - __ Mov(x10, target); // Branch to the stub. - __ Blr(lr); + __ Mov(x10, target); + __ Call(GetCode(), RelocInfo::CODE_TARGET); } template @@ -967,7 +548,7 @@ void ArrayConstructorStub::Generate(MacroAssembler* masm) { __ Poke(constructor, Operand(x0, LSL, kPointerSizeLog2)); __ Add(x0, x0, Operand(3)); __ Push(new_target, allocation_site); - __ JumpToExternalReference(ExternalReference(Runtime::kNewArray, isolate())); + __ JumpToExternalReference(ExternalReference::Create(Runtime::kNewArray)); } @@ -1131,8 +712,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, FrameScope frame(masm, StackFrame::MANUAL); __ PushSafepointRegisters(); __ Mov(x0, ExternalReference::isolate_address(isolate)); - __ CallCFunction(ExternalReference::log_enter_external_function(isolate), - 1); + __ CallCFunction(ExternalReference::log_enter_external_function(), 1); __ PopSafepointRegisters(); } @@ -1146,8 +726,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, FrameScope frame(masm, StackFrame::MANUAL); __ PushSafepointRegisters(); __ Mov(x0, ExternalReference::isolate_address(isolate)); - __ CallCFunction(ExternalReference::log_leave_external_function(isolate), - 1); + __ CallCFunction(ExternalReference::log_leave_external_function(), 1); __ PopSafepointRegisters(); } @@ -1203,8 +782,7 @@ static void CallApiFunctionAndReturn(MacroAssembler* masm, Register saved_result = x19; __ Mov(saved_result, x0); __ Mov(x0, ExternalReference::isolate_address(isolate)); - __ CallCFunction(ExternalReference::delete_handle_scope_extensions(isolate), - 1); + __ CallCFunction(ExternalReference::delete_handle_scope_extensions(), 1); __ Mov(x0, saved_result); __ B(&leave_exit_frame); } @@ -1275,8 +853,7 @@ void CallApiCallbackStub::Generate(MacroAssembler* masm) { __ Mov(x10, argc()); __ Str(x10, MemOperand(x0, 2 * kPointerSize)); - ExternalReference thunk_ref = - ExternalReference::invoke_function_callback(masm->isolate()); + ExternalReference thunk_ref = ExternalReference::invoke_function_callback(); AllowExternalCallThatCantCauseGC scope(masm); // Stores return the first js argument @@ -1354,7 +931,7 @@ void CallApiGetterStub::Generate(MacroAssembler* masm) { // x1 = v8::PropertyCallbackInfo& ExternalReference thunk_ref = - ExternalReference::invoke_accessor_getter_callback(isolate()); + ExternalReference::invoke_accessor_getter_callback(); Register api_function_address = x2; Register js_getter = x4; diff --git a/deps/v8/src/arm64/deoptimizer-arm64.cc b/deps/v8/src/arm64/deoptimizer-arm64.cc index a81621b6a9a2f1..397f4cb36d4595 100644 --- a/deps/v8/src/arm64/deoptimizer-arm64.cc +++ b/deps/v8/src/arm64/deoptimizer-arm64.cc @@ -115,8 +115,8 @@ void Deoptimizer::TableEntryGenerator::Generate() { DCHECK_EQ(saved_registers.Count() % 2, 0); __ PushCPURegList(saved_registers); - __ Mov(x3, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + __ Mov(x3, Operand(ExternalReference::Create( + IsolateAddressId::kCEntryFPAddress, isolate()))); __ Str(fp, MemOperand(x3)); const int kSavedRegistersAreaSize = @@ -165,7 +165,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { { // Call Deoptimizer::New(). AllowExternalCallThatCantCauseGC scope(masm()); - __ CallCFunction(ExternalReference::new_deoptimizer_function(isolate()), 6); + __ CallCFunction(ExternalReference::new_deoptimizer_function(), 6); } // Preserve "deoptimizer" object in register x0. @@ -212,8 +212,7 @@ void Deoptimizer::TableEntryGenerator::Generate() { { // Call Deoptimizer::ComputeOutputFrames(). AllowExternalCallThatCantCauseGC scope(masm()); - __ CallCFunction( - ExternalReference::compute_output_frames_function(isolate()), 1); + __ CallCFunction(ExternalReference::compute_output_frames_function(), 1); } __ Pop(x4, padreg); // Restore deoptimizer object (class Deoptimizer). diff --git a/deps/v8/src/arm64/instructions-arm64.h b/deps/v8/src/arm64/instructions-arm64.h index 499023ebb2b7b8..b1c488eb65407e 100644 --- a/deps/v8/src/arm64/instructions-arm64.h +++ b/deps/v8/src/arm64/instructions-arm64.h @@ -354,6 +354,12 @@ class Instruction { return (high16 << 16) | low16; } + bool IsUnconditionalBranch() const { + return Mask(UnconditionalBranchMask) == B; + } + + bool IsBranchAndLink() const { return Mask(UnconditionalBranchMask) == BL; } + bool IsBranchAndLinkToRegister() const { return Mask(UnconditionalBranchToRegisterMask) == BLR; } diff --git a/deps/v8/src/arm64/interface-descriptors-arm64.cc b/deps/v8/src/arm64/interface-descriptors-arm64.cc index bcbe5d97dce3f5..89c7b98f51152a 100644 --- a/deps/v8/src/arm64/interface-descriptors-arm64.cc +++ b/deps/v8/src/arm64/interface-descriptors-arm64.cc @@ -34,7 +34,7 @@ void RecordWriteDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(kParameterCount, default_stub_registers); } -const Register FastNewFunctionContextDescriptor::FunctionRegister() { +const Register FastNewFunctionContextDescriptor::ScopeInfoRegister() { return x1; } const Register FastNewFunctionContextDescriptor::SlotsRegister() { return x0; } @@ -260,14 +260,6 @@ void BinaryOpDescriptor::InitializePlatformSpecific( data->InitializePlatformSpecific(arraysize(registers), registers); } -void StringAddDescriptor::InitializePlatformSpecific( - CallInterfaceDescriptorData* data) { - // x1: left operand - // x0: right operand - Register registers[] = {x1, x0}; - data->InitializePlatformSpecific(arraysize(registers), registers); -} - void ArgumentAdaptorDescriptor::InitializePlatformSpecific( CallInterfaceDescriptorData* data) { static PlatformInterfaceDescriptor default_descriptor = diff --git a/deps/v8/src/arm64/macro-assembler-arm64-inl.h b/deps/v8/src/arm64/macro-assembler-arm64-inl.h index f96d4b20b8278a..20533362bc7927 100644 --- a/deps/v8/src/arm64/macro-assembler-arm64-inl.h +++ b/deps/v8/src/arm64/macro-assembler-arm64-inl.h @@ -1039,7 +1039,7 @@ void TurboAssembler::Uxtw(const Register& rd, const Register& rn) { void TurboAssembler::InitializeRootRegister() { ExternalReference roots_array_start = ExternalReference::roots_array_start(isolate()); - Mov(root, Operand(roots_array_start)); + Mov(kRootRegister, Operand(roots_array_start)); } diff --git a/deps/v8/src/arm64/macro-assembler-arm64.cc b/deps/v8/src/arm64/macro-assembler-arm64.cc index 5bbf71e28cf030..784ffbb2751123 100644 --- a/deps/v8/src/arm64/macro-assembler-arm64.cc +++ b/deps/v8/src/arm64/macro-assembler-arm64.cc @@ -8,7 +8,9 @@ #include "src/base/bits.h" #include "src/base/division-by-constant.h" #include "src/bootstrapper.h" +#include "src/builtins/constants-table-builder.h" #include "src/callable.h" +#include "src/code-factory.h" #include "src/code-stubs.h" #include "src/debug/debug.h" #include "src/external-reference-table.h" @@ -18,6 +20,7 @@ #include "src/instruction-stream.h" #include "src/register-configuration.h" #include "src/runtime/runtime.h" +#include "src/snapshot/serializer-common.h" #include "src/arm64/macro-assembler-arm64-inl.h" #include "src/arm64/macro-assembler-arm64.h" // Cannot be the first include @@ -28,7 +31,17 @@ namespace internal { MacroAssembler::MacroAssembler(Isolate* isolate, byte* buffer, unsigned buffer_size, CodeObjectRequired create_code_object) - : TurboAssembler(isolate, buffer, buffer_size, create_code_object) {} + : TurboAssembler(isolate, buffer, buffer_size, create_code_object) { + if (create_code_object == CodeObjectRequired::kYes) { + // Unlike TurboAssembler, which can be used off the main thread and may not + // allocate, macro assembler creates its own copy of the self-reference + // marker in order to disambiguate between self-references during nested + // code generation (e.g.: codegen of the current object triggers stub + // compilation through CodeStub::GetCode()). + code_object_ = Handle::New( + *isolate->factory()->NewSelfReferenceMarker(), isolate); + } +} CPURegList TurboAssembler::DefaultTmpList() { return CPURegList(ip0, ip1); } @@ -47,8 +60,8 @@ TurboAssembler::TurboAssembler(Isolate* isolate, void* buffer, int buffer_size, fptmp_list_(DefaultFPTmpList()), use_real_aborts_(true) { if (create_code_object == CodeObjectRequired::kYes) { - code_object_ = - Handle::New(isolate->heap()->undefined_value(), isolate); + code_object_ = Handle::New( + isolate->heap()->self_reference_marker(), isolate); } } @@ -310,7 +323,6 @@ void TurboAssembler::Mov(const Register& rd, const Operand& operand, if (operand.NeedsRelocation(this)) { Ldr(dst, operand); - } else if (operand.IsImmediate()) { // Call the macro assembler for generic immediates. Mov(dst, operand.ImmediateValue()); @@ -352,6 +364,16 @@ void TurboAssembler::Mov(const Register& rd, const Operand& operand, } } +void TurboAssembler::Mov(const Register& rd, ExternalReference reference) { +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + LookupExternalReference(rd, reference); + return; + } +#endif // V8_EMBEDDED_BUILTINS + Mov(rd, Operand(reference)); +} + void TurboAssembler::Movi16bitHelper(const VRegister& vd, uint64_t imm) { DCHECK(is_uint16(imm)); int byte1 = (imm & 0xFF); @@ -1355,8 +1377,7 @@ void TurboAssembler::Poke(const CPURegister& src, const Operand& offset) { Str(src, MemOperand(sp, offset)); } - -void MacroAssembler::Peek(const CPURegister& dst, const Operand& offset) { +void TurboAssembler::Peek(const CPURegister& dst, const Operand& offset) { if (offset.IsImmediate()) { DCHECK_GE(offset.ImmediateValue(), 0); } else if (emit_debug_code()) { @@ -1552,7 +1573,7 @@ void TurboAssembler::LoadRoot(CPURegister destination, Heap::RootListIndex index) { // TODO(jbramley): Most root values are constants, and can be synthesized // without a load. Refer to the ARM back end for details. - Ldr(destination, MemOperand(root, index << kPointerSizeLog2)); + Ldr(destination, MemOperand(kRootRegister, index << kPointerSizeLog2)); } @@ -1566,7 +1587,17 @@ void MacroAssembler::LoadObject(Register result, Handle object) { } void TurboAssembler::Move(Register dst, Register src) { Mov(dst, src); } -void TurboAssembler::Move(Register dst, Handle x) { Mov(dst, x); } + +void TurboAssembler::Move(Register dst, Handle x) { +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + LookupConstant(dst, x); + return; + } +#endif // V8_EMBEDDED_BUILTINS + Mov(dst, x); +} + void TurboAssembler::Move(Register dst, Smi* src) { Mov(dst, src); } void TurboAssembler::Swap(Register lhs, Register rhs) { @@ -1718,12 +1749,10 @@ void TurboAssembler::CallStubDelayed(CodeStub* stub) { Label start_call; Bind(&start_call); #endif - UseScratchRegisterScope temps(this); - Register temp = temps.AcquireX(); - Ldr(temp, Operand::EmbeddedCode(stub)); - Blr(temp); + Operand operand = Operand::EmbeddedCode(stub); + near_call(operand.heap_object_request()); #ifdef DEBUG - AssertSizeOfCodeGeneratedSince(&start_call, kCallSizeWithRelocation); + AssertSizeOfCodeGeneratedSince(&start_call, kNearCallSize); #endif } @@ -1744,8 +1773,10 @@ void TurboAssembler::CallRuntimeDelayed(Zone* zone, Runtime::FunctionId fid, // should remove this need and make the runtime routine entry code // smarter. Mov(x0, f->nargs); - Mov(x1, ExternalReference(f, isolate())); - CallStubDelayed(new (zone) CEntryStub(nullptr, 1, save_doubles)); + Mov(x1, ExternalReference::Create(f)); + Handle code = + CodeFactory::CEntry(isolate(), f->result_size, save_doubles); + Call(code, RelocInfo::CODE_TARGET); } void MacroAssembler::CallRuntime(const Runtime::Function* f, @@ -1760,23 +1791,23 @@ void MacroAssembler::CallRuntime(const Runtime::Function* f, // Place the necessary arguments. Mov(x0, num_arguments); - Mov(x1, ExternalReference(f, isolate())); + Mov(x1, ExternalReference::Create(f)); - CEntryStub stub(isolate(), 1, save_doubles); - CallStub(&stub); + Handle code = + CodeFactory::CEntry(isolate(), f->result_size, save_doubles); + Call(code, RelocInfo::CODE_TARGET); } void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin, bool builtin_exit_frame) { Mov(x1, builtin); - CEntryStub stub(isolate(), 1, kDontSaveFPRegs, kArgvOnStack, - builtin_exit_frame); - Jump(stub.GetCode(), RelocInfo::CODE_TARGET); + Handle code = CodeFactory::CEntry(isolate(), 1, kDontSaveFPRegs, + kArgvOnStack, builtin_exit_frame); + Jump(code, RelocInfo::CODE_TARGET); } void MacroAssembler::JumpToInstructionStream(Address entry) { - Mov(kOffHeapTrampolineRegister, - Operand(reinterpret_cast(entry), RelocInfo::OFF_HEAP_TARGET)); + Mov(kOffHeapTrampolineRegister, Operand(entry, RelocInfo::OFF_HEAP_TARGET)); Br(kOffHeapTrampolineRegister); } @@ -1790,7 +1821,7 @@ void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid) { // smarter. Mov(x0, function->nargs); } - JumpToExternalReference(ExternalReference(fid, isolate())); + JumpToExternalReference(ExternalReference::Create(fid)); } int TurboAssembler::ActivationFrameAlignment() { @@ -1852,30 +1883,124 @@ void TurboAssembler::CallCFunction(Register function, int num_of_reg_args, } } -void TurboAssembler::Jump(Register target) { Br(target); } +#ifdef V8_EMBEDDED_BUILTINS +void TurboAssembler::LookupConstant(Register destination, + Handle object) { + CHECK(isolate()->ShouldLoadConstantsFromRootList()); + CHECK(root_array_available_); -void TurboAssembler::Jump(intptr_t target, RelocInfo::Mode rmode, - Condition cond) { + // Ensure the given object is in the builtins constants table and fetch its + // index. + BuiltinsConstantsTableBuilder* builder = + isolate()->builtins_constants_table_builder(); + uint32_t index = builder->AddObject(object); + + // TODO(jgruber): Load builtins from the builtins table. + // TODO(jgruber): Ensure that code generation can recognize constant targets + // in kArchCallCodeObject. + + DCHECK(isolate()->heap()->RootCanBeTreatedAsConstant( + Heap::kBuiltinsConstantsTableRootIndex)); + + LoadRoot(destination, Heap::kBuiltinsConstantsTableRootIndex); + Ldr(destination, FieldMemOperand(destination, FixedArray::kHeaderSize + + index * kPointerSize)); +} + +void TurboAssembler::LookupExternalReference(Register destination, + ExternalReference reference) { + CHECK(reference.address() != + ExternalReference::roots_array_start(isolate()).address()); + CHECK(isolate()->ShouldLoadConstantsFromRootList()); + CHECK(root_array_available_); + + // Encode as an index into the external reference table stored on the isolate. + + ExternalReferenceEncoder encoder(isolate()); + ExternalReferenceEncoder::Value v = encoder.Encode(reference.address()); + CHECK(!v.is_from_api()); + uint32_t index = v.index(); + + // Generate code to load from the external reference table. + + int32_t roots_to_external_reference_offset = + Heap::roots_to_external_reference_table_offset() + + ExternalReferenceTable::OffsetOfEntry(index); + + Ldr(destination, + MemOperand(kRootRegister, roots_to_external_reference_offset)); +} +#endif // V8_EMBEDDED_BUILTINS + +void TurboAssembler::Jump(Register target, Condition cond) { + if (cond == nv) return; + Label done; + if (cond != al) B(NegateCondition(cond), &done); + Br(target); + Bind(&done); +} + +void TurboAssembler::JumpHelper(int64_t offset, RelocInfo::Mode rmode, + Condition cond) { if (cond == nv) return; - UseScratchRegisterScope temps(this); - Register temp = temps.AcquireX(); Label done; if (cond != al) B(NegateCondition(cond), &done); - Mov(temp, Operand(target, rmode)); - Br(temp); + if (CanUseNearCallOrJump(rmode)) { + DCHECK(IsNearCallOffset(offset)); + near_jump(static_cast(offset), rmode); + } else { + UseScratchRegisterScope temps(this); + Register temp = temps.AcquireX(); + uint64_t imm = reinterpret_cast(pc_) + offset * kInstructionSize; + Mov(temp, Immediate(imm, rmode)); + Br(temp); + } Bind(&done); } +namespace { + +// The calculated offset is either: +// * the 'target' input unmodified if this is a WASM call, or +// * the offset of the target from the current PC, in instructions, for any +// other type of call. +static int64_t CalculateTargetOffset(Address target, RelocInfo::Mode rmode, + byte* pc) { + int64_t offset = static_cast(target); + // The target of WebAssembly calls is still an index instead of an actual + // address at this point, and needs to be encoded as-is. + if (rmode != RelocInfo::WASM_CALL) { + offset -= reinterpret_cast(pc); + DCHECK_EQ(offset % kInstructionSize, 0); + offset = offset / static_cast(kInstructionSize); + } + return offset; +} +} // namespace + void TurboAssembler::Jump(Address target, RelocInfo::Mode rmode, Condition cond) { - DCHECK(!RelocInfo::IsCodeTarget(rmode)); - Jump(reinterpret_cast(target), rmode, cond); + JumpHelper(CalculateTargetOffset(target, rmode, pc_), rmode, cond); } void TurboAssembler::Jump(Handle code, RelocInfo::Mode rmode, Condition cond) { DCHECK(RelocInfo::IsCodeTarget(rmode)); - Jump(reinterpret_cast(code.address()), rmode, cond); +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + UseScratchRegisterScope temps(this); + Register scratch = temps.AcquireX(); + LookupConstant(scratch, code); + Add(scratch, scratch, Operand(Code::kHeaderSize - kHeapObjectTag)); + Jump(scratch, cond); + return; + } +#endif // V8_EMBEDDED_BUILTINS + if (CanUseNearCallOrJump(rmode)) { + JumpHelper(static_cast(GetCodeTargetIndex(code)), rmode, cond); + } else { + Jump(code.address(), rmode, cond); + } } void TurboAssembler::Call(Register target) { @@ -1892,20 +2017,6 @@ void TurboAssembler::Call(Register target) { #endif } -void TurboAssembler::Call(Label* target) { - BlockPoolsScope scope(this); -#ifdef DEBUG - Label start_call; - Bind(&start_call); -#endif - - Bl(target); - -#ifdef DEBUG - AssertSizeOfCodeGeneratedSince(&start_call, CallSize(target)); -#endif -} - // TurboAssembler::CallSize is sensitive to changes in this function, as it // requires to know how many instructions are used to branch to the target. void TurboAssembler::Call(Address target, RelocInfo::Mode rmode) { @@ -1915,33 +2026,40 @@ void TurboAssembler::Call(Address target, RelocInfo::Mode rmode) { Bind(&start_call); #endif - UseScratchRegisterScope temps(this); - Register temp = temps.AcquireX(); - - if (RelocInfo::IsNone(rmode)) { - // Addresses are 48 bits so we never need to load the upper 16 bits. - uint64_t imm = reinterpret_cast(target); - // If we don't use ARM tagged addresses, the 16 higher bits must be 0. - DCHECK_EQ((imm >> 48) & 0xFFFF, 0); - movz(temp, (imm >> 0) & 0xFFFF, 0); - movk(temp, (imm >> 16) & 0xFFFF, 16); - movk(temp, (imm >> 32) & 0xFFFF, 32); + if (CanUseNearCallOrJump(rmode)) { + int64_t offset = CalculateTargetOffset(target, rmode, pc_); + DCHECK(IsNearCallOffset(offset)); + near_call(static_cast(offset), rmode); } else { - Ldr(temp, Immediate(reinterpret_cast(target), rmode)); + IndirectCall(target, rmode); } - Blr(temp); #ifdef DEBUG AssertSizeOfCodeGeneratedSince(&start_call, CallSize(target, rmode)); #endif } void TurboAssembler::Call(Handle code, RelocInfo::Mode rmode) { + BlockPoolsScope scope(this); #ifdef DEBUG Label start_call; Bind(&start_call); #endif - Call(code.address(), rmode); +#ifdef V8_EMBEDDED_BUILTINS + if (root_array_available_ && isolate()->ShouldLoadConstantsFromRootList()) { + UseScratchRegisterScope temps(this); + Register scratch = temps.AcquireX(); + LookupConstant(scratch, code); + Add(scratch, scratch, Operand(Code::kHeaderSize - kHeapObjectTag)); + Call(scratch); + return; + } +#endif // V8_EMBEDDED_BUILTINS + if (CanUseNearCallOrJump(rmode)) { + near_call(GetCodeTargetIndex(code), rmode); + } else { + IndirectCall(code.address(), rmode); + } #ifdef DEBUG // Check the size of the code generated. @@ -1954,10 +2072,21 @@ void TurboAssembler::Call(ExternalReference target) { Register temp = temps.AcquireX(); // Immediate is in charge of setting the relocation mode to // EXTERNAL_REFERENCE. - Ldr(temp, Immediate(target)); + Mov(temp, Immediate(target)); Call(temp); } +void TurboAssembler::IndirectCall(Address target, RelocInfo::Mode rmode) { + UseScratchRegisterScope temps(this); + Register temp = temps.AcquireX(); + Mov(temp, Immediate(target, rmode)); + Blr(temp); +} + +bool TurboAssembler::IsNearCallOffset(int64_t offset) { + return is_int26(offset); +} + void TurboAssembler::CallForDeoptimization(Address target, RelocInfo::Mode rmode) { DCHECK_EQ(rmode, RelocInfo::RUNTIME_ENTRY); @@ -1972,12 +2101,20 @@ void TurboAssembler::CallForDeoptimization(Address target, // Deoptimisation table entries require the call address to be in x16, in // order to compute the entry id. + // TODO(all): Put the entry id back in the table now that we are using + // a direct branch for the call and do not need to set up x16. DCHECK(temp.Is(x16)); - Ldr(temp, Immediate(reinterpret_cast(target), rmode)); - Blr(temp); + Mov(temp, Immediate(target, rmode)); + + int64_t offset = static_cast(target) - + static_cast(isolate_data().code_range_start_); + DCHECK_EQ(offset % kInstructionSize, 0); + offset = offset / static_cast(kInstructionSize); + DCHECK(IsNearCallOffset(offset)); + near_call(static_cast(offset), rmode); #ifdef DEBUG - AssertSizeOfCodeGeneratedSince(&start_call, CallSize(target, rmode)); + AssertSizeOfCodeGeneratedSince(&start_call, kNearCallSize + kInstructionSize); #endif } @@ -1986,23 +2123,14 @@ int TurboAssembler::CallSize(Register target) { return kInstructionSize; } -int TurboAssembler::CallSize(Label* target) { - USE(target); - return kInstructionSize; -} - int TurboAssembler::CallSize(Address target, RelocInfo::Mode rmode) { USE(target); - - return RelocInfo::IsNone(rmode) ? kCallSizeWithoutRelocation - : kCallSizeWithRelocation; + return CanUseNearCallOrJump(rmode) ? kNearCallSize : kFarCallSize; } int TurboAssembler::CallSize(Handle code, RelocInfo::Mode rmode) { USE(code); - - return RelocInfo::IsNone(rmode) ? kCallSizeWithoutRelocation - : kCallSizeWithRelocation; + return CanUseNearCallOrJump(rmode) ? kNearCallSize : kFarCallSize; } void MacroAssembler::TryRepresentDoubleAsInt(Register as_int, VRegister value, @@ -2161,13 +2289,16 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, const ParameterCount& actual) { Label skip_hook; - ExternalReference debug_hook_active = - ExternalReference::debug_hook_on_function_call_address(isolate()); - Mov(x4, Operand(debug_hook_active)); + Mov(x4, ExternalReference::debug_hook_on_function_call_address(isolate())); Ldrsb(x4, MemOperand(x4)); Cbz(x4, &skip_hook); { + // Load receiver to pass it later to DebugOnFunctionCall hook. + Operand actual_op = actual.is_immediate() ? Operand(actual.immediate()) + : Operand(actual.reg()); + Mov(x4, actual_op); + Ldr(x4, MemOperand(sp, x4, LSL, kPointerSizeLog2)); FrameScope frame(this, has_frame() ? StackFrame::NONE : StackFrame::INTERNAL); @@ -2181,8 +2312,7 @@ void MacroAssembler::CheckDebugHook(Register fun, Register new_target, SmiTag(expected_reg); SmiTag(actual_reg); Push(expected_reg, actual_reg, new_target, fun); - - PushArgument(fun); + Push(fun, x4); CallRuntime(Runtime::kDebugOnFunctionCall); // Restore values from stack. @@ -2304,8 +2434,9 @@ void TurboAssembler::TryConvertDoubleToInt64(Register result, B(vc, done); } -void TurboAssembler::TruncateDoubleToIDelayed(Zone* zone, Register result, - DoubleRegister double_input) { +void TurboAssembler::TruncateDoubleToI(Isolate* isolate, Zone* zone, + Register result, + DoubleRegister double_input) { Label done; // Try to convert the double to an int64. If successful, the bottom 32 bits @@ -2315,9 +2446,9 @@ void TurboAssembler::TruncateDoubleToIDelayed(Zone* zone, Register result, // If we fell through then inline version didn't succeed - call stub instead. Push(lr, double_input); - auto stub = new (zone) DoubleToIStub(nullptr, result); - // DoubleToIStub preserves any registers it needs to clobber. - CallStubDelayed(stub); + // DoubleToI preserves any registers it needs to clobber. + Call(BUILTIN_CODE(isolate, DoubleToI), RelocInfo::CODE_TARGET); + Ldr(result, MemOperand(sp, 0)); DCHECK_EQ(xzr.SizeInBytes(), double_input.SizeInBytes()); Pop(xzr, lr); // xzr to drop the double input on the stack. @@ -2334,12 +2465,12 @@ void TurboAssembler::Prologue() { void TurboAssembler::EnterFrame(StackFrame::Type type) { UseScratchRegisterScope temps(this); - Register type_reg = temps.AcquireX(); - Register code_reg = temps.AcquireX(); if (type == StackFrame::INTERNAL) { + Register code_reg = temps.AcquireX(); + Move(code_reg, CodeObject()); + Register type_reg = temps.AcquireX(); Mov(type_reg, StackFrame::TypeToMarker(type)); - Mov(code_reg, Operand(CodeObject())); Push(lr, fp, type_reg, code_reg); Add(fp, sp, InternalFrameConstants::kFixedFrameSizeFromFp); // sp[4] : lr @@ -2347,6 +2478,7 @@ void TurboAssembler::EnterFrame(StackFrame::Type type) { // sp[1] : type // sp[0] : [code object] } else if (type == StackFrame::WASM_COMPILED) { + Register type_reg = temps.AcquireX(); Mov(type_reg, StackFrame::TypeToMarker(type)); Push(lr, fp); Mov(fp, sp); @@ -2357,6 +2489,7 @@ void TurboAssembler::EnterFrame(StackFrame::Type type) { // sp[0] : for alignment } else { DCHECK_EQ(type, StackFrame::CONSTRUCT); + Register type_reg = temps.AcquireX(); Mov(type_reg, StackFrame::TypeToMarker(type)); // Users of this frame type push a context pointer after the type field, @@ -2418,7 +2551,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, const Register& scratch, Mov(fp, sp); Mov(scratch, StackFrame::TypeToMarker(frame_type)); Push(scratch, xzr); - Mov(scratch, Operand(CodeObject())); + Move(scratch, CodeObject()); Push(scratch, padreg); // fp[8]: CallerPC (lr) // fp -> fp[0]: CallerFP (old fp) @@ -2434,11 +2567,11 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, const Register& scratch, STATIC_ASSERT((-4 * kPointerSize) == ExitFrameConstants::kPaddingOffset); // Save the frame pointer and context pointer in the top frame. - Mov(scratch, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + Mov(scratch, + ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, isolate())); Str(fp, MemOperand(scratch)); Mov(scratch, - Operand(ExternalReference(IsolateAddressId::kContextAddress, isolate()))); + ExternalReference::Create(IsolateAddressId::kContextAddress, isolate())); Str(cp, MemOperand(scratch)); STATIC_ASSERT((-4 * kPointerSize) == ExitFrameConstants::kLastExitFrameField); @@ -2481,19 +2614,19 @@ void MacroAssembler::LeaveExitFrame(bool restore_doubles, // Restore the context pointer from the top frame. Mov(scratch, - Operand(ExternalReference(IsolateAddressId::kContextAddress, isolate()))); + ExternalReference::Create(IsolateAddressId::kContextAddress, isolate())); Ldr(cp, MemOperand(scratch)); if (emit_debug_code()) { // Also emit debug code to clear the cp in the top frame. Mov(scratch2, Operand(Context::kInvalidContext)); - Mov(scratch, Operand(ExternalReference(IsolateAddressId::kContextAddress, - isolate()))); + Mov(scratch, ExternalReference::Create(IsolateAddressId::kContextAddress, + isolate())); Str(scratch2, MemOperand(scratch)); } // Clear the frame pointer from the top frame. - Mov(scratch, Operand(ExternalReference(IsolateAddressId::kCEntryFPAddress, - isolate()))); + Mov(scratch, + ExternalReference::Create(IsolateAddressId::kCEntryFPAddress, isolate())); Str(xzr, MemOperand(scratch)); // Pop the exit frame. @@ -2515,7 +2648,7 @@ void MacroAssembler::IncrementCounter(StatsCounter* counter, int value, Register scratch1, Register scratch2) { DCHECK_NE(value, 0); if (FLAG_native_code_counters && counter->Enabled()) { - Mov(scratch2, ExternalReference(counter)); + Mov(scratch2, ExternalReference::Create(counter)); Ldr(scratch1.W(), MemOperand(scratch2)); Add(scratch1.W(), scratch1.W(), value); Str(scratch1.W(), MemOperand(scratch2)); @@ -2530,9 +2663,7 @@ void MacroAssembler::DecrementCounter(StatsCounter* counter, int value, void MacroAssembler::MaybeDropFrames() { // Check whether we need to drop frames to restart a function on the stack. - ExternalReference restart_fp = - ExternalReference::debug_restart_fp_address(isolate()); - Mov(x1, Operand(restart_fp)); + Mov(x1, ExternalReference::debug_restart_fp_address(isolate())); Ldr(x1, MemOperand(x1)); Tst(x1, x1); Jump(BUILTIN_CODE(isolate(), FrameDropperTrampoline), RelocInfo::CODE_TARGET, @@ -2890,6 +3021,10 @@ void TurboAssembler::Assert(Condition cond, AbortReason reason) { } } +void TurboAssembler::AssertUnreachable(AbortReason reason) { + if (emit_debug_code()) Abort(reason); +} + void MacroAssembler::AssertRegisterIsRoot(Register reg, Heap::RootListIndex index, AbortReason reason) { @@ -3115,7 +3250,7 @@ void TurboAssembler::CallPrintf(int arg_count, const CPURegister* args) { dc32(arg_pattern_list); // kPrintfArgPatternListOffset } #else - Call(ExternalReference::printf_function(isolate())); + Call(ExternalReference::printf_function()); #endif } diff --git a/deps/v8/src/arm64/macro-assembler-arm64.h b/deps/v8/src/arm64/macro-assembler-arm64.h index 6b1b8957cb5dcf..16aa006b2f4660 100644 --- a/deps/v8/src/arm64/macro-assembler-arm64.h +++ b/deps/v8/src/arm64/macro-assembler-arm64.h @@ -58,6 +58,7 @@ namespace internal { #define kOffHeapTrampolineRegister ip0 #define kRuntimeCallFunctionRegister x1 #define kRuntimeCallArgCountRegister x0 +#define kWasmInstanceRegister x7 #define LS_MACRO_LIST(V) \ V(Ldrb, Register&, rt, LDRB_w) \ @@ -182,10 +183,10 @@ class TurboAssembler : public Assembler { CodeObjectRequired create_code_object); // The Abort method should call a V8 runtime function, but the CallRuntime - // mechanism depends on CEntryStub. If use_real_aborts is false, Abort will - // use a simpler abort mechanism that doesn't depend on CEntryStub. + // mechanism depends on CEntry. If use_real_aborts is false, Abort will + // use a simpler abort mechanism that doesn't depend on CEntry. // - // The purpose of this is to allow Aborts to be compiled whilst CEntryStub is + // The purpose of this is to allow Aborts to be compiled whilst CEntry is // being generated. bool use_real_aborts() const { return use_real_aborts_; } @@ -219,6 +220,14 @@ class TurboAssembler : public Assembler { bool allow_macro_instructions() const { return allow_macro_instructions_; } #endif + // We should not use near calls or jumps for JS->WASM calls and calls to + // external references, since the code spaces are not guaranteed to be close + // to each other. + bool CanUseNearCallOrJump(RelocInfo::Mode rmode) { + return rmode != RelocInfo::JS_TO_WASM_CALL && + rmode != RelocInfo::EXTERNAL_REFERENCE; + } + // Activation support. void EnterFrame(StackFrame::Type type); void EnterFrame(StackFrame::Type type, bool load_constant_pool_pointer_reg) { @@ -231,6 +240,7 @@ class TurboAssembler : public Assembler { void Mov(const Register& rd, const Operand& operand, DiscardMoveMode discard_mode = kDontDiscardForSameWReg); + void Mov(const Register& rd, ExternalReference reference); void Mov(const Register& rd, uint64_t imm); inline void Mov(const Register& rd, const Register& rm); void Mov(const VRegister& vd, int vd_index, const VRegister& vn, @@ -563,6 +573,7 @@ class TurboAssembler : public Assembler { bool AllowThisStubCall(CodeStub* stub); void CallStubDelayed(CodeStub* stub); + // TODO(jgruber): Remove in favor of MacroAssembler::CallRuntime. void CallRuntimeDelayed(Zone* zone, Runtime::FunctionId fid, SaveFPRegsMode save_doubles = kDontSaveFPRegs); @@ -582,6 +593,10 @@ class TurboAssembler : public Assembler { // Use --debug_code to enable. void Assert(Condition cond, AbortReason reason); + // Like Assert(), but without condition. + // Use --debug_code to enable. + void AssertUnreachable(AbortReason reason); + void AssertSmi(Register object, AbortReason reason = AbortReason::kOperandIsNotASmi); @@ -867,26 +882,32 @@ class TurboAssembler : public Assembler { int shift_amount = 0); void Movi(const VRegister& vd, uint64_t hi, uint64_t lo); - void Jump(Register target); +#ifdef V8_EMBEDDED_BUILTINS + void LookupConstant(Register destination, Handle object); + void LookupExternalReference(Register destination, + ExternalReference reference); +#endif // V8_EMBEDDED_BUILTINS + + void Jump(Register target, Condition cond = al); void Jump(Address target, RelocInfo::Mode rmode, Condition cond = al); void Jump(Handle code, RelocInfo::Mode rmode, Condition cond = al); - void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); void Call(Register target); - void Call(Label* target); void Call(Address target, RelocInfo::Mode rmode); void Call(Handle code, RelocInfo::Mode rmode = RelocInfo::CODE_TARGET); void Call(ExternalReference target); + // Generate an indirect call (for when a direct call's range is not adequate). + void IndirectCall(Address target, RelocInfo::Mode rmode); + void CallForDeoptimization(Address target, RelocInfo::Mode rmode); // For every Call variant, there is a matching CallSize function that returns // the size (in bytes) of the call sequence. static int CallSize(Register target); - static int CallSize(Label* target); - static int CallSize(Address target, RelocInfo::Mode rmode); - static int CallSize(Handle code, - RelocInfo::Mode rmode = RelocInfo::CODE_TARGET); + int CallSize(Address target, RelocInfo::Mode rmode); + int CallSize(Handle code, + RelocInfo::Mode rmode = RelocInfo::CODE_TARGET); // Calls a C function. // The called function is not allowed to trigger a @@ -902,8 +923,8 @@ class TurboAssembler : public Assembler { // Performs a truncating conversion of a floating point number as used by // the JS bitwise operations. See ECMA-262 9.5: ToInt32. // Exits with 'result' holding the answer. - void TruncateDoubleToIDelayed(Zone* zone, Register result, - DoubleRegister double_input); + void TruncateDoubleToI(Isolate* isolate, Zone* zone, Register result, + DoubleRegister double_input); inline void Mul(const Register& rd, const Register& rn, const Register& rm); @@ -984,6 +1005,10 @@ class TurboAssembler : public Assembler { // be 16 byte aligned. void Poke(const CPURegister& src, const Operand& offset); + // Peek at a value on the stack, and put it in 'dst'. The offset is in bytes. + // The stack pointer must be aligned to 16 bytes. + void Peek(const CPURegister& dst, const Operand& offset); + // Poke 'src1' and 'src2' onto the stack. The values written will be adjacent // with 'src2' at a higher address than 'src1'. The offset is in bytes. The // stack pointer must be 16 byte aligned. @@ -1206,6 +1231,9 @@ class TurboAssembler : public Assembler { void ResetSpeculationPoisonRegister(); + bool root_array_available() const { return root_array_available_; } + void set_root_array_available(bool v) { root_array_available_ = v; } + protected: // The actual Push and Pop implementations. These don't generate any code // other than that required for the push or pop. This allows @@ -1238,8 +1266,12 @@ class TurboAssembler : public Assembler { // have mixed types. The format string (x0) should not be included. void CallPrintf(int arg_count = 0, const CPURegister* args = nullptr); + // This handle will be patched with the code object on installation. + Handle code_object_; + private: bool has_frame_ = false; + bool root_array_available_ = true; Isolate* const isolate_; #if DEBUG // Tell whether any of the macro instruction can be used. When false the @@ -1247,8 +1279,7 @@ class TurboAssembler : public Assembler { // of instructions is called. bool allow_macro_instructions_; #endif - // This handle will be patched with the code object on installation. - Handle code_object_; + // Scratch registers available for use by the MacroAssembler. CPURegList tmp_list_; @@ -1276,6 +1307,9 @@ class TurboAssembler : public Assembler { void LoadStorePairMacro(const CPURegister& rt, const CPURegister& rt2, const MemOperand& addr, LoadStorePairOp op); + + static bool IsNearCallOffset(int64_t offset); + void JumpHelper(int64_t offset, RelocInfo::Mode rmode, Condition cond = al); }; class MacroAssembler : public TurboAssembler { @@ -1606,10 +1640,6 @@ class MacroAssembler : public TurboAssembler { std::vector queued_; }; - // Peek at a value on the stack, and put it in 'dst'. The offset is in bytes. - // The stack pointer must be aligned to 16 bytes. - void Peek(const CPURegister& dst, const Operand& offset); - // Peek at two values on the stack, and put them in 'dst1' and 'dst2'. The // values peeked will be adjacent, with the value in 'dst2' being from a // higher address than 'dst1'. The offset is in bytes. The stack pointer must diff --git a/deps/v8/src/arm64/simulator-arm64.cc b/deps/v8/src/arm64/simulator-arm64.cc index 290be13cd6a86e..839c4edda6f0f0 100644 --- a/deps/v8/src/arm64/simulator-arm64.cc +++ b/deps/v8/src/arm64/simulator-arm64.cc @@ -117,7 +117,7 @@ Simulator* Simulator::current(Isolate* isolate) { return sim; } -void Simulator::CallImpl(byte* entry, CallArgument* args) { +void Simulator::CallImpl(Address entry, CallArgument* args) { int index_x = 0; int index_d = 0; diff --git a/deps/v8/src/arm64/simulator-arm64.h b/deps/v8/src/arm64/simulator-arm64.h index 8cd1e02b6f8723..4bd9294c2f27de 100644 --- a/deps/v8/src/arm64/simulator-arm64.h +++ b/deps/v8/src/arm64/simulator-arm64.h @@ -719,7 +719,7 @@ class Simulator : public DecoderVisitor, public SimulatorBase { // Call an arbitrary function taking an arbitrary number of arguments. template - Return Call(byte* entry, Args... args) { + Return Call(Address entry, Args... args) { // Convert all arguments to CallArgument. CallArgument call_args[] = {CallArgument(args)..., CallArgument::End()}; CallImpl(entry, call_args); @@ -2279,7 +2279,7 @@ class Simulator : public DecoderVisitor, public SimulatorBase { private: void Init(FILE* stream); - V8_EXPORT_PRIVATE void CallImpl(byte* entry, CallArgument* args); + V8_EXPORT_PRIVATE void CallImpl(Address entry, CallArgument* args); // Read floating point return values. template diff --git a/deps/v8/src/asan.h b/deps/v8/src/asan.h new file mode 100644 index 00000000000000..fc0add016e1ca9 --- /dev/null +++ b/deps/v8/src/asan.h @@ -0,0 +1,30 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// AddressSanitizer support. + +#ifndef V8_ASAN_H_ +#define V8_ASAN_H_ + +#include "src/base/macros.h" +#include "src/globals.h" + +#ifdef V8_USE_ADDRESS_SANITIZER + +#include + +#else // !V8_USE_ADDRESS_SANITIZER + +#define ASAN_POISON_MEMORY_REGION(start, size) \ + static_assert( \ + (std::is_pointer::value || \ + std::is_same::value) && \ + std::is_convertible::value, \ + "static type violation") +#define ASAN_UNPOISON_MEMORY_REGION(start, size) \ + ASAN_POISON_MEMORY_REGION(start, size) + +#endif // V8_USE_ADDRESS_SANITIZER + +#endif // V8_ASAN_H_ diff --git a/deps/v8/src/asmjs/asm-parser.cc b/deps/v8/src/asmjs/asm-parser.cc index f210b42a62e0d0..1fca56b0fc8480 100644 --- a/deps/v8/src/asmjs/asm-parser.cc +++ b/deps/v8/src/asmjs/asm-parser.cc @@ -1345,7 +1345,8 @@ void AsmJsParser::ValidateCase() { FAIL("Numeric literal out of range"); } int32_t value = static_cast(uvalue); - if (negate) { + DCHECK_IMPLIES(negate && uvalue == 0x80000000, value == kMinInt); + if (negate && value != kMinInt) { value = -value; } EXPECT_TOKEN(':'); @@ -1406,7 +1407,6 @@ AsmType* AsmJsParser::NumericLiteral() { current_function_builder_->EmitI32Const(static_cast(uvalue)); return AsmType::FixNum(); } else { - DCHECK_LE(uvalue, 0xFFFFFFFF); current_function_builder_->EmitI32Const(static_cast(uvalue)); return AsmType::Unsigned(); } @@ -2501,18 +2501,16 @@ void AsmJsParser::GatherCases(ZoneVector* cases) { } } else if (depth == 1 && Peek(TOK(case))) { scanner_.Next(); - int32_t value; uint32_t uvalue; - if (Check('-')) { - if (!CheckForUnsigned(&uvalue)) { - break; - } - value = -static_cast(uvalue); - } else { - if (!CheckForUnsigned(&uvalue)) { - break; - } - value = static_cast(uvalue); + bool negate = false; + if (Check('-')) negate = true; + if (!CheckForUnsigned(&uvalue)) { + break; + } + int32_t value = static_cast(uvalue); + DCHECK_IMPLIES(negate && uvalue == 0x80000000, value == kMinInt); + if (negate && value != kMinInt) { + value = -value; } cases->push_back(value); } else if (Peek(AsmJsScanner::kEndOfInput) || diff --git a/deps/v8/src/assembler-arch.h b/deps/v8/src/assembler-arch.h new file mode 100644 index 00000000000000..5858907537c415 --- /dev/null +++ b/deps/v8/src/assembler-arch.h @@ -0,0 +1,30 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_ASSEMBLER_ARCH_H_ +#define V8_ASSEMBLER_ARCH_H_ + +#include "src/assembler.h" + +#if V8_TARGET_ARCH_IA32 +#include "src/ia32/assembler-ia32.h" +#elif V8_TARGET_ARCH_X64 +#include "src/x64/assembler-x64.h" +#elif V8_TARGET_ARCH_ARM64 +#include "src/arm64/assembler-arm64.h" +#elif V8_TARGET_ARCH_ARM +#include "src/arm/assembler-arm.h" +#elif V8_TARGET_ARCH_PPC +#include "src/ppc/assembler-ppc.h" +#elif V8_TARGET_ARCH_MIPS +#include "src/mips/assembler-mips.h" +#elif V8_TARGET_ARCH_MIPS64 +#include "src/mips64/assembler-mips64.h" +#elif V8_TARGET_ARCH_S390 +#include "src/s390/assembler-s390.h" +#else +#error Unknown architecture. +#endif + +#endif // V8_ASSEMBLER_ARCH_H_ diff --git a/deps/v8/src/assembler.cc b/deps/v8/src/assembler.cc index 48d10418c0ac18..799f08a4d893a5 100644 --- a/deps/v8/src/assembler.cc +++ b/deps/v8/src/assembler.cc @@ -54,7 +54,7 @@ const char* const RelocInfo::kFillerCommentString = "DEOPTIMIZATION PADDING"; AssemblerBase::IsolateData::IsolateData(Isolate* isolate) : serializer_enabled_(isolate->serializer_enabled()) -#if V8_TARGET_ARCH_X64 +#if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64 , code_range_start_( isolate->heap()->memory_allocator()->code_range()->start()) @@ -96,7 +96,7 @@ void AssemblerBase::FlushICache(void* start, size_t size) { void AssemblerBase::Print(Isolate* isolate) { OFStream os(stdout); - v8::internal::Disassembler::Decode(isolate, &os, buffer_, pc_, nullptr); + v8::internal::Disassembler::Decode(isolate, &os, buffer_, pc_); } // ----------------------------------------------------------------------------- @@ -313,9 +313,10 @@ void RelocInfoWriter::Write(const RelocInfo* rinfo) { byte* begin_pos = pos_; #endif DCHECK(rinfo->rmode() < RelocInfo::NUMBER_OF_MODES); - DCHECK_GE(rinfo->pc() - last_pc_, 0); + DCHECK_GE(rinfo->pc() - reinterpret_cast
    (last_pc_), 0); // Use unsigned delta-encoding for pc. - uint32_t pc_delta = static_cast(rinfo->pc() - last_pc_); + uint32_t pc_delta = + static_cast(rinfo->pc() - reinterpret_cast
    (last_pc_)); // The two most common modes are given small tags, and usually fit in a byte. if (rmode == RelocInfo::EMBEDDED_OBJECT) { @@ -337,7 +338,7 @@ void RelocInfoWriter::Write(const RelocInfo* rinfo) { WriteIntData(static_cast(rinfo->data())); } } - last_pc_ = rinfo->pc(); + last_pc_ = reinterpret_cast(rinfo->pc()); #ifdef DEBUG DCHECK_LE(begin_pos - pos_, kMaxSize); #endif @@ -450,38 +451,39 @@ void RelocIterator::next() { } RelocIterator::RelocIterator(Code* code, int mode_mask) - : mode_mask_(mode_mask) { - rinfo_.host_ = code; - rinfo_.pc_ = code->raw_instruction_start(); - rinfo_.data_ = 0; - rinfo_.constant_pool_ = code->constant_pool(); - // Relocation info is read backwards. - pos_ = code->relocation_start() + code->relocation_size(); - end_ = code->relocation_start(); - if (mode_mask_ == 0) pos_ = end_; - next(); -} + : RelocIterator(code, code->raw_instruction_start(), code->constant_pool(), + code->relocation_end(), code->relocation_start(), + mode_mask) {} + +RelocIterator::RelocIterator(const CodeReference code_reference, int mode_mask) + : RelocIterator(nullptr, code_reference.instruction_start(), + code_reference.constant_pool(), + code_reference.relocation_end(), + code_reference.relocation_start(), mode_mask) {} RelocIterator::RelocIterator(const CodeDesc& desc, int mode_mask) - : mode_mask_(mode_mask) { - rinfo_.pc_ = desc.buffer; - // Relocation info is read backwards. - pos_ = desc.buffer + desc.buffer_size; - end_ = pos_ - desc.reloc_size; - if (mode_mask_ == 0) pos_ = end_; - next(); -} + : RelocIterator(nullptr, reinterpret_cast
    (desc.buffer), 0, + desc.buffer + desc.buffer_size, + desc.buffer + desc.buffer_size - desc.reloc_size, + mode_mask) {} RelocIterator::RelocIterator(Vector instructions, Vector reloc_info, Address const_pool, int mode_mask) - : mode_mask_(mode_mask) { - rinfo_.pc_ = instructions.start(); - rinfo_.constant_pool_ = const_pool; + : RelocIterator(nullptr, reinterpret_cast
    (instructions.start()), + const_pool, reloc_info.start() + reloc_info.size(), + reloc_info.start(), mode_mask) { rinfo_.flags_ = RelocInfo::kInNativeWasmCode; +} + +RelocIterator::RelocIterator(Code* host, Address pc, Address constant_pool, + const byte* pos, const byte* end, int mode_mask) + : pos_(pos), end_(end), mode_mask_(mode_mask) { // Relocation info is read backwards. - pos_ = reloc_info.start() + reloc_info.size(); - end_ = reloc_info.start(); + DCHECK_GE(pos_, end_); + rinfo_.host_ = host; + rinfo_.pc_ = pc; + rinfo_.constant_pool_ = constant_pool; if (mode_mask_ == 0) pos_ = end_; next(); } @@ -551,7 +553,7 @@ const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) { } void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT - os << static_cast(pc_) << " " << RelocModeName(rmode_); + os << reinterpret_cast(pc_) << " " << RelocModeName(rmode_); if (IsComment(rmode_)) { os << " (" << reinterpret_cast(data_) << ")"; } else if (rmode_ == DEOPT_SCRIPT_OFFSET || rmode_ == DEOPT_INLINING_ID) { @@ -565,7 +567,7 @@ void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT ExternalReferenceEncoder ref_encoder(isolate); os << " (" << ref_encoder.NameOfAddress(isolate, target_external_reference()) - << ") (" << static_cast(target_external_reference()) + << ") (" << reinterpret_cast(target_external_reference()) << ")"; } else if (IsCodeTarget(rmode_)) { const Address code_target = target_address(); @@ -582,7 +584,7 @@ void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT } os << ") "; } - os << " (" << static_cast(target_address()) << ")"; + os << " (" << reinterpret_cast(target_address()) << ")"; } else if (IsRuntimeEntry(rmode_) && isolate->deoptimizer_data() != nullptr) { // Depotimization bailouts are stored as runtime entries. int id = Deoptimizer::GetDeoptimizationId( @@ -607,7 +609,7 @@ void RelocInfo::Verify(Isolate* isolate) { case CODE_TARGET: { // convert inline target address to code object Address addr = target_address(); - CHECK_NOT_NULL(addr); + CHECK_NE(addr, kNullAddress); // Check that we can find the right code object. Code* code = Code::GetCodeFromTargetAddress(addr); Object* found = isolate->FindCodeObject(addr); @@ -626,7 +628,7 @@ void RelocInfo::Verify(Isolate* isolate) { } case OFF_HEAP_TARGET: { Address addr = target_off_heap_target(); - CHECK_NOT_NULL(addr); + CHECK_NE(addr, kNullAddress); CHECK_NOT_NULL(InstructionStream::TryLookupCode(isolate, addr)); break; } diff --git a/deps/v8/src/assembler.h b/deps/v8/src/assembler.h index e79f4cc8693332..35f6147053a58e 100644 --- a/deps/v8/src/assembler.h +++ b/deps/v8/src/assembler.h @@ -40,6 +40,7 @@ #include #include "src/allocation.h" +#include "src/code-reference.h" #include "src/contexts.h" #include "src/deoptimize-reason.h" #include "src/double.h" @@ -98,7 +99,7 @@ class AssemblerBase: public Malloced { IsolateData(const IsolateData&) = default; bool serializer_enabled_; -#if V8_TARGET_ARCH_X64 +#if V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64 Address code_range_start_; #endif }; @@ -162,6 +163,9 @@ class AssemblerBase: public Malloced { static const int kMinimalBufferSize = 4*KB; static void FlushICache(void* start, size_t size); + static void FlushICache(Address start, size_t size) { + return FlushICache(reinterpret_cast(start), size); + } protected: // The buffer into which code and relocation info are generated. It could @@ -180,6 +184,7 @@ class AssemblerBase: public Malloced { } // The program counter, which points into the buffer above and moves forward. + // TODO(jkummerow): This should probably have type {Address}. byte* pc_; private: @@ -315,11 +320,6 @@ class CpuFeatures : public AllStatic { DISALLOW_COPY_AND_ASSIGN(CpuFeatures); }; - -enum SaveFPRegsMode { kDontSaveFPRegs, kSaveFPRegs }; - -enum ArgvMode { kArgvOnStack, kArgvInRegister }; - // Specifies whether to perform icache flush operations on RelocInfo updates. // If FLUSH_ICACHE_IF_NEEDED, the icache will always be flushed if an // instruction was modified. If SKIP_ICACHE_FLUSH the flush will always be @@ -414,7 +414,7 @@ class RelocInfo { RelocInfo() = default; - RelocInfo(byte* pc, Mode rmode, intptr_t data, Code* host) + RelocInfo(Address pc, Mode rmode, intptr_t data, Code* host) : pc_(pc), rmode_(rmode), data_(data), host_(host) {} static inline bool IsRealRelocMode(Mode mode) { @@ -476,8 +476,7 @@ class RelocInfo { static constexpr int ModeMask(Mode mode) { return 1 << mode; } // Accessors - byte* pc() const { return pc_; } - void set_pc(byte* pc) { pc_ = pc; } + Address pc() const { return pc_; } Mode rmode() const { return rmode_; } intptr_t data() const { return data_; } Code* host() const { return host_; } @@ -613,15 +612,13 @@ class RelocInfo { uint32_t embedded_size() const; Address embedded_address() const; - // On ARM, note that pc_ is the address of the constant pool entry - // to be relocated and not the address of the instruction - // referencing the constant pool entry (except when rmode_ == - // comment). - byte* pc_; + // On ARM/ARM64, note that pc_ is the address of the instruction referencing + // the constant pool and not the address of the constant pool entry. + Address pc_; Mode rmode_; intptr_t data_ = 0; Code* host_; - Address constant_pool_ = nullptr; + Address constant_pool_ = kNullAddress; Flags flags_; friend class RelocIterator; }; @@ -683,6 +680,8 @@ class RelocIterator: public Malloced { // iteration iff bit k of mode_mask is set. explicit RelocIterator(Code* code, int mode_mask = -1); explicit RelocIterator(const CodeDesc& desc, int mode_mask = -1); + explicit RelocIterator(const CodeReference code_reference, + int mode_mask = -1); explicit RelocIterator(Vector instructions, Vector reloc_info, Address const_pool, int mode_mask = -1); @@ -700,6 +699,9 @@ class RelocIterator: public Malloced { } private: + RelocIterator(Code* host, Address pc, Address constant_pool, const byte* pos, + const byte* end, int mode_mask); + // Advance* moves the position before/after reading. // *Read* reads from current byte(s) into rinfo_. // *Get* just reads and returns info on current byte. @@ -958,8 +960,8 @@ class RegisterBase { } template - static constexpr int bit() { - return 1 << code(); + static constexpr RegList bit() { + return RegList{1} << code(); } static SubType from_code(int code) { @@ -968,11 +970,18 @@ class RegisterBase { return SubType{code}; } + // Constexpr version (pass registers as template parameters). template static constexpr RegList ListOf() { return CombineRegLists(RegisterBase::bit()...); } + // Non-constexpr version (pass registers as method parameters). + template + static RegList ListOf(Register... regs) { + return CombineRegLists(regs.bit()...); + } + bool is_valid() const { return reg_code_ != kCode_no_reg; } int code() const { @@ -980,7 +989,7 @@ class RegisterBase { return reg_code_; } - int bit() const { return 1 << code(); } + RegList bit() const { return RegList{1} << code(); } inline constexpr bool operator==(SubType other) const { return reg_code_ == other.reg_code_; diff --git a/deps/v8/src/ast/ast-value-factory.cc b/deps/v8/src/ast/ast-value-factory.cc index 458afb8bc1d6c4..5efecc5375a33d 100644 --- a/deps/v8/src/ast/ast-value-factory.cc +++ b/deps/v8/src/ast/ast-value-factory.cc @@ -223,7 +223,6 @@ AstRawString* AstValueFactory::GetOneByteStringInternal( return GetString(hash_field, true, literal); } - AstRawString* AstValueFactory::GetTwoByteStringInternal( Vector literal) { uint32_t hash_field = StringHasher::HashSequentialString( @@ -231,7 +230,6 @@ AstRawString* AstValueFactory::GetTwoByteStringInternal( return GetString(hash_field, false, Vector::cast(literal)); } - const AstRawString* AstValueFactory::GetString(Handle literal) { AstRawString* result = nullptr; DisallowHeapAllocation no_gc; @@ -280,7 +278,6 @@ void AstValueFactory::Internalize(Isolate* isolate) { ResetStrings(); } - AstRawString* AstValueFactory::GetString(uint32_t hash_field, bool is_one_byte, Vector literal_bytes) { // literal_bytes here points to whatever the user passed, and this is OK diff --git a/deps/v8/src/ast/ast.cc b/deps/v8/src/ast/ast.cc index 392af8a5013afb..15b8bff61b697f 100644 --- a/deps/v8/src/ast/ast.cc +++ b/deps/v8/src/ast/ast.cc @@ -276,7 +276,9 @@ std::unique_ptr FunctionLiteral::GetDebugName() const { AllowHandleDereference allow_deref; return inferred_name_->ToCString(); } else { - return std::unique_ptr(new char{'\0'}); + char* empty_str = new char[1]; + empty_str[0] = 0; + return std::unique_ptr(empty_str); } // TODO(rmcilroy): Deal with two-character strings. diff --git a/deps/v8/src/ast/ast.h b/deps/v8/src/ast/ast.h index b95d54abb9bd93..35dede266b37e3 100644 --- a/deps/v8/src/ast/ast.h +++ b/deps/v8/src/ast/ast.h @@ -1429,6 +1429,8 @@ class ArrayLiteral final : public AggregateLiteral { ZoneList* values() const { return values_; } + int first_spread_index() const { return first_spread_index_; } + bool is_empty() const; // Populate the depth field and flags, returns the depth. @@ -1453,16 +1455,6 @@ class ArrayLiteral final : public AggregateLiteral { return AggregateLiteral::ComputeFlags(disable_mementos); } - // Provide a mechanism for iterating through values to rewrite spreads. - ZoneList::iterator FirstSpreadOrEndValue() const { - return (first_spread_index_ >= 0) ? values_->begin() + first_spread_index_ - : values_->end(); - } - ZoneList::iterator BeginValue() const { - return values_->begin(); - } - ZoneList::iterator EndValue() const { return values_->end(); } - private: friend class AstNodeFactory; diff --git a/deps/v8/src/ast/prettyprinter.cc b/deps/v8/src/ast/prettyprinter.cc index 2ca75e3c31e8ea..4f9029810a044a 100644 --- a/deps/v8/src/ast/prettyprinter.cc +++ b/deps/v8/src/ast/prettyprinter.cc @@ -1325,7 +1325,7 @@ void AstPrinter::VisitCompareOperation(CompareOperation* node) { void AstPrinter::VisitSpread(Spread* node) { - IndentedScope indent(this, "...", node->position()); + IndentedScope indent(this, "SPREAD", node->position()); Visit(node->expression()); } diff --git a/deps/v8/src/ast/scopes.cc b/deps/v8/src/ast/scopes.cc index 2c1355ead1416b..42affeea2c9dd5 100644 --- a/deps/v8/src/ast/scopes.cc +++ b/deps/v8/src/ast/scopes.cc @@ -2234,6 +2234,8 @@ void Scope::AllocateNonParameterLocal(Variable* var) { if (var->IsUnallocated() && MustAllocate(var)) { if (MustAllocateInContext(var)) { AllocateHeapSlot(var); + DCHECK_IMPLIES(is_catch_scope(), + var->index() == Context::THROWN_OBJECT_INDEX); } else { AllocateStackSlot(var); } diff --git a/deps/v8/src/base/adapters.h b/deps/v8/src/base/adapters.h index f04391e2b22cad..6eeaed140bf0dd 100644 --- a/deps/v8/src/base/adapters.h +++ b/deps/v8/src/base/adapters.h @@ -8,6 +8,8 @@ #ifndef V8_BASE_ADAPTERS_H_ #define V8_BASE_ADAPTERS_H_ +#include + #include "src/base/macros.h" namespace v8 { @@ -17,13 +19,15 @@ namespace base { template class ReversedAdapter { public: - typedef decltype(static_cast(nullptr)->rbegin()) Iterator; + using Iterator = + std::reverse_iterator()))>; explicit ReversedAdapter(T& t) : t_(t) {} - ReversedAdapter(const ReversedAdapter& ra) : t_(ra.t_) {} + ReversedAdapter(const ReversedAdapter& ra) = default; - Iterator begin() const { return t_.rbegin(); } - Iterator end() const { return t_.rend(); } + // TODO(clemensh): Use std::rbegin/std::rend once we have C++14 support. + Iterator begin() const { return Iterator(std::end(t_)); } + Iterator end() const { return Iterator(std::begin(t_)); } private: T& t_; diff --git a/deps/v8/src/base/atomic-utils.h b/deps/v8/src/base/atomic-utils.h index 5ba1ad424606c1..7787e4ff5279d3 100644 --- a/deps/v8/src/base/atomic-utils.h +++ b/deps/v8/src/base/atomic-utils.h @@ -14,6 +14,7 @@ namespace v8 { namespace base { +// Deprecated. Use std::atomic for new code. template class AtomicNumber { public: diff --git a/deps/v8/src/base/ieee754.cc b/deps/v8/src/base/ieee754.cc index 95b84cf328021b..7a1cc175cb733e 100644 --- a/deps/v8/src/base/ieee754.cc +++ b/deps/v8/src/base/ieee754.cc @@ -51,6 +51,7 @@ namespace { /* * A union which permits us to convert between a double and two 32 bit * ints. + * TODO(jkummerow): This is undefined behavior. Use bit_cast instead. */ #if V8_TARGET_LITTLE_ENDIAN diff --git a/deps/v8/src/base/logging.cc b/deps/v8/src/base/logging.cc index e58fdba09f54af..64f7fed413e3c1 100644 --- a/deps/v8/src/base/logging.cc +++ b/deps/v8/src/base/logging.cc @@ -135,7 +135,7 @@ class FailureMessage { static const uintptr_t kStartMarker = 0xdecade10; static const uintptr_t kEndMarker = 0xdecade11; - static const int kMessageBufferSize = 1024; + static const int kMessageBufferSize = 512; uintptr_t start_marker_ = kStartMarker; char message_[kMessageBufferSize]; @@ -154,6 +154,7 @@ void V8_Fatal(const char* file, int line, const char* format, ...) { fflush(stdout); fflush(stderr); + // Print the formatted message to stdout without cropping the output. v8::base::OS::PrintError("\n\n#\n# Fatal error in %s, line %d\n# ", file, line); diff --git a/deps/v8/src/base/macros.h b/deps/v8/src/base/macros.h index db2f19459168f0..3437309bc7ee2a 100644 --- a/deps/v8/src/base/macros.h +++ b/deps/v8/src/base/macros.h @@ -43,7 +43,6 @@ template char (&ArraySizeHelper(const T (&array)[N]))[N]; #endif - // bit_cast is a template function that implements the // equivalent of "*reinterpret_cast(&source)". We need this in // very low-level functions like the protobuf library and fast math @@ -150,20 +149,27 @@ V8_INLINE Dest bit_cast(Source const& source) { #define INLINE(declarator) V8_INLINE declarator #define NO_INLINE(declarator) V8_NOINLINE declarator -// Define V8_USE_ADDRESS_SANITIZER macros. +// Define V8_USE_ADDRESS_SANITIZER macro. #if defined(__has_feature) #if __has_feature(address_sanitizer) #define V8_USE_ADDRESS_SANITIZER 1 #endif #endif -// Define DISABLE_ASAN macros. +// Define DISABLE_ASAN macro. #ifdef V8_USE_ADDRESS_SANITIZER #define DISABLE_ASAN __attribute__((no_sanitize_address)) #else #define DISABLE_ASAN #endif +// Define V8_USE_MEMORY_SANITIZER macro. +#if defined(__has_feature) +#if __has_feature(memory_sanitizer) +#define V8_USE_MEMORY_SANITIZER 1 +#endif +#endif + // Helper macro to define no_sanitize attributes only with clang. #if defined(__clang__) && defined(__has_attribute) #if __has_attribute(no_sanitize) @@ -271,6 +277,14 @@ struct Use { } // namespace base } // namespace v8 +// implicit_cast(x) triggers an implicit cast from {x} to type {A}. This is +// useful in situations where static_cast(x) would do too much. +// Only use this for cheap-to-copy types, or use move semantics explicitly. +template +V8_INLINE A implicit_cast(A x) { + return x; +} + // Define our own macros for writing 64-bit constants. This is less fragile // than defining __STDC_CONSTANT_MACROS before including , and it // works on compilers that don't have it (like MSVC). @@ -296,6 +310,14 @@ struct Use { #define V8PRIdPTR V8_PTR_PREFIX "d" #define V8PRIuPTR V8_PTR_PREFIX "u" +#ifdef V8_TARGET_ARCH_64_BIT +#define V8_PTR_HEX_DIGITS 12 +#define V8PRIxPTR_FMT "0x%012" V8PRIxPTR +#else +#define V8_PTR_HEX_DIGITS 8 +#define V8PRIxPTR_FMT "0x%08" V8PRIxPTR +#endif + // ptrdiff_t is 't' according to the standard, but MSVC uses 'I'. #if V8_CC_MSVC #define V8PRIxPTRDIFF "Ix" diff --git a/deps/v8/src/base/platform/mutex.h b/deps/v8/src/base/platform/mutex.h index 59b653d6cd9060..6b4158f079e3e8 100644 --- a/deps/v8/src/base/platform/mutex.h +++ b/deps/v8/src/base/platform/mutex.h @@ -203,11 +203,21 @@ typedef LazyStaticInstance +// Controls whether a LockGuard always requires a valid Mutex or will just +// ignore it if it's nullptr. +enum class NullBehavior { kRequireNotNull, kIgnoreIfNull }; + +template class LockGuard final { public: - explicit LockGuard(Mutex* mutex) : mutex_(mutex) { mutex_->Lock(); } - ~LockGuard() { mutex_->Unlock(); } + explicit LockGuard(Mutex* mutex) : mutex_(mutex) { + if (Behavior == NullBehavior::kRequireNotNull || mutex_ != nullptr) { + mutex_->Lock(); + } + } + ~LockGuard() { + if (mutex_ != nullptr) mutex_->Unlock(); + } private: Mutex* mutex_; diff --git a/deps/v8/src/base/platform/platform-cygwin.cc b/deps/v8/src/base/platform/platform-cygwin.cc index ddcdc1a2d38078..c5d94fc6ba55b4 100644 --- a/deps/v8/src/base/platform/platform-cygwin.cc +++ b/deps/v8/src/base/platform/platform-cygwin.cc @@ -34,6 +34,8 @@ DWORD GetProtectionFromMemoryPermission(OS::MemoryPermission access) { switch (access) { case OS::MemoryPermission::kNoAccess: return PAGE_NOACCESS; + case OS::MemoryPermission::kRead: + return PAGE_READONLY; case OS::MemoryPermission::kReadWrite: return PAGE_READWRITE; case OS::MemoryPermission::kReadWriteExecute: diff --git a/deps/v8/src/base/platform/platform-fuchsia.cc b/deps/v8/src/base/platform/platform-fuchsia.cc index bba3f1baba953c..3a9d65a12d393d 100644 --- a/deps/v8/src/base/platform/platform-fuchsia.cc +++ b/deps/v8/src/base/platform/platform-fuchsia.cc @@ -19,6 +19,8 @@ uint32_t GetProtectionFromMemoryPermission(OS::MemoryPermission access) { switch (access) { case OS::MemoryPermission::kNoAccess: return 0; // no permissions + case OS::MemoryPermission::kRead: + return ZX_VM_FLAG_PERM_READ; case OS::MemoryPermission::kReadWrite: return ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE; case OS::MemoryPermission::kReadWriteExecute: diff --git a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc index fee67589b6b45b..d21107d6f785f6 100644 --- a/deps/v8/src/base/platform/platform-posix.cc +++ b/deps/v8/src/base/platform/platform-posix.cc @@ -112,6 +112,8 @@ int GetProtectionFromMemoryPermission(OS::MemoryPermission access) { switch (access) { case OS::MemoryPermission::kNoAccess: return PROT_NONE; + case OS::MemoryPermission::kRead: + return PROT_READ; case OS::MemoryPermission::kReadWrite: return PROT_READ | PROT_WRITE; case OS::MemoryPermission::kReadWriteExecute: @@ -352,6 +354,18 @@ bool OS::SetPermissions(void* address, size_t size, MemoryPermission access) { if (ret == 0 && access == OS::MemoryPermission::kNoAccess) { ret = ReclaimInaccessibleMemory(address, size); } + +// For accounting purposes, we want to call MADV_FREE_REUSE on macOS after +// changing permissions away from OS::MemoryPermission::kNoAccess. Since this +// state is not kept at this layer, we always call this if access != kNoAccess. +// The cost is a syscall that effectively no-ops. +// TODO(erikchen): Fix this to only call MADV_FREE_REUSE when necessary. +// https://crbug.com/823915 +#if defined(OS_MACOSX) + if (access != OS::MemoryPermission::kNoAccess) + madvise(address, size, MADV_FREE_REUSE); +#endif + return ret == 0; } diff --git a/deps/v8/src/base/platform/platform-win32.cc b/deps/v8/src/base/platform/platform-win32.cc index d4aa44f8a7d96f..f618c65fb6458e 100644 --- a/deps/v8/src/base/platform/platform-win32.cc +++ b/deps/v8/src/base/platform/platform-win32.cc @@ -758,6 +758,8 @@ DWORD GetProtectionFromMemoryPermission(OS::MemoryPermission access) { switch (access) { case OS::MemoryPermission::kNoAccess: return PAGE_NOACCESS; + case OS::MemoryPermission::kRead: + return PAGE_READONLY; case OS::MemoryPermission::kReadWrite: return PAGE_READWRITE; case OS::MemoryPermission::kReadWriteExecute: diff --git a/deps/v8/src/base/platform/platform.h b/deps/v8/src/base/platform/platform.h index 4fbc87c4aaa58c..5d015eeeac3798 100644 --- a/deps/v8/src/base/platform/platform.h +++ b/deps/v8/src/base/platform/platform.h @@ -159,6 +159,7 @@ class V8_BASE_EXPORT OS { // v8::PageAllocator. enum class MemoryPermission { kNoAccess, + kRead, kReadWrite, // TODO(hpayer): Remove this flag. Memory should never be rwx. kReadWriteExecute, diff --git a/deps/v8/src/base/template-utils.h b/deps/v8/src/base/template-utils.h index 07356346ec80eb..cbbe7e3cbf2d7e 100644 --- a/deps/v8/src/base/template-utils.h +++ b/deps/v8/src/base/template-utils.h @@ -56,13 +56,6 @@ std::unique_ptr make_unique(Args&&... args) { return std::unique_ptr(new T(std::forward(args)...)); } -// implicit_cast(x) triggers an implicit cast from {x} to type {A}. This is -// useful in situations where static_cast(x) would do too much. -template -A implicit_cast(A x) { - return x; -} - // Helper to determine how to pass values: Pass scalars and arrays by value, // others by const reference (even if it was a non-const ref before; this is // disallowed by the style guide anyway). diff --git a/deps/v8/src/bootstrapper.cc b/deps/v8/src/bootstrapper.cc index bbb374918a966a..ed8fd72c91527d 100644 --- a/deps/v8/src/bootstrapper.cc +++ b/deps/v8/src/bootstrapper.cc @@ -19,15 +19,18 @@ #include "src/extensions/trigger-failure-extension.h" #include "src/heap/heap.h" #include "src/isolate-inl.h" +#include "src/objects/api-callbacks.h" +#ifdef V8_INTL_SUPPORT +#include "src/objects/intl-objects.h" +#include "src/objects/js-locale.h" +#endif // V8_INTL_SUPPORT +#include "src/objects/hash-table-inl.h" #include "src/objects/js-regexp.h" +#include "src/objects/templates.h" #include "src/snapshot/natives.h" #include "src/snapshot/snapshot.h" #include "src/wasm/wasm-js.h" -#if V8_INTL_SUPPORT -#include "src/objects/intl-objects.h" -#endif // V8_INTL_SUPPORT - namespace v8 { namespace internal { @@ -161,7 +164,7 @@ class Genesis BASE_EMBEDDED { // Creates some basic objects. Used for creating a context from scratch. void CreateRoots(); // Creates the empty function. Used for creating a context from scratch. - Handle CreateEmptyFunction(Isolate* isolate); + Handle CreateEmptyFunction(); // Returns the %ThrowTypeError% intrinsic function. // See ES#sec-%throwtypeerror% for details. Handle GetThrowTypeErrorIntrinsic(); @@ -357,10 +360,11 @@ void Bootstrapper::DetachGlobal(Handle env) { namespace { V8_NOINLINE Handle SimpleCreateSharedFunctionInfo( - Isolate* isolate, Builtins::Name builtin_id, Handle name, int len) { + Isolate* isolate, Builtins::Name builtin_id, Handle name, int len, + FunctionKind kind = FunctionKind::kNormalFunction) { Handle shared = isolate->factory()->NewSharedFunctionInfoForBuiltin(name, builtin_id, - kNormalFunction); + kind); shared->set_internal_formal_parameter_count(len); shared->set_length(len); return shared; @@ -589,29 +593,33 @@ V8_NOINLINE void InstallSpeciesGetter(Handle constructor) { } // namespace -Handle Genesis::CreateEmptyFunction(Isolate* isolate) { - Factory* factory = isolate->factory(); - +Handle Genesis::CreateEmptyFunction() { // Allocate the function map first and then patch the prototype later. - Handle empty_function_map = factory->CreateSloppyFunctionMap( + Handle empty_function_map = factory()->CreateSloppyFunctionMap( FUNCTION_WITHOUT_PROTOTYPE, MaybeHandle()); empty_function_map->set_is_prototype_map(true); DCHECK(!empty_function_map->is_dictionary_map()); + // Allocate ScopeInfo for the empty function. + Handle scope_info = ScopeInfo::CreateForEmptyFunction(isolate()); + // Allocate the empty function as the prototype for function according to // ES#sec-properties-of-the-function-prototype-object NewFunctionArgs args = NewFunctionArgs::ForBuiltin( - factory->empty_string(), empty_function_map, Builtins::kEmptyFunction); - Handle empty_function = factory->NewFunction(args); + factory()->empty_string(), empty_function_map, Builtins::kEmptyFunction); + Handle empty_function = factory()->NewFunction(args); + native_context()->set_empty_function(*empty_function); // --- E m p t y --- - Handle source = factory->NewStringFromStaticChars("() {}"); - Handle - - + + - diff --git a/deps/v8/tools/turbolizer/node.js b/deps/v8/tools/turbolizer/node.js index b718cdc4dfee34..237b4d2b2d20f3 100644 --- a/deps/v8/tools/turbolizer/node.js +++ b/deps/v8/tools/turbolizer/node.js @@ -57,7 +57,11 @@ var Node = { } else { propsString = "[" + this.properties + "]"; } - return this.title + "\n" + propsString + "\n" + this.opinfo; + let title = this.title + "\n" + propsString + "\n" + this.opinfo; + if (this.origin) { + title += `\nOrigin: #${this.origin.nodeId} in phase ${this.origin.phase}/${this.origin.reducer}`; + } + return title; }, getDisplayLabel: function() { var result = this.id + ":" + this.label; diff --git a/deps/v8/tools/turbolizer/schedule-view.js b/deps/v8/tools/turbolizer/schedule-view.js index ef4789211d3c48..0864fceea7362b 100644 --- a/deps/v8/tools/turbolizer/schedule-view.js +++ b/deps/v8/tools/turbolizer/schedule-view.js @@ -5,124 +5,159 @@ "use strict"; class ScheduleView extends TextView { - constructor(id, broker) { - super(id, broker, null, false); - let view = this; - let BLOCK_STYLE = { - css: 'tag' - }; - const BLOCK_HEADER_STYLE = { - css: 'com', - block_id: -1, - location: function(text) { - let matches = /\d+/.exec(text); - if (!matches) return undefined; - BLOCK_HEADER_STYLE.block_id = Number(matches[0]); - return { - block_id: BLOCK_HEADER_STYLE.block_id - }; - }, - }; - const BLOCK_LINK_STYLE = { - css: 'tag', - link: function(text) { - let id = Number(text.substr(1)); - view.select(function(location) { return location.block_id == id; }, true, true); - } - }; - const ID_STYLE = { - css: 'tag', - location: function(text) { - let matches = /\d+/.exec(text); - return { - node_id: Number(matches[0]), - block_id: BLOCK_HEADER_STYLE.block_id - }; - }, - }; - const ID_LINK_STYLE = { - css: 'tag', - link: function(text) { - let id = Number(text); - view.select(function(location) { return location.node_id == id; }, true, true); + + createViewElement() { + const pane = document.createElement('div'); + pane.setAttribute('id', "schedule"); + pane.innerHTML = + `
    +       
      +
    +
    `; + return pane; + } + + constructor(parentId, broker) { + super(parentId, broker, null, false); + } + + attachSelection(s) { + const view = this; + if (!(s instanceof Set)) return; + view.selectionHandler.clear(); + view.blockSelectionHandler.clear(); + view.sourcePositionSelectionHandler.clear(); + const selected = new Array(); + for (const key of s) selected.push(key); + view.selectionHandler.select(selected, true); + } + + createElementFromString(htmlString) { + var div = document.createElement('div'); + div.innerHTML = htmlString.trim(); + return div.firstChild; + } + + + elementForBlock(block) { + const view = this; + function createElement(tag, cls, content) { + const el = document.createElement(tag); + if (isIterable(cls)) { + for (const c of cls) el.classList.add(c); + } else { + el.classList.add(cls); } - }; - const NODE_STYLE = { css: 'kwd' }; - const GOTO_STYLE = { css: 'kwd', - goto_id: -2, - location: function(text) { - return { - node_id: GOTO_STYLE.goto_id--, - block_id: BLOCK_HEADER_STYLE.block_id - }; + if (content != undefined) el.innerHTML = content; + return el; + } + + function mkNodeLinkHandler(nodeId) { + return function (e) { + e.stopPropagation(); + if (!e.shiftKey) { + view.selectionHandler.clear(); + } + view.selectionHandler.select([nodeId], true); + }; + } + + function createElementForNode(node) { + const nodeEl = createElement("div", "node"); + const node_id = createElement("div", ["node-id", "tag", "clickable"], node.id); + node_id.onclick = mkNodeLinkHandler(node.id); + view.addHtmlElementForNodeId(node.id, node_id); + nodeEl.appendChild(node_id); + const node_label = createElement("div", "node-label", node.label); + nodeEl.appendChild(node_label); + if (node.inputs.length > 0) { + const node_parameters = createElement("div", ["parameter-list", "comma-sep-list"]); + for (const param of node.inputs) { + const paramEl = createElement("div", ["parameter", "tag", "clickable"], param); + node_parameters.appendChild(paramEl); + paramEl.onclick = mkNodeLinkHandler(param); + view.addHtmlElementForNodeId(param, paramEl); + } + nodeEl.appendChild(node_parameters); } + return nodeEl; } - const ARROW_STYLE = { css: 'kwd' }; - let patterns = [ - [ - [/^--- BLOCK B\d+/, BLOCK_HEADER_STYLE, 1], - [/^\s+\d+: /, ID_STYLE, 2], - [/^\s+Goto/, GOTO_STYLE, 6], - [/^.*/, null, -1] - ], - [ - [/^ +/, null], - [/^\(deferred\)/, BLOCK_HEADER_STYLE], - [/^B\d+/, BLOCK_LINK_STYLE], - [/^<-/, ARROW_STYLE], - [/^->/, ARROW_STYLE], - [/^,/, null], - [/^---/, BLOCK_HEADER_STYLE, -1] - ], - // Parse opcode including [] - [ - [/^[A-Za-z0-9_]+(\[.*\])?$/, NODE_STYLE, -1], - [/^[A-Za-z0-9_]+(\[(\[.*?\]|.)*?\])?/, NODE_STYLE, 3] - ], - // Parse optional parameters - [ - [/^ /, null, 4], - [/^\(/, null], - [/^\d+/, ID_LINK_STYLE], - [/^, /, null], - [/^\)$/, null, -1], - [/^\)/, null, 4], - ], - [ - [/^ -> /, ARROW_STYLE, 5], - [/^.*/, null, -1] - ], - [ - [/^B\d+$/, BLOCK_LINK_STYLE, -1], - [/^B\d+/, BLOCK_LINK_STYLE], - [/^, /, null] - ], - [ - [/^ -> /, ARROW_STYLE], - [/^B\d+$/, BLOCK_LINK_STYLE, -1] - ] - ]; - this.setPatterns(patterns); + + function mkBlockLinkHandler(blockId) { + return function (e) { + e.stopPropagation(); + if (!e.shiftKey) { + view.blockSelectionHandler.clear(); + } + view.blockSelectionHandler.select(["" + blockId], true); + }; + } + + const schedule_block = createElement("div", "schedule-block"); + const block_id = createElement("div", ["block-id", "com", "clickable"], block.id); + block_id.onclick = mkBlockLinkHandler(block.id); + schedule_block.appendChild(block_id); + const block_pred = createElement("div", ["predecessor-list", "block-list", "comma-sep-list"]); + for (const pred of block.pred) { + const predEl = createElement("div", ["block-id", "com", "clickable"], pred); + predEl.onclick = mkBlockLinkHandler(pred); + block_pred.appendChild(predEl); + } + if (block.pred.length) schedule_block.appendChild(block_pred); + const nodes = createElement("div", "nodes"); + for (const node of block.nodes) { + nodes.appendChild(createElementForNode(node, block.id)); + } + schedule_block.appendChild(nodes); + const block_succ = createElement("div", ["successor-list", "block-list", "comma-sep-list"]); + for (const succ of block.succ) { + const succEl = createElement("div", ["block-id", "com", "clickable"], succ); + succEl.onclick = mkBlockLinkHandler(succ); + block_succ.appendChild(succEl); + } + if (block.succ.length) schedule_block.appendChild(block_succ); + this.addHtmlElementForBlockId(block.id, schedule_block); + return schedule_block; } - initializeContent(data, rememberedSelection) { - super.initializeContent(data, rememberedSelection); - var graph = this; - var locations = []; - for (var id of rememberedSelection) { - locations.push({ node_id : id }); + addBlocks(blocks) { + for (const block of blocks) { + const blockEl = this.elementForBlock(block); + this.divNode.appendChild(blockEl); } - this.selectLocations(locations, true, true); + } + + initializeContent(data, rememberedSelection) { + this.clearText(); + this.schedule = data.schedule + this.addBlocks(data.schedule.blocks); + this.attachSelection(rememberedSelection); } detachSelection() { - var selection = this.selection.detachSelection(); - var s = new Set(); - for (var i of selection) { - if (i.location.node_id != undefined && i.location.node_id > 0) { - s.add(i.location.node_id); + this.blockSelection.clear(); + this.sourcePositionSelection.clear(); + return this.selection.detachSelection(); + } + + lineString(node) { + return `${node.id}: ${node.label}(${node.inputs.join(", ")})` + } + + searchInputAction(view, searchBar) { + d3.event.stopPropagation(); + this.selectionHandler.clear(); + const query = searchBar.value; + if (query.length == 0) return; + const select = []; + window.sessionStorage.setItem("lastSearch", query); + const reg = new RegExp(query); + for (const node of this.schedule.nodes) { + if (node === undefined) continue; + if (reg.exec(this.lineString(node)) != null) { + select.push(node.id) } - }; - return s; + } + this.selectionHandler.select(select, true); } } diff --git a/deps/v8/tools/turbolizer/selection-broker.js b/deps/v8/tools/turbolizer/selection-broker.js index 822cf1ce1f62fd..0ae006aa0151bd 100644 --- a/deps/v8/tools/turbolizer/selection-broker.js +++ b/deps/v8/tools/turbolizer/selection-broker.js @@ -2,98 +2,72 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -var SelectionBroker = function() { - this.brokers = []; - this.dispatching = false; - this.lastDispatchingHandler = null; - this.nodePositionMap = []; - this.sortedPositionList = []; - this.positionNodeMap = []; -}; +class SelectionBroker { + constructor(sourceResolver) { + this.sourcePositionHandlers = []; + this.nodeHandlers = []; + this.blockHandlers = []; + this.sourceResolver = sourceResolver; + }; -SelectionBroker.prototype.addSelectionHandler = function(handler) { - this.brokers.push(handler); -} + addSourcePositionHandler(handler) { + this.sourcePositionHandlers.push(handler); + } -SelectionBroker.prototype.setNodePositionMap = function(map) { - let broker = this; - if (!map) return; - broker.nodePositionMap = map; - broker.positionNodeMap = []; - broker.sortedPositionList = []; - let next = 0; - for (let i in broker.nodePositionMap) { - broker.sortedPositionList[next] = Number(broker.nodePositionMap[i]); - broker.positionNodeMap[next++] = i; + addNodeHandler(handler) { + this.nodeHandlers.push(handler); } - broker.sortedPositionList = sortUnique(broker.sortedPositionList, - function(a,b) { return a - b; }); - this.positionNodeMap.sort(function(a,b) { - let result = broker.nodePositionMap[a] - broker.nodePositionMap[b]; - if (result != 0) return result; - return a - b; - }); -} -SelectionBroker.prototype.select = function(from, locations, selected) { - let broker = this; - if (!broker.dispatching) { - broker.lastDispatchingHandler = from; - try { - broker.dispatching = true; - let enrichLocations = function(locations) { - result = []; - for (let location of locations) { - let newLocation = {}; - if (location.pos_start != undefined) { - newLocation.pos_start = location.pos_start; - } - if (location.pos_end != undefined) { - newLocation.pos_end = location.pos_end; - } - if (location.node_id != undefined) { - newLocation.node_id = location.node_id; - } - if (location.block_id != undefined) { - newLocation.block_id = location.block_id; - } - if (newLocation.pos_start == undefined && - newLocation.pos_end == undefined && - newLocation.node_id != undefined) { - if (broker.nodePositionMap && broker.nodePositionMap[location.node_id]) { - newLocation.pos_start = broker.nodePositionMap[location.node_id]; - newLocation.pos_end = location.pos_start + 1; - } - } - result.push(newLocation); - } - return result; - } - locations = enrichLocations(locations); - for (var b of this.brokers) { - if (b != from) { - b.brokeredSelect(locations, selected); - } + addBlockHandler(handler) { + this.blockHandlers.push(handler); + } + + broadcastSourcePositionSelect(from, sourcePositions, selected) { + let broker = this; + sourcePositions = sourcePositions.filter((l) => { + if (typeof l.scriptOffset == 'undefined' + || typeof l.inliningId == 'undefined') { + console.log("Warning: invalid source position"); + return false; } + return true; + }); + for (var b of this.sourcePositionHandlers) { + if (b != from) b.brokeredSourcePositionSelect(sourcePositions, selected); } - finally { - broker.dispatching = false; + const nodes = this.sourceResolver.sourcePositionsToNodeIds(sourcePositions); + for (var b of this.nodeHandlers) { + if (b != from) b.brokeredNodeSelect(nodes, selected); } } -} -SelectionBroker.prototype.clear = function(from) { - this.lastDispatchingHandler = null; - if (!this.dispatching) { - try { - this.dispatching = true; - this.brokers.forEach(function(b) { - if (b != from) { - b.brokeredClear(); - } - }); - } finally { - this.dispatching = false; + broadcastNodeSelect(from, nodes, selected) { + let broker = this; + for (var b of this.nodeHandlers) { + if (b != from) b.brokeredNodeSelect(nodes, selected); } + const sourcePositions = this.sourceResolver.nodeIdsToSourcePositions(nodes); + for (var b of this.sourcePositionHandlers) { + if (b != from) b.brokeredSourcePositionSelect(sourcePositions, selected); + } + } + + broadcastBlockSelect(from, blocks, selected) { + let broker = this; + for (var b of this.blockHandlers) { + if (b != from) b.brokeredBlockSelect(blocks, selected); + } + } + + broadcastClear(from) { + this.sourcePositionHandlers.forEach(function (b) { + if (b != from) b.brokeredClear(); + }); + this.nodeHandlers.forEach(function (b) { + if (b != from) b.brokeredClear(); + }); + this.blockHandlers.forEach(function (b) { + if (b != from) b.brokeredClear(); + }); } } diff --git a/deps/v8/tools/turbolizer/selection.js b/deps/v8/tools/turbolizer/selection.js index 26f1bde1972606..9bd937c84a5916 100644 --- a/deps/v8/tools/turbolizer/selection.js +++ b/deps/v8/tools/turbolizer/selection.js @@ -2,107 +2,59 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -var Selection = function(handler) { - this.handler = handler; - this.selectionBase = null; - this.lastSelection = null; - this.selection = new Set(); -} - - -Selection.prototype.isEmpty = function() { - return this.selection.size == 0; -} - - -Selection.prototype.clear = function() { - var handler = this.handler; - this.selectionBase = null; - this.lastSelection = null; - handler.select(this.selection, false); - handler.clear(); - this.selection = new Set(); -} +class Selection { + constructor(stringKeyFnc) { + this.selection = new Map(); + this.stringKey = stringKeyFnc; + } + isEmpty() { + return this.selection.size == 0; + } -count = 0; + clear() { + this.selection = new Map(); + } -Selection.prototype.select = function(s, isSelected) { - var handler = this.handler; - if (!(Symbol.iterator in Object(s))) { s = [s]; } - if (isSelected) { - let first = true; - for (let i of s) { - if (first) { - this.selectionBase = i; - this.lastSelection = i; - first = false; + select(s, isSelected) { + if (!isIterable(s)) { s = [s]; } + for (const i of s) { + if (!i) continue; + if (isSelected == undefined) { + isSelected = !this.selection.has(this.stringKey(i)); } - this.selection.add(i); - } - handler.select(this.selection, true); - } else { - let unselectSet = new Set(); - for (let i of s) { - if (this.selection.has(i)) { - unselectSet.add(i); - this.selection.delete(i); + if (isSelected) { + this.selection.set(this.stringKey(i), i); + } else { + this.selection.delete(this.stringKey(i)); } } - handler.select(unselectSet, false); } -} + isSelected(i) { + return this.selection.has(this.stringKey(i)); + } -Selection.prototype.extendTo = function(pos) { - if (pos == this.lastSelection || this.lastSelection === null) return; + isKeySelected(key) { + return this.selection.has(key); + } - var handler = this.handler; - var pos_diff = handler.selectionDifference(pos, true, this.lastSelection, false); - var unselect_diff = []; - if (pos_diff.length == 0) { - pos_diff = handler.selectionDifference(this.selectionBase, false, pos, true); - if (pos_diff.length != 0) { - unselect_diff = handler.selectionDifference(this.lastSelection, true, this.selectionBase, false); - this.selection = new Set(); - this.selection.add(this.selectionBase); - for (var d of pos_diff) { - this.selection.add(d); - } - } else { - unselect_diff = handler.selectionDifference(this.lastSelection, true, pos, false); - for (var d of unselect_diff) { - this.selection.delete(d); - } - } - } else { - unselect_diff = handler.selectionDifference(this.selectionBase, false, this.lastSelection, true); - if (unselect_diff != 0) { - pos_diff = handler.selectionDifference(pos, true, this.selectionBase, false); - if (pos_diff.length == 0) { - unselect_diff = handler.selectionDifference(pos, false, this.lastSelection, true); - } - for (var d of unselect_diff) { - this.selection.delete(d); - } - } - if (pos_diff.length != 0) { - for (var d of pos_diff) { - this.selection.add(d); - } + selectedKeys() { + var result = new Set(); + for (var i of this.selection.keys()) { + result.add(i); } + return result; } - handler.select(unselect_diff, false); - handler.select(pos_diff, true); - this.lastSelection = pos; -} - -Selection.prototype.detachSelection = function() { - var result = new Set(); - for (var i of this.selection) { - result.add(i); + detachSelection() { + var result = new Set(); + for (var i of this.selection.keys()) { + result.add(i); + } + this.clear(); + return result; } - this.clear(); - return result; + + [Symbol.iterator]() { return this.selection.values() } } diff --git a/deps/v8/tools/turbolizer/source-resolver.js b/deps/v8/tools/turbolizer/source-resolver.js new file mode 100644 index 00000000000000..dd3732ad569524 --- /dev/null +++ b/deps/v8/tools/turbolizer/source-resolver.js @@ -0,0 +1,326 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function sourcePositionLe(a, b) { + if (a.inliningId == b.inliningId) { + return a.scriptOffset - b.scriptOffset; + } + return a.inliningId - b.inliningId; +} + +function sourcePositionEq(a, b) { + return a.inliningId == b.inliningId && + a.scriptOffset == b.scriptOffset; +} + +function sourcePositionToStringKey(sourcePosition) { + if (!sourcePosition) return "undefined"; + return "" + sourcePosition.inliningId + ":" + sourcePosition.scriptOffset; +} + +class SourceResolver { + constructor() { + // Maps node ids to source positions. + this.nodePositionMap = []; + // Maps source ids to source objects. + this.sources = []; + // Maps inlining ids to inlining objects. + this.inlinings = []; + // Maps source position keys to inlinings. + this.inliningsMap = new Map(); + // Maps source position keys to node ids. + this.positionToNodes = new Map(); + // Maps phase ids to phases. + this.phases = []; + // Maps phase names to phaseIds. + this.phaseNames = new Map(); + // The disassembly phase is stored separately. + this.disassemblyPhase = undefined; + } + + setSources(sources, mainBackup) { + if (sources) { + for (let [sourceId, source] of Object.entries(sources)) { + this.sources[sourceId] = source; + this.sources[sourceId].sourcePositions = []; + } + } + // This is a fallback if the JSON is incomplete (e.g. due to compiler crash). + if (!this.sources[-1]) { + this.sources[-1] = mainBackup; + this.sources[-1].sourcePositions = []; + } + } + + setInlinings(inlinings) { + if (inlinings) { + for (const [inliningId, inlining] of Object.entries(inlinings)) { + this.inlinings[inliningId] = inlining; + this.inliningsMap.set(sourcePositionToStringKey(inlining.inliningPosition), inlining); + } + } + // This is a default entry for the script itself that helps + // keep other code more uniform. + this.inlinings[-1] = { sourceId: -1 }; + } + + setNodePositionMap(map) { + if (!map) return; + if (typeof map[0] != 'object') { + const alternativeMap = {}; + for (const [nodeId, scriptOffset] of Object.entries(map)) { + alternativeMap[nodeId] = { scriptOffset: scriptOffset, inliningId: -1 }; + } + map = alternativeMap; + }; + + for (const [nodeId, sourcePosition] of Object.entries(map)) { + if (sourcePosition == undefined) { + console.log("Warning: undefined source position ", sourcePosition, " for nodeId ", nodeId); + } + const inliningId = sourcePosition.inliningId; + const inlining = this.inlinings[inliningId]; + if (inlining) { + const sourceId = inlining.sourceId; + this.sources[sourceId].sourcePositions.push(sourcePosition); + } + this.nodePositionMap[nodeId] = sourcePosition; + let key = sourcePositionToStringKey(sourcePosition); + if (!this.positionToNodes.has(key)) { + this.positionToNodes.set(key, []); + } + this.positionToNodes.get(key).push(nodeId); + } + for (const [sourceId, source] of Object.entries(this.sources)) { + source.sourcePositions = sortUnique(source.sourcePositions, + sourcePositionLe, sourcePositionEq); + } + } + + sourcePositionsToNodeIds(sourcePositions) { + const nodeIds = new Set(); + for (const sp of sourcePositions) { + let key = sourcePositionToStringKey(sp); + let nodeIdsForPosition = this.positionToNodes.get(key); + if (!nodeIdsForPosition) continue; + for (const nodeId of nodeIdsForPosition) { + nodeIds.add(nodeId); + } + } + return nodeIds; + } + + nodeIdsToSourcePositions(nodeIds) { + const sourcePositions = new Map(); + for (const nodeId of nodeIds) { + let sp = this.nodePositionMap[nodeId]; + let key = sourcePositionToStringKey(sp); + sourcePositions.set(key, sp); + } + const sourcePositionArray = []; + for (const sp of sourcePositions.values()) { + sourcePositionArray.push(sp); + } + return sourcePositionArray; + } + + forEachSource(f) { + this.sources.forEach(f); + } + + translateToSourceId(sourceId, location) { + for (const position of this.getInlineStack(location)) { + let inlining = this.inlinings[position.inliningId]; + if (!inlining) continue; + if (inlining.sourceId == sourceId) { + return position; + } + } + return location; + } + + addInliningPositions(sourcePosition, locations) { + let inlining = this.inliningsMap.get(sourcePositionToStringKey(sourcePosition)); + if (!inlining) return; + let sourceId = inlining.sourceId + const source = this.sources[sourceId]; + for (const sp of source.sourcePositions) { + locations.push(sp); + this.addInliningPositions(sp, locations); + } + } + + getInliningForPosition(sourcePosition) { + return this.inliningsMap.get(sourcePositionToStringKey(sourcePosition)); + } + + getSource(sourceId) { + return this.sources[sourceId]; + } + + getSourceName(sourceId) { + const source = this.sources[sourceId]; + return `${source.sourceName}:${source.functionName}`; + } + + sourcePositionFor(sourceId, scriptOffset) { + if (!this.sources[sourceId]) { + return null; + } + const list = this.sources[sourceId].sourcePositions; + for (let i = 0; i < list.length; i++) { + const sourcePosition = list[i] + const position = sourcePosition.scriptOffset; + const nextPosition = list[Math.min(i + 1, list.length - 1)].scriptOffset; + if ((position <= scriptOffset && scriptOffset < nextPosition)) { + return sourcePosition; + } + } + return null; + } + + sourcePositionsInRange(sourceId, start, end) { + if (!this.sources[sourceId]) return []; + const res = []; + const list = this.sources[sourceId].sourcePositions; + for (let i = 0; i < list.length; i++) { + const sourcePosition = list[i] + if (start <= sourcePosition.scriptOffset && sourcePosition.scriptOffset < end) { + res.push(sourcePosition); + } + } + return res; + } + + getInlineStack(sourcePosition) { + if (!sourcePosition) { + return []; + } + let inliningStack = []; + let cur = sourcePosition; + while (cur && cur.inliningId != -1) { + inliningStack.push(cur); + let inlining = this.inlinings[cur.inliningId]; + if (!inlining) { + break; + } + cur = inlining.inliningPosition; + } + if (cur && cur.inliningId == -1) { + inliningStack.push(cur); + } + return inliningStack; + } + + parsePhases(phases) { + for (const [phaseId, phase] of Object.entries(phases)) { + if (phase.type == 'disassembly') { + this.disassemblyPhase = phase; + } else if (phase.type == 'schedule') { + this.phases.push(this.parseSchedule(phase)) + this.phaseNames.set(phase.name, this.phases.length); + } else { + this.phases.push(phase); + this.phaseNames.set(phase.name, this.phases.length); + } + } + } + + repairPhaseId(anyPhaseId) { + return Math.max(0, Math.min(anyPhaseId, this.phases.length - 1)) + } + + getPhase(phaseId) { + return this.phases[phaseId]; + } + + getPhaseIdByName(phaseName) { + return this.phaseNames.get(phaseName); + } + + forEachPhase(f) { + this.phases.forEach(f); + } + + parseSchedule(phase) { + function createNode(state, match) { + let inputs = []; + if (match.groups.args) { + const nodeIdsString = match.groups.args.replace(/\s/g, ''); + const nodeIdStrings = nodeIdsString.split(','); + inputs = nodeIdStrings.map((n) => Number.parseInt(n, 10)); + } + const node = {id: Number.parseInt(match.groups.id, 10), + label: match.groups.label, + inputs: inputs}; + if (match.groups.blocks) { + const nodeIdsString = match.groups.blocks.replace(/\s/g, '').replace(/B/g,''); + const nodeIdStrings = nodeIdsString.split(','); + const successors = nodeIdStrings.map((n) => Number.parseInt(n, 10)); + state.currentBlock.succ = successors; + } + state.nodes[node.id] = node; + state.currentBlock.nodes.push(node); + } + function createBlock(state, match) { + let predecessors = []; + if (match.groups.in) { + const blockIdsString = match.groups.in.replace(/\s/g, '').replace(/B/g, ''); + const blockIdStrings = blockIdsString.split(','); + predecessors = blockIdStrings.map((n) => Number.parseInt(n, 10)); + } + const block = {id: Number.parseInt(match.groups.id, 10), + isDeferred: match.groups.deferred != undefined, + pred: predecessors.sort(), + succ: [], + nodes: []}; + state.blocks[block.id] = block; + state.currentBlock = block; + } + function setGotoSuccessor(state, match) { + state.currentBlock.succ = [Number.parseInt(match.groups.successor.replace(/\s/g, ''), 10)]; + } + const rules = [ + { + lineRegexps: + [ /^\s*(?\d+):\ (?

    rNsn0$hH14$g`i zUfS#AcfXvD;XG$;aJg(ew)rC_<yTQ*qS#;%b&-+v!^oR zu(PqUhX1!@2@%?h=*uF@?B7;Px5dM#iJ5ptoGhMaA10hV@m@v1;pK$OB8} zfh>X~K|ldFE`aV%XzK%Hc>IqbWJ8}31R26jfCTk@K_e&2!E-$Uc;;zn-T_$=@X+_+ zyDxyF3WQ8pu`kH9N)AEVOh{b}W3B+xc)0I52%KV5ue}JSo8Y~dAax;_XTXeQP}2*= zAAvBQ3t|jkR)g?}GA@@AjnB(1^R-OBrHGjmBAIkqF86ShU#?gJei=^49+xNQ z8VoV4uLAl8!7oE*@>vmHk{}}$+%B*=fEdWgf;m$`BZ3%!qyo5YDlESn7B7TF1(25k zV@E?)BKUmZ^}_P+fmH>o>S6USA!iJ9Rl(x>;LdNre_aL&8MbVICtrZY)8WeTpiqI- z1&?ll2fq&^0rXh|Edk_8a}!qhhfSx|ldF8i3>^1IPBZk~<**!R6=3 zp$@XMA}KxEN14qY%W0nAG@4CTH6zD(z?1QW@iU zmPHf;)O5CEh|M53E{d-1W;_B6`9z{LpVkRl`g$4k1sH2I;TUcuE;fTTmx!P@VE>- z`xIQY1)g~aezPxlZg@Bp%!W4}0h0t-V`2O#PJnUiCEFFHIgifo# z?-TKO0?0xl;U+cdc|P0$FpbLQ7uh0Oy$X~tVP-lJ5n5zPX5MrI0CSh*Vzv1QkI=Dn zX(kT0L}Y}Po3GU36=A}}1e`8ES$9uHrx6&o`H6_oGU1U$`1}$^la_H45?Oj}HY(Nm zJ3T6unw*3r#-wIqP%9Z5HGz4#W6-J3ZHC6CjUrnXFza>=Y#)w?AaCz6wyDdjA3m} z9)nInWTY-w2U<0e+TfLR1`Rq+e}?f`ALWmj{6%Pa3Ly{L`P~bh?PpR zjN9WOOr>YY=|mD#=+x&nL}5BTs(>F+23Zzyctj%gI-G7NsI(YV3I^>?!i`2WpE1|F z-|xlhlZi3taJZcK1vQcSFEBJh5Lj~cSVkOv6oAVcz~vT^!_?>unvjO|RY0T}l)%u? z*|;W!06qPn)PeCFV_h{GSi1&R?+S)NI9;F)gPX61H7~;JKZSv2*je)Fa}`P$Y=p~~ z!@RrTkvE{O7p}P$3}@|Ba6`qJM){S{1Ql>}Pb;nM7FNC2KwYx~km>2N($X}-vBQlt zcl+q9?4YR9imjxY-@Q;v_pqPFeU)t5(ZcH8{kUu{_OB^pSEG-B)5XS(4cJ8JZR%&k z<`w`Nk9V+TcPBQBgY|1`8E{LidF=#^ZG#*u>*EittZZ?%2r_E|-!^vuDtBC~q zv$mezUMEhggO}f|4;ieB9Ws!S23j=~R|i?sX*N|@4pC-^jXJl%`fxQo@)lTKXY^+L z{-Db@Gyl{}e~$NCuZ0JG0i7Zo-3Z%WgunkB?w$`$fjnil*Ej+;1Z5;^RZ9KZ!g|%l8hf_q*Dp~tM6GLqlVvVG zSoeN4v*sjY>#(z}Xqc;K$I*16hy8sju9_Z&GoavxTSl|y$$eDVWOjYfj&*p1fnF!3 zC=JK!2MO~!c^^9%fZx6X)$QQ&1og1yM)>hFppArrv8N22 z0^APpNT8IVZ4iuxAiLA+KqbSIe>>$Ci2qE~2Bi>;uJ?);U!*&N0<{P?-I{@2QlT|z zQR@vTtu~sR8m_uJgZ>T&gAHwzHMoK6GoLV*J=hyd!oZQq8CUl>+J- ztq58rYS~A1s{@5fiC%J1*WsdgZ#|DaR!H+e0Ie^;HMeFWp+;{|G1zXy=TLCd_a~AP zrzPM!|7mlSDh*dmoX(AM3-vV+?+miD_uhhgo(gJN(WYRe@X!#r6tHFmTs1BjpS5=r-27We zOM_oM2uZzg-5(({8*)>ix(cH5!FK|tejT3q7QFRZFw9}F4pgT!EWH-)xD__kLS!nO zTn{FJFLY|0eDQ8eq8PVvMduDXJBZ+iBhK~LIZ6B zKFkq1VoVCUdfi0C8qf+d9-oBKpvGzUV6*#)j5FdIapMoj#KeU$*zZE26wqjtNRo`# zD`M0M*xVA4(P3D+Z7B6>V$2%)EFM&9C2_G~obOVBk|Z%`x8W5b!ED6ha3IMFk|I8P zPA#wBi$bBoVzVL&DiY0M^bFfTsUgXrrpx9;snHXsS25^tq0#EmDg4c>m{D zL7gig2J_RXgO)FFDttnz3bHhRASlkO6`vk^czPhULIAgiFMQ&`f0bb^oOT)ek9U(i zHl0~xjAwlBy;~ZwBQR%P2GOUito?W``_!3SH(rCg&%#^l+L?1hK8mhxipvIwDHzMr zDTedD_xi#X%DO$wnwP=qRki%=$CCh=HE*0iml(;_i_^|~^=F^Y&E|?qlo~Tv<|gq` zWj)AhmQ5Z1ndj^+KgO8c$&{2A;tGr9)^VfQbi4u~Jdvw2)a-8&Se%>iiE|2TPtxk} zaoMD4#GIx$0T=7aYCs`y#h6Uimp76W9m(anS$ue4Cu1ki!|Z5hU6YlYr%Ys^qk=-K zn!Bb?;9%)Nden)0ZG0BnOAlcU8^vv7)6NL3`?uE7((Pf|lF_u3w&9hPWM-NeLLbtw zzEX0Q9Gqdn?FkwQ`BPuE;PHRlFH2|7J9Do5X|2q6DosEI)cQ&*=@wW$g_L<|HDDB{}KOf@dx2kw^#~^uWkyMnnQMtQ{U;p_ib$d^8#2ty?aN%~I z|HyN{-$zMHGXb@p`u1+}va*SFHc~!(?p`~0e+^sOt@wtU*w(AY?6cDuP?8!Z@m6sq zNM2sqwvGq36k;1`SH$_6?{B$h49Wy+K!I(D868LSX4LBk&q85;58msNc08Z%$}X%&|* zh((`~%st;6%TQq*t@=1(%_@8@FE@W@CeAJ!3zto1>zk$6Tp~z5hRorlX`#K_#c%$w zh(y7QAtRPw{$@6V6}?QmeFFF0KLw>i!KBHFbe6Z{ktK#lyodn_;$ryeU1PCC$1uj( z#Yg+PxR3w=z23y1mfcS0vG=hU;yGSZ! zKl!;+SdbD0g20XQu14A4fJ0JKFnSal%d1(o@LHBd_3_ZYD!L>Czgl`Nlj6*Dv{g|w zCGlQIbAU z?&0oX9{p=IS6`FLK=UAPy;VU&hXY-BC=Tl)*RJG?a>j%IbCx7bz~5Tkz7-N8MBw19gZXjOq`v;qt7kHSJz4U=t%7L099qZWG%`MX;>F4 z)M_=4KmH_});`F#6*4}5=$V|x#$9lv<$j)h=C9{%xI*(`{bwN5OL&nY5D0M3J>O-^ zmQ7sst^K4WU3$+zrxSu~>hv@5%Q&4-*_y_?tH1U6Sk|d=FS~cOGV8MRPpo8o@>n}g zjh>lPV$Z~nxm&xbQN}SPRRzc#+26^u`KdIQb+f~5>u^8w7mwoO z16r)z7TWA8Cghqgs5pZ|eU$Y(xjZkEn$|`{QzGM{Kcf>sbaSw|hnZQKs1-6hDk@ko zZUS9hO-P1#vLlT&cei0znVAq{;9z|d({uCCee4;HjPz4x39u+DiMGyW22@c@ONiij zLk&?0nWUT49H^;dVs;*8b$~#fs z+&!7qPZjdbA5Gxkp&@R+I*zAauH~-(%HZb@RddCav0T0+>%84Um(#|Y%6e|h&&6i# z=a|cYSigrkOTJE;_S5Nq^TrCUn!g0SUPn`PA?w=$ym{Lc9^TtY7=9kQVmvDfTUb^w zg`U=89NKVRDIVsPn%&3X;i7=VjzH0+xvc@rI%4E`X|9tFWM_n%;9JBGmyK*Qw(!%iyD_{HO zcy_L-2r;aSS{#;TG#U-#$B$>?#EF-bp+0!)i9AN*kVQ!r6=aGX-ZYywL_j^emlfaJ6&0IIy zL{Grai4(&>289+44`i!&>*WUSxvzlXE*pjI0e*b%Sn3KpXg0_3{c9p=Y8>I~caP(( zzwgB!8OQeZ?Zjv4xc}R``0G12qHS*?kYuFv=l}~BXPkFYoIXG8y=^?(Tun-L0a{-R zghkUa;wCNrA6I`4&?-jL(Nu{#V=A{ST7>pQAL_6;0@j1LqqA{!*K@RMfRdhJ{%2k$ z>yH$ZmsY@*@)P{mq9u52gJ^vt6iG&^np&8e=f$EjaiF%Js|*zk3t=4Y8zQr%j1heT zMT0U~1NAh@*))61WDd1ZZJ$iq|MIO#%}t=|r5Yfct%Wvz^MiPvd#!;v3rB@S_pbsZ zNg@ykTv9)a#e!b1KNDvqiXuLr50B?xoWfM0AW1LamtFWGBPnSJaPM8&)EsE#wU0W3 zE@(sqn$9*V+T5sB0>yh8@d*OCv(wqNp_Z$brZL<-LQ+~Vh%~~e|HYHhF4^F|4(ip+Kf(V{{rII024B?$U=;QThRp-wk zOnNQR#&ASgB0a`Li%X#1VrNW@{+#O1!dN%8J}v2b4Q`(ghu06@VS0TEdWJ0M5_3pX z2k^__v=1SuH8k|~6KB-(=E426yCERSbT_qf?X0P^4mxS>vvAkUJdX8warpw=nIFYL zD}*aG+>&c%_aNj&L^CtmNu}4wMAP|wY!pfbAQNd)fmVgLZ-jT>sSde>AzYlOtgPgv zmtG<{IT-+-&xg@yxyC7VRzu?EgHP{$Kv$UnG=4l6(v~z5nO8+|^>`XAjLh=P~84 zfBox+L(LgQuj)-DZ{3&HzfY<)Clf8{zri_b5r94jtDf)PQ?=H4hw=q3CiNAcf znev`tre>smCKGva^J>iT>8$+VT|Q_TU}0uFzji}C-p-hW;F!c$)~}@5 zm`7v9Zr&)ZWK32b$BK9SfA-Ehx{m7F|DTz;{i^p~Ey*gDE4DE%;6}0OF(i~g0!bhQ zNZwniFE4p1Bq5ESgkp+AGvI~`xOdC4Y+1I|d+)l^)$R9A`TZfe00P?yB;<$oTC+5| zbLN~mZJ)ird!K#y$-#D36eRHL^_$pUUB}Fv91NdQSPo6qc<1F~tbMx@H7bHN&mUp; zflk~mH`~iSEB+oa55*MQfz4smJ*v2%l9rb@YWj#>8ea-rrgGz4^QQVSF3sD4>M@%R=DPxaJIa8 zjG8W)t5!^A|GF|%(ZF>#X7S43D@cwHX4>RXR=-n+CEUt@OX4e6X4Bl<$(p^T)QAy$ zYmu4tjRw9x#e7lWc={bqY~ljfsSwK6$6 zlt93aF)Rh0>_yX5wiNH?z1l?nc;z(o20cC%qRbXDqQVeVg{8AE!np0$Y$Bp8y#0q=<0|1eebGn&k4#vk#E@)a zN|KIuw|9}AW?{%2#_}ae43xKF%*)}PuVkY`Vfw-xv|%svzcL%8t&gxcE1JuVD=e5$ zU|?A0+YikoT=Qd$kL11wCNtbRNZPzC?)d6Ns_R{R{ae!rbldPb-2_J(P&JV~hwS{| zfkGlvL(nums@H?_BK8tWXhg+lknO2vSBI0Blu1O{D=8ZYjEM`qb*cl`a2FLlo%Fdh zG{27ldmjU;gv0Gb0p=9UK=0_IzPp90z9Dwk)N#f1c`OYZ;HjgnfJQ*o2s0Vz4~Y2O z!&r=;Zp>Mq+fTPmCDaUFPk_NeFRno+ZBppCN;poRZ|dvoqoSgMg$oz{Q+{ZtRYF-- zxb3D(dGX~+?zn#%0|5iyxhJ2V`hNCrtEG8R;@Uf>lHl#)P_2&{Q)6ka>1X!k=_H0} ztl8eje?O2Woi=tJ%0)f zRVDNV<#0`A^jIyx{JdQ9<6=mOOeR0rOLM@;6?s!p2OEh`%Ox)|jH9(RESa-_nQ0kZ zk`zaNY6i8nC2SqA^0Ng6>^xpZKyzY^n?Q`Cg*J0K%QIs?&E*86#lW=rnHUEKkc<+$ zc6ZQaSGeJpoN+7RIDNjUqN0Mg-g=8)|N7S`it-QV^Z&h-a5N^`|L-)e5{}asOCb~l z2n2ZMsiXAyKlp6R8z=btn#K=A4zM4o;H{&cGiuc<&z4~iz`hM9dE~c;*`V5bEM0LrYgLBxQJoD{BP}}fZau- zZEVZzxJo!qUnrGOQ34!2BCzPHWS;x;F%(h4qz};4?xkRIEVkAT+=_|P-L;f9`$&^q z{N>$FLL)46tUrX5o63u8I{DVu^AS6`5hkXhwRQ6PTlFO7#Zj@hj!nBd$)6m}jz7pN0D97C+G zY~;F$=@<<<)*UJ4WUrmPgxE19k($O+tUggsUUE1;TD^zF@F226-8^2@L2X+rOY(C# zQrkdkd@R8R!@sA)HI031N_k>UI~nO=*y_7jv$2V|^l)~pDIb@x#_0=2nu=!D;dV+y zSvB$_UEKPOgG|VaAS^^eF$Cd1RmDps0c58KuP4Bi`57GB-$vfje7s$K^maP{nd43~ za}z}N9qiy+4@|>ochcgMxbGX2XgSh`HZhsIzLG;%hl8}N2)4d<6km7<0f$Ctu)@!O zRmKDNO(8l&rF|G`D|&FdFC29D$_f^PNNwd|Hq`YK5*$Hi-C=4!=1hp{?m-NyOj&0K z;Z_Tps^GTwV~C1J42(#T3E`1g^#4ZZ0YRW}N<7PMpT^`g9j|WbBxiz^PbtxfvDZKo?lZ`89vhD3E{`Zk$cJFQ>er_(Afqr^i3I>yo^)D17 zg2hPlRW+OF`C+( zw71#us1_Ec1X#7clF;NtzP3DqhyL#{T}?KQo#(gf1opG?n*D_w&=OhySg86do7M{#A!L zQs-xCs-DBg`iP0Q(B5tz2i?c%^G)NR`=`XHxj0Pz^NQh*OIYJHPM<*jo&jpQ8>gZtaZUU+qJQ7bXI6S(V|1gsVjMN@h8sUwtjdU^PJml1B%(3y=W)h%ooNaDe3qvvQ z{s8lr7O-ea2zHM~c$g8d(~D0Pi3l@tp-%luz{?X`Hqk8y@yN|r;dD6>1d(8~g|T+` zytQ>TdxnhMcliS1Odf{(Izn__?tg9-y69}4x^WTvir;6QD}!GYNc?Q`b|y?+MtENd z`}<`6_vRIB+P8(q?mlk1;wsh`9YoUf4e|M0h zP78}>rV|(%;K|<{q^8M^ikC-zSxiH#14X@XdClf@A_j*uFIG=UQ!8(rs;9ZHpTL+| zC~Rocu_7aqCbyT~fnGZ7E|9%gf+7et>QOuc47dfNtQJCIGP!HkWc(g4vva4gJUyBt zjV%~0;aoSTkX76FQ<#&()f3`)Y-cIA%$`V!S>(x*PQE=Y6IZ~?izoVcaC$NowgGna zShzkx;+W(7^$U3Y{PD5l0C)$7`SC;BXcfzYo>DjrI8fQip6Jh5S$o-0q`ptQzk`$ ztl*c7OfLu{;0@q61u-Qrg!S9H_`y%-60G`R&`II!NMzZ-aJQ3;NwF9t1Gat_xp|Qn z?Bxz%)Jeoe#SL14B=-=PBuCP(PeKg1 znHCPNs0=KqObU@1FvpV|6hgdi2)7}I3D)y7EK`t~goqKhifx-4dFbiun3OQ`|F|F4 zIDM|^v)G#R<=YmpaYG|_+*^n~GL&nVWup$eXgJl0Q?Rn=+FT|W?d&giF|jZXz0c2_ z`Kg2%6t)!&aqpKi31|YTaaJrAJ?UwoY~9{Q{_I3jO$ytJZOp$S6|2q0!74Y`FHL0c zzD_P#kjZV=C$VX3C(Cb|z|!l|*}ATd=%fg4x;lZ)J37gpaN&MfMxz;n&rXLagD(}N zlgbd=oBNm;A2a6W=PL`dDQ)j%LDmEeqK-(bnc#>Nq5|DyPRJ)KK8dB1@>!TW5tC<- z4R!te&((9OX{zRwKavM#P9)7FbI=jYJ+mhh;%vtrmcy5(71Gmml8o#bTsOUt;}zx1 zFPO~YX_KgI>107>28(i1=~E2Mh>bcgK<2Ow^Zvm;u3nNtz^71K)`cM~n1~SFxRr36 zKHoHMCH&%%&+WtR6Nw4`DAqNu5{}as3&Row+EO>#9HnDWMwJzg9O*Ddcd2ZKMe!6ZgwfzoW z+P$5(D(XM+oubMzI^8}FmL1}`qEZx1W$l6Otf^=r;B8{%feK^|x_WB)>AH0s?e);m zR?nZd?WEhMp$@h1rRQIze85d-{UPptb2GhO<d)d69ipO7VCOs*L!+UFZ{^{eKs_Db+hs7(V5a=Di<+|{Fd}fn{ zZ!WwNuS+2@GMKMjv4onE9rS$+)9YxhU~gwHa=^=m6Ay*iS`c1DP39NDY$MURlqjlcp1<7e7UQrP0ytCOgu{ z>+9O6ZFe(gP69J7iKlf>#W=$nr_VP@l7vpD`xK8j(+CI>%a&&$p)o60$1k63AUDlQ zSW+ZQuF0YIa1A?84$;-^K~+^|%uS`Ox}SOX&S#*!8A($?_R(t!Au~jvsd<oE?<HiL+v#rBoy-9t0wWQjR)~*0@qB*qqd`)te8lWV-g8A8p(+aCp|t6gY@Zo zZ3Ty!i7-G^atPK?E7PaP5ff&hxyv`su*T`a)Tq;uKhGCa{d77>lK$y*27`ge9(#;O z9(e@4UjHevD~ZKZ!+HMs5(<~*vaU#`X#G6)Z*StS&y})cXDbD_%wl<-fyg)ume_DA zc2tp85Dh*b{Vp93-k*zYz|ZvjkwZ`O^CEcVnG$SzBL=63msXx2erf_uyPH`3Ru!Vv zN=|k-X_@idInT`#La%N1?+&MeQ+?@@CS}R?Y9$ zALQP}Gf51#@>Y2(SLdc67=lP1JvT8lESgCDr#{+cE`-KG_y0d=T*4Zs zPb5`U`R;eW%a4EjV;+6HyUKCBk8wlW&KN$n_1^lR*hS%@M6OaK7Z@`aNRsao;--l08QB?)E z-;aE{G2Gp3Z|*0c$an(*G{74O;2FLDG|A_cak~QqWDT!pq)!3?1z$iN_rn^ePnJra zeDX8_%n5 zj=3_QiH9ZAS|f4zSO*76`tW-c;v+R0I(?klS@l% zZr{wQfdH4LC43Ag805$6-X$YClwWMvO{=Y+?4)Sc?0S#K%eq(|@T6RzMRmwOrng^r!wX=Rpq6pi)m}< zV8anF2e;P%0;(eO>KnD=64p3LNKeo~S9Q+%(0)zP&9>xil5M$3ydgk6CjPX+PeH z92dkTGvcu7R7#3Fd1qBA?V_15qXo&<&P%%-%$pUDp}U7;as(-%0bc|c#VkyYM6`r6(A&xW zx_Z(xXYP-Cb+Ur>qGR*Tw>PU_WB_leFw!z^~SE~2=SiQQL ztCpt{81_(H+>X-_#AJ)(vzM@>Q45c(D5x5!nl^s@hg^!Ll9-st+iTX4k&%JV@8{I1 zQ^dr^5g8SAHm#}>8yCl#wQEUBOT!-sP*Yor(P$zeA>o{USBZ>_WZk-Tq^7142*@-x zHRAPpNz2GURZr)q5fc~7yBjys*Vl&z7z{=p_|5~&ntdsvC|oq-I`>?{2xB4>3qxq^ z(dcP$amA&<49j}jx;+f_4ige$KnafId*8|<$m?YDNjI@!1}v%dTBxV4t`@7+iqT}GueXo%v~(n$G-f)p#e&&vrl+TejP&%6NLf0a zj{5p~j7B5YAS+#6U1X$Ze8dVUNjlovTB)h6MHB?gW;4^LO-In{NSZyLFW-9WMR~rT z0o}b`ZdtK{ni?DFS>ZSxG7+JAoOUlZn+HYGlb#a9aNjV!Zh^EIBOSdS!lJB%7&Ype zoJ`0HM+qn>vWCg5L-qw|Xm*g69f3ULrhULq&V(=qyN4O@LTa3u_AWOeVJ0F&L~0tG zOvnyLak^>kmq|$qMs~Uw@Q5VETP`ZJ%b>?gxOpV9LAR}sfMg{()bjBXvnqq2!#325 ztPdvMs;92IkI3*y!i_o_dwWTai9_}{XtsOEjgP_S^U~{b5n>6(<+9@yjATZHU>h31 zDOyMgF@LIK&gJxD2{PauaN+c+*am%ALrf$lT0c96B?tl)C(3Ag_76-?j{DCD8Z=Iy zdlCeJs)1pwEAHWvnKLh*VU1b|Wm!eii63ANilPDn(m8%bnyR8AB8_UNimW2)L^MT3 z)kY*Y@nV1#O+!|+Gi9Ha6#r3Uf;_5POQLuIj7~#VHFTpNEGr5+Ng7el1p)E2+6{<; zfTF61AIewLG!$(l4^>ss1OaI@tuUI0tg55mbGAH9(@-@o7@t!V?F0RAW+D5mR6?Cj z$APU|NVRukG8oWCq`mQL{Q9RZRnw6DUVO31q-16P1E9Nt+=N*LjvnhFG%ke0o2xk4ID|{q5ux+5dP563Nn^Ns zn0^l<@vttiPX2(8{k7HnefJL1GYV+!Y+_h55NRG86Wm?0kD{(2LW6^8X{+H!8+LGI zeljcf7IC7-&h+GXDr-vF(5aDW7-oIxF&exUawANXG&Nx`TG(GzK}Az7vLT3FRW;PM zH)GMkhN>1iZT$p>yV%;)gI9t6whA^kbQ2m9PRa58>}?xhLP8v-^Kf|Qkc$^zt>u#G zF|^bT(AergG#Uspf5!2!{9Z587#}B!A_htP*cDVSNf;yv=^t2ibkf*)>m&)2UWZw) z!>E%GKOt|uBw;?CR+9cj(H8{_x(l!KhwJm<*F;gop!@8=t? zl5?YY>GcM(r==nVSy?p6!no!^(C%W>-fl8u4K!Ev@?MpP%vb{sug0V)(Y*7_ z0d~~5s5v%3Z%Ye5{KYAf6D7QU1<7LJ)bS3S&ITMTtI7!p z3B^8aqqVP#HcjU5yAEM@^)cji@zk!PXs!;LZG${@s20iAOqFerza6T^Xm6pYr;FE5 z^)cL8Ny*Up)%c(=3mwfv0HkC^Qulrtt?rQ#ru(cX;fFOrQ4lDuEN6$^z%MV$!8017 zRS*QcUN^-}ZR~1j$D>Ki%1Gt%%p{^sI+P1gDJ4zjrG2GTIwXF3?JO7_)O|yPymhpk zJoqmd#|#TOF6mv7If^Hdv+)gIz3F%)D7#Ki~W=&>>9;dwmuoBbpw#-q7h z7~;bSlECLvP<1*?1~3^x(HoFG9%7<(sCqr6yK5<{cQe%QMhY`>_qPftIZ%TTV#aE+ z5TZKy&99E(w-{NpDC454bEvqOn-(pmzo(7A9y!HOUne=U0OLn`iy+CzqUm$!(KO5^ z6J~=EY*ondQwjDB(N%wx_dA``HI=e_K@3;LMesteA5D=_6@h4r86h}?V$3jk(hNEk1JM>JOwS?OaAEU74UF)G(oJPF zq~vmIlK!(*2}Mz){AdZ$gWZ@%&DMIop4Rq8?tN<;HF5|KPEW(9jOgI1ZZEZJ;3nmgOogW6%X);gmKFG#K2M=FS2#QKqcN^C}`wk~v0*fc6 zGBqKJfZM@iyNfC6a&lc^HhNS9G&YqS<@UFB;x~q}Bqx=;=rEc)TKV&y5(YIh^E2WR z(dg)I=dM-jNt`g5oL~v{Q?J29jZ5Of#%@zh<;6Yw`SzOKbjW&^=4LWI zA&TCYE0cHa882PtODQWYOE8HkRy(A(uCGC7=39oU9^WERE}=y&7xDkNn@ zl9v}rc1|pdW<}82?P1c)ObU}Eyoe;Hgp-yP#icW2NlFMF6TA6X^+_~yX?!S%dXl4K zC`d{oB{CA@7z)gc#Bka@FfAb#qh3##*-U6e9AScw2}vpBrcY#fel{~RGsuaFp|j7% zH8ZA?92QKUV;HkFj1;R#yIbOhnbVM51NhC6+%$a>ojpAy#wKyyq)cjh?Gz>?vM?uw zM!U@Hqd*Ib=W=b%DistM6(#9|cxburx~5%wJ`=I-@H z$Uu@PoZ&#CAh7mG8T&fyta{*H=0_P&fxGjQnY(f`f81ZeQ%eg_74-tj5z&vTga%2+ z%X{{s#bj{go7cc7z$pp>OH&W?%`HcH{=`JSHzg5=+rvwTOPMzLQr=rJ6X)pZx8_B& z`Q00pt{pDOYcQMagnTKz575div znQYwsKHuI|#G-;sZb%MC5CuR)_zbNb8X$@SI#ERU4>=}X(=;p*W@bbrj{J}?Vo^)Y zFpzpqy2;beI$vHH6Mp7?*6hSH_h#$JLL8GAMoi+!A`_k)eKwD2abtc%+-N~j1!ten zj0*mT>XVx=l841&CC6d~Vm>x)bW{@2QD^^8ju;WcW=%K;3)Gp(jTo(KPVVTBVN44i zT||S-q{oijPDx8U^V;0Z^fUMKGe7*mVb512$P+a_(7rM zUo}u(-?N*a9%|yQxwEKmuBGV%->4w#49v-&%;H1~9`A@AKOrT7M4d$2zyN*(R8?VT zMGfYN1g=O9Kf7(<6D&$?gAOv{voYyJ0N|8*VJ=rU4-$+#630l@7;q{qOpZq< z2#5lx8h8R44=uTjV}VnMXvp4S-m7Ux1NKx@5G1ECD?SWWl__azqqL)!KDVD>iZ zpT%FUF2L&xoCCfFxMu!BzTDxUp~sGt5^?64!{y}dQ5WWFPhm;s*uzf=_;|m%2}N(= z>YNnxpEE`#2m;Q2H{}fjL?lI%ooG7qtm1eV9t0*%j3LN8vgkR>8z_>JS(0nOZ+Eh< zxSxqLk`Qb*8k!vhXC^W=-E_g_ch&dOWDAf!A%^&fv#uN`54GU4TA4N}@`5dCsv=X~ z(T?2{;F1aHoNQ@F76j&`r;eF^$kxfpL75q;$@KR&(XE)dBq^H1HMNMA2xg_kvb&;! znK`-moHpwE2N)DWNDy31%*et3)ONPfH|!=YDwH~ZFqbD-@w@F5cMcG0wh(WYXc~5r z5D`VF>fmsniEhZvTm zDQrAhO_N*VJM#-bR=_vJ%EKpVaH?cPMUWg~MG`<34J^%_z_hqfG!1kDoM>rceOVPl znx2WVQN&mb2!N`$azjBT(H0Ya&mhkouB6@RK@vn_!Xqh+31;Q?oqYGb5`sg*h%)Oq zR#VMi4xJz(F@x!m77PYGD>rTAzW0tI7_G#cb-Y$o!fPj6xpsOXkvRDM{tD(!%wc+b zI5o|6-15p6h)Q8aP9o+&KlimSLCNeZtYKF-^xnpietG9jXdU-t9RtMBmCu_m(OqY1bM`Q47gH2HK~l^KU1iimC- z%m4NcYihg5jE%%@>*KLqMYIax+>{kVS#1@&yS;p6#w4OG5`W&Xkzeks<*V~%kQ(&a z9C!ZDsDz5_r?$yVaFCI`?^SW^gq^H-nFAGm;sh5@zF5wr$uYd}=OQXQ{bcG~eE-P` zB&&)3y`@<4Q+Vl}HokOKBHQ1tB;~R++KcOX{mp73C&aV+os;a`)lSaj7@mFNC>519 zj5?LI>uPB1bhB+&7io!B>YE3t+gr=}Lw#h2dHMaDJp}Ada`U1vUEnqsx7)$tu0foQ zhpF<1;_x{cY^#Q-EMiO_)d?S6yPjcHV`f@7KYn`~25T_W;`F?Hq>-kcKIUgod_S9EX-BOR@anT!+LVx`+vNFB15o9U=E4r=ZmJX{M8*ieC;xpM2k4QPF5YQSU;8iuG zs~2$3U!UX66ZPDe8%s-bH9tSn#BG-^GTX0S5ss&F{5)BcbLizch8`!qMhrOrjv&4WC#crk~X>uGcvxK8lX;d0a7 zhZg1b001BWNklvin6>Ge>&GXfmObtUSEzDo*tcan!3}Qaud%JUC<>qT<2kKY#yJHV$#` zw`XGTxH)9?&|0LS4Rn({Ip<%;ur72fg(!+h0XP4%W;1J>ojiBf&E#7&yvhi^lNB3{ zHoDd0g3SMV1HZlHI_~Q1rM#z~lkMFUHMMZhiE=XH6M6LJtGFc6graGLM#QrIzS}t7 z+C^n=KgU};*>(IluOBL5{-jC#dD&%z8^Ay6VI7baWJN$H8F=}=uaX-diK58#3=PxJ zH-KA}81~9YBJ8Sb1te~tH3?ZBi3kvzkix1vZy+)>3`HB+k9D-Bl4stnC%<4ie_EK2 zE1)2V65<*B?c%JD*Ge{&XKP!U)b62>AKkhRtlNYv=K=eU<5v=JTrS z|2BRlNX*EKpuBOAtl4R7Kk8=nlhY_I?V+u82)j#W;hZdPQG19>k09LYqI-KQlk%bn zN{nFk%p`7{n#ORymsyiX0HNH85v*NZ#oVP62$BP=Uth=NS0q!hy_v1eHVmjFq=bP2 z2{8uxy$Wgh+5GoCLHI0YrY(r4rKucUd?Z1p3lA_Qh!Q#RiKGNO$cT-iyv>Q<7(ro_ zY0RV2EWi3Mp!<=Y6}v)bw;BJU&dCMs-saHG@u)qLaAqvV4jLVey0nq6*t+ z^jlaKCY{#+m7g8SwoNr8XG9VaW?@3AMywFbp^A>r-$ANQ#}HpzwU!fhm6dm|U|w7> z-gA5!K74N5`CxAW@GFoW8$)_*49g4iK+|YwuI0MF@8I`45A({3D=>|?9TU(*3X&5k zNKRzMv_d3FVCUie-247XR%d7OKtbY1RxUx%q4y7S+g~?vpu>i$fhLFq8w5fu04m*1 z4+vHggCw+3cZ+~3GAS_@1Od%I!mzegH4$eu(%9KXyVFmSWn?dAP{auE+hX^BY@Jo@ ztQYg?!^VS+dNeICI>3c9>Z7DMY4*WTbp>};SA0|=whiNxWt@ILh0&2`w!vtchSd^8 zfh7q2=+P{GpNHa(0R&)gZ4=8=Ci8j4;5AJnYjPZ!lVV5rB#uakng&y+#GElCd?hUc zO&eJxf1W>r_aVTIw-z9dw&SeGAONOamdO-VLlgxPmSvB;CkotjbIzGOR82#en~WfU zI+}LUgfLWXCdqZ*SyA_b%6WzIZX-uWoA zAfEKRxY3RFFgYLm?ItQD`STO4L6Rf}Y~9?kay1=<@b>+8vNSRD6Rl}gEloVN_c+dT z_^yTqqJSuhxVxK}`o~w;+B$G%0tusyIVFE8U(X7r)i#7H0OjS!$bbB8T?x%Id#Q9OF%)oi%$HtK)=Aa`X)k3w<+W=R49xC7@} zGzFS_`)ISf(MC&MF?TLS_uq(M@8!`$l^Ap)Xex?1mZeb=?^iaV(@SHt2YhGc%gq1# zKCJrlVIUfssK*F=dBNpW{m=bWpL13G_*-mUaS0w-MJI|3d;K4%w;b?M*)xD+)Jloo z%!~Kl!4sEfv+mFlj`TW^KCc{Wv>w$}1NhJWiy%OIla0n!=cuopfG7(12Zm@H($1u7 zs2xNGx|#<#ak7t|!N3_+o^#&&z`Zc?To3>`KvlI3d2}$IPAj{;)Hd3=Si!V^$VStk z3jmvafSNwrC!q8J>U#Un_%v3wwwSr*+r^Kx=Oo13no+fV!@(Q6WR2zNZga8!^VTTtrld_SWGK^o=n&hWl?y z_?$2-LBMJ2;+B^;;tx+_Y$)WVm@={w=$M&K=T-D7y z`j=DGcl$WGp@ic#HlAD4K}3{=-eV0M>Cx~G4)fy5lh|ZvKH1L7RaF3-*i*-A?=&#b zJ;d{WE2Vu{<}ZIfiq53+-nMr912$H@UIX~~&F_vA5^lUGHyMZ1&c3#8s*Y`8TYVQ> zS_X(T>OR&l@bPtT(>^>*Rev8F4{qbv+YX_6TKQX14X+$Hg2o_4js3(}%{ZI`ys&3K z!wT5l9)?L{r(-ydg^UnE30K+eGAX;K0y8--@qCb%Pm>)D4K>@uSX}q`{h;C z*<7SY$AI6?o7J7zTpoJugZ%fZ)f~2~IJ_P-VBwTPriPh#WW)O$?i!@e;o$$?-9@uU z<@zbPh@+fP)j-o!=H=(JBsrX4zrBGkrZCa8ujX%Kz>>PIz=0^Adwm8F3TQGz|nD4=tXHFxbYoHkKet zpTlr#s)}8fdF!fd(RNDZ5N^LN8MiEP$JZzE z_8)iAp)>OCYYpht0q*|JF=kGW;Ka5QyjM2B(|;+$<-TwyU$a3^TW1sRwtF$D!_>A^ z^VoY^=pU0O$doxO)Kwm(#-VWa>{)zy+Efgd1f0E<*i;b#10C(<{ATY7tOg@rnv%#v zYxa^B8_$5lOKmfz?ffhlKLL z(nUNxIS%irlrekKbY3$C^F~<>uN^#s&FjZ%GBG(NjsL!W3Rh)B;Tr|EzrSn=6A~)e zRN2U5+xOy@e1FkQ@cW4hi)2QU0pqBIn3tN)e_fW(miAUo z_GghFZvLE!SR$b!6if-BzS&K`TjY}IvDj*RDC=;On-_t@1K!3aj)x~QIZL3kVSvyC zGgGdc#OfdH<+8a2IQ#5Gr-Y11{YH_kTbr1EX)?H6Y}wU8eoi>vica<%@?z^8q^`q5 z=OCno_{f+RiC~aO3TfxnH|zNNS2LKA?jk%${}GJ#6Wu$!enf+b0;^27Pa-KU8L6)c zn@1t$Bd~yuf*=?As7w+K5`J066Hvg}%77sjgWZPURhXQc!_KB5>Kn^>S;l0c4CxWH}_0gb3I0|Xf`IQ#kWgWEp4@G?4`jyL}H47rWR2@kS<$lYMX_eyt; z$xBhyk2Ti|f^f!}P965bE4huKh76Km7zI!Dqv11TRXqbN>ZQ}aY3R=RCQZ`_jMh~W#SgTBtf+{h@Ikyt843NN z`_Ko-s*0+f4F#hAkTi2T5T5j*_86;-bL;!zZ#p-Ptd3wgI#D{)9;&8}h7I{(9c5KR z`cOHa7WEE08J=@B3$DB2qQ>J$JS-2lthfcgUqO^aG*v^d6OfgW_5#rBMFIg8K@`vl z;0tI-Isv^T;PYANh4zg4ZTh`<{VHI1zFS3OC$X^68c5JCo6z}Q4;Yf z3Zft)35+^fgCvapm86kyJDP@G(h*Qbj7NG&!aw?+P5{5Eq7x+qM&^iK(xIs`vL;~E zNf%VF2mfn7PyKm5vaF)h3CQwDSe}22m2j*G4$=h%71D`gM`F-j0LM05#P^*~n-N9v z1N*g3N16CAqt$;1eHH`(!^gxV*NquvLj3r45cx!-gg6HBJyw1fQs0kDBMKj7=3~|S z^J69)`C~X8)pPVab-E9J@9F2N*G~XFrqSnybDSPeccUbUXYR#w4izka=%OmqRgbavz$&ch5ON&0|y*6D>wCqSFsL0UvGvI^EwrYVk{$vNenE!%kR{h2u` zot-0+jti|}d2uV>c<7SRei6^~k4`s!YR)))!AKAUT2FQH^fN_lE*|^cG^YYC-wu7A2N za=^>$2lw*mruP`S$ajDB<||O%CZuZspj946pyZO!=n*bVcOVG z!e=aDX$a$UWSl-v3=4%lr-rzEem1+_E#r^-gIGK_gbq29s}{!di>FR8eCYtc_^)DO z@)EiK5|L;Ax`Vdsa>%naaLawOdFq8~p8xe!8fu+fF+Y^;Ysxru($3A_n9ZSgN*Qv) z-QSwRU!OcmbW9MJ&5B~f=0-weL+I>NxN~_54K=MCdZm>*#moZ_%wW&U`{@jd<%joA z!hC^SbG$wu=CA~E?T4xFbFulrHljnqxOLtYM2?|OoG9DHb2Tph>)OTi4BDAuGNBi} ztlF^`cX$pnVP~E+8X##F@0Jy^Cw7XYkzaqg0arOVt?%v+id#{!(H`#K-y-|#5rUwE^US2{vN!}FTmjnVK5K;)C zgkFuo7%;f^USvzQY{|B|WcA)|zjw>;4;cpsL4<(>6P@Q-KazEJW_M=i%sJmVg{$UF zr@5w*NW!Y00C76pPMZwRK9k31_q;tUFACNy>r5_g%u29Of8*_GzSElTTT&^ zHI?r!m`A8?XfSwXQ8^D^e;FAT1HZfVb{d+h>Gp}-IBN#Sj8jGhdz|eDQP=h-S zDl2HXJuU)rkfuP8*6uD^`5uv9skdbTT`fQh85;@e-OX9*M z#6(9A`+NLwKCGn|Pv)(6D!Kfou{89G{P_0KG?sUpGsK$Gw6<{ zvi$XvEWR<1kPm?(yVg}OV6d`yVd5FA#C5!e15y$Ta}0pW`zxzhv~(25w^wkaK0v{o z4DvHA!+!v`i`Q2-a@F;@m<4$4*+VS4ZUSwkr_iFJnJ~)nsYJ!$suT1WV_29R%I4Bi z(o;s0;V=%zs-~*FmGtP?GpB`v`R0yuK~5f4y~M`igXkhsh}N9sre&hjREn!ka4KM7 z>6r8n8`%IHt}G=dEsHh9CCnN(kvPlepI+z-FQlqz8j7NfTqD=8FI839xpOD|eSPTl zIs^esCKEl~-Q?%zf5uYvL5>`RMN5)-^!G&wMgy^t0_Bzcq~}EAY;C5;Z>DB{Is0pZ zq-y>AX+;yUi6Jzs+J`qjhGpwJ`1*ZLV7w_@SxZ)-e)mh5Q9tX4Hht6KA`1*N#>rNt~<1u)f`G4#7a?#j4c9-nqSieec zR5;s9%SefjBhXvRz1t2mIw^&L)=J(its^%j4Xf3Gp=lpmywT`-D_K@j$>^8}Uf8~q zh5--TiVK-~!CZ=tA15y{{!?pSnx=8Gw1eVy5T23m_YUZ26~bb zxZ@kS^z;U}a7hNMpW1^j(n0BgZbU7>{OiUue`X4C;RZ7EVlnGK-Md+gMvQ6@j~1k5 zKqezH6x}BX^WQF8#w{0JM5aUG$8T;TCNhMcmSSG1bW>SZjS3`2L}Aj2L_{XBc;aL( zAC-hxvU1PD9PV3NNW4+ym_LlU4mWQ!8M$-*Y}V}C&BYfkB1#`1H7c5-ljZ0PrgJhA z1wo*>d4S_gqzT*Hcnb z!h!`0FdB`Yt!+^vJ4~YJNIhawEbr~}^4M?3v3FG^4?bB&RaFnRoMghgo2Y8{qt^?p zUtWT2GLV!N!N%1!TyuQ}olX5Dr3^-JM1|@3{e8RWlnl5|b?~Q03JJ}Oplt04o_V%} zva(Kg?`ojaV_;I4k9}pWIO3uJ8TaY*9jl(+%Zn>(aQTKGOK8&T>FsJ^XMY%%Buf1K z;4!uo@1-X&G%S7jglvAZavdjng8cq#*OO*55gMIEsIQp;!H9^)hT=Wkzx5DE0-its z(CF)H=QnR}VQO{)cP@XE6TJhtFk|RG!IQgokr5liYg>0w);WMI`>Abjqt_oe=V}54 z85X|&WGA;>98FF%Jp8AF9BCCPFm!#fp!*1o&}Si|(a2+uJ;vI#YkB6GXGl&?K4~BAeMgu#I+OcWzDrSa57RPJK2{TX$ z+qRL{cI_o4HJjH~zr^x(6PKh#e{S=wsVYzYZaXi%bPSIpoaImKWyhXY+%6CA7Y%&* zQY4Si2z{ZNgQjq_Ey!hy$8mVaN#65!QQz)k_CM)31_ zCiZM8qrW6o`6hZOahrg zDUa+pPFh+Dk%%~h5H>_=_UKgwc^9D2f|LcoGIl1${U-Po2mUrTr+b zZca2caIh(bepesw?cYeN5<{XjoSWyyu%WDhJ1?Eb_xE@{_c;oUad1(xiRKP3VR2zB zT9iy`ZVd9{+eS>n5&CbFSR#02GIOkS1x?uGARVnvOeTS5#lqAH;q=sX5Ho2s_x^k$ zW<4Zi$AB-uv}>l26RMJu6OP>Pf+#x{!0A!Aa%nauH3$v|ORr4B)8)pV8OJ4;B(k%x zn;-vTI=TTT!9Eu$IdwOc)jxQ7q-pLrDMi$syo2AI2&Ox znS{9Ns2UimjUam)dN^8hg2T=AH2F-#8%5f?oA6np33vw30&e1BQ|Rn$L$XCNHYJTI ziID^ZBTL6+(AYbGQ_~Ud?Zsjb10{&6ef~(7Ac^FRi>0ff7tyFAB_#xl&&e@0e8eOi zp)WUec6M_7`0>xpB$Q=^uiY?{S6)8JH@`O#pV7+KZy1fUxtHSIwX}JSTzdUDQq&H% z9dk1wKaT#k0cOlgBg&%i&gM>jbXyJqStBvpg57Q)CDF#R*DD!6HqF zmlTsSejbZ6lW46yMqg+y3sb^|V3wGXGm2T6X{1M{GC5MFE@)&)ENwL85 zyNmeNg$s!^O4y7hqO4}DqQX1nUHtme*(8b{Hgp)dy&#oWiYkfJ`H6{$!D0A(j5PtU zIZULEjwe?1VlYdr-*}4Vez@_*?2%K#5&Ck|@#Du?v0?=eJn+Do%01^oU&>R$&+#bk z-*c+>pRF5N-4}~_`n3xDACil`drEk2r)!WS z=;O)16w&Th*|zd9ci+8>%|`}4RsZgmP9FL5A-a8o3;v!v*HP2rJxBSWu(5a_uawpe zOLlk%T6t{y9tHv`{-B4uSGrk zzVPU<>s7w`V(HKu&&Ve{LjP3)3zb(^R5NRCA}{@M4^w9(5gn~Vv^tn~X%=hOo}}VL zCuK)k(MLF#W7XKV1^>MbH7(Z=zE^&F{mGjGW#D)!aT z>4HlZr?GW?4U*Z&l>Bh^9cU#i+RFOX^;~sTDx20+kQ*JO-f1ExHh=Xk001BWNklGt@!e99CoLrAb6zP^SlrcB^a zTN`3m1p!?+HnoFIbpsgNt5_J}qJhqP`CK|0340tGSn^)0@eTja9UEddRyVi*f0e5e;jEzT6~95;~pkGvQbNY}TlH z9T{m+*bEv4X$p7zqJ-S+5JIEvWQh;nq=(+y7QM4Rw#XdfP%a^26U(t!jud;LPNqjadS*hU& zN{|V&GZ;5I3Y$S@-_dT0i(2vdh7Y=j+a1_s4;_j`YgadIE-zKpB{X=3es8yAXKYkB zURmRUvE#WQEeSmR7(!#PiYl_-MQmIuHet};?e#hr-^`6dr#G=++$dT)I|;FclAD}J zS8pH5v9aVvh11mMW^76fu~suJUMNV6MlXqU1|%jYM&VOrf`(AWMmiW6#_L5UgwfyF z3rc|U4v`yg&ScxV+7Xj*gueX3YU|dmtY5$WoC2PQUbYf5vMfCH_x&VJ&E(|`9(KQV z0h`{f;DO)oXYJY=GB3@iAjFHT6EQl>Y~nSPIk z&89n3oqKrNqK3!qq*hGfq9h|hO~Yg~q7#PZ{{Hw-{(Pu{(V-4hO~5EgV2?%Vsi6-E zbL@DUk8dS!!VG+_95z$z^ZwGg8JjzAmvoZO*_`}9y{NkF$R39tkwW-|i> zD0A>FMnLzk9_jUZy1KfMB#DTK2>gEk$MQLyPJ+Q8k&%&~$mepo@caElMMZrgpV#Zf z?RFC#9sP-Xe!m~5)A@;fMx&8m{_>YR{P4qQn)b1L!=W#8XwH`*4Cc#34dpGoSLosg zw`PxESpN;eYQ>5b)YsSJ@p!OWt^DwZKm16R1B1c9TW`I^-o1MX4Gl%pH14|Vt|9qW zty;yVO`C{~jm711@!Q}2c1XT;>(;Sq)hd#blIZH{;-QBg`iN#^Fc{dlaU*ZM@dg_7SqCuYU+-Rz-9WyBBbD?~b-j$ONU5eNjh z{r20LH*X%IDALu{MSOhx85~HGB=+swM{jR0KmYm9nKy49;o;%b*4C1glys&&Q4~3N z@E|QME!=a@Jt8cx&K$;%AJ5L6JITt* zI*YHYtc>dFYVN)FUgpf1!_1j8S+iyhxw*N6CwQmn)TvX!qW7ODqI!^WA3<`)fbv#=bAUDNA z%dVsR@r7#2od(QZZT#-8Z8SwCkz)^1UE7b*VWz#IkJdI1A>n4KD|+bb_alkW)a1nN zhpy@-zJBd`uK%C0{PE`-*;v#;aHO(H}J_WziOH)HXiYDNc#SskatA_b(*|LSJuf7_;-;dw#XYAOq96EFe z-G}PNNs`3&?c2HOrkl?2rKhJ;QBiRgpD2p#-Mg1tZ@u*lUtC-qZEbC52^UcmDJm-B zmRoK)!xs_~g3sqW3oI7|fn l;KaoZ&MXjTj6DWLZ9ouduN2tUe@3;^4u9c)i}w zHb|;UvqvL4GZ903J4Rm@OK;nU!DivwZ%$v$FW+YzOOBm!lcBB@IMRm6tfQf{jgwtoEM`55$HU4uPw>R! zhsnrKWA1o6;Nzqm%9v<7o#i#S(vz^O8h&~Bpu331(Yk7$T>U1iYMhKq3TH};o${`s z$H-zdAj=ApD4~;d)YesTysntH>-#Y2^&kjXEf!wfwD~{w4Xdg~Nnth1R=4v0vLkHT z-GRv>v+n&0US3gqehRF?YPuuWKVJZ$p`o<3wIPZkf*{b;)I?HJ66)!S*&pzQgoM!A z+Iohsv$K=v=;)8|+3j|knwpTL!C>INzCP@B`&sh{iURE(7{tAyLH;t&H!(Xk|X+Rrc0T@VChRprp(Be*@Dvv%MS8YEekdH(qqxbC`Z zQB{@g+qbi5(SO+-ZGKk=zN_uR8AUc4B) z-OkRPJ1HnAAU;0fEIw6LdG^_7x#*&c2n!2i*REaU<>ir{p8iiesLJ!tKhJ^%3y6w} zV%M%+q^GBoo16QQce(Gr`zYMK3lPv*EIjbQ15BSfl_>=UNWx%SpBi-c`MB=dYuT~A zfvK~S=59BZbl%}L{_K7x8PQzk~zUfV`>kI3X~8>LkP#HWQ5YgO4**v-t@2?TvI zfq;s`VZiV9vHws9lV>O6Yw4w|-pibs@idjU)8G`Cm}BSI$v)x|9q0odPM-3UkP=E( zw7~u{7t^N1;B4)o$)zJN>r>=(*Ho%nTL>bO9vjc8rdm{6EV~HR7j#0*H&@pnnIW#G81&s47N2hTeA3792?8da4x>(Ynoq+Z3dCyxnoJ=ir)PX>&|Og! zBF(X^c(($d-b{!^htVJs@cG&NZaKS4I!R8CM00x>2#Waj9p=vmMW*IhaW{AH+)EWm z(V?^ySM%ZvW%P$eF)BvlRD%m^h>?KPM@xs7&=4a7U2Z!1f|v~gjg3xB4il{>8~Mv) zCzw4yiK2}sS--!7^i&&b-YBEE#!YT^7}9Wku{4d&fj$Og0i)_=Md3k?cJwkjK6YrV zM+?%>>mbQGHp7g5~ONot6R*A5iZ?v)8q`gpmh49Q?6&TcuUwJryOJoDUf z3JPNA>Tu)n22oTI=Ya40!LTGrqPn7j`0&ur(d&7H&QH=%J?EB(Nzhcb6}Ax!h#Xvd zoWiXYyzoLX)jcq^Ad>o%ZFJW*^XTgh9Ngc4Pll$t4&HeG6s2p9k})Zkzdlnz!NOdU z6YNaMwX$W+Njf{-w6%I!yXh3}ZZ|FUy{y{PL7?A5Uw;5Wf)y{9l9ZQ(zM~TrnWx_G zz}-ARS$#i?uN#LjFo4fL`~YuNQwgYWpl~Bqik%y0%%Zxq2-n9fkH4?qKx0ogWo?zb zS=Ns|=%l`>gbi&0HXPWG-X6>KxoM2a$e^P95dD&w$JcG6tgaG+S?19V`#9d-iDdBb z=<01W`}`=L4t}?G2co1<-`c=$Hyk8F@N=M{5#?N$six7|<^jK-Jv%FS`0rJ0d%J`u zS2mpgr-X{CBCF~rnulk2&S3ymRV6qCR-&pZ0Y$+tD+Cl3b%@3lRYg|*=~9R0{W6T< zd35Y@?wghXvMTbe+r}Zw8WVHPEPKC`jCdoq#AvR+X)G-V>o|O(liH@i)3&?`adb8I zGxLtQv=&zrVwJ$}#UCC*j9H+&+eiB77;KV)&Z;9bFB(_7i^NeOq-RG^y1$k;S5#1X zyz9&}C}^PSx$5dH^g122g(op3#Nn_G-!;Bh;uPB|3qu=m-GzwhVA(N*JnSV#&BnL`jFi7QywSl0XnJ zg(h&*s5mrKV$&utH`;=T%EU>t$g)a^n!=(PvkB3i`!}vL8VI=jXsU)a#)8pkBrxE{ z8g4s(9Y=!!FUt-bVM}c*9!(@aC5am*jU_kCbUGqjK(7UOW&aV@S2f~NMJA=D@SPbG zh%ku5!oLJfW#xebyix6C<^Nuc6)~qRK?$R+Ftaq|?R{EvgoCY$%Q> z6?ID+lV>HMc>>sDqxkX7nGCpPW=)C&pkQhOyEjxad0`f@7LhF*Yngjt8Z{eh+1BbL zDm99E2`U|JK3W?(v1i6m-5BJ@*GEuT(a)0E(fsjECzIxd5(uip_QTTY^i0mkCOh1Y z$&{R^RBC#0s zWMqwJ!;z!>_zSi>xbT=3by!za;WS8wGAu60-JpVE) z+BF_rJc~Geko(qb$7_z{^;@qX$s%Fa!7rDsZP--?*Gm z>0b*_Nz!q!csF#XG8~*Fv~@-am@U zD*Y}FG-&6ah9!t1{Y{lDulMl$ZP&9XF$_%**^yu+=}+%c*wRT-W-Jx;b-Y>G&bP0) zhMyE9;FVRfLQP!q!aANhF^M~}90XJiog{*$eQcf{;mki^)a!U@`%bLU$*lj@B^U(( zRnwTBmc+D#FfMw29rx}i<)w@B@Tv-$rjn78#xE93z^kaIH4~BFE}TUEgDkeOBA}c$eMCVVJjzES5L8ZwvS^6HV1Walte_Jm43hAXcacO9 zRaNjSDki-iLDSB(3#a|5{_&bfqKKersHe@vpsHcg>(EY{-jXDu1cUe#6}==O3BpXb+)kzS6$Ve+j{orW0D^5`?#4$VDfZ_{K-{dATAq2te zrKi`AG2B61*zlK;yWc}otDo$gF#6gD7?1_xBh9q6d+^B`=_wARb5KoWIY@`gg)a~w zAuOwGBiMRMDZdRF+8ufvm!?Ht-EFGIjhs#Y^ zNCXc37p+YTq>V`+#v{|`mT~uZP!X`%^^8i9&O?(>)eszUymQ-CWJTKvsw$EsqSxzA z|5-x-N?Y3SYi4fEPr?%jpaP@fqDc=i@lJ6W-^rPYpsD=v{j~(6vbbkj7J+|}TucxI z`n^F+1|5q5D84b`28t)Yq^JZB+eSVq9kWjukvw%5?;V47BucoqW_kLXA z=@f`v{P{oyE(J1T-wc{C%#PF_Y^vBR{be)RzbSQdzsE z645A9TiZ`uLKsWtg;Lrqp>J#Dsdwx7`CT*FzrGSjYBV#9J^byRMtnDq!g9Qfj<{4x zwsi4-OQU)FnIb0LF&Afj1N)EkF!zcvRPC#wqc6zi*X6SM&6AjH2F8sIr{q`%w#aa1 zPO$OUd$#h}+t={G?~0i)IfA_WXz;46-`>CvzCRgstw4|Lbi zFqZW=wdU_2pk+IB5ib2yf+IssSB#Knspr!yIna!k{^z?LgF`x~; z`l0Gt3S0Y5Ybu{ifuPLIGxBL|s^#M6*RZ~(75{0#Jt!Kuc48h2)1rnJ1RutK6c;<{ z2S^FGBM1VGtxa70@_X!Q_i^cjJeKCA(cDtcEzho`UY5{{BJEurEI(Mn-J1^5;q%ey z_TcMnWYLT3=$EW~tzaxuqO3f-WjnX5I)q*~_|dCvu9vsm&q>MP`rWq(M>EN1MClDh0a2fP`?dxM`KHN;)^hB;&noWdFq_f?_ z)-~l=Lu{nP7y&>1dNYDc!G%a(UIc0JHtd$+r_qr_5lvC4sXE9BkB&G`0~z@j@o~-s z_irrXrfFk9RWZvhj(7BdCeYc_f=ko^0(0}HQ(s=p(b`HD7EHk+3IzOa-mYk6RHXIa zGDV(lC%=2Blr_&-ElPz zWDrCy8bd@1wUkc=(D%WZQM<#Bs!1j2!m{ z=#d4Cu1@aVd7R(ecpd*YAqkJH^6eRuxck**+_~l;rFUG&P-QSBLEu!Ehj)K^8yAEb zP&AD+n~uA-pWwJ}5wpgOLF;d0dtWENxNsJBoiOawxBqc@B}$}6T9Az(OL45;Ho)KS z&8DcNlm31meVs1GX2f!-$H$zRF@*QEa%yK2xyd%dvlF=Csv!MgQ8>FijLRE5Sxbns zQn<68>@l$jo*?`8Hj-w3!Fb!!_9ld=noJce{1*XMogk^@37-pya zSPgL#(mqw@2B*h^Ta%cPo`g+;Wyibt;U!Z(P9I~=sC0Ih*Dxtlk2NZT{AfD^UN<>e z;}L>ER6$R3TQ&BmWYS|JD6elI%wfS|(YSH?cuG5ZAUX64*MT!9CiDK?Gx+NxB_xlH zW77C&%r#?aXTXI9j93G(k23$#_wj1IxV0+y1NReL8%Y^7Gbjv z&HJ$%w94X1lbD@1hCZ*4<4w)1KVHrAyASa4{=@v@>Z`b8bQC^WLli}7>Z`b?q54b* zW|N6=NlCoCbTTvILII7bqsOs2FP|_`rN`-}tgVBcO$98xAW86$OdYh}Mk}oDt zQic%BD%SW^W`-LW@DIkn#W);*LVo}hokBoW2eGrDj9EN?J|j(qDRWck>G3gjnvq~Y z#blHS_+@-P8BK^G#9<(1lpn7wU{B8Cu1p!DSq~D7nUX?Smuk-G|7NoFY?Vf zA()IN45EM|+{Xo@^%z9x_XU`0wS3|8BZvZX=BJ?{@tyDI6I3+3eg(Zj;-+zi^HX4n zr$J&x)3BKa(_n`ZQf0ESQPgxp3BmlM4I{sK=twB{=!{-g6o}MG4#fTA5JU%qN@eBwrs2UpJar*H1HLMO3R+C70 z_~3Uane?3g5tG%x2T58&LI(Q@`Ud;8nk6(@KI7G5Fr7>6o`A*pk2EkA!@q7rQ4|De z5P#K9*A%pvENA8&1|ty!LBMVr45D`Xe1uso2!Pw?!LLe$Ta0*p9s+`%5aZ_?cNh%F z^bQ1xjx-S*@S`e&iiV<|ho^*+BvEv-l=m84{9yJJB2OQOsH#e&-3oyo5Cr1FLZPpM zW>q4DK>%9y`DpM236GD&A*lHN2~a;&eu5_s*7DHJR}p(UueGXaAnDK{pbfM$|Eaay zanVA4RFHwDX(+0SqN;>O#B+UiIDaa4)8h#eY8`woS&?!217`%*P(c1m+qUty(mo!) z?g}!)>_pkDDBgZ9e&UTG&Mf~SdGsQT%N)&yoYB;E^-|x}$FhBe{Ak5m(!Tq3!YyVn zhwDrgAkq#(-2!kAypXaYfm1KUp_+6BtD`k6K*j_fomt<3|px43EU z=p!dT6H{+HEjY;RuHpV-3qSit2JT~(>}wJ*#6>YLLty)R<(TIeaA}&#x~(nDU6P5X zu9LzFH&-l9rTTCqReb_8CWNwWdlS&sBoyd9Iq*wImw}HD?N@qGKI;Xkbv)R>)+?vxeIt@^B&R?;CL2g_uX2H$!V=d@U9}}N!?WDo!{qGm?D<@e z)mrMhSi7bcdxVL`s!q0Ut)pEwGu_s6{%Kf>A~SYe0ZR{6^8Gi~bJv2&MCeuC+IN8c zemif>9)qH3|dUaemNwTfKG+0uS;k1=2KW4MkJ#d-GGxikC96jr_<5kq_e7v zBaS%oGC)vNJgy*9zBi2rf3=gm(dh*GoP;EW4CccUp{izp)MN(+ElBw(Hx9jsMRQZt z?4|N(BV~0S+FE@$eLiX$T(tOA>^?uUu1Y7&@8Q??7o*q=ELxN~>{s#n+&sB;3r&rU zOigHF=l(K!+Sbhe^zjv_4J zW!bI+jLpbH7igo_6TpVRyF1rXZXe6dQ3lp(nPhot2>YC|t?-0!7A#0&^`Q<#yOp_f zQ*g*GRyG>XPfz#g&=3LvAMYMM##^OzxK)Aisj1vPeH`fy^Po8+2&h3n8;_Rp(vd1W zs>rO-Iovj7G!X`AFr~I2@Z`o#1S2x}>Ev`2prfagr*<4@knR% zJAqzjKWj=)vbCz2CYKkR$;|ZZOs*T3MMjtfMb*$Wjpw%QK#0!byW^8S(Z|d0_ww4l zV&1Q8LeiVaPfOujlQLOde2f88B)^_JmZH)lEU$BN=bXtznWQsVUR6sI&+a=)S!X|@ z&cvM2qqucqHqmB1s-~eRGP_Td^XlPBn%sV(!@{{~>I4?0#UKe_)C)Ylemk9pP`)=a zAB&){>d;|IWd{$=&c!Pag7OuOr+BWYk{@2Sm=t}GV9?KBHtb+SeJ2a1UckN6GKY22 z`gzc2@pSk3d@Q~EYTCM8SZrqe-XO72M*8}Lc)T*IrV$fkrMtt8WYQC6)TnPC1k|G( z5=|{0!lG>$1Pxz6!EQ6)9`Moc3=$S?!_(&>C~HK;Sm|tcBT6DhgNUMO_cXy%cOvKxabh_La3}yt`hdU6&VGpI>)sJ4%5n{2@ z=XRlL0&!s>pR1|X-|NE>W}>61A4L=a0fSydZ#|C%77Y5K=p}IwfLB!lLo66k6fvCU zk(G}IGV3J?H1#Z}N4-u$CkSZTAP7H{S@z++H3k#i4X5poT~LyQ{xmW!t17|MUgQEA z0Yya=MRbBdP*Kh@#RLTOIuYr#ADOHuAL&mN2A@?F1~s~W4%XJ4?k9M9{B+_V?}x`z z6a;jVNKpPq|9VM6CyFSlGUV8Q83op-4b9OM1sU-Stnk$)m7oIpGqIr>K3T=2lfE=h zcwW0Td;oa=tJ5IgC-4N7j~?p>Wrg79(DzVne;mn*f~=G7}Da`2*}F6z&cd? zvigaApY{7t*(tP-_7hZ;PxX#p4vSErtG<_AM_P!_Nnu*9?aWB-*ielVkqc&|5@8=) zq^@IC?9`{TWQ+lCdk?R@+rR~vjYeu|p{S&bh=N=$$sfK$WqnyA?``hl2S3iIbXz$m zT@nlDq!AhN?^%jFjuw)WJ%OXg4$-3z<=XLCynEmPQb-b4WLwx>5A(A>h;Q}t#Ez3( zlNV0Wsa7V9okFVh3x>Tlja?fnsc-QzaX}XK#SQp1k@R#sJ(x#|P>j%j7YV3rJkU-? zdNc=D74yg+i)pN=W6iEE#-^Luw7!b&jy`_=y>ef;s>O+2--o}F(TWZL3% zo_e92oXM$(9+}a(R(7u~chod-w48-wt!MxRF0Ryq70l ztR!_z67Gs7RAe4|yPH_OKvP#Y5B_L9zj~wyk8k)JKrrZI*{-ep@YUtCxSagY|-2K{X9P9TI z>#%X?)t7zy^xccf*hDq_H` zfEu7D)Io{~PPKUW)%|mc6Z}}yqWI;nE}*ltje_gO^8Fu7L??=j8y`!_hXU0tr4eF;)$4b^Qe{OGbv(JLxOYXm==J002Y{kP0+Z%Z$~ z`@?Y-FG;4eu8WsnIYwoJ3$sIie$^%P`+amC*gv+T92-teSu;Xt80m?__i6I`eKa_|WJQL78l?EtDH38*i2axn zU5d}i?#2#gW@gaZ-iTLkCp%*3U}i;8I9ON5l*~*5UMGdk{mjiwq`$9|BRw*6)8jbR zTt}A_#-!L#j#QTu7L!J*UC-|FO2%i5!Xf(DS<}R{j7%iiMM;O7f~0dySg9&(c=yEl zC9pJ2LlOig=TATogppztUtzPau&|KvqjNBsOlX?MsI*j6znA>6gXvM!a~6aeE0>*M z_9Y4Y<-tPcUYNm*f)Gxg>?bNEoZ1toI96#!YpADA2xqRTgD2NF^TXRlh1luv~~0J-WCFu2*$a0v%JcIl$4KHvYSnP{fwG2pPl6=Iaacp zx$_pYueF<<+uvhU#u%cb!bvuLawJGkOAoKCsN=RfC((PdlZu88aKvDC^`5_=`-rgm zYEyfAJ9@qT%shWkbvh9E|LmQ2m{rx)|3By4HtkODeFmlg1H;fe0-|DKON=!pmY8Tv zjH$kFs=mgA#Ka`_XhcDcfFg*YcV_4?%rH#vz2DyNDZfANh!9bV#OTlaeV%zZ+`I4T z`@7fr?zPtTeX<=Z3Vxly`nS7?50MDB^l;PHw-P-%o*2c&?gM6YolX3CFKFF%>^3i{ zg^6t0&_ZNF1ft^Sc*Ou9aA-)+)uXknTi?L9ADD#HYvW*tkB9CXOT(c~S|Stq&NuR~ zyWzGwi+KB){Y1tYi82I|$WyZ7h|mSL3yagxU7#|nq7adg&tgqIE89JcNr*vGKU)8q znI6sCmDLzTJ-KNago*+p9-c32}l>tZ#sdEQ1%T-cw3Is=ZBKC6xJR)NsPfwohuTrsg)Z0 zxt@>8&YfL+_gk6#?=Q-!FRRC2Sit2o z?IVH+>jtcZiYit~;poYOtS+y{qKd?8?7V!e2HD=rv%5=aGTTT@%f`}C!?>bij1iHv z)i<$dY6&jCOn+-TUz#zQ_F*?|{U*LKy?{dle%yYE+s4GQ-!717(9#(Ys>ic*25t6v$v`5wAOB(-Bb1H$^nYX zD}O2FM-Oab)8S#3KC+v~9^22RjrBaguIuxiOBlo##0?NH-MA_sbD+h=wO^V*>BbYh z*ce4xijJ`KOm4e1pFjM)3TN*C-+1U4Nd?LLaE^{uZLoF3Tv<+CkB=o^n@H)}3S?2wbzjY6`HE`NQ;bZW5XGuBjcB7{`PEN~nZ33J zCounO)2ON6gNYop)+5gq?qv6a!-GU8Msxek`NYJ9@zxVNgBDg0Uo;5dmWYhiV37<=%G9!U zb1$Q^!?1=$bIlbQ3|Doa8(Y9#w~R)k$V|Ds5Y^^k{%zCowf7U17>??6;fyg71q|E# zJn+zTV(?)|jpP3BO~lr2CVOrkcYI?E^({{B`gRGv?tTD#UWNCaTUiQ}{k64qVizI^ z(VlsRdDyV+U9MWN=%egaR#kQ3w)axq-@~9&M)rCzSqB-CMXW9- zGBB%XDq8y>7KfcX=FG$=NmzU;cTX$eKuhWyGFP>#}`0!!k;^N57&HcptdOtPiwi{-$YgK0V+2);Ri_hA7?IK&x59 zHQy*9&E3oX1}{@4CDB?p$c)RfNsESewhi#(?-t?nDWt@Q5)&OlYC;GvzEsV`MY+V- zt-SVbCtvzX0k-3d(BfV;Gy9NM>9HV~rl#{2?qDTY_S4AvLRz zvGLIysjuVmS@S4PPh)#s12b}R$qW~%v`Ea!&L%x7^glhEpbynEW&UXN!$WBFT6XQ} zqSvZ${fz~|S;8PbyU=JfJoC&m5ML;V zP!PcH=hhS>c_sT^#PS0bc&G za~C}>31kP$N)O=htJp2Qtg5KxqN-@iW>&B54iZ)nUqr%ES+SyytFOu7=|@Z1zN?Gg zo?%YZ3^VJ>JmN$vRVU4CTwTe^f3@Rx``GwaCA*KCDSKfT@ddFw^0zwXT{nUG*&5WC za5`$cdG^_IdK@YTw>R+oOI3Jel}&G-Wcfeq>FYG{!gI$cJ8mK_JCU~CHQ0f;>?GO_ zH=zQX-l*X9waxgY^Y78Bs&c%sf@gOh!shj`YJVyJJa&?gs;KqzRcjfalE|^%ZepSm zY3pqRVE@S@ynLh@jW&#%rsVOf^?UJI+j+00k7&JyiW5g^c0i~`VN=;&hSYGhvXdva z>_lgbWzT^f_)>~!tliK5{qrsI@(S5oSIr|UULz?sin885{%6&@crAU@yS(STuGZ=v zo`3cz4ZU6t?`&e(>-BiNKGyy7M3At8_<})IP(!sitOD`jDq~}v+|5hY(}J zh>bO{b7v2C+?mfnr;XgKKxyQ(L<5ifd?&qv9((fuzkhrmabuG>y7~mqJadeeP6r+B zR(y&`T}3PFO8eP;+(h}-D&BmrliJ1sjvgPxWc6H7HlZL0R8$}4H-~$fof1kze?Mlg z58)$rk{BwpqoJ8ly`CM1w({b>at4%0aKSa> z$FFx*l9iUurX8z!`e+Mt3i1d$$Mq?ajKe9Dm>7n`?#1cwA?UPdHA0ZEg7|_FmfuUi zJCSh(X_#wT&}sZU@nStiCFxu?D+!y$LyX_SLysTl;L(1jWop=3@1^$S5E&XLzPKp1 z?;hfZ4^3vkEb*;db6Ed+IVO)lNQj;-n;MZNP@G=29O*}=fJXB0+zS=#DjVR|J0~(& z(Z=|z3z#)88+pi1is)d2If`tp%!Emagc{B-J;&>Du&Vq7f~wGEa*+@hO0Le2H6)$P z4@IEL{BCyxcZ^A7Kp%M>vglDqMIMgDxk-!@b-~ zCeMgwNDiaF)lPPtiplDw$*LhMEfm|JoxB-i_}kLi7{fGZ!wd+D!uT(haLx2sCQMJl zYqArb7KH)u$|@zr2_VV%v<9XX$Kdz)@rN0iR20d&t-bv0m$QlR24c4Segy-t?ytMh z6^$lsS_V>!g{=GtG{X6JNkLU{C|YJ@rxIsSafhYhunm(OdA4YD4N1ZA7`3=*3UnwYmRi?HEg z%4%F(e?=O*_w+Dx(P*5#L)gNj5Vhd->F91Zk&vFmRZ~Log+!8 z?Bq%26&161QW4edJzO>_mqi8H49YqtC&j;CR{x{jT$7zG`vzFDIGZs^0{`0QWP zNRo0&<5{=7oEKKq;P9zPJ_(-!rrpQ*>&8IME3ehYQ-3;4%b=e<>ni#A!@JmY%m%19 zoqiNR_RBb3fmubrSHk6%P-NxQ_Z?O3JpQ|50PKDH1ke1V3WranW`7eey-|Nbk?s&E z;^*}GKvmd&Y(FpTKmM^3kOylk>2dkkUvYpJ50v9mRAgDg<(E(tnZNJYj>+Q#R9rqE ziVEd*l{~R!4Re*gP} zY~0qyff{SjB@E)T3%y>?V~;&XL_`ELX3Y3R1^iBl?vjtHIz7p$M)qy0$K&$R*gS|w z7tVw{BjtzNiHp*+WQdd93(W8S*pP$R_<%gMcZ6UEqF&J^+?i=QN zzpvw}D>BK=G@kcDs*2=e!-*%D<$Quh3PYK5<`7f=FCZ>xFnhKcPoPyRuJcBmFRT3bJkP8 zkak+F_Ppw|Z``<%Lx&Ds!XkbulAvM9lF?{UnNg_a(Z4n`COe$yv{)7`$!FkT1KUqn z=<9PMD+*KQX46qO#GHHPGJLWPQBgql(jQ`Ebd*3#n~eoaMiC+V@Q3JFaCtVv%_fp3 zBr8f>&#HG@DW0Cj z*klbm_M5on?(yh7enLVtq@_flcs#tfu94J<>6q*LDBIt|^eaZOZ(Tk0%@&L?VMIn6 z&}y{AMo4VlGeBBV98dlH011V0WR6WktZ$)L)ia|c3GI0n@zd*cbauB;+SJ1Myh09F zRnhE*tBdkJv{b!{mfL1er#Lm9+=O&oLv3_P8fK3wLLRPTM~{Q4X-RB8c7Ve}K5m#? zM9=UrnaSz&cGk1}Xbaa&9?!btRmO(Py8r+n07*naR2W4sX(>6>*BFvxafw#xZW(IJ{mjd-m)h zCMJfGl9Dspz468y+<*W5r`&{yhzK@r+(=1D$wj$_LDBvH4+LGpAU+Zni-m-Q1afk6 zkR%D6PRH1>W3k)MtO4b8I*E*oWYnlpNRotBtEITO7?a8LA?r%7*OQl*ha^d8G#aK& zo5sMvz!~i%Nn+o=eW%Dv6h+)_H#>Ih_{0MI`#<-1qz?()KCg_|E1yxb$=%w`q2@s0 zELBl(yCfu8Me@tIU4Fb5Dw0bwE@!~)^LZpZ9tlPH^q#3t@}sCKUcV2IUjkG-J|7-Q zKDF(Y6%<9r?e`g0yMTUlk5JeHaUVqAR(rUHD#>Rf=e3Fuq&}cLl?H0aISX$jq3R!J)k!=tFem*FB?a<6>n$=Gp8h@JMX&gDiy8GSUrBmWMGk7TRfHk-}-;0Hfo{`~nk91h-l?>%n3@kZL)+s|k>G&ID6 z4?f8J`SbC3Jgix>hMRA`nRV;dok9A&y}f+@``>55f(7_|K3;$Qb?&(14%V(+dq%tD zi3b6T?{jY7LiN zUyRn}qIJm4;>)t>s_4O=7{ScZ(Rgh(4j=5MZ_v*lmd<73=rFv%{A&y8{OdlFGGpnl zXl40s3&rE&i87vFVRxs~My> zM8DI6pn}t5BRnPzO;{ABp<|SGyLs}uZ}M9;oF~hw_~XJaG5*9}o;gs5tFIbk2*_eQ zE~k}tN#JVTrFGO4uaCFi>fvWEPT{?$+Btf(oA|s*6o=V^gmo_HbUHR{*uY)iyn)ns z8Bz1ax_*rYL;-ehc?wYkolfNUkG%cib|Q!(?AiJ>q5yim$nPInd-ir3DBb>Spq)X( z(nmLbm@EY-%+UiX0s^Yq&+mV8GeahrIsX=xEqm$W7FHES;&fVa#z(T%>S6146Fe#R!_>LT<%j19I=Ms9C9!^KNbNn8uj#d znu&>v!0S>N=&}$J6H0frgJGk<);+!4cGm<}zjz#vD&tWFyuhoEY$fu_sl?m6c&|Bx zYZfM7P%NfFr^Dy0?rP>!;Ir?6=2B9hbuOOLEY79qb9s2#W6K9>tvG7mQ=sWBpt?H+ZZ5t8O`9 zb--7@uji+~UdI)S7oPWTPl@gx4>x`7Yt+>alUopr-R>tYN{_?pVR+butkIF1WyCsY zWxy$rlVqT)-$QglI8g?b`eq0D1u@8e8A(zJ4b>uf{WP`O$SH`!Z*kH!=%+A08dI;0 zVK-!_hSJ&NBswM(jqIam*iT%1C@zx+hfg7AbTrNZJ8n@+MoKuMc>c8Ib~|XZxEP%j zPoLR@R;wpIGV(*Sgr_t#MFK&K+i79I3%PO8444K`3`UZ}3^euklbMu)-)*PO>SAn4 z5`&guOn#BVgc#gz2dx$dIf;o_EJL^j1G%wLm$uJ2e1t{lu@55H;c%7L6jS zr~+tCCk#bJMnE&-^~kb{s1Z;V6-7}IH6j>>OmV*ax&@c?ZmB%W=#A?yJxTM-pazM zv)H`<09s=lw@%9CmC|xF;R)PTV&sq8I=FZ7Y!X5=)OU5FH^!kj207Z)Oh(~MW+jFF zXZx9=vhl4doRUIRW-0@Xy~HGhlbszwRhusu)^MSuCHUdtUqit{m~<1ovKvBmrxBV6 z9t%A93&>vxQ*MEmw}bX$WD3F|^eb=3}&7Qu@BaMcx1oC4o_ z2=06V3?qr<)_$0GGps!lXj2da5B&swzWn2CVCd}w8!&$g%qkiA8xKA^JiZjJ{@n-1 zI3LTZ?jR&y4y~?FW|92=_#hPtzIESt+13Q5YvTTPlz52A)p%c_+1i-Nm^8cj^le9 zdHU&c8rtkgfYss01vHe_^4?J&`3YL;8wWVq;D8ILHtLsTLiJkwf)4O=Jq;Xp#?jl#~(-ZVQSi5D{)9L~-Nsxd1K3@K8j31b@74 z4)0aeeJYPAE&Y6Wrf^Sl!QlBxN2?+0P`;&MMsZ? z*zqY8=f%*|ZD;I+WbBm#boV$IGbM|>5*3@phhxab{F^7BnA~)mHC%f|8qVlwo_M$z zIWz?01%wEMg&Ucknm~`)%&4?nZZsItYeb?AnzLNDffw(&4ZGWhMjJwgJ_3)%Kx%Rl zH@ezT^;zgNM)G4FOd7S2jCdnvcNc?BHzAUPR!ayEOwaoi#uI^QGtwuA`n+YLl<101u`Hguxb^o*$c7;mV62B zygaav!FE`&HSqfvUjpkjFf#}K`W!5|6~@K{NK27n^;=+#gl}I7&OZ3{8n}KjEMEab zz+*p#oo_?h6iAie&;JCI53c?)+;c@>AD=72QdPoZLzxzv7Wg17;O1nH(vy8!yNOfM zPHitqiaE7CW9A2+heiZU-lX&xlF|chV#X$(`o3gx@>$Pe$u*Gxq~4H!>a%f^QZJ@^ zGdlHy^O=yI_Hi;P0LIY3u}emOKt40_3QlcbHg4<(=b!U_(Znb+lhQsl3pg_;a4#p! z$oSCLL6`8nUv!9!f_WvN`k}cEwrvksJ`1jZnRx+m+ZYKGMxJv=2khPh_x}aHb|)A{ ztSi9|e|Z)5)|{zJX*8e-gYc2RFaubJVcpJvbu)8pz`9braQi**qnE%K3kl)y`(MMA zKLfWEu+ZB21N&@lfj%p^ov`#}s5Zmw_OX4BvYeK4*M|AP6{z-5fsBMdQD%>RD6KM|ovG4)+IvOpcSy zY^x2-c=)Uic5ZK@%Pi5|JV@Ej7Ao2ebC^vV+fad~lYJbm=*Q(%s5#a_Rh{Lc zuBo}EjFWbSqxC1LF@O9@r8VtMSbcs@G}W`ewF~4S-ag(M7?gbjlr;xl9GAz*{@QBV z96kmugOt_QVUeJzw~GS}4Y*{5W38pgOVGl)P|}hVkOtw(J7L%Xx+wVhEfArCbEJ)|1}vRh?|>R7=%e7V#erEsMFBYp zD%L|()CVJ}RP`L2@spY`u7Blo);Ezv0No=6q>c7MGekgqz#$*I$1A01O#&xjr zdbn>6{Ni@F{xSINqcAfS`uiY+56J42OQ;)hE7cE%ulxz{{7(YzYhq%cjZ+KTo`q4# zfqneXgYb4K*uM$Up`RndLSe&>cGA)!*!a(KbP+~wy(W%hoq9%TTs-w^JwN{GOxC_y zK}>!s*QL7n)62UVx?>y(P1S_XDdBI+8hGNtJT|SWWm<6-<$D^~b#Ra`-#Lw{%_r$K zN!;Hcma5)-)nh73x7S<2k2vx(CB`Tf&1eE)|tNQ^hKaa$+j z3!~5bS|p#F6$cJcequj&-ZO_7cONTT;ut$Q}%`bWaS}djxS!J_~&HKT$ z7rr(QzVS_1U4EvxEs9XK7l!u0twnId?NB{5LKqszN`>g~f78iAAT0^f5uYysX-6RR>7q40Sl?I4I10Qp#&_jRoemt^nNIVqF#9H*qo^lZv_=2o?*6io%kC)W@)_}DOv>TGdyB9fs$<`f zp1v+CE~l3p?wmqT-7wRy9K+gWN9pWxf=Nv-G!c@P@!l;r5?{{VZ0yDnrgB*zpqh zT>-al>F?n2^{{z1+`D*$2>sA(1?OS-+5`V)EomX^0-xyFUht^1gzRM(k9!-Sb&%5t7F>ii4C%3n;wcUhPl}XQz zL6xAVV-T~(KufEI-pYRZ?0yzp8OQP6jWl(;@%R-&&Qo}g4hzNC)j_9Q$9w_y^gHml z+p$Z@7(bLit#b2>NmTc?6CRep=&Vr~!opC+5EMr*hO~6T1U>EDm1K_^M?rQ1ja9YW zIDZZ~nqjIsd$@DKOw4^vScWa!vv>}bZEe`(P=2&{2HV^ENs5Z&$Md4uKkR2*N<0(h zjOBnu`_?UGEvE+i5jTp@|g?BiI%A9?&A8( z7NFQVu-NQ;W#M9~+na-gb>1CYhIiLPqYOX0J}|3>0@@hJ4hNe%;8JZ^2hMo-%JdH` z8$pDmc<3DtY=0CK8DtkY-2o=~^%xT{D1CgB{ z6J&aN5UB$AfK-n;mV>3s6`VH1sFYRF;|ZqkF&_t<1#WBmk|)MC#IwXQ~*KX zmtVa)up*5h@X*zZ5fBgrxNT1INYr}*<8lfS1pzgo_|)&lB*dQDzAG^m0TDrf{2T>A z6cI?GNL3L9fl<>hI~7HLjGgAH_V5<2f^eHghzyg1Oi%b{02O+2@IMKEGJP6MCFSD zgb2{w0ihv*^YYrEq3sJ6SUS>~>+6T{pGMAtAkfohrnS>?ieyAlz&~uE%c7oY*V<%8 z0{YrbRGl1Tz~To1#1W!-|963bDzGgGjQlI$wz_C-w<8DwgPj(d+wFivb*=rPQgj4C zz;5cH!|KB9QxHcw{71f19v5C&#qGAyVGb-kKWrIf(CtH!UG&*J2m)B`W=?eX&}MaD zaoDKp>cXjjfS>Y?E*yTD0n;Gu7Uu}zh^Ow6D1MOg^g)`BaB5o+KG+ujZCe0_dTmtK z1|}c|x@}Zf4bj!(!0A_mgmvBmrwD&|7(^G`{5^PkJ1lz*uKX^9B*PDH2FVNGc>u&t zxbi-DdndfI0kRJF6gbl!w zZ^QD<@ZM&){#&rK9ll%=u$m%9f|CF8G;FDa=tvlw4^KV@|Mx1q@;ZF^+tBO(Vm(Ju zP}%ZsBl<9v7oI!8@oEd8(9&$eD+_cqbW+>qq48iN+Yb)nsB7a7&sEXf=cVf1BOI+6 z=B0PKiH;4S_ec{5`&2w;JFhIO!X!a^RX59C3j|nJ?rGwUHO-j%t-SR2Ma zKCurs;PR<-wGPtS+QVOde}rB8doM7JO66!{9k1`$#Qv^fRvjtjy}Is?ZNK#0cj$MS z_~kphINaQV)85A457x1~>>;o))zMl14J4j3nBQ_kKe(q$Du+A5X0?A{b zel_UL@W8L&;pZT8Dl}{eg!8B>|Fphjamc`Y7D<8|ac@!!jsJ3y|8Zg|M&ycJG9jcS1xY zJpULJ$HNm(!_S@#qys&41H?uITtz_x(Xjzb@pKn5CKjT?&vXY3A&?mTIgFxL6s&%U zx87(Y)aSt6+Qzr<--;$VmIRH9e{JbS*W1d{?J|AIW8IYdjof}sI!?dH9d{M6@~``dO^G2= zkdT0^XoYp_+X;yZ!DJV)585!>&Oc0I*kYzz7SZEGz>hArkd)yg92z=1fvnlQhTOvO zxI9`i^cG6H`p||YVehYDSQe30$j`{)skLh{7{b}tY~ud8`RGvi+qzYh4*Hpsk;+vw zuVP+a291r!+1P3(#i+l84@jl2ZHVQs*ONCkmY$|TR6>JsY@dVsLeM}&FUX{V_ z{xAv1p>TLpz;$!F0{cnNgFS0ua2WhRavXTQAdP5JJ{@dY0|UbWa&dVfB@as1!{88v zL_nApR1q{P*qmS(1;hIT=k-3BI_$7+Q{dX)4``Kqu;>R$F7@G{(OqOsde=a7$qK?_Gtnz*9dM(;5* z8$zqqVz-(wyCuR@0n>0BHEw}v`m^mr!WW%`*VM^CWGEFw zBIB||Or}=MhGcYB69}m^b$1dHZbX)xn8M>p6~Gi3%c4<9)DM`M79rvCNmzz0M8+nQ z>FuP=;vym8(&ZUOCr9(W8}fMl?Pk0h9XUBMI6M0}Xp0J#mpK>SFE7)z+Z;$h4&JT* zu9m2U|NS#ez2YLv%Xr+}^tGGtdSyh7h^i>)bt00iB9G)O>GdK$pNt@i=tOY)6tr3q zy;i{MmC@=ohyuupidG{cOA3;#qSI@TB^gx(olb+_CkON`Q9xA#Wm9xI0gp#UZ_uJh z3hK!5JZ>3LE1=hFEpejfR=mbtJ@1@gdFQ~-MIpr5AaKC+C33cR3L=gm0 z3|d%0e8Dg>;22Kj+i6A!P2lvB{f3dCD8=hT5p?KBD&iSJK4_#J5y>@L5zWZQqV9t{ zKE2`WW3ErugZ!I7o|)LGrpV`5@VN zaaNahB=}E%T40(g$#iwwgBsR3-)~g~l}kE;1o6r6ei*{V{Z^o}s*h)%JIKbvmNS^_ zofQ?lw7imD(+9=N9F>i1t_{pg*xP&g_0RWmpvleA?X@iZ<#tx=v0c#dYY#N?gYWG^ z5n#*8N}gYKg6=^dNM=e84S%S3-ua;U?2Ss^Pnt>;g>_Ty7jUf8&n zBi#cZ*1UGS%ho<0`)iKz)W6>1rRrX=wX?F>j@CWI@3!t@<&hHr?AgDaeoZJM@YbH4 z2nNHYedbyX)!R-4Ev$3;)6vmrwIUt80y$|aO7NEa*U>wuBO)UF;$D1Yc2${~KR1t^ z>yPuNy%Ah7H)cFP2BjMnLPbc z9WVX1gyseZ3+6_${hbQ-Ra*J#y))SVb~$Dz+;!hXo`32n35gNRnjXjc4XuR6$Me$% z#*zMd9S&ge6`B0_@#9$L+u8hLIR}O#xcJ-@jrOm1c#Rd3qc^AB#$6VfMI@WIs>7`!+&+0S`Sti4F;tmpLcm;^O$$J>TTEho0otYep)K2Jxv_ zQ98Zm3|G$QmucyM>W*gje?R~LAOJ~3K~%9!nOuCadj_A3PnK{gdTyE%!4IBnX8H0w zBm};Bb3Vhznz5&4bHk)46kk6}Zl8?5t)GQopT^2HwV(?Jp9fQS~V~ZSqiMLXV*pYt=sePc}4EJe;jd# zHRnxM05-RelEU$f6Z_GH>6o9H&cr#>F@A(Eyt>-NkFU7`N%G-vIO!ZV;{=3}^2f4b zAtt_%d*_vK>nJ&+VZwLYKQb&xzdhtA|t6z4|pWNtohzPpUJjJsKsnaYyl zLK1+vITb9-O1@~Hy`|U94<4RNxa?t*&BfJAQYk$&z-6I9!a66sUN4V7{#&lO<{Gwa z*@WNk58jkd0ZxaLl`B``^Z8I!6=Q^vd+)uM3G>of`ogV*hlgL3Tc{%PwJ&G!!irk1 z|7J0*?KW1uynvRPevX&-;1ELi<{dM+XVVE92fWOjnuca`FO%kGq6yJ5=+yAYg9TWf z5(}m!0dU!6Sv>XU!`$}WsT4%^^S5U!x&MJ;y4O_kVpSiDro>QoY?!%A@~J!0f+Z@N zBS-rgs_v%CqvejTry?r?xtSNH&?H1fLT4*|`b>&-5R#oo_{R|SGq*3{jq+x`GG{io zPsygrsUtbWz?(IPsrE)QIcqMt5zQ<+-oV`@(@BhsqSKH(Y_#QxdLfC!52=LuPs z@p`?%zfa-M>2y+FUVg?3&wjt3va+&IY~c!m0II^ue^z7rH$k#=Q#~7Ybf2M9I;vaP zQTKizroww`>TxS@bY}zqSXMDyZ`Dqb&SsDL2Rx-C`4oZ(5Y&&7eg@M zXGeX<$F}Pm?#JR+>FI4^XLIKnnHFAqKhN(iWp!2Khsdg`u@;L8$aem+V=tW!KdQBZ zXUmS^RH3J>l9eYK0XTGgAEliE5r4;#QmTd>fXd3UQcRM9)nVq1L&s2o=I&NjmRFx~ zAtw*D^Xfkv0613K#&NSMak6@lvD31MRLoS=*x0wel2seK@R{wr@#=97*W20u@*ao@ z<+sl_F=b&s<0Cu_XblXt5Ax)nkI?6V%DqiI`E&&muxsr}o`0p5zRqF(^oIi+Z*~$9 zAIXum$8iF6Ob!2!z4H!lt2+PqM_ZO;Ti$!bD|YtYWHJ+G*eOtUp)G~d zmeB%blv2w2m6jO@gjEO$AvcJE!JS*l7WLyuW)po11&_SbKSD-FljRuy)s03VUogofaNn zyN*_;pMGNx_pjQFT@29BUdLlw_ajQARMa2hrTwKyWO6nXY$Ly>oq#OBvaOpaF<1~p zFE4M~LA&`V>5F23+9oUKj25})@iGc(to;0jk(@OxidUX54iZ)nXC{8}i(hcnRac?Y z>4=Su<(_-)Ve#U{-F1Iq+esQ3LxjvrZL1GyV;%o20GZo? z!|o+#N(y`OTSy+AgkZJP)G!DHC>T(4Zn}(3TbjA+caxF!S*aL+d+!=cV?jHEDT&;9 zQywO>kMl0dV$JJCXv0E?)X2~Rzy9Su@+QPF(ALA2%m(N|KKHE(12Hm3NA}`Q@}R0PLx4 z<|SkAv$1V^3kIu<$??H$zJfSIq1Wqq?X}mq|ayQQ?FLi)NDeVlS1S`Ck;Iw6mkihKP2oe+)+Wk`E<&nh8j6Aig2*d!bRwwBiB|2>s`Gq@KRoBUqS#!w@(-0G`!Q=Dc zJmQwSeO_EgJanhW!{^GP!{hmntNHnBpWwsk@g8aC!{ze>A}+5NxBtsEj?|$c-1f(L zRDWDV&!CIq;y$*ntY9!LBPhBDab}~etc?8peD1&h{x4}-r{ZP?MfX!A`6D|oe^HA6 zq9}j7*Z&O!Evz8UX!!m9@9qYk$fP{Z`@TUd9fQItwLS4h0yVX^@AUm$E(Zhd@3tTj z2)Hm|^yN;Cw7WS+@%xzbG$TRB(k#ICAUKEf28lYrb1!teN0_TyL z{g=B})6(0|(q+x3OthjX($m*X$$;%!>GRo7-l4{9<IysKj`E6t+ zhcP@Ogm*ruMO26J_@5@Sa7`NkTR%KR_N*-AG6_xP?fm_DFSp)4j!2#2gno;|Y31)5 zHZW+mFlWka>ISQ5IBewXd6$r_`+7=7LFs3NC*`8Uk3$~L$e3^h!A@9YDoUA%h)8jL zIeVHL`StiHUMZ|b49(=W5yOy$*swZWp#1M|k))3c~I__U0fxw*{B97aY=I+LP&wD{G`$sLEv)=FyTD6%8MsqbuO;mp~LPEKV{ zWig8I1k61R?6QRMz|7qLK3M_UFcldilZcnNP^o2X+R{dsRpi=hh6h&(gE+Hs=+Ggy zZ{N-X4?GZDB@80y5(aUGdvFrTaki~G_5N_UdG?tDblAT5tQPt7?L)l&ULBq<@SK>2n0wvGOo~{NoDdc6IP6S2wAkN&IQ!XbzKcCgBSM$d|{_#6mSVvus0Pn15VD`Ke z-g;&)(`Tj-7pDMCD03I)uyJEGbyY^HN({)O!kD8K`D|Ma3DPulWu>G~8p)qusNt1| zCJ=BJ6P2u^`d}-EYVFLwD3|*EP4wDC7B0$Q$EGGEY86u_MDp2w1G<=S=AV^}`Gs{j z8I7a1o%NfWxh6G+J?m<5tJPd_apsq*etr}DJ}=v=Dj0Nlm^NZ0rOgcp0-Q5p65+>~ z*}LjGxN5<9#AxKK*t?U09vkyU<(*j?9iCZoH%o3gSpq|)!}Ruu^-XP0({g9TE@pnDJe5@?e(M3xLgcM6kKz4F5P7YbYqja zy5bm0d{SuLm`t9u2T?-mz#fg2%FVQQ&ByyZs@~lcHumU)EtxD#=-VB{60H7 zYwBsWTJd;nn2r;Vb>C%+ahL|EXgkD?fe*s{8g zC;nQ%h7HYREE>3HSoIL>b}AV~0h2xNAErtLur58N)b9C#!3k|Fg-% znFMQ}nMdy1#?0#{qjwGP)WZeLT$Dp`epOI(58}*3d3ibW=FP+B^C6W=@p`>H`Q(%Q z_P4)1W%n{Dy8j3uiWC>NGkS8`7x(Bu95A!7At<^BaRx#nk+5&yJ_JGdk1MEDD%rn( z|M!vreKK%&_EOgV-xtLNzrg$NmgDjWr{0Oj#J{#~$K?A_UwkG`N#&~>4oM=zSu{-_ z6x~nfq?E~I-|Gt4|I*mx<>jGND!)WfIXO9KG#Ug!IOUiusT6jvucffYh$<$Ii)P1> zmZZY$6xse!89S;i{O-Q92w3bW^;*IjyZETVNzCFzY{iu<+i53tdJeNAZ7hAIj8VTh zkL$)rX*ak?%816?W5(qUFf2QgmWDxO3K`K+D*6XpsI(z?x((d*n**%aw*;-z!Grg0 z<+}UMLt$)Xz^6g2Jn>BfL@_|ezyMBzp;R;Zk~XCTQkne zMjrm4hs0;1$3pdhrVZ zmMyE{>|eyOFf){Rql}X=xTO*)Q}V`feoh)vWhk4fG$cgmj;r%TD+DY71(^ytZ+-ec zV`g27S}w!u_2BXaP$s96-r0dMGKtujcpMfh5lI>7LPcU7gQTS7{xEYyCL=u~oJ6gJ zl$-=^T#|`LkaF;&fuQLALqnxfam%fD;O>2mcb^482#(3gK%s!g{t0f~pLy)jKc28_ zcyz0JH&8T zx&XTl^fP--GCsE-uU8-}OohkpX8*xHrp!sj-EE@0#l^g{66vVvrOgHt^TH^rHj|hf zhSKY#s?AMunx5gqLJ?dZd~zj9e3%^)BK3-s8jr3%1NCMnGqN*rSO(GPBT;|D=l9jt zGHO^VRV^J@0us*2%b~onie5p(!rWohbhHv5mrA%?q^P--$yu3rT{eokP0Yzm{Xwp= z!{P?560KZ{(_~}+;Q>ZZN+wPd2ol!mAgr@ypTpJjc5w6M0ldLo!%i9{)$sbJn_2$$ zD<@A_!BxUD9^X_1Fqr)O14AyCvuxQrj2_m?_z@z42vP|Qn8E4*l^T??qxF-%cEM!O zZv?*tRNwG0w%cI93U=qQ54Rt5-?37N*$gfLG^!tV414>bxM3WZU3%e3c!ER8&w?Nj zqeFF$PhUrEFqPq%5D5^XALv6hLOKx1^;e$F*zxg7ykVw230J*Z54b_T7^U#O-tQj zHa2#Xo1BQ~bMdE@>p5psChzasO|?xVUTWpdf&$hySy_;(=EgTZK&DT?HQ2`biW*{~ z;@DGuC>YjodIc?zxZuv;!|ZEe#?^4{ZLp&OLXM#>N@dVj3+LPn%kqba?s%m3?mKY7 zEiiWp%>K$T>uR{>X;3Rp{i_E8@YGZA=arzA|Cok6!1es%-fyR{pdGg#I-2|V_qsMJ)|QevF@gVky^hJ}T05yb#2-l-sEWD1JjKDFsHttMr=f3vK)}pvy9yZa_yHw9n=ziXrPV~oq;Y;? z7{fC%5$q;HlSeW)PR;(-9#BYmd(#H$ZNW__PAgeyWU%lGSYHKCKMvcM!Y~zFdNmyA z`#K@{9dO4J&|(0y;~Tn`fW-`L-Eilx;qklSvELj$p122odkOgb-{Jd^pTaQA~YqItCx(XyQqaj)kc~-hmwRxjZdV%-NLLp=3+S1 zM3_bj9vAM&aNc#6Oe1=4El1P|Neo{A4v{pxAR5WUZjAiRrvG9_gqd(^LaPz>H5^7uO zDDJ4G(HFzKxG;MCe$onh`^NzX6{nf!xTU zEP?k6%J}=@a{z&lTio1`sYj;P5E&Xys8)rbj^ySkSqK3LkIe|K5}r1`l0fA_XmZ0N zkHHnQ!0U(CABIhr!Rw#G(%XmL15l{ot=GXM2gO&OprQyGEyzT0xW4?q#fu?F_VvQK zV&F*M5(w3R*9&qv3=RSch|qz{eYBlK0va`#OdwT(R{3MqN2DyA8PD1^HO#qe6bG7Y z>{vOQ!$sY+cH0nq0nWX48n;9>5t0x=Sd4&gYd4c-B_X=J=whR}_h(sH9e!p_hz4Nt zltgxIsAcLo*~EoN*|MpLdFN%&u&J4C-Bx1KVwjT{pwHmK&}KxF5sRVK#DUU2Y@*18 z3zGQzM;0c}55wyVpgf82hUCO#G*YmbdhkXhV>UG42p@@7_SN65=97Ewz-Z}1p$bK5 z_hON$iB&}qC21x;Et^n@7N@0&NfT!QFghUykT5YVnN=0-Jg{gE9c{I&DeLBv@zW4{ z1;URg{3Eh+(H%M0I!GLz z#GKKij_4*@rYB25s$pilhSkL_+`JQ zDuaPK$XxsMRUkeR-Sn(u8YT+-B z!PBduxDc{r-%#m$0LJ|seswRDt%J3Phl+B}ng?$`0ZQLcTelhR`V(xa1V3=&tuR;s zmONPVJ8=Gh0qCVQ@ao2!c<1d`gQELS3_+Lh^gZg4%OOG!DmfUsVB==EZr*u zhRIoAv_M!G2qHZEBqYv;=WYg^$GB;o@Z|Flkbw3pD|T01bL?}z{uW$4=I9b~N-nH= z9#nwl3aB{*)n#A}Kz})`uYmm3Fgp_j;JoQDW#K7qadnzS_x0=Qktij!wAx5a(sSWF zJr!LtWZec{{j`<)9-KwtmIgx8Vws^F{v>0$*sKHwM%Uxu8B3WW+*?3nVhwwHKnYAU6hFN1o(rJ>2Y(}EEVG~FQj7UBE*s5+!dw6T2#wN2i;`1v@vFeg83KaQF)+?pU+R> zgMZf0Cyyrljtt~kiOkDT@!?y&Tzmy}UqKvt}sitt%9NzrE z!Y#Mu^2S>YSX%8t!aA+ytzswy!RPl&xcv7Jn+bn<>WBt*glO_N zK}Qw5^gL)>$G3C>0T3kLZV4Tygc1@7mw!OmMj(+43EOr?_kWx zq0Jr=60{WUX(M}N95{Rw?(ZNyT~G0WKFS;}8k;Q4JvRgS<|a%QJ2r`o-T?>3Ml&`K zgzBT2lG(-HLw!se8-qfA;(oR^M2kuSF_AIY%UUUu+sR5wM=SrjKMQGg8cCZ!S?sYVQl%$}+R;H6lBh@Tin1RhH5EZFr@wqD8ei$`6 z7MphB8r1**AOJ~3K~&w(b+=7GDhk~5#C$XwIkBUo$vtwuTkoEV$?8WgJ2_Es+^BI# z^>2V{MeSu=waz(2P8yj)L3;9OwP$BOs3?zd2_M*0>~6p%l$wNYWcL!`f1T#ken4cOFLXH$(QmW*5T>k%9qbiLG6%cTFkf@ZXl|v&XJ3`hj zy9cL7L>sC?qm~gBHIz0WQ!9u%5|JCCQ}KB+fnGm!9-k+GOeRGWBFEwL4_)#fUs3ifc9xr-bC<+96Y)+zdI=mhieu98B19?R^U5nX-wLW@u#(*edp1G@;PHPwh}7o=kM{_%CBc)|!JWT=%?lw~ z1sk`5JnU$k*pJDwE!^3LsFl#L-OIGe31kn`(9>E~cN81N~-Re7=k)UOb!UpDN(WTP6?|p=O}9kGerA(bhp=FQ^qngCF;0s{SIn8uyIVgaEh&M;qZ4>_ZygGimS0Yf;cx3|xdHw$ z0nYXO1?c@Y>RM{pW{=~X2rGe*7$$2&DKFp0qeWdjFmE!A_5kr-1DPXckrn#=P>C22 z*}9>Quy83Y4jou5j2#z8T(p8UJNtuS4X2N>z$3stzlS}qgDwD#-EjF0(6|OBr4G4c zUuz?U`)`H?V~^$=dcAP*Vz_zXP>4hz0CVQTA8v)k^I*~3uOFAr2ZaEl79PAE7EL&M zKA#sZxD4*P3e=Jz9qX>&LH>(?9Xc(r^i5d$09-u{d_SU!6Ow>H`+$?p>$`9pjC7SX z@Q3?%VAqC|rWe?}r2`CYJhk3|sjDBmLjZ+@k3VT*pxH=FQYfp}w-T2ggHa4&(dZCX zt*m15v;-{eHZ~Ova?aFfn#v69>XCBx#0Z>zDT^-6;)56W6Pq4GsLzELhzkv{^vy#I zw03geKie=H1~J=CJfKY~lM%0rSA&?{Twi+ZL*A0ft9}a_;o=nVAt! zWkVI)ntO@R$iLT#(cRL|rVY*LBGj}u7}>eAl|CVaY1)CHg>@!i++=uf){v{^_Z_vI zjs>R-9=mtwbDtB1*9%K-915!Qc!vmU-q~>OxyPHeLx0?E5Owg#T_E_6_UH4#MOO~F zKb|AsMG#>6?4f=?Z!5_ia#w#;R+dD9JOEc*lS%%THnia?P=uhc*=TjES-2>JzBU`i z`TaP*l}b5q zcpuTBkz9AIL{z-&8a@f!tVM79WM5LTARx3|9@_$hXFf3h-;>hYr}TSt+9Q^YL`FjRxA&n^44peM>S(-H za#SP^uOEq2$*{QC|GXb@#8QjUg%R<&0i_H<>v7{1l_W*zzbHOo_xjMPR0IS+-T;Is zPK{pl5kq4cpA!Bh(bw+q1vRYGfq*C?l?BJ)R3ViPiL*mM@2b%c>`N&hRk4B-ym4*vO%QUsu} zsEJQDw&1in`1rj_KHb!MLTNe;tu-twX#fK3sjg)Cfnw}#C+ka!S#h}hghE~Ni$3F{ zk}5ocNT0czy-l5nf|C`W?PhyhKMqSDs}B}(xX(saOC8Ji?4{EUIC@xGT#wT)f?(zO z%|m6MOG@`qXtW{$HtpXP6)8AwfHMocJM^4dp{7 zB*dNCeNTWb2YSg!kEQU_Lp<}`Av)_@S-+>B5$S3+Z)~8y&&++l-o!I6SKzd`c=pkJ zUR~A7?td3C<-B3MysVboNoipBGCWty-i?(!_V6yMy1cyoQXzl)%YFu|9-e%3AOHI2 zVag75^7p4dE>onr*C_|o* z%gUYG(S}FSW2oc(s!m1@8_uG5k#{QE*jQA+XU*+cd|uw&TZ-A*iP351g`Edz?jN9` zy^dE3O6WA(PI-P*7q;@m<9pe(w};K2RPxt{^EuGuBPlGHOZbDs=kxKuFZTkgb*CaXMLi>on|jUCg~=9RK%5F&38|0$v8f!%0`ezHTQEJuw$cw+(H23=jM& zgWAv9n0WPQ&d&>{y0n|oW8&DA-wI?S1>}e{whP>UUjk({eI!c#ghhrC8g>Fz6=gC& zf)oi(uNR#VARzcDsXdG$eI9AY42u$YwXmHV=T4=~;w0cOQ`W6w=IC);KW7?lc@iqU zh;hd*DlHyB#x3*a^6Wt~ZpR?+wZk9JPQ%%5qAf0yNVgGnd@8P{8Z;U`=cXld{ z{rv;MK{<)BOH7Yu?H!ZJ%E~;o`GAyjW+t$9dmA$@%%!N!&Z;+NQgg^aO^p$oPs-wp z$8v+B371Ao_%I!|Egg)TkccWmOH`bm2QSRUV)Aj;#38+B^2B)Fc&(I+mW(Dr?q}KZ zDz3gJm&UcVd|1^-PKp|rS7ge}RGO+f7*uQctlGv?zsq3r&Tg){B$;RaQbFvP6c%^` zsJ}(QuIn-&cNr+N)Jx|!+OJuDb=Z-eMQk<2Fq7Dj6`@bX> zyW0$ucKZKgpB>oSi5I9Z>15NER+_rqCv|$W!9+okap)X=54(1E;IcW{xUrdSySq(MLi;_MoK98O4)m7|kZsD6`Ftg2!!!I&u>Za6S{L*jrIZdo9uV7D0 z_t)CBc6Zi z2;g)(*iqYn2=ol}vb(YE%jc@?W6O@Az8Wff*}S=hikd+NokEbXg7~TFU?QtNsA1$- zJrEqz^sJparAY7JhbN;wz(H*X}xB?WkoEA;qz z{L@e9w{-HS4W%@7wqf!3Xz8fq^`Z(C8a?M`M6;^00}%Q6vt4X$?IYmm=i!e(rqKr* zcIES4StEUxLH_#bDz>%uU@-RZ`wv!9Ibfopy`DdOvJr#RLuJEZp4hkplTT#hfo&|? zcNmu>z#E&_vbwSvLG<$6hV|@f>N;vc2LhCo^)VvG!2?fMvc1sAym={%&eHIY=SzZw z6~s@@ti`KkI*w)42|XX8?v#x;b%9EX5~Nk z6BZSUUI}u%9ISS+^4(I(8muT)5=22nqy6@Hm+*)v6jCW}zlgD`mXNS$s(bB7E%o$< zk4Ar-cCW7dkgVY&F}wW4X%!gy`WTejd39d{w@exdNGNUTX35O4G__Zem^^}+aiOfM zX=H3v2;KGo=VYgI?$omx85hHO!&12Htg{#v8_(IP$y_sO6xpdc%*h%AUZ5 zV@5C`O2dLl^Z416al}gHTrlG-?wU0TxkSml@l$zl!PGB(&;CvmZ!D{0@{D-;+XndP zqiPxkq|8rs2MH^PpPX<=f=YrY^WY8FQ_?JO%aTm$_qFlP#x9gfDPm|i@{U%@TU{t* z5)SQd!6T87J8Kx*KCR{a^HVSx%p|4_1%~Q%GM2r57^^~oug}EW%d62QhG8gfVdcsO z4jpLcy>}}ynEbT0^pL;5hk_OtbH|3@_KHXqGHSP$qRUF*M8fl0+MD^Tx|AxD6G=!Y z#a)BUAEx7p4aMBM;CSUT1SU+FO)L)VqMj)+UP`TA5@i}9WH#P9R0Ra6H9HugQ=nF9 zDX2WeuFe4_4$FXmfHxrG^Lep(j>M&T-8heAYS`T_KF`y)xm^EoHEk~Uky1%M?Czm> z3%A#U)9V97oE{IZuVmh9BX#`x{#jIQD97XyaJd516f{w-ObCkZLHslj6y5(vo;SfE z2qK8%L$EvPw*|icj>XewC!FY+`v-a{?Hv-&8#-HQu?&gl)oo1}99|&6;pQgneh~y0 zCGDN~MQ}Jw)EZ6SDbl^A*&HOSAcBxcB-9^hQCsW}^0zCcEJ3O*w4*TD^UPvG_UYFYmGNpy7kx!{5bHhy@Rnl3L3uNueR)us3) z3NE{1IBzYlBsoFH#Ibr-tZG0W9?8SMAItRBElBY5@&*gnUX_7X;pWaI8zDK8zx{az z;o5JWmeWR$<==){oOTBx8Vy$_xma3UPjhn_qR+=YS1ch(_4Rg3KV8m2M+mpg%A-@3 z$}AOh`h6sXg%hV%Ayr0lPHr0is_MaOQM04EisYC$5}eHx*AG&W9)Y2zj*8w8n$tC` zu57}Z7{z3D3hQcGnUmavMlWGYV;iHojLb-iIVI9EcJy=e?+&uz-FZCq$yqo$ zguR_&(83Dhr$<@1{e(uyF#A0V>ekDS}d9fE;%oSf%0|~c{%+2$}D67fhp(Y zB3j+dxppe6v|ieKI}9!uLG8FR9^;pZc0XmN1k zZR7EF^#b7Y2*{A*bp#kUI-1)3b@b@txbtVZ$WLSg3Ne6Rgb=wDuS|u}V!`QgF@EG2 z?wB(LiT~I&i*|K*xbK{KgzGc7Wo$h477Gfunn$j_kk!Q{;CC}Jb0jji6=ir5vqp^K z+{^^B;}e-SViKcc^h{4nW>Vf1GNK}wlN!&QvExaKie^SaEN73%Bt0>M$;k=KJVmks zh)IcNY`O+ffJtYklb4r7gu+ki$RuPBJ@n9{!J9aU|8+>EQW_c>@cRXpTsDnm%d5HW zj`0}1Dt>+INO~Ij*_&Ta%b<*lZWvFZ+dx5smq`=iXs$Ifb#6LI5wLn&AHVzMC_LT( z2~iY_JI(h z=Jrct_;|B{bFZApq(~R}C03?Qi2c@$C`y~_Y47Vo8lFsiz=9!cICoCYqrIh;!vh|s zWu&4wMi&?4C9wQJ8DoZJ($iHYHr7{x2 zbVEfCl_4bRlz?QYUY1slL@FgLEQ$yPNTo93Vq#GOGMS8&=$P+xy|!*^%nSP9{N1}#?L!T%dq-j@7i*ndb*H(RrZrQe^*T> z%igI60=)TRF@JylFr7vRE8jfC=6yXUw6a#;*1-CPP9VUJ@`D`gu_1WvEZ@C@ZEgME z*tXTsPQOQ>wXK>JWwnUF{__3o?JyGX+j({CHk$3n->SZ&tC80ZQ~|K_Z~-4xG=0y^ zE7IHTpuOIRAK0~_j%S`JV)KE1;^LG+moSK*mP;rIK8lMZoP9wGuReDOK`KM5_S4+q zWYpMr2HU%E_|=r|s^?IPhcuakm)3NlkJ8e)rT}Sf3U7U4;P#tFBJJ!!9G;4#%fP!I zHIOngp6WdftlQSj=y9=Z`=p9}r6%I_Qr>;93a>JR%&Z93zOPLyg1aVZ?+?JqK)T^+qpP54Y|3Ukn~hP7H7E-G^TtNr=zH+xrWV zt2JzD?B?unBd?cqGpJ2wn6;ciZ3c-N+4sa(BK!7rGH0}mrZ5W`p+Xe_6wuf+5l9b*1I=S=L6HuCMw7O*6dHZNu3)>NLleuxpa17lxvh$+Z z^g$`=5G9eJaz3wmwReYs^c+1AS}AIk3fT$FNL8qwQ1y{g$9g?#g#wV^aXCniNhEMg z&0XL(Z+?h2Je&rji71^Kzu%A3E230@QYHnYAW@MKrlhEJAJUL8^2@3yZfWDjd1sTQ zQ=n5wkwnDfwA)en9XL^7%9Dj9rkEs`Um5D~O*MUrA() zPf)O8WhtS#sVv`Y=hLN=$^W>9hyPm0?%f^4&&Va++lRsCN1>AQ=^KSe^%^3h)a=;N z#q~Gl(AQxlBWjn zg-`eNvg6Pors6U@!*d96S@`Xr4^Yu$9ja3JEvTrkW_M`;pLGuKNqIHf3b%8hrJdJy z?`2<)9lh#Utz^9X%U`lMZy3WOBayfVDKQvPh3M$-Yoo&*z&FsuBWt!`mTAb&98Ob5 zGf8o=#D{8ldflfS9`qsin0Rg5VJ@CFp0iPGZhfz)*5ft5n_-Wuw7Ty1s1oQv8YabkfAc8nPyuE|e_xQh+a88M(j^I?u>QpU_ zuVw|gTy{P@d+Y! zn+J>8LqHUdUc6pER;vf6J3z&rYUWS-0KWuYf4-1k+_{BRTRFBUmBD%b6F6>1v1d#dNy!>h@JNEUl zR^3YC5tCb z!DKQqJtu?MsA!6tdsvhcOIfdlvqmMey`%}VTu-vh%z2Y%F()m82BQnNr59gJI?*2ofQ{m__4RG%147ljHCV+R!G1qXIm>029W? zAn^-$>B4C3u47YUJEiT7{2{-NTW3$jXtS}qtmyyS zJM-wc>MPHGUcK5&C8@M;)^5x4CJfkMV`5^K^vM7rohH+SboWVmlIi4hGV{-LPbMcP z$uyIVK-Lam!j=ODLNE|E<3+ZFZF$qaFD0o;QmG`BO0}rAx6U6WY)I_b0VaoO)%TyO z^M3FC-ut~@y<7Kpf8TpAhdr~ruhNl%z=l#QU-{k;U;pY_N@`t{mFMC#$f%C2jD?lK z>awsDMdfclx0_e?yZO5>HDS!l;m+IFp@d?LcFz#S&MkLtpxzRqwP%^eEv1NwBs+Ik zk!w+T>*Nw&zNZ#h7pN?CV7Hs7tt}Nnmm5`fX z%BI|`OUiBAbQLGM+bJ$6q+_s`@``%a735+yTgkE6v6*cwhJxIF!!FEPj9@%We?%om zPhm2oSR$KSODwd89enw^jqIqa=f>I^@*Nf=ImT!(!l$m?#%+xo*;-nJ!(x74bCp+Q zC$GAgrWyxXP8(}$a@c&`8Y;Bq%r0RDs{@$?e*Z!KcruS5gVh8<5J&`~{N%yY49%uc z&R3~XdHJah9{$Y$%aV>FDM%UwkG1o&m7G^nB+Ac!e1`FWOv_7M{I7pK%A4)!UA1^z zMgvq?C7wv{D$0^VBB`Kh+WB^GkB9GluN}~N_<_@W>$`0XOfI8q8u5g3MLTf=?mqT* zq{DmOIDL%QCxQSdszO|nFWrZ(t)wP~w(d6ewsjzBI=UwDe_l^J%wId(%6-je(@R2G zLQ>PD&=;EDVp;<|?BVW5pQdwahMycd$S+z>p#rTZUg6u#XOMwM_dmsR1C#H6S5enV z#ARevN0HLcQ%k1!)|Y;pSrTTjx|W2hBGEf&rnKD2@i&G^##4+<1W1Z@wybs1dDcUI zwuSv~c=6B2C^aN`zAZ#b(g+=G$9Zi%kL>gE^{+OuJhe!}u4=~GMj0H7V$aRuMDsZQ z**MwRCf+#YB^F6xwHO#22ym_=z;(N8IQG;TuDY|4T{|mqq{6r=3puc_i-08QqcffW z02HZ7L_t(iRqjB%40*KBtnf(p40kkC;gS}4ZdT-$G9%Bl_ajLO@^kYqy0rX#TMOgi zI0n0gXPQr-nr&<^wejeQ4u(Ss?$}htYh45ESht>RLxQ*ZM@R`4^kk6N+D=e))phs> z&N6MQ=hjja9YK}G0wcOv!mnks!4c0`SQ)G~=qLt}zxu0sjObjq-pF?z9Hp_wL2h{-dp@y_`BTFj>JH$U3JE!RAp6B#&F9PXon&Qg69Bm6xU8HlUQ{lFcm0>boNopMciOC&jUr0{ zKjwmJcCKB^#S8B!JaxLCxp0tJEWiQ4vdH?pT-Fxml9QcJeZGsTEZh6G zt|q);c7Cjy#wshvTDg{4!W|>PqD1rd%G`dxlN7uII%QGHtJXjMjtW z{QE=g96aP<)7{(oWP=e`p$$h-EV=Pqg|A2EyI0eoM)dKK)2bctIegZK97l^X(nO%{y74U5+e_f=*#!9X&(mcy)A|Z{GcP{Oj(Wd}eb6y2(Mg!$@*D$m1=| zG>42_B_*lv;SVJye4HLnC(hC}jbu_m(R5TrC7D!^lt1tP zUR5*_E4Ae1ltL<%zMd>8Nb;3sJy2DZq>|=HNs2;JUg1s264IX_Kgo(hQc(bn-**k1 zKc13h)IX5ZG>xPzBd;7!N)p;fVEQsn_Y79YKl6&yT~igNMnsOEp5l1>BC4cO>e88* zmFPM+!2NrB*w9o;&nYkSF^w$$3=h5$q_W(O?`Q`vz8&QFm`tT9#!tW7La4Hmf>fB( zXZ>Uqm858z*xG1@H* zwYhnvd5)diOD;Q>smX5s>BtbD-B`)V;UOM<^JUgHZsX{oeY_McVt1MIqH;fe?nwrt z5;ljCN8db%GdG{AJQq(lA7n{4Qj_Q6>_{JDQH5Nh9PT*IlM^a8ms0~=|u|z^_StIeW|9q0# zDkrzzy@h|gr-9{;5gvTr%TvGUC%P=NeoGOD4@^>8>0*3jp3^6MRBbG$aBDT6*=pz5 zu}L;wy9Q%CfqOpA)!WOM>hh5+aIm$h2)n3o>f{X1{-&3b+7h;|wW9(qo50{m7=vhF z$8C)iWnJ0pSXEI;X_g%jxuG&2HD?1=7Pz&comNg+6G+_0;0s}O+3-!oSXzj% z|4kqFezA#)9Dx)nNnK!BjpG+``TSi~M3X6&{1GB?1@#J6m~t`+N|IP2&I7HzeEsGo zWDVxyGD`ANDVuf15?21p_AM+VWwcb78O1<>Q6#h+VLp~XFytU=%S;ACOiquGuoqKd z5m1yAr{)$pHR}6|Op)DbAwSPTUY-?QmYEx0B&V*DMsqmhbkAUQ;Jnj4ndGx~-_77a zfV%bhM58kKIcB1vB#VnNRMAXbwUh9Cn7NohZHa{`e*#xw7CBa(p|L0p>+?`$6-Cjp z*^J03nK5^S+Qxk3r5IBS5{(Tmg1#_;gg{NX74J-(+&mjbMPeo(lUL}#WmcH*ORQVx zVrF!KCE3V^hTO|m%?Us+M*Jsf&oBhO+hiXi}ayNafX9Y8j6bu zgqKL^B9*QjCjB#nbu&$+g#;r@EU89HEjsR{2zG~yx?BgzL=4g9!1NcGt9UF$QZZl@ zG%SLKdnU<-^)8fnGNZ6ESY--pWtUJ>bp%m(PcABL#ldWNH*r(f(Gboj0@XAfgF!&o zbTmDEuJC6hw9<7QeMRow-`{ByuAnnr*Uua;kfdyb>4k;u5~703AJiuUX=n^-h+Cy*&G}hp=cv^7;AgQ$6^z3t68B z=QVgf`OAG{P2gz@hcWK)!I0FVw!|^njifxfO}w;cuFH2j`Q5h6HJ_RQ@Np# z$M%h}{@QBH*$(z>a`5|?2FP_;2+YKI?bs}p`6fI=3%uDEr#jC_G@;SBDW7K_K1bQQ zGVIYXG7y_v;9O4t!EE5^M|#N0x1e1Ccc8YUklAP)1S5MkZ)IlOjg(4oY*B>eg-gn{ zpKC_RDMV2WEGgipv`gAb?!pdN^X)FOv75LIW zZ6+ZL)K%MQACf4x>&Urz+;i_nd_6wKhJ5r-#4#8I$}6&oEX3IPQj+*)W9aW6C zc5`q{<*k?8EJ(`bUujt;mWZQjDo-DJjUBiB4gTqAyuK0IXJ(j9T&#~24|mTpIND2( zZ-lN`9(zh$%+B_rm0pb{5e8jl_qLk|&5R%@Nd$ulr`^W!fo_h^F7Wp7IF{Ts+*6gy zbSOx}x+ea*K8NAC=!ZH*`4xHGd2<=jND6yl4xjo|168>?&0}PISQ)G?A67D%S{)Pv*@};V`a^Uwj@N?@l1rMtaZ`T=0!3Z(RG0=yOFGtoQ%TCV09_1 zOlZ#k=f23yBgkNNtq28T!31Z|O*7_8zNc-lXO7OEd6ttG97)T4ZVnBmLvy6aGRK-d z%q%JR#si!J;a;|#;);-3XaC?h04?X<=9F*Y16A2+KRcUISQ%s> zpz+3G52>Wi>-#!*=#gGRJ|Blq1+XNSdE}9HX8jTF|85Jves+X-Aj$*ZZ{fK^GrawD z8^$~vKYe_Z(lyx(obaMMjC8b)^1zQyGBT&|;%~b6E9-TWFh&kV-D|%Y%oQh^s6G7x?}g%|tbwNuQga96N*Z0koBWa)C$o zje#uj(2tMt-@bXA{m=IDKfZe^qp&hqWzcmLO=EFULDY1kFv7rk1aN zX%nH-LmZzs;q!)w$5Pz&57*!uTx9zv*7MR6?MzKABbW@tOY&(d5E&W`@wI>1Ns*qw zP?XI-|MzY9yL@cCV?AH^;$~b~M(j2-U2nTV5Xp6j=s>P6@yZ(>M3b51e1Oiu=oRg_ z8Etl~VmeSJ5%S`9?cl}&16>1W>4}-hzGxw4l^-4Hr^G1J7IjjuPw{+LKT*L*N`c$z zN4 zk*gbA3{8cp-B!h0XW~5jv#oS=%rQM3CLEQy>H2!^R_9q$pO4EL#dp}t=Ei)S75VJi zxrV|ml|%wbwl@_5(6G+MD=!SOK6J64kLi55z1E2_fm zpwybaOS?1geD;gNg5vYmPenoD2d-wV>l%XDNRHD+Z6y>5PEPjEWSs69tPcF4(_K|{ z3}TwOeV*;DrFYXr@dA@wG=QpIV6>~MjwrsvOiwegbzMi(z#s~65tg>W0GhVK)+WtH z7Yu2Zy{5hET)1p{2q}r5YCT1&9Gl-7Yyge z^$zp?ow0(Bt_$be5z^y$@3~jT*uT_0b~F#Nw^ioh?=-D2>jk9gIUYZwW|o8*tTrcB z`b8QY2_kbLtV9q5X1z;zW@2gUz#t%s0&*~dFQT6hzwwNRP=Pt`5`Fyv7D945WMn1G z=N-AU5?MLE(rz#aB%%o>y)g`efD%tKJ`q7(3C~#!#8H&XGe@KGD08tS1_6A*1!m(C z!iv%gFZo$kFD|FaN!)=TnhvUzU?#kLe(djf_(X%@{8-OC8H_&ZJK`!Wb%T~o|gKU0=bSQ)G?7zCYzuZ&`}syzHq51svCKx4ukBq4)m*vsH# zlCjgH96lXjd2oUs{HmAnxfH#>KgZer0FS;jLr$)RnbV`R&FUmWQJ#FFm!JZkz8M~W zdI*4?mNEA2A162$=GS{W@dQkw~bQ9YZQI z%l#+%0FAh$^6H`A;*sERS0~T59%c3t)$ado{~OGQmzW68^Zl3Jq;+(Zs3d>n=E&!s zW8c#Qgf&>4oa6DQhEP?Nqs`+Pg_Xf7gQgLZ6<&D8gDtg8Vtj%xfAt_jNghRFg4YiC zFwai#gF`CHQiy0&BC9BimtS_HBqXw&CYoD(ShMX6EnB#=(aej#8|2e}vyQ}cgyz0w zzWCSGjJD5kPIB_O+slb720s6V%{>3J6Xcb;$VNs6))yuD?JJWwW3&9*YbiFbwOvtq znZo=6R80d!8p?_ZBrN!+-I&X3F)EQu`i_>8Dh@$maB7SZ#m?AJKVD7!Xw8qVbK;Dj zPkqA45B_%t&m3OjAMSMW;C-h#IGQO!k-@4nu?#p3uyvb@n8{8sC34l4BEnCtmGm$BrUm3lRz`vjMPM3>-e&bRu@(_)v#Jue)=mPCX;~a zU9Y*tdg0Y@*e}RiZ5NIkS9bJ_MiJx6VbOdck+8+`2d~#k_B)3oeI27{yy*2V2hkwn zu!t-7V7}0Y@lW?5iXtoYEzBm (currentScrollTop + 3 * margin)) { + return Math.max(0, pos - 3 * margin); } - if (pos > (container.scrollTop + 3 * margin)) { - pos = pos - 3 * margin; - if (pos < 0) pos = 0; - container.scrollTop = pos; + return pos; +} + +class ViewElements { + constructor(container) { + this.container = container; + this.scrollTop = undefined; + } + + consider(element, doConsider) { + if (!doConsider) return; + const newScrollTop = computeScrollTop(this.container, element); + if (isNaN(newScrollTop)) { + console.log("NOO") + } + if (this.scrollTop === undefined) { + this.scrollTop = newScrollTop; + } else { + this.scrollTop = Math.min(this.scrollTop, newScrollTop); + } + } + + apply(doApply) { + if (!doApply || this.scrollTop === undefined) return; + this.container.scrollTop = this.scrollTop; } } @@ -59,11 +81,12 @@ function upperBound(a, value, compare, lookup) { } -function sortUnique(arr, f) { +function sortUnique(arr, f, equal) { + if (arr.length == 0) return arr; arr = arr.sort(f); let ret = [arr[0]]; for (var i = 1; i < arr.length; i++) { - if (arr[i-1] !== arr[i]) { + if (!equal(arr[i-1], arr[i])) { ret.push(arr[i]); } } @@ -78,3 +101,8 @@ function partial(f) { f.apply(this, arguments1.concat(arguments2)); } } + +function isIterable(obj) { + return obj != null && obj != undefined + && typeof obj != 'string' && typeof obj[Symbol.iterator] === 'function'; +} diff --git a/deps/v8/tools/turbolizer/view.js b/deps/v8/tools/turbolizer/view.js index a7c1f1e4178da1..12712618a5d92d 100644 --- a/deps/v8/tools/turbolizer/view.js +++ b/deps/v8/tools/turbolizer/view.js @@ -6,9 +6,9 @@ class View { constructor(id, broker) { - this.divElement = d3.select("#" + id); - this.divNode = this.divElement[0][0]; - this.parentNode = this.divNode.parentNode; + this.container = document.getElementById(id); + this.divNode = this.createViewElement(); + this.divElement = d3.select(this.divNode); } isScrollable() { @@ -16,7 +16,7 @@ class View { } show(data, rememberedSelection) { - this.parentNode.appendChild(this.divElement[0][0]); + this.container.appendChild(this.divElement.node()); this.initializeContent(data, rememberedSelection); this.divElement.attr(VISIBILITY, 'visible'); } @@ -24,7 +24,7 @@ class View { hide() { this.divElement.attr(VISIBILITY, 'hidden'); this.deleteContent(); - this.parentNode.removeChild(this.divNode); + this.container.removeChild(this.divNode); } detachSelection() { diff --git a/deps/v8/tools/v8heapconst.py b/deps/v8/tools/v8heapconst.py index e3b29f820423b0..68818c66f5d0e2 100644 --- a/deps/v8/tools/v8heapconst.py +++ b/deps/v8/tools/v8heapconst.py @@ -61,23 +61,23 @@ 157: "ALLOCATION_MEMENTO_TYPE", 158: "ALLOCATION_SITE_TYPE", 159: "ASYNC_GENERATOR_REQUEST_TYPE", - 160: "CONTEXT_EXTENSION_TYPE", - 161: "DEBUG_INFO_TYPE", - 162: "FUNCTION_TEMPLATE_INFO_TYPE", - 163: "INTERCEPTOR_INFO_TYPE", - 164: "INTERPRETER_DATA_TYPE", - 165: "MODULE_INFO_ENTRY_TYPE", - 166: "MODULE_TYPE", - 167: "OBJECT_TEMPLATE_INFO_TYPE", - 168: "PROMISE_CAPABILITY_TYPE", - 169: "PROMISE_REACTION_TYPE", - 170: "PROTOTYPE_INFO_TYPE", - 171: "SCRIPT_TYPE", - 172: "STACK_FRAME_INFO_TYPE", - 173: "TUPLE2_TYPE", - 174: "TUPLE3_TYPE", - 175: "WASM_COMPILED_MODULE_TYPE", - 176: "WASM_DEBUG_INFO_TYPE", + 160: "DEBUG_INFO_TYPE", + 161: "FUNCTION_TEMPLATE_INFO_TYPE", + 162: "INTERCEPTOR_INFO_TYPE", + 163: "INTERPRETER_DATA_TYPE", + 164: "MODULE_INFO_ENTRY_TYPE", + 165: "MODULE_TYPE", + 166: "OBJECT_TEMPLATE_INFO_TYPE", + 167: "PROMISE_CAPABILITY_TYPE", + 168: "PROMISE_REACTION_TYPE", + 169: "PROTOTYPE_INFO_TYPE", + 170: "SCRIPT_TYPE", + 171: "STACK_FRAME_INFO_TYPE", + 172: "TUPLE2_TYPE", + 173: "TUPLE3_TYPE", + 174: "WASM_COMPILED_MODULE_TYPE", + 175: "WASM_DEBUG_INFO_TYPE", + 176: "WASM_EXPORTED_FUNCTION_DATA_TYPE", 177: "WASM_SHARED_MODULE_DATA_TYPE", 178: "CALLABLE_TASK_TYPE", 179: "CALLBACK_TASK_TYPE", @@ -89,30 +89,31 @@ 185: "DESCRIPTOR_ARRAY_TYPE", 186: "HASH_TABLE_TYPE", 187: "SCOPE_INFO_TYPE", - 188: "TRANSITION_ARRAY_TYPE", - 189: "BLOCK_CONTEXT_TYPE", - 190: "CATCH_CONTEXT_TYPE", - 191: "DEBUG_EVALUATE_CONTEXT_TYPE", - 192: "EVAL_CONTEXT_TYPE", - 193: "FUNCTION_CONTEXT_TYPE", - 194: "MODULE_CONTEXT_TYPE", - 195: "NATIVE_CONTEXT_TYPE", - 196: "SCRIPT_CONTEXT_TYPE", - 197: "WITH_CONTEXT_TYPE", - 198: "CALL_HANDLER_INFO_TYPE", - 199: "CELL_TYPE", - 200: "CODE_DATA_CONTAINER_TYPE", - 201: "FEEDBACK_CELL_TYPE", - 202: "FEEDBACK_VECTOR_TYPE", - 203: "LOAD_HANDLER_TYPE", - 204: "PROPERTY_ARRAY_TYPE", - 205: "PROPERTY_CELL_TYPE", - 206: "SHARED_FUNCTION_INFO_TYPE", - 207: "SMALL_ORDERED_HASH_MAP_TYPE", - 208: "SMALL_ORDERED_HASH_SET_TYPE", - 209: "STORE_HANDLER_TYPE", - 210: "WEAK_CELL_TYPE", - 211: "WEAK_FIXED_ARRAY_TYPE", + 188: "BLOCK_CONTEXT_TYPE", + 189: "CATCH_CONTEXT_TYPE", + 190: "DEBUG_EVALUATE_CONTEXT_TYPE", + 191: "EVAL_CONTEXT_TYPE", + 192: "FUNCTION_CONTEXT_TYPE", + 193: "MODULE_CONTEXT_TYPE", + 194: "NATIVE_CONTEXT_TYPE", + 195: "SCRIPT_CONTEXT_TYPE", + 196: "WITH_CONTEXT_TYPE", + 197: "WEAK_FIXED_ARRAY_TYPE", + 198: "TRANSITION_ARRAY_TYPE", + 199: "CALL_HANDLER_INFO_TYPE", + 200: "CELL_TYPE", + 201: "CODE_DATA_CONTAINER_TYPE", + 202: "FEEDBACK_CELL_TYPE", + 203: "FEEDBACK_VECTOR_TYPE", + 204: "LOAD_HANDLER_TYPE", + 205: "PROPERTY_ARRAY_TYPE", + 206: "PROPERTY_CELL_TYPE", + 207: "SHARED_FUNCTION_INFO_TYPE", + 208: "SMALL_ORDERED_HASH_MAP_TYPE", + 209: "SMALL_ORDERED_HASH_SET_TYPE", + 210: "STORE_HANDLER_TYPE", + 211: "WEAK_CELL_TYPE", + 212: "WEAK_ARRAY_LIST_TYPE", 1024: "JS_PROXY_TYPE", 1025: "JS_GLOBAL_OBJECT_TYPE", 1026: "JS_GLOBAL_PROXY_TYPE", @@ -147,199 +148,204 @@ 1081: "JS_WEAK_SET_TYPE", 1082: "JS_TYPED_ARRAY_TYPE", 1083: "JS_DATA_VIEW_TYPE", - 1084: "WASM_GLOBAL_TYPE", - 1085: "WASM_INSTANCE_TYPE", - 1086: "WASM_MEMORY_TYPE", - 1087: "WASM_MODULE_TYPE", - 1088: "WASM_TABLE_TYPE", - 1089: "JS_BOUND_FUNCTION_TYPE", - 1090: "JS_FUNCTION_TYPE", + 1084: "JS_INTL_LOCALE_TYPE", + 1085: "WASM_GLOBAL_TYPE", + 1086: "WASM_INSTANCE_TYPE", + 1087: "WASM_MEMORY_TYPE", + 1088: "WASM_MODULE_TYPE", + 1089: "WASM_TABLE_TYPE", + 1090: "JS_BOUND_FUNCTION_TYPE", + 1091: "JS_FUNCTION_TYPE", } # List of known V8 maps. KNOWN_MAPS = { - ("MAP_SPACE", 0x02201): (138, "FreeSpaceMap"), - ("MAP_SPACE", 0x02259): (132, "MetaMap"), - ("MAP_SPACE", 0x022b1): (131, "NullMap"), - ("MAP_SPACE", 0x02309): (185, "DescriptorArrayMap"), - ("MAP_SPACE", 0x02361): (183, "FixedArrayMap"), - ("MAP_SPACE", 0x023b9): (152, "OnePointerFillerMap"), - ("MAP_SPACE", 0x02411): (152, "TwoPointerFillerMap"), - ("MAP_SPACE", 0x02469): (131, "UninitializedMap"), - ("MAP_SPACE", 0x024c1): (8, "OneByteInternalizedStringMap"), - ("MAP_SPACE", 0x02519): (131, "UndefinedMap"), - ("MAP_SPACE", 0x02571): (129, "HeapNumberMap"), - ("MAP_SPACE", 0x025c9): (131, "TheHoleMap"), - ("MAP_SPACE", 0x02621): (131, "BooleanMap"), - ("MAP_SPACE", 0x02679): (136, "ByteArrayMap"), - ("MAP_SPACE", 0x026d1): (183, "FixedCOWArrayMap"), - ("MAP_SPACE", 0x02729): (186, "HashTableMap"), - ("MAP_SPACE", 0x02781): (128, "SymbolMap"), - ("MAP_SPACE", 0x027d9): (72, "OneByteStringMap"), - ("MAP_SPACE", 0x02831): (187, "ScopeInfoMap"), - ("MAP_SPACE", 0x02889): (206, "SharedFunctionInfoMap"), - ("MAP_SPACE", 0x028e1): (133, "CodeMap"), - ("MAP_SPACE", 0x02939): (193, "FunctionContextMap"), - ("MAP_SPACE", 0x02991): (199, "CellMap"), - ("MAP_SPACE", 0x029e9): (210, "WeakCellMap"), - ("MAP_SPACE", 0x02a41): (205, "GlobalPropertyCellMap"), - ("MAP_SPACE", 0x02a99): (135, "ForeignMap"), - ("MAP_SPACE", 0x02af1): (188, "TransitionArrayMap"), - ("MAP_SPACE", 0x02b49): (202, "FeedbackVectorMap"), - ("MAP_SPACE", 0x02ba1): (131, "ArgumentsMarkerMap"), - ("MAP_SPACE", 0x02bf9): (131, "ExceptionMap"), - ("MAP_SPACE", 0x02c51): (131, "TerminationExceptionMap"), - ("MAP_SPACE", 0x02ca9): (131, "OptimizedOutMap"), - ("MAP_SPACE", 0x02d01): (131, "StaleRegisterMap"), - ("MAP_SPACE", 0x02d59): (195, "NativeContextMap"), - ("MAP_SPACE", 0x02db1): (194, "ModuleContextMap"), - ("MAP_SPACE", 0x02e09): (192, "EvalContextMap"), - ("MAP_SPACE", 0x02e61): (196, "ScriptContextMap"), - ("MAP_SPACE", 0x02eb9): (189, "BlockContextMap"), - ("MAP_SPACE", 0x02f11): (190, "CatchContextMap"), - ("MAP_SPACE", 0x02f69): (197, "WithContextMap"), - ("MAP_SPACE", 0x02fc1): (191, "DebugEvaluateContextMap"), - ("MAP_SPACE", 0x03019): (183, "ScriptContextTableMap"), - ("MAP_SPACE", 0x03071): (151, "FeedbackMetadataArrayMap"), - ("MAP_SPACE", 0x030c9): (183, "ArrayListMap"), - ("MAP_SPACE", 0x03121): (130, "BigIntMap"), - ("MAP_SPACE", 0x03179): (184, "BoilerplateDescriptionMap"), - ("MAP_SPACE", 0x031d1): (137, "BytecodeArrayMap"), - ("MAP_SPACE", 0x03229): (200, "CodeDataContainerMap"), - ("MAP_SPACE", 0x03281): (1057, "ExternalMap"), - ("MAP_SPACE", 0x032d9): (150, "FixedDoubleArrayMap"), - ("MAP_SPACE", 0x03331): (186, "GlobalDictionaryMap"), - ("MAP_SPACE", 0x03389): (201, "ManyClosuresCellMap"), - ("MAP_SPACE", 0x033e1): (1072, "JSMessageObjectMap"), - ("MAP_SPACE", 0x03439): (183, "ModuleInfoMap"), - ("MAP_SPACE", 0x03491): (134, "MutableHeapNumberMap"), - ("MAP_SPACE", 0x034e9): (186, "NameDictionaryMap"), - ("MAP_SPACE", 0x03541): (201, "NoClosuresCellMap"), - ("MAP_SPACE", 0x03599): (186, "NumberDictionaryMap"), - ("MAP_SPACE", 0x035f1): (201, "OneClosureCellMap"), - ("MAP_SPACE", 0x03649): (186, "OrderedHashMapMap"), - ("MAP_SPACE", 0x036a1): (186, "OrderedHashSetMap"), - ("MAP_SPACE", 0x036f9): (204, "PropertyArrayMap"), - ("MAP_SPACE", 0x03751): (198, "SideEffectCallHandlerInfoMap"), - ("MAP_SPACE", 0x037a9): (198, "SideEffectFreeCallHandlerInfoMap"), - ("MAP_SPACE", 0x03801): (186, "SimpleNumberDictionaryMap"), - ("MAP_SPACE", 0x03859): (183, "SloppyArgumentsElementsMap"), - ("MAP_SPACE", 0x038b1): (207, "SmallOrderedHashMapMap"), - ("MAP_SPACE", 0x03909): (208, "SmallOrderedHashSetMap"), - ("MAP_SPACE", 0x03961): (186, "StringTableMap"), - ("MAP_SPACE", 0x039b9): (211, "WeakFixedArrayMap"), - ("MAP_SPACE", 0x03a11): (106, "NativeSourceStringMap"), - ("MAP_SPACE", 0x03a69): (64, "StringMap"), - ("MAP_SPACE", 0x03ac1): (73, "ConsOneByteStringMap"), - ("MAP_SPACE", 0x03b19): (65, "ConsStringMap"), - ("MAP_SPACE", 0x03b71): (77, "ThinOneByteStringMap"), - ("MAP_SPACE", 0x03bc9): (69, "ThinStringMap"), - ("MAP_SPACE", 0x03c21): (67, "SlicedStringMap"), - ("MAP_SPACE", 0x03c79): (75, "SlicedOneByteStringMap"), - ("MAP_SPACE", 0x03cd1): (66, "ExternalStringMap"), - ("MAP_SPACE", 0x03d29): (82, "ExternalStringWithOneByteDataMap"), - ("MAP_SPACE", 0x03d81): (74, "ExternalOneByteStringMap"), - ("MAP_SPACE", 0x03dd9): (98, "ShortExternalStringMap"), - ("MAP_SPACE", 0x03e31): (114, "ShortExternalStringWithOneByteDataMap"), - ("MAP_SPACE", 0x03e89): (0, "InternalizedStringMap"), - ("MAP_SPACE", 0x03ee1): (2, "ExternalInternalizedStringMap"), - ("MAP_SPACE", 0x03f39): (18, "ExternalInternalizedStringWithOneByteDataMap"), - ("MAP_SPACE", 0x03f91): (10, "ExternalOneByteInternalizedStringMap"), - ("MAP_SPACE", 0x03fe9): (34, "ShortExternalInternalizedStringMap"), - ("MAP_SPACE", 0x04041): (50, "ShortExternalInternalizedStringWithOneByteDataMap"), - ("MAP_SPACE", 0x04099): (42, "ShortExternalOneByteInternalizedStringMap"), - ("MAP_SPACE", 0x040f1): (106, "ShortExternalOneByteStringMap"), - ("MAP_SPACE", 0x04149): (140, "FixedUint8ArrayMap"), - ("MAP_SPACE", 0x041a1): (139, "FixedInt8ArrayMap"), - ("MAP_SPACE", 0x041f9): (142, "FixedUint16ArrayMap"), - ("MAP_SPACE", 0x04251): (141, "FixedInt16ArrayMap"), - ("MAP_SPACE", 0x042a9): (144, "FixedUint32ArrayMap"), - ("MAP_SPACE", 0x04301): (143, "FixedInt32ArrayMap"), - ("MAP_SPACE", 0x04359): (145, "FixedFloat32ArrayMap"), - ("MAP_SPACE", 0x043b1): (146, "FixedFloat64ArrayMap"), - ("MAP_SPACE", 0x04409): (147, "FixedUint8ClampedArrayMap"), - ("MAP_SPACE", 0x04461): (149, "FixedBigUint64ArrayMap"), - ("MAP_SPACE", 0x044b9): (148, "FixedBigInt64ArrayMap"), - ("MAP_SPACE", 0x04511): (173, "Tuple2Map"), - ("MAP_SPACE", 0x04569): (171, "ScriptMap"), - ("MAP_SPACE", 0x045c1): (163, "InterceptorInfoMap"), - ("MAP_SPACE", 0x04619): (158, "AllocationSiteMap"), - ("MAP_SPACE", 0x04671): (154, "AccessorInfoMap"), - ("MAP_SPACE", 0x046c9): (153, "AccessCheckInfoMap"), - ("MAP_SPACE", 0x04721): (155, "AccessorPairMap"), - ("MAP_SPACE", 0x04779): (156, "AliasedArgumentsEntryMap"), - ("MAP_SPACE", 0x047d1): (157, "AllocationMementoMap"), - ("MAP_SPACE", 0x04829): (159, "AsyncGeneratorRequestMap"), - ("MAP_SPACE", 0x04881): (160, "ContextExtensionMap"), - ("MAP_SPACE", 0x048d9): (161, "DebugInfoMap"), - ("MAP_SPACE", 0x04931): (162, "FunctionTemplateInfoMap"), - ("MAP_SPACE", 0x04989): (164, "InterpreterDataMap"), - ("MAP_SPACE", 0x049e1): (165, "ModuleInfoEntryMap"), - ("MAP_SPACE", 0x04a39): (166, "ModuleMap"), - ("MAP_SPACE", 0x04a91): (167, "ObjectTemplateInfoMap"), - ("MAP_SPACE", 0x04ae9): (168, "PromiseCapabilityMap"), - ("MAP_SPACE", 0x04b41): (169, "PromiseReactionMap"), - ("MAP_SPACE", 0x04b99): (170, "PrototypeInfoMap"), - ("MAP_SPACE", 0x04bf1): (172, "StackFrameInfoMap"), - ("MAP_SPACE", 0x04c49): (174, "Tuple3Map"), - ("MAP_SPACE", 0x04ca1): (175, "WasmCompiledModuleMap"), - ("MAP_SPACE", 0x04cf9): (176, "WasmDebugInfoMap"), - ("MAP_SPACE", 0x04d51): (177, "WasmSharedModuleDataMap"), - ("MAP_SPACE", 0x04da9): (178, "CallableTaskMap"), - ("MAP_SPACE", 0x04e01): (179, "CallbackTaskMap"), - ("MAP_SPACE", 0x04e59): (180, "PromiseFulfillReactionJobTaskMap"), - ("MAP_SPACE", 0x04eb1): (181, "PromiseRejectReactionJobTaskMap"), - ("MAP_SPACE", 0x04f09): (182, "PromiseResolveThenableJobTaskMap"), + ("RO_SPACE", 0x02201): (138, "FreeSpaceMap"), + ("RO_SPACE", 0x02259): (132, "MetaMap"), + ("RO_SPACE", 0x022e1): (131, "NullMap"), + ("RO_SPACE", 0x02359): (185, "DescriptorArrayMap"), + ("RO_SPACE", 0x023c1): (183, "FixedArrayMap"), + ("RO_SPACE", 0x02429): (211, "WeakCellMap"), + ("RO_SPACE", 0x024d1): (152, "OnePointerFillerMap"), + ("RO_SPACE", 0x02539): (152, "TwoPointerFillerMap"), + ("RO_SPACE", 0x025d1): (131, "UninitializedMap"), + ("RO_SPACE", 0x02661): (8, "OneByteInternalizedStringMap"), + ("RO_SPACE", 0x02721): (131, "UndefinedMap"), + ("RO_SPACE", 0x02799): (129, "HeapNumberMap"), + ("RO_SPACE", 0x02831): (131, "TheHoleMap"), + ("RO_SPACE", 0x028f9): (131, "BooleanMap"), + ("RO_SPACE", 0x02a09): (136, "ByteArrayMap"), + ("RO_SPACE", 0x02a71): (183, "FixedCOWArrayMap"), + ("RO_SPACE", 0x02ad9): (186, "HashTableMap"), + ("RO_SPACE", 0x02b41): (128, "SymbolMap"), + ("RO_SPACE", 0x02ba9): (72, "OneByteStringMap"), + ("RO_SPACE", 0x02c11): (187, "ScopeInfoMap"), + ("RO_SPACE", 0x02c79): (207, "SharedFunctionInfoMap"), + ("RO_SPACE", 0x02ce1): (133, "CodeMap"), + ("RO_SPACE", 0x02d49): (192, "FunctionContextMap"), + ("RO_SPACE", 0x02db1): (200, "CellMap"), + ("RO_SPACE", 0x02e19): (206, "GlobalPropertyCellMap"), + ("RO_SPACE", 0x02e81): (135, "ForeignMap"), + ("RO_SPACE", 0x02ee9): (198, "TransitionArrayMap"), + ("RO_SPACE", 0x02f51): (203, "FeedbackVectorMap"), + ("RO_SPACE", 0x02ff9): (131, "ArgumentsMarkerMap"), + ("RO_SPACE", 0x030b9): (131, "ExceptionMap"), + ("RO_SPACE", 0x03179): (131, "TerminationExceptionMap"), + ("RO_SPACE", 0x03241): (131, "OptimizedOutMap"), + ("RO_SPACE", 0x03301): (131, "StaleRegisterMap"), + ("RO_SPACE", 0x03391): (194, "NativeContextMap"), + ("RO_SPACE", 0x033f9): (193, "ModuleContextMap"), + ("RO_SPACE", 0x03461): (191, "EvalContextMap"), + ("RO_SPACE", 0x034c9): (195, "ScriptContextMap"), + ("RO_SPACE", 0x03531): (188, "BlockContextMap"), + ("RO_SPACE", 0x03599): (189, "CatchContextMap"), + ("RO_SPACE", 0x03601): (196, "WithContextMap"), + ("RO_SPACE", 0x03669): (190, "DebugEvaluateContextMap"), + ("RO_SPACE", 0x036d1): (183, "ScriptContextTableMap"), + ("RO_SPACE", 0x03739): (151, "FeedbackMetadataArrayMap"), + ("RO_SPACE", 0x037a1): (183, "ArrayListMap"), + ("RO_SPACE", 0x03809): (130, "BigIntMap"), + ("RO_SPACE", 0x03871): (184, "BoilerplateDescriptionMap"), + ("RO_SPACE", 0x038d9): (137, "BytecodeArrayMap"), + ("RO_SPACE", 0x03941): (201, "CodeDataContainerMap"), + ("RO_SPACE", 0x039a9): (150, "FixedDoubleArrayMap"), + ("RO_SPACE", 0x03a11): (186, "GlobalDictionaryMap"), + ("RO_SPACE", 0x03a79): (202, "ManyClosuresCellMap"), + ("RO_SPACE", 0x03ae1): (183, "ModuleInfoMap"), + ("RO_SPACE", 0x03b49): (134, "MutableHeapNumberMap"), + ("RO_SPACE", 0x03bb1): (186, "NameDictionaryMap"), + ("RO_SPACE", 0x03c19): (202, "NoClosuresCellMap"), + ("RO_SPACE", 0x03c81): (186, "NumberDictionaryMap"), + ("RO_SPACE", 0x03ce9): (202, "OneClosureCellMap"), + ("RO_SPACE", 0x03d51): (186, "OrderedHashMapMap"), + ("RO_SPACE", 0x03db9): (186, "OrderedHashSetMap"), + ("RO_SPACE", 0x03e21): (205, "PropertyArrayMap"), + ("RO_SPACE", 0x03e89): (199, "SideEffectCallHandlerInfoMap"), + ("RO_SPACE", 0x03ef1): (199, "SideEffectFreeCallHandlerInfoMap"), + ("RO_SPACE", 0x03f59): (199, "NextCallSideEffectFreeCallHandlerInfoMap"), + ("RO_SPACE", 0x03fc1): (186, "SimpleNumberDictionaryMap"), + ("RO_SPACE", 0x04029): (183, "SloppyArgumentsElementsMap"), + ("RO_SPACE", 0x04091): (208, "SmallOrderedHashMapMap"), + ("RO_SPACE", 0x040f9): (209, "SmallOrderedHashSetMap"), + ("RO_SPACE", 0x04161): (186, "StringTableMap"), + ("RO_SPACE", 0x041c9): (197, "WeakFixedArrayMap"), + ("RO_SPACE", 0x04231): (212, "WeakArrayListMap"), + ("RO_SPACE", 0x04299): (106, "NativeSourceStringMap"), + ("RO_SPACE", 0x04301): (64, "StringMap"), + ("RO_SPACE", 0x04369): (73, "ConsOneByteStringMap"), + ("RO_SPACE", 0x043d1): (65, "ConsStringMap"), + ("RO_SPACE", 0x04439): (77, "ThinOneByteStringMap"), + ("RO_SPACE", 0x044a1): (69, "ThinStringMap"), + ("RO_SPACE", 0x04509): (67, "SlicedStringMap"), + ("RO_SPACE", 0x04571): (75, "SlicedOneByteStringMap"), + ("RO_SPACE", 0x045d9): (66, "ExternalStringMap"), + ("RO_SPACE", 0x04641): (82, "ExternalStringWithOneByteDataMap"), + ("RO_SPACE", 0x046a9): (74, "ExternalOneByteStringMap"), + ("RO_SPACE", 0x04711): (98, "ShortExternalStringMap"), + ("RO_SPACE", 0x04779): (114, "ShortExternalStringWithOneByteDataMap"), + ("RO_SPACE", 0x047e1): (0, "InternalizedStringMap"), + ("RO_SPACE", 0x04849): (2, "ExternalInternalizedStringMap"), + ("RO_SPACE", 0x048b1): (18, "ExternalInternalizedStringWithOneByteDataMap"), + ("RO_SPACE", 0x04919): (10, "ExternalOneByteInternalizedStringMap"), + ("RO_SPACE", 0x04981): (34, "ShortExternalInternalizedStringMap"), + ("RO_SPACE", 0x049e9): (50, "ShortExternalInternalizedStringWithOneByteDataMap"), + ("RO_SPACE", 0x04a51): (42, "ShortExternalOneByteInternalizedStringMap"), + ("RO_SPACE", 0x04ab9): (106, "ShortExternalOneByteStringMap"), + ("RO_SPACE", 0x04b21): (140, "FixedUint8ArrayMap"), + ("RO_SPACE", 0x04b89): (139, "FixedInt8ArrayMap"), + ("RO_SPACE", 0x04bf1): (142, "FixedUint16ArrayMap"), + ("RO_SPACE", 0x04c59): (141, "FixedInt16ArrayMap"), + ("RO_SPACE", 0x04cc1): (144, "FixedUint32ArrayMap"), + ("RO_SPACE", 0x04d29): (143, "FixedInt32ArrayMap"), + ("RO_SPACE", 0x04d91): (145, "FixedFloat32ArrayMap"), + ("RO_SPACE", 0x04df9): (146, "FixedFloat64ArrayMap"), + ("RO_SPACE", 0x04e61): (147, "FixedUint8ClampedArrayMap"), + ("RO_SPACE", 0x04ec9): (149, "FixedBigUint64ArrayMap"), + ("RO_SPACE", 0x04f31): (148, "FixedBigInt64ArrayMap"), + ("RO_SPACE", 0x04f99): (131, "SelfReferenceMarkerMap"), + ("RO_SPACE", 0x05019): (172, "Tuple2Map"), + ("RO_SPACE", 0x05211): (170, "ScriptMap"), + ("RO_SPACE", 0x053d9): (162, "InterceptorInfoMap"), + ("RO_SPACE", 0x07c09): (154, "AccessorInfoMap"), + ("RO_SPACE", 0x07e19): (153, "AccessCheckInfoMap"), + ("RO_SPACE", 0x07e81): (155, "AccessorPairMap"), + ("RO_SPACE", 0x07ee9): (156, "AliasedArgumentsEntryMap"), + ("RO_SPACE", 0x07f51): (157, "AllocationMementoMap"), + ("RO_SPACE", 0x07fb9): (158, "AllocationSiteMap"), + ("RO_SPACE", 0x08021): (159, "AsyncGeneratorRequestMap"), + ("RO_SPACE", 0x08089): (160, "DebugInfoMap"), + ("RO_SPACE", 0x080f1): (161, "FunctionTemplateInfoMap"), + ("RO_SPACE", 0x08159): (163, "InterpreterDataMap"), + ("RO_SPACE", 0x081c1): (164, "ModuleInfoEntryMap"), + ("RO_SPACE", 0x08229): (165, "ModuleMap"), + ("RO_SPACE", 0x08291): (166, "ObjectTemplateInfoMap"), + ("RO_SPACE", 0x082f9): (167, "PromiseCapabilityMap"), + ("RO_SPACE", 0x08361): (168, "PromiseReactionMap"), + ("RO_SPACE", 0x083c9): (169, "PrototypeInfoMap"), + ("RO_SPACE", 0x08431): (171, "StackFrameInfoMap"), + ("RO_SPACE", 0x08499): (173, "Tuple3Map"), + ("RO_SPACE", 0x08501): (174, "WasmCompiledModuleMap"), + ("RO_SPACE", 0x08569): (175, "WasmDebugInfoMap"), + ("RO_SPACE", 0x085d1): (176, "WasmExportedFunctionDataMap"), + ("RO_SPACE", 0x08639): (177, "WasmSharedModuleDataMap"), + ("RO_SPACE", 0x086a1): (178, "CallableTaskMap"), + ("RO_SPACE", 0x08709): (179, "CallbackTaskMap"), + ("RO_SPACE", 0x08771): (180, "PromiseFulfillReactionJobTaskMap"), + ("RO_SPACE", 0x087d9): (181, "PromiseRejectReactionJobTaskMap"), + ("RO_SPACE", 0x08841): (182, "PromiseResolveThenableJobTaskMap"), + ("MAP_SPACE", 0x02201): (1057, "ExternalMap"), + ("MAP_SPACE", 0x02259): (1072, "JSMessageObjectMap"), } # List of known V8 objects. KNOWN_OBJECTS = { - ("OLD_SPACE", 0x02201): "NullValue", - ("OLD_SPACE", 0x02231): "EmptyDescriptorArray", - ("OLD_SPACE", 0x02251): "EmptyFixedArray", - ("OLD_SPACE", 0x02261): "UninitializedValue", - ("OLD_SPACE", 0x022e1): "UndefinedValue", - ("OLD_SPACE", 0x02311): "NanValue", - ("OLD_SPACE", 0x02321): "TheHoleValue", - ("OLD_SPACE", 0x02371): "HoleNanValue", - ("OLD_SPACE", 0x02381): "TrueValue", - ("OLD_SPACE", 0x023f1): "FalseValue", - ("OLD_SPACE", 0x02441): "empty_string", - ("OLD_SPACE", 0x02459): "EmptyScopeInfo", - ("OLD_SPACE", 0x02469): "ArgumentsMarker", - ("OLD_SPACE", 0x024c1): "Exception", - ("OLD_SPACE", 0x02519): "TerminationException", - ("OLD_SPACE", 0x02579): "OptimizedOut", - ("OLD_SPACE", 0x025d1): "StaleRegister", - ("OLD_SPACE", 0x02661): "EmptyByteArray", - ("OLD_SPACE", 0x02681): "EmptyFixedUint8Array", - ("OLD_SPACE", 0x026a1): "EmptyFixedInt8Array", - ("OLD_SPACE", 0x026c1): "EmptyFixedUint16Array", - ("OLD_SPACE", 0x026e1): "EmptyFixedInt16Array", - ("OLD_SPACE", 0x02701): "EmptyFixedUint32Array", - ("OLD_SPACE", 0x02721): "EmptyFixedInt32Array", - ("OLD_SPACE", 0x02741): "EmptyFixedFloat32Array", - ("OLD_SPACE", 0x02761): "EmptyFixedFloat64Array", - ("OLD_SPACE", 0x02781): "EmptyFixedUint8ClampedArray", - ("OLD_SPACE", 0x027e1): "EmptyScript", - ("OLD_SPACE", 0x02879): "ManyClosuresCell", - ("OLD_SPACE", 0x02889): "EmptySloppyArgumentsElements", - ("OLD_SPACE", 0x028a9): "EmptySlowElementDictionary", - ("OLD_SPACE", 0x028f1): "EmptyOrderedHashMap", - ("OLD_SPACE", 0x02919): "EmptyOrderedHashSet", - ("OLD_SPACE", 0x02951): "EmptyPropertyCell", - ("OLD_SPACE", 0x02979): "EmptyWeakCell", - ("OLD_SPACE", 0x029e9): "NoElementsProtector", - ("OLD_SPACE", 0x02a11): "IsConcatSpreadableProtector", - ("OLD_SPACE", 0x02a21): "ArraySpeciesProtector", - ("OLD_SPACE", 0x02a49): "TypedArraySpeciesProtector", - ("OLD_SPACE", 0x02a71): "PromiseSpeciesProtector", - ("OLD_SPACE", 0x02a99): "StringLengthProtector", - ("OLD_SPACE", 0x02aa9): "ArrayIteratorProtector", - ("OLD_SPACE", 0x02ad1): "ArrayBufferNeuteringProtector", - ("OLD_SPACE", 0x02b59): "InfinityValue", - ("OLD_SPACE", 0x02b69): "MinusZeroValue", - ("OLD_SPACE", 0x02b79): "MinusInfinityValue", + ("RO_SPACE", 0x022b1): "NullValue", + ("RO_SPACE", 0x02339): "EmptyDescriptorArray", + ("RO_SPACE", 0x023b1): "EmptyFixedArray", + ("RO_SPACE", 0x025a1): "UninitializedValue", + ("RO_SPACE", 0x026f1): "UndefinedValue", + ("RO_SPACE", 0x02789): "NanValue", + ("RO_SPACE", 0x02801): "TheHoleValue", + ("RO_SPACE", 0x028b9): "HoleNanValue", + ("RO_SPACE", 0x028c9): "TrueValue", + ("RO_SPACE", 0x029a1): "FalseValue", + ("RO_SPACE", 0x029f1): "empty_string", + ("RO_SPACE", 0x02fb9): "EmptyScopeInfo", + ("RO_SPACE", 0x02fc9): "ArgumentsMarker", + ("RO_SPACE", 0x03089): "Exception", + ("RO_SPACE", 0x03149): "TerminationException", + ("RO_SPACE", 0x03211): "OptimizedOut", + ("RO_SPACE", 0x032d1): "StaleRegister", + ("RO_SPACE", 0x05091): "EmptyByteArray", + ("RO_SPACE", 0x050b1): "EmptyFixedUint8Array", + ("RO_SPACE", 0x050d1): "EmptyFixedInt8Array", + ("RO_SPACE", 0x050f1): "EmptyFixedUint16Array", + ("RO_SPACE", 0x05111): "EmptyFixedInt16Array", + ("RO_SPACE", 0x05131): "EmptyFixedUint32Array", + ("RO_SPACE", 0x05151): "EmptyFixedInt32Array", + ("RO_SPACE", 0x05171): "EmptyFixedFloat32Array", + ("RO_SPACE", 0x05191): "EmptyFixedFloat64Array", + ("RO_SPACE", 0x051b1): "EmptyFixedUint8ClampedArray", + ("RO_SPACE", 0x05289): "EmptySloppyArgumentsElements", + ("RO_SPACE", 0x052a9): "EmptySlowElementDictionary", + ("RO_SPACE", 0x052f1): "EmptyOrderedHashMap", + ("RO_SPACE", 0x05319): "EmptyOrderedHashSet", + ("RO_SPACE", 0x05351): "EmptyPropertyCell", + ("RO_SPACE", 0x05379): "EmptyWeakCell", + ("RO_SPACE", 0x05459): "InfinityValue", + ("RO_SPACE", 0x05469): "MinusZeroValue", + ("RO_SPACE", 0x05479): "MinusInfinityValue", + ("RO_SPACE", 0x05489): "SelfReferenceMarker", + ("OLD_SPACE", 0x02211): "EmptyScript", + ("OLD_SPACE", 0x02299): "ManyClosuresCell", + ("OLD_SPACE", 0x022b9): "NoElementsProtector", + ("OLD_SPACE", 0x022e1): "IsConcatSpreadableProtector", + ("OLD_SPACE", 0x022f1): "ArraySpeciesProtector", + ("OLD_SPACE", 0x02319): "TypedArraySpeciesProtector", + ("OLD_SPACE", 0x02341): "PromiseSpeciesProtector", + ("OLD_SPACE", 0x02369): "StringLengthProtector", + ("OLD_SPACE", 0x02379): "ArrayIteratorProtector", + ("OLD_SPACE", 0x023a1): "ArrayBufferNeuteringProtector", } # List of known V8 Frame Markers. @@ -366,4 +372,4 @@ "NATIVE", ) -# This set of constants is generated from a non-shipping build. +# This set of constants is generated from a shipping build. diff --git a/deps/v8/tools/whitespace.txt b/deps/v8/tools/whitespace.txt index 8a1a4d64c7aac8..99dcf1f898e19b 100644 --- a/deps/v8/tools/whitespace.txt +++ b/deps/v8/tools/whitespace.txt @@ -7,4 +7,4 @@ A Smi balks into a war and says: The doubles heard this and started to unbox. The Smi looked at them when a crazy v8-autoroll account showed up... The autoroller bought a round of Himbeerbrause. Suddenly... -The bartender starts to shake the bottles... +The bartender starts to shake the bottles........................... From 1e7a8c30165001f3384dd923a5cda32eeca53a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 25 Jul 2018 19:30:13 +0200 Subject: [PATCH 056/159] build: reset embedder string to "-node.0" Backport-PR-URL: https://github.com/nodejs/node/pull/21668 PR-URL: https://github.com/nodejs/node/pull/21079 Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Yang Guo --- common.gypi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index b03e0a07ee9ab5..6267588d68e0f8 100644 --- a/common.gypi +++ b/common.gypi @@ -29,7 +29,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.19', + 'v8_embedder_string': '-node.0', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, From 548008a6f6f95f7d903e9b282289f269f4b6a51d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 19 Apr 2018 10:15:15 +0200 Subject: [PATCH 057/159] deps: update v8.gyp and run Torque Synchronize source files list with upstream's BUILD.gn. Teach v8.gyp to build and run torque, V8's DSL for generating builtins. On Windows, the torque binary needs to be compiled and linked with exception semantics and assume V8 is embedded. Fixes: https://github.com/nodejs/node-v8/issues/57 Co-Authored-By: Ben Noordhuis Co-Authored-By: Refael Ackermann Backport-PR-URL: https://github.com/nodejs/node/pull/21668 PR-URL: https://github.com/nodejs/node/pull/21079 Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Yang Guo --- common.gypi | 2 +- deps/v8/gypfiles/toolchain.gypi | 2 +- deps/v8/gypfiles/v8.gyp | 516 ++++++++++++++++++++++++++++++-- 3 files changed, 488 insertions(+), 32 deletions(-) diff --git a/common.gypi b/common.gypi index 6267588d68e0f8..2bb65fb4dd4fd0 100644 --- a/common.gypi +++ b/common.gypi @@ -29,7 +29,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.0', + 'v8_embedder_string': '-node.1', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index e67a5e22b96af9..97d2192ed828a7 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -1127,7 +1127,7 @@ 'ldflags': [ '-Wl,-bmaxdata:0x60000000/dsa' ], }], [ 'v8_target_arch=="ppc64"', { - 'cflags': [ '-maix64' ], + 'cflags': [ '-maix64', '-fdollars-in-identifiers' ], 'ldflags': [ '-maix64 -Wl,-bbigtoc' ], }], ], diff --git a/deps/v8/gypfiles/v8.gyp b/deps/v8/gypfiles/v8.gyp index 277488b74a0b35..eadbd5aeeeaafb 100644 --- a/deps/v8/gypfiles/v8.gyp +++ b/deps/v8/gypfiles/v8.gyp @@ -114,6 +114,7 @@ 'type': 'static_library', 'dependencies': [ 'v8_initializers', + 'v8_torque#host', ], 'variables': { 'optimize': 'max', @@ -124,6 +125,7 @@ ], 'sources': [ '../src/setup-isolate-full.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -138,6 +140,7 @@ 'type': 'static_library', 'dependencies': [ 'v8_base', + 'v8_torque#host', ], 'variables': { 'optimize': 'max', @@ -192,8 +195,8 @@ '../src/builtins/builtins-string-gen.cc', '../src/builtins/builtins-string-gen.h', '../src/builtins/builtins-symbol-gen.cc', - '../src/builtins/builtins-typedarray-gen.cc', - '../src/builtins/builtins-typedarray-gen.h', + '../src/builtins/builtins-typed-array-gen.cc', + '../src/builtins/builtins-typed-array-gen.h', '../src/builtins/builtins-utils-gen.h', '../src/builtins/builtins-wasm-gen.cc', '../src/builtins/growable-fixed-array-gen.cc', @@ -214,6 +217,12 @@ '../src/interpreter/interpreter-intrinsics-generator.h', '../src/interpreter/setup-interpreter-internal.cc', '../src/interpreter/setup-interpreter.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-array-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-array-from-dsl-gen.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-base-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-base-from-dsl-gen.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.h', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -357,6 +366,7 @@ 'type': 'static_library', 'dependencies': [ 'v8_base', + 'v8_torque#host', ], 'include_dirs+': [ '..', @@ -507,9 +517,13 @@ 'dependencies': [ 'v8_libbase', 'v8_libsampler', + 'v8_torque#host', 'inspector.gyp:protocol_generated_sources#target', 'inspector.gyp:inspector_injected_script#target', ], + 'direct_dependent_settings': { + 'include_dirs+': ['<(SHARED_INTERMEDIATE_DIR)'], + }, 'objs': ['foo.o'], 'variables': { 'optimize': 'max', @@ -546,6 +560,7 @@ '../src/api-natives.h', '../src/arguments.cc', '../src/arguments.h', + '../src/asan.h', '../src/asmjs/asm-js.cc', '../src/asmjs/asm-js.h', '../src/asmjs/asm-names.h', @@ -555,11 +570,12 @@ '../src/asmjs/asm-scanner.h', '../src/asmjs/asm-types.cc', '../src/asmjs/asm-types.h', - '../src/asmjs/switch-logic.h', '../src/asmjs/switch-logic.cc', + '../src/asmjs/switch-logic.h', + '../src/assembler-arch.h', + '../src/assembler-inl.h', '../src/assembler.cc', '../src/assembler.h', - '../src/assembler-inl.h', '../src/assert-scope.h', '../src/assert-scope.cc', '../src/ast/ast-function-literal-id-reindexer.cc', @@ -626,8 +642,7 @@ '../src/builtins/builtins-intl.cc', '../src/builtins/builtins-intl.h', '../src/builtins/builtins-symbol.cc', - '../src/builtins/builtins-trace.cc', - '../src/builtins/builtins-typedarray.cc', + '../src/builtins/builtins-typed-array.cc', '../src/builtins/builtins-utils.h', '../src/builtins/builtins.cc', '../src/builtins/builtins.h', @@ -645,6 +660,8 @@ '../src/code-events.h', '../src/code-factory.cc', '../src/code-factory.h', + '../src/code-reference.cc', + '../src/code-reference.h', '../src/code-stub-assembler.cc', '../src/code-stub-assembler.h', '../src/code-stubs.cc', @@ -690,6 +707,10 @@ '../src/compiler/common-operator-reducer.h', '../src/compiler/common-operator.cc', '../src/compiler/common-operator.h', + '../src/compiler/compiler-source-position-table.cc', + '../src/compiler/compiler-source-position-table.h', + '../src/compiler/constant-folding-reducer.cc', + '../src/compiler/constant-folding-reducer.h', '../src/compiler/control-equivalence.cc', '../src/compiler/control-equivalence.h', '../src/compiler/control-flow-optimizer.cc', @@ -732,8 +753,6 @@ '../src/compiler/instruction.h', '../src/compiler/int64-lowering.cc', '../src/compiler/int64-lowering.h', - '../src/compiler/js-builtin-reducer.cc', - '../src/compiler/js-builtin-reducer.h', '../src/compiler/js-call-reducer.cc', '../src/compiler/js-call-reducer.h', '../src/compiler/js-context-specialization.cc', @@ -772,12 +791,14 @@ '../src/compiler/loop-peeling.h', '../src/compiler/loop-variable-optimizer.cc', '../src/compiler/loop-variable-optimizer.h', + '../src/compiler/machine-graph-verifier.cc', + '../src/compiler/machine-graph-verifier.h', + '../src/compiler/machine-graph.cc', + '../src/compiler/machine-graph.h', '../src/compiler/machine-operator-reducer.cc', '../src/compiler/machine-operator-reducer.h', '../src/compiler/machine-operator.cc', '../src/compiler/machine-operator.h', - '../src/compiler/machine-graph-verifier.cc', - '../src/compiler/machine-graph-verifier.h', '../src/compiler/memory-optimizer.cc', '../src/compiler/memory-optimizer.h', '../src/compiler/move-optimizer.cc', @@ -789,6 +810,8 @@ '../src/compiler/node-marker.h', '../src/compiler/node-matchers.cc', '../src/compiler/node-matchers.h', + '../src/compiler/node-origin-table.cc', + '../src/compiler/node-origin-table.h', '../src/compiler/node-properties.cc', '../src/compiler/node-properties.h', '../src/compiler/node.cc', @@ -834,20 +857,20 @@ '../src/compiler/simplified-operator-reducer.h', '../src/compiler/simplified-operator.cc', '../src/compiler/simplified-operator.h', - '../src/compiler/compiler-source-position-table.cc', - '../src/compiler/compiler-source-position-table.h', '../src/compiler/state-values-utils.cc', '../src/compiler/state-values-utils.h', '../src/compiler/store-store-elimination.cc', '../src/compiler/store-store-elimination.h', - '../src/compiler/types.cc', - '../src/compiler/types.h', '../src/compiler/type-cache.cc', '../src/compiler/type-cache.h', + '../src/compiler/type-narrowing-reducer.cc', + '../src/compiler/type-narrowing-reducer.h', '../src/compiler/typed-optimization.cc', '../src/compiler/typed-optimization.h', '../src/compiler/typer.cc', '../src/compiler/typer.h', + '../src/compiler/types.cc', + '../src/compiler/types.h', '../src/compiler/unwinding-info-writer.h', '../src/compiler/value-numbering-reducer.cc', '../src/compiler/value-numbering-reducer.h', @@ -855,7 +878,6 @@ '../src/compiler/verifier.h', '../src/compiler/wasm-compiler.cc', '../src/compiler/wasm-compiler.h', - '../src/compiler/wasm-linkage.cc', '../src/compiler/zone-stats.cc', '../src/compiler/zone-stats.h', '../src/compiler-dispatcher/compiler-dispatcher.cc', @@ -1126,13 +1148,13 @@ '../src/lookup-cache.h', '../src/lookup.cc', '../src/lookup.h', - '../src/map-updater.cc', - '../src/map-updater.h', - '../src/macro-assembler-inl.h', - '../src/macro-assembler.h', + '../src/lsan.h', '../src/machine-type.cc', '../src/machine-type.h', - '../src/managed.h', + '../src/macro-assembler-inl.h', + '../src/macro-assembler.h', + '../src/map-updater.cc', + '../src/map-updater.h', '../src/messages.cc', '../src/messages.h', '../src/msan.h', @@ -1143,6 +1165,8 @@ '../src/objects-printer.cc', '../src/objects.cc', '../src/objects.h', + '../src/objects/api-callbacks-inl.h', + '../src/objects/api-callbacks.h', '../src/objects/arguments-inl.h', '../src/objects/arguments.h', '../src/objects/bigint.cc', @@ -1170,15 +1194,20 @@ '../src/objects/js-array.h', '../src/objects/js-collection-inl.h', '../src/objects/js-collection.h', + '../src/objects/js-locale-inl.h', + '../src/objects/js-locale.cc', + '../src/objects/js-locale.h', '../src/objects/js-promise-inl.h', '../src/objects/js-promise.h', '../src/objects/js-regexp-inl.h', '../src/objects/js-regexp.h', '../src/objects/js-regexp-string-iterator-inl.h', '../src/objects/js-regexp-string-iterator.h', - '../src/objects/literal-objects.cc', '../src/objects/literal-objects-inl.h', + '../src/objects/literal-objects.cc', '../src/objects/literal-objects.h', + '../src/objects/managed.cc', + '../src/objects/managed.h', '../src/objects/map-inl.h', '../src/objects/map.h', '../src/objects/maybe-object-inl.h', @@ -1192,6 +1221,9 @@ '../src/objects/name.h', '../src/objects/object-macros-undef.h', '../src/objects/object-macros.h', + '../src/objects/ordered-hash-table-inl.h', + '../src/objects/ordered-hash-table.cc', + '../src/objects/ordered-hash-table.h', '../src/objects/promise-inl.h', '../src/objects/promise.h', '../src/objects/property-descriptor-object-inl.h', @@ -1208,6 +1240,8 @@ '../src/objects/string-table.h', '../src/objects/template-objects.cc', '../src/objects/template-objects.h', + '../src/objects/templates-inl.h', + '../src/objects/templates.h', '../src/optimized-compilation-info.cc', '../src/optimized-compilation-info.h', '../src/ostreams.cc', @@ -1415,6 +1449,7 @@ '../src/transitions-inl.h', '../src/transitions.cc', '../src/transitions.h', + '../src/trap-handler/handler-inside.cc', '../src/trap-handler/handler-outside.cc', '../src/trap-handler/handler-shared.cc', '../src/trap-handler/trap-handler.h', @@ -1455,13 +1490,14 @@ '../src/wasm/baseline/liftoff-assembler.cc', '../src/wasm/baseline/liftoff-assembler.h', '../src/wasm/baseline/liftoff-compiler.cc', + '../src/wasm/baseline/liftoff-compiler.h', '../src/wasm/baseline/liftoff-register.h', - '../src/wasm/compilation-manager.cc', - '../src/wasm/compilation-manager.h', '../src/wasm/decoder.h', + '../src/wasm/function-body-decoder-impl.h', '../src/wasm/function-body-decoder.cc', '../src/wasm/function-body-decoder.h', - '../src/wasm/function-body-decoder-impl.h', + '../src/wasm/function-compiler.h', + '../src/wasm/function-compiler.cc', '../src/wasm/leb-helper.h', '../src/wasm/local-decl-encoder.cc', '../src/wasm/local-decl-encoder.h', @@ -1475,6 +1511,7 @@ '../src/wasm/signature-map.h', '../src/wasm/streaming-decoder.cc', '../src/wasm/streaming-decoder.h', + '../src/wasm/value-type.h', '../src/wasm/wasm-code-manager.cc', '../src/wasm/wasm-code-manager.h', '../src/wasm/wasm-code-specialization.cc', @@ -1488,6 +1525,7 @@ '../src/wasm/wasm-js.cc', '../src/wasm/wasm-js.h', '../src/wasm/wasm-limits.h', + '../src/wasm/wasm-linkage.h', '../src/wasm/wasm-memory.cc', '../src/wasm/wasm-memory.h', '../src/wasm/wasm-module.cc', @@ -1521,6 +1559,7 @@ '../src/zone/zone-containers.h', '../src/zone/zone-handle-set.h', '../src/zone/zone-list-inl.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -1729,7 +1768,15 @@ ], }], ['v8_target_arch=="x64" and OS=="linux"', { - 'sources': ['../src/trap-handler/handler-inside.cc'] + 'sources': [ + '../src/trap-handler/handler-inside-linux.cc', + '../src/trap-handler/handler-outside-linux.cc', + ], + }], + ['v8_target_arch=="x64" and OS=="win"', { + 'sources': [ + '../src/trap-handler/handler-outside-win.cc', + ], }], ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { 'sources': [ @@ -1855,6 +1902,9 @@ '../src/intl.h', '../src/objects/intl-objects.cc', '../src/objects/intl-objects.h', + '../src/objects/js-locale-inl.h', + '../src/objects/js-locale.cc', + '../src/objects/js-locale.h', '../src/runtime/runtime-intl.cc', ], }], @@ -1868,12 +1918,16 @@ { 'target_name': 'v8_libbase', 'type': '<(component)', + 'toolsets': ['host', 'target'], 'variables': { 'optimize': 'max', }, 'include_dirs+': [ '..', ], + 'direct_dependent_settings': { + 'include_dirs+': ['..'], + }, 'sources': [ '../src/base/adapters.h', '../src/base/atomic-utils.h', @@ -1948,11 +2002,6 @@ }], ], 'conditions': [ - ['want_separate_host_toolset==1', { - 'toolsets': ['host', 'target'], - }, { - 'toolsets': ['target'], - }], ['component=="shared_library"', { 'defines': [ 'BUILDING_V8_BASE_SHARED', @@ -2472,6 +2521,413 @@ }, ], }, + { + 'target_name': 'torque', + 'type': 'executable', + 'toolsets': ['host'], + 'dependencies': ['v8_libbase'], + 'cflags_cc!': ['-fno-exceptions', '-fno-rtti'], + 'xcode_settings': { + 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', # -fexceptions + 'GCC_ENABLE_CPP_RTTI': 'YES', # -frtti + }, + 'defines': ['ANTLR4CPP_STATIC'], + 'defines!': [ + '_HAS_EXCEPTIONS=0', + 'BUILDING_V8_SHARED=1', + ], + 'include_dirs': [ + '../third_party/antlr4/runtime/Cpp/runtime/src', + '../src/torque', + ], + # This is defined trough `configurations` for GYP+ninja compatibility + 'configurations': { + 'Debug': { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeTypeInfo': 'true', + 'ExceptionHandling': 1, + }, + } + }, + 'Release': { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeTypeInfo': 'true', + 'ExceptionHandling': 1, + }, + } + }, + }, + 'sources': [ + '../src/torque/TorqueBaseVisitor.cpp', + '../src/torque/TorqueBaseVisitor.h', + '../src/torque/TorqueLexer.cpp', + '../src/torque/TorqueLexer.h', + '../src/torque/TorqueParser.cpp', + '../src/torque/TorqueParser.h', + '../src/torque/TorqueVisitor.cpp', + '../src/torque/TorqueVisitor.h', + '../src/torque/ast-generator.cc', + '../src/torque/ast-generator.h', + '../src/torque/ast.h', + '../src/torque/contextual.h', + '../src/torque/declarable.cc', + '../src/torque/declarable.h', + '../src/torque/declaration-visitor.cc', + '../src/torque/declaration-visitor.h', + '../src/torque/declarations.cc', + '../src/torque/declarations.h', + '../src/torque/file-visitor.cc', + '../src/torque/file-visitor.h', + '../src/torque/global-context.h', + '../src/torque/implementation-visitor.cc', + '../src/torque/implementation-visitor.h', + '../src/torque/scope.cc', + '../src/torque/scope.h', + '../src/torque/torque.cc', + '../src/torque/type-oracle.h', + '../src/torque/types.cc', + '../src/torque/types.h', + '../src/torque/utils.cc', + '../src/torque/utils.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/CharStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/CharStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonToken.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenFactory.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/CommonTokenStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ConsoleErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/DefaultErrorStrategy.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/DiagnosticErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Exceptions.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/FailedPredicateException.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/InputMismatchException.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/IntStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/IntStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/InterpreterRuleContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Lexer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Lexer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/LexerInterpreter.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/LexerNoViableAltException.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ListTokenSource.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/NoViableAltException.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Parser.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Parser.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ParserInterpreter.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ParserRuleContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/ProxyErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/RecognitionException.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Recognizer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuleContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuleContextWithAltNum.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/RuntimeMetaData.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Token.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Token.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenFactory.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenSource.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/TokenStreamRewriter.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedCharStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/UnbufferedTokenStream.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/Vocabulary.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/WritableToken.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/antlr4-common.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/antlr4-runtime.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATN.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfig.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNConfigSet.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNDeserializer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSerializer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNSimulator.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ATNType.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ActionTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/AtomTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BasicState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockEndState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/BlockStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/DecisionState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/EpsilonTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ErrorInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LL1Analyzer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNConfig.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerActionType.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerChannelAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerCustomAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerModeAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerMoreAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerSkipAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LexerTypeAction.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/LoopEndState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/NotSetTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ParseInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredicateTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/PredictionMode.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RangeTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleStopState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/RuleTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SemanticContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SetTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarBlockStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/StarLoopbackState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/TokensStartState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/Transition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/atn/WildcardTransition.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFA.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFASerializer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/DFAState.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/Interval.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/IntervalSet.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/MurmurHash.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/misc/Predicate.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/Any.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/Any.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/Arrays.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/BitSet.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/Declarations.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/StringUtils.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/guid.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/support/guid.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNode.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTree.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNode.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/Trees.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/Chunk.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPath.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp', + '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h', + ], + }, + { + 'target_name': 'v8_torque', + 'type': 'none', + 'toolsets': ['host'], + 'dependencies': ['torque#host'], + 'direct_dependent_settings': { + 'include_dirs+': ['<(SHARED_INTERMEDIATE_DIR)'], + }, + 'actions': [ + { + 'action_name': 'run_torque', + 'inputs': [ # Order matters. + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + '../src/builtins/base.tq', + '../src/builtins/array.tq', + '../src/builtins/typed-array.tq', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-array-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-array-from-dsl-gen.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-base-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-base-from-dsl-gen.h', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.h', + ], + 'action': ['<@(_inputs)', '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'], + }, + ], + }, { 'target_name': 'postmortem-metadata', 'type': 'none', From 8b9a956f9ee3f01e1531e73dfc8039041fe7a558 Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Mon, 18 Jun 2018 09:47:52 -0700 Subject: [PATCH 058/159] deps: cherry-pick 5dd3395 from upstream V8 Original commit message: [log] improve --perf-basic-prof-only-functions Change --perf-basic-prof-only-functions to also log builtin code creation events, otherwise InterpretedFunctions generated by --interpreted-frames-native-stack will be filtered out. R=yangguo@google.com Change-Id: Ib0623fca88e25c514473a43de56ebbbdcb146f97 Reviewed-on: https://chromium-review.googlesource.com/1100014 Reviewed-by: Yang Guo Commit-Queue: Yang Guo Cr-Commit-Position: refs/heads/master@{#53760} Refs: https://github.com/v8/v8/commit/5dd33955d5cb1d84dd2509363e11d3c2a Backport-PR-URL: https://github.com/nodejs/node/pull/21668 PR-URL: https://github.com/nodejs/node/pull/21386 Reviewed-By: Yang Guo Reviewed-By: Gus Caplan Reviewed-By: James M Snell --- common.gypi | 2 +- deps/v8/src/log.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index 2bb65fb4dd4fd0..87dbe88e1c2650 100644 --- a/common.gypi +++ b/common.gypi @@ -29,7 +29,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.1', + 'v8_embedder_string': '-node.2', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, diff --git a/deps/v8/src/log.cc b/deps/v8/src/log.cc index 953216aef799aa..f5e1fe6baf3fce 100644 --- a/deps/v8/src/log.cc +++ b/deps/v8/src/log.cc @@ -305,6 +305,7 @@ void PerfBasicLogger::LogRecordedBuffer(AbstractCode* code, SharedFunctionInfo*, const char* name, int length) { if (FLAG_perf_basic_prof_only_functions && (code->kind() != AbstractCode::INTERPRETED_FUNCTION && + code->kind() != AbstractCode::BUILTIN && code->kind() != AbstractCode::OPTIMIZED_FUNCTION)) { return; } From 6df5feb13f766aea96de504aab2b943e70e9b8ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 5 Jul 2018 08:38:02 +0200 Subject: [PATCH 059/159] deps: cherry-pick aa6ce3e from upstream V8 Original commit message: [log][api] introduce public CodeEventListener API Introduce a new public API called CodeEventListener to allow embedders to better support external profilers and other diagnostic tools without relying on unsupported methods like --perf-basic-prof. Bug: v8:7694 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I063cc965394d59401358757634c9ea84c11517e9 Co-authored-by: Daniel Beckert Reviewed-on: https://chromium-review.googlesource.com/1028770 Commit-Queue: Yang Guo Reviewed-by: Hannes Payer Reviewed-by: Yang Guo Reviewed-by: Andreas Haas Cr-Commit-Position: refs/heads/master@{#53382} Refs: https://github.com/v8/v8/commit/aa6ce3ee617b2f324bea3a5d8e3263aee4cde6d7 Backport-PR-URL: https://github.com/nodejs/node/pull/21668 PR-URL: https://github.com/nodejs/node/pull/21079 Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Yang Guo --- common.gypi | 2 +- deps/v8/include/v8-profiler.h | 70 ++++ deps/v8/src/api.cc | 64 +++ deps/v8/src/code-events.h | 62 +-- deps/v8/src/compiler.cc | 5 +- deps/v8/src/compiler/wasm-compiler.cc | 3 +- deps/v8/src/heap/mark-compact.cc | 2 +- deps/v8/src/isolate.cc | 2 +- deps/v8/src/isolate.h | 1 + deps/v8/src/log.cc | 510 ++++++++++++++++-------- deps/v8/src/log.h | 86 +++- deps/v8/src/runtime/runtime-function.cc | 3 +- deps/v8/src/snapshot/code-serializer.cc | 3 +- deps/v8/src/snapshot/snapshot-common.cc | 6 +- deps/v8/src/wasm/wasm-code-manager.cc | 2 +- deps/v8/test/cctest/test-log.cc | 75 ++++ 16 files changed, 695 insertions(+), 201 deletions(-) diff --git a/common.gypi b/common.gypi index 87dbe88e1c2650..e40158ec57caaf 100644 --- a/common.gypi +++ b/common.gypi @@ -29,7 +29,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.2', + 'v8_embedder_string': '-node.3', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 34ad2b9cea5445..76490afe3cfe56 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -992,6 +992,76 @@ struct HeapStatsUpdate { uint32_t size; // New value of size field for the interval with this index. }; +#define CODE_EVENTS_LIST(V) \ + V(Builtin) \ + V(Callback) \ + V(Eval) \ + V(Function) \ + V(InterpretedFunction) \ + V(Handler) \ + V(BytecodeHandler) \ + V(LazyCompile) \ + V(RegExp) \ + V(Script) \ + V(Stub) + +/** + * Note that this enum may be extended in the future. Please include a default + * case if this enum is used in a switch statement. + */ +enum CodeEventType { + kUnknownType = 0 +#define V(Name) , k##Name##Type + CODE_EVENTS_LIST(V) +#undef V +}; + +/** + * Representation of a code creation event + */ +class V8_EXPORT CodeEvent { + public: + uintptr_t GetCodeStartAddress(); + size_t GetCodeSize(); + Local GetFunctionName(); + Local GetScriptName(); + int GetScriptLine(); + int GetScriptColumn(); + /** + * NOTE (mmarchini): We can't allocate objects in the heap when we collect + * existing code, and both the code type and the comment are not stored in the + * heap, so we return those as const char*. + */ + CodeEventType GetCodeType(); + const char* GetComment(); + + static const char* GetCodeEventTypeName(CodeEventType code_event_type); +}; + +/** + * Interface to listen to code creation events. + */ +class V8_EXPORT CodeEventHandler { + public: + /** + * Creates a new listener for the |isolate|. The isolate must be initialized. + * The listener object must be disposed after use by calling |Dispose| method. + * Multiple listeners can be created for the same isolate. + */ + explicit CodeEventHandler(Isolate* isolate); + virtual ~CodeEventHandler(); + + virtual void Handle(CodeEvent* code_event) = 0; + + void Enable(); + void Disable(); + + private: + CodeEventHandler(); + CodeEventHandler(const CodeEventHandler&); + CodeEventHandler& operator=(const CodeEventHandler&); + void* internal_listener_; +}; } // namespace v8 diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 89bcb2e4fa556f..f51576ed2a6132 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -10104,6 +10104,70 @@ void CpuProfiler::SetIdle(bool is_idle) { isolate->SetIdle(is_idle); } +uintptr_t CodeEvent::GetCodeStartAddress() { + return reinterpret_cast(this)->code_start_address; +} + +size_t CodeEvent::GetCodeSize() { + return reinterpret_cast(this)->code_size; +} + +Local CodeEvent::GetFunctionName() { + return ToApiHandle( + reinterpret_cast(this)->function_name); +} + +Local CodeEvent::GetScriptName() { + return ToApiHandle( + reinterpret_cast(this)->script_name); +} + +int CodeEvent::GetScriptLine() { + return reinterpret_cast(this)->script_line; +} + +int CodeEvent::GetScriptColumn() { + return reinterpret_cast(this)->script_column; +} + +CodeEventType CodeEvent::GetCodeType() { + return reinterpret_cast(this)->code_type; +} + +const char* CodeEvent::GetComment() { + return reinterpret_cast(this)->comment; +} + +const char* CodeEvent::GetCodeEventTypeName(CodeEventType code_event_type) { + switch (code_event_type) { + case kUnknownType: + return "Unknown"; +#define V(Name) \ + case k##Name##Type: \ + return #Name; + CODE_EVENTS_LIST(V) +#undef V + } +} + +CodeEventHandler::CodeEventHandler(Isolate* isolate) { + internal_listener_ = + new i::ExternalCodeEventListener(reinterpret_cast(isolate)); +} + +CodeEventHandler::~CodeEventHandler() { + delete reinterpret_cast(internal_listener_); +} + +void CodeEventHandler::Enable() { + reinterpret_cast(internal_listener_) + ->StartListening(this); +} + +void CodeEventHandler::Disable() { + reinterpret_cast(internal_listener_) + ->StopListening(); +} static i::HeapGraphEdge* ToInternal(const HeapGraphEdge* edge) { return const_cast( diff --git a/deps/v8/src/code-events.h b/deps/v8/src/code-events.h index 439cb54dca6b6d..caed5160f47a24 100644 --- a/deps/v8/src/code-events.h +++ b/deps/v8/src/code-events.h @@ -24,32 +24,38 @@ class WasmCode; using WasmName = Vector; } // namespace wasm -#define LOG_EVENTS_AND_TAGS_LIST(V) \ - V(CODE_CREATION_EVENT, "code-creation") \ - V(CODE_DISABLE_OPT_EVENT, "code-disable-optimization") \ - V(CODE_MOVE_EVENT, "code-move") \ - V(CODE_DELETE_EVENT, "code-delete") \ - V(CODE_MOVING_GC, "code-moving-gc") \ - V(SHARED_FUNC_MOVE_EVENT, "sfi-move") \ - V(SNAPSHOT_CODE_NAME_EVENT, "snapshot-code-name") \ - V(TICK_EVENT, "tick") \ - V(BUILTIN_TAG, "Builtin") \ - V(CALLBACK_TAG, "Callback") \ - V(EVAL_TAG, "Eval") \ - V(FUNCTION_TAG, "Function") \ - V(INTERPRETED_FUNCTION_TAG, "InterpretedFunction") \ - V(HANDLER_TAG, "Handler") \ - V(BYTECODE_HANDLER_TAG, "BytecodeHandler") \ - V(LAZY_COMPILE_TAG, "LazyCompile") \ - V(REG_EXP_TAG, "RegExp") \ - V(SCRIPT_TAG, "Script") \ - V(STUB_TAG, "Stub") \ - V(NATIVE_FUNCTION_TAG, "Function") \ - V(NATIVE_LAZY_COMPILE_TAG, "LazyCompile") \ - V(NATIVE_SCRIPT_TAG, "Script") +#define LOG_EVENTS_LIST(V) \ + V(CODE_CREATION_EVENT, code-creation) \ + V(CODE_DISABLE_OPT_EVENT, code-disable-optimization) \ + V(CODE_MOVE_EVENT, code-move) \ + V(CODE_DELETE_EVENT, code-delete) \ + V(CODE_MOVING_GC, code-moving-gc) \ + V(SHARED_FUNC_MOVE_EVENT, sfi-move) \ + V(SNAPSHOT_CODE_NAME_EVENT, snapshot-code-name) \ + V(TICK_EVENT, tick) + +#define TAGS_LIST(V) \ + V(BUILTIN_TAG, Builtin) \ + V(CALLBACK_TAG, Callback) \ + V(EVAL_TAG, Eval) \ + V(FUNCTION_TAG, Function) \ + V(INTERPRETED_FUNCTION_TAG, InterpretedFunction) \ + V(HANDLER_TAG, Handler) \ + V(BYTECODE_HANDLER_TAG, BytecodeHandler) \ + V(LAZY_COMPILE_TAG, LazyCompile) \ + V(REG_EXP_TAG, RegExp) \ + V(SCRIPT_TAG, Script) \ + V(STUB_TAG, Stub) \ + V(NATIVE_FUNCTION_TAG, Function) \ + V(NATIVE_LAZY_COMPILE_TAG, LazyCompile) \ + V(NATIVE_SCRIPT_TAG, Script) // Note that 'NATIVE_' cases for functions and scripts are mapped onto // original tags when writing to the log. +#define LOG_EVENTS_AND_TAGS_LIST(V) \ + LOG_EVENTS_LIST(V) \ + TAGS_LIST(V) + #define PROFILE(the_isolate, Call) (the_isolate)->code_event_dispatcher()->Call; class CodeEventListener { @@ -85,6 +91,8 @@ class CodeEventListener { enum DeoptKind { kSoft, kLazy, kEager }; virtual void CodeDeoptEvent(Code* code, DeoptKind kind, Address pc, int fp_to_sp_delta) = 0; + + virtual bool is_listening_to_code_events() { return false; } }; class CodeEventDispatcher { @@ -101,6 +109,14 @@ class CodeEventDispatcher { base::LockGuard guard(&mutex_); listeners_.erase(listener); } + bool IsListeningToCodeEvents() { + for (auto it : listeners_) { + if (it->is_listening_to_code_events()) { + return true; + } + } + return false; + } #define CODE_EVENT_DISPATCH(code) \ base::LockGuard guard(&mutex_); \ diff --git a/deps/v8/src/compiler.cc b/deps/v8/src/compiler.cc index ae6bc9c4fa681d..a01750b23ac1bb 100644 --- a/deps/v8/src/compiler.cc +++ b/deps/v8/src/compiler.cc @@ -84,8 +84,9 @@ void LogFunctionCompilation(CodeEventListener::LogEventsAndTags tag, // Log the code generation. If source information is available include // script name and line number. Check explicitly whether logging is // enabled as finding the line number is not free. - if (!isolate->logger()->is_logging_code_events() && - !isolate->is_profiling() && !FLAG_log_function_events) { + if (!isolate->logger()->is_listening_to_code_events() && + !isolate->is_profiling() && !FLAG_log_function_events && + !isolate->code_event_dispatcher()->IsListeningToCodeEvents()) { return; } diff --git a/deps/v8/src/compiler/wasm-compiler.cc b/deps/v8/src/compiler/wasm-compiler.cc index daceffd3313023..61c3a350f79f25 100644 --- a/deps/v8/src/compiler/wasm-compiler.cc +++ b/deps/v8/src/compiler/wasm-compiler.cc @@ -3952,7 +3952,8 @@ Node* WasmGraphBuilder::AtomicOp(wasm::WasmOpcode opcode, Node* const* inputs, namespace { bool must_record_function_compilation(Isolate* isolate) { - return isolate->logger()->is_logging_code_events() || isolate->is_profiling(); + return isolate->logger()->is_listening_to_code_events() || + isolate->is_profiling(); } PRINTF_FORMAT(4, 5) diff --git a/deps/v8/src/heap/mark-compact.cc b/deps/v8/src/heap/mark-compact.cc index 50be29c29a5ce1..66575f8250070d 100644 --- a/deps/v8/src/heap/mark-compact.cc +++ b/deps/v8/src/heap/mark-compact.cc @@ -2414,7 +2414,7 @@ void MarkCompactCollectorBase::CreateAndExecuteEvacuationTasks( const bool profiling = heap()->isolate()->is_profiling() || - heap()->isolate()->logger()->is_logging_code_events() || + heap()->isolate()->logger()->is_listening_to_code_events() || heap()->isolate()->heap_profiler()->is_tracking_object_moves() || heap()->has_heap_object_allocation_tracker(); ProfilingMigrationObserver profiling_observer(heap()); diff --git a/deps/v8/src/isolate.cc b/deps/v8/src/isolate.cc index abd74ee40dd5a4..dd66479f737f12 100644 --- a/deps/v8/src/isolate.cc +++ b/deps/v8/src/isolate.cc @@ -2892,7 +2892,7 @@ void CreateOffHeapTrampolines(Isolate* isolate) { // thus collected by the GC. builtins->set_builtin(i, *trampoline); - if (isolate->logger()->is_logging_code_events() || + if (isolate->logger()->is_listening_to_code_events() || isolate->is_profiling()) { isolate->logger()->LogCodeObject(*trampoline); } diff --git a/deps/v8/src/isolate.h b/deps/v8/src/isolate.h index 929403e1340c45..69ec1f1853149a 100644 --- a/deps/v8/src/isolate.h +++ b/deps/v8/src/isolate.h @@ -57,6 +57,7 @@ class BuiltinsConstantsTableBuilder; class CallInterfaceDescriptorData; class CancelableTaskManager; class CodeEventDispatcher; +class ExternalCodeEventListener; class CodeGenerator; class CodeRange; class CodeStubDescriptor; diff --git a/deps/v8/src/log.cc b/deps/v8/src/log.cc index f5e1fe6baf3fce..20e5f2c9643cf4 100644 --- a/deps/v8/src/log.cc +++ b/deps/v8/src/log.cc @@ -40,11 +40,33 @@ namespace v8 { namespace internal { -#define DECLARE_EVENT(ignore1, name) name, +#define DECLARE_EVENT(ignore1, name) #name, static const char* kLogEventsNames[CodeEventListener::NUMBER_OF_LOG_EVENTS] = { LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)}; #undef DECLARE_EVENT +static v8::CodeEventType GetCodeEventTypeForTag( + CodeEventListener::LogEventsAndTags tag) { + switch (tag) { + case CodeEventListener::NUMBER_OF_LOG_EVENTS: +#define V(Event, _) case CodeEventListener::Event: + LOG_EVENTS_LIST(V) +#undef V + return v8::CodeEventType::kUnknownType; +#define V(From, To) \ + case CodeEventListener::From: \ + return v8::CodeEventType::k##To##Type; + TAGS_LIST(V) +#undef V + } +} +#define CALL_CODE_EVENT_HANDLER(Call) \ + if (listener_) { \ + listener_->Call; \ + } else { \ + PROFILE(isolate_, Call); \ + } + static const char* ComputeMarker(SharedFunctionInfo* shared, AbstractCode* code) { switch (code->kind()) { @@ -320,9 +342,147 @@ void PerfBasicLogger::LogRecordedBuffer(const wasm::WasmCode* code, code->instructions().length(), name, length); } -// Low-level logging support. -#define LL_LOG(Call) if (ll_logger_) ll_logger_->Call; +// External CodeEventListener +ExternalCodeEventListener::ExternalCodeEventListener(Isolate* isolate) + : is_listening_(false), isolate_(isolate), code_event_handler_(nullptr) {} + +ExternalCodeEventListener::~ExternalCodeEventListener() { + if (is_listening_) { + StopListening(); + } +} + +void ExternalCodeEventListener::LogExistingCode() { + HandleScope scope(isolate_); + ExistingCodeLogger logger(isolate_, this); + logger.LogCodeObjects(); + logger.LogBytecodeHandlers(); + logger.LogCompiledFunctions(); +} + +void ExternalCodeEventListener::StartListening( + CodeEventHandler* code_event_handler) { + if (is_listening_ || code_event_handler == nullptr) { + return; + } + code_event_handler_ = code_event_handler; + is_listening_ = isolate_->code_event_dispatcher()->AddListener(this); + if (is_listening_) { + LogExistingCode(); + } +} +void ExternalCodeEventListener::StopListening() { + if (!is_listening_) { + return; + } + + isolate_->code_event_dispatcher()->RemoveListener(this); + is_listening_ = false; +} + +void ExternalCodeEventListener::CodeCreateEvent( + CodeEventListener::LogEventsAndTags tag, AbstractCode* code, + const char* comment) { + CodeEvent code_event; + code_event.code_start_address = + static_cast(code->InstructionStart()); + code_event.code_size = static_cast(code->InstructionSize()); + code_event.function_name = isolate_->factory()->empty_string(); + code_event.script_name = isolate_->factory()->empty_string(); + code_event.script_line = 0; + code_event.script_column = 0; + code_event.code_type = GetCodeEventTypeForTag(tag); + code_event.comment = comment; + + code_event_handler_->Handle(reinterpret_cast(&code_event)); +} + +void ExternalCodeEventListener::CodeCreateEvent( + CodeEventListener::LogEventsAndTags tag, AbstractCode* code, Name* name) { + Handle name_string = + Name::ToFunctionName(Handle(name, isolate_)).ToHandleChecked(); + + CodeEvent code_event; + code_event.code_start_address = + static_cast(code->InstructionStart()); + code_event.code_size = static_cast(code->InstructionSize()); + code_event.function_name = name_string; + code_event.script_name = isolate_->factory()->empty_string(); + code_event.script_line = 0; + code_event.script_column = 0; + code_event.code_type = GetCodeEventTypeForTag(tag); + code_event.comment = ""; + + code_event_handler_->Handle(reinterpret_cast(&code_event)); +} + +void ExternalCodeEventListener::CodeCreateEvent( + CodeEventListener::LogEventsAndTags tag, AbstractCode* code, + SharedFunctionInfo* shared, Name* name) { + Handle name_string = + Name::ToFunctionName(Handle(name, isolate_)).ToHandleChecked(); + + CodeEvent code_event; + code_event.code_start_address = + static_cast(code->InstructionStart()); + code_event.code_size = static_cast(code->InstructionSize()); + code_event.function_name = name_string; + code_event.script_name = isolate_->factory()->empty_string(); + code_event.script_line = 0; + code_event.script_column = 0; + code_event.code_type = GetCodeEventTypeForTag(tag); + code_event.comment = ""; + + code_event_handler_->Handle(reinterpret_cast(&code_event)); +} + +void ExternalCodeEventListener::CodeCreateEvent( + CodeEventListener::LogEventsAndTags tag, AbstractCode* code, + SharedFunctionInfo* shared, Name* source, int line, int column) { + Handle name_string = + Name::ToFunctionName(Handle(shared->Name(), isolate_)) + .ToHandleChecked(); + Handle source_string = + Name::ToFunctionName(Handle(source, isolate_)).ToHandleChecked(); + + CodeEvent code_event; + code_event.code_start_address = + static_cast(code->InstructionStart()); + code_event.code_size = static_cast(code->InstructionSize()); + code_event.function_name = name_string; + code_event.script_name = source_string; + code_event.script_line = line; + code_event.script_column = column; + code_event.code_type = GetCodeEventTypeForTag(tag); + code_event.comment = ""; + + code_event_handler_->Handle(reinterpret_cast(&code_event)); +} + +void ExternalCodeEventListener::CodeCreateEvent(LogEventsAndTags tag, + const wasm::WasmCode* code, + wasm::WasmName name) { + // TODO(mmarchini): handle later +} + +void ExternalCodeEventListener::RegExpCodeCreateEvent(AbstractCode* code, + String* source) { + CodeEvent code_event; + code_event.code_start_address = + static_cast(code->InstructionStart()); + code_event.code_size = static_cast(code->InstructionSize()); + code_event.function_name = Handle(source, isolate_); + code_event.script_name = isolate_->factory()->empty_string(); + code_event.script_line = 0; + code_event.script_column = 0; + code_event.code_type = GetCodeEventTypeForTag(CodeEventListener::REG_EXP_TAG); + code_event.comment = ""; + + code_event_handler_->Handle(reinterpret_cast(&code_event)); +} + +// Low-level logging support. class LowLevelLogger : public CodeEventLogger { public: explicit LowLevelLogger(const char* file_name); @@ -809,7 +969,8 @@ Logger::Logger(Isolate* isolate) perf_jit_logger_(nullptr), ll_logger_(nullptr), jit_logger_(nullptr), - is_initialized_(false) {} + is_initialized_(false), + existing_code_logger_(isolate) {} Logger::~Logger() { delete log_; @@ -1078,7 +1239,7 @@ void AppendCodeCreateHeader(Log::MessageBuilder& msg, void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, AbstractCode* code, const char* comment) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); AppendCodeCreateHeader(msg, tag, code, &timer_); @@ -1088,7 +1249,7 @@ void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, AbstractCode* code, Name* name) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); AppendCodeCreateHeader(msg, tag, code, &timer_); @@ -1099,7 +1260,7 @@ void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, AbstractCode* code, SharedFunctionInfo* shared, Name* name) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; if (code == AbstractCode::cast( isolate_->builtins()->builtin(Builtins::kCompileLazy))) { @@ -1115,7 +1276,7 @@ void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, const wasm::WasmCode* code, wasm::WasmName name) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); AppendCodeCreateHeader(msg, tag, AbstractCode::Kind::WASM_FUNCTION, @@ -1143,7 +1304,7 @@ void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, AbstractCode* code, SharedFunctionInfo* shared, Name* source, int line, int column) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); @@ -1260,7 +1421,7 @@ void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, void Logger::CodeDisableOptEvent(AbstractCode* code, SharedFunctionInfo* shared) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); msg << kLogEventsNames[CodeEventListener::CODE_DISABLE_OPT_EVENT] << kNext @@ -1271,13 +1432,13 @@ void Logger::CodeDisableOptEvent(AbstractCode* code, void Logger::CodeMovingGCEvent() { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!log_->IsEnabled() || !FLAG_ll_prof) return; base::OS::SignalCodeMovingGC(); } void Logger::RegExpCodeCreateEvent(AbstractCode* code, String* source) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; if (!FLAG_log_code || !log_->IsEnabled()) return; Log::MessageBuilder msg(log_); AppendCodeCreateHeader(msg, CodeEventListener::REG_EXP_TAG, code, &timer_); @@ -1286,7 +1447,7 @@ void Logger::RegExpCodeCreateEvent(AbstractCode* code, String* source) { } void Logger::CodeMoveEvent(AbstractCode* from, Address to) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; MoveEventInternal(CodeEventListener::CODE_MOVE_EVENT, from->address(), to); } @@ -1335,7 +1496,7 @@ void Logger::CodeNameEvent(Address addr, int pos, const char* code_name) { void Logger::SharedFunctionInfoMoveEvent(Address from, Address to) { - if (!is_logging_code_events()) return; + if (!is_listening_to_code_events()) return; MoveEventInternal(CodeEventListener::SHARED_FUNC_MOVE_EVENT, from, to); } @@ -1625,170 +1786,28 @@ static int EnumerateWasmModules(Heap* heap, } void Logger::LogCodeObject(Object* object) { - AbstractCode* code_object = AbstractCode::cast(object); - CodeEventListener::LogEventsAndTags tag = CodeEventListener::STUB_TAG; - const char* description = "Unknown code from the snapshot"; - switch (code_object->kind()) { - case AbstractCode::INTERPRETED_FUNCTION: - case AbstractCode::OPTIMIZED_FUNCTION: - return; // We log this later using LogCompiledFunctions. - case AbstractCode::BYTECODE_HANDLER: - return; // We log it later by walking the dispatch table. - case AbstractCode::STUB: - description = - CodeStub::MajorName(CodeStub::GetMajorKey(code_object->GetCode())); - if (description == nullptr) description = "A stub from the snapshot"; - tag = CodeEventListener::STUB_TAG; - break; - case AbstractCode::REGEXP: - description = "Regular expression code"; - tag = CodeEventListener::REG_EXP_TAG; - break; - case AbstractCode::BUILTIN: - description = - isolate_->builtins()->name(code_object->GetCode()->builtin_index()); - tag = CodeEventListener::BUILTIN_TAG; - break; - case AbstractCode::WASM_FUNCTION: - description = "A Wasm function"; - tag = CodeEventListener::FUNCTION_TAG; - break; - case AbstractCode::JS_TO_WASM_FUNCTION: - description = "A JavaScript to Wasm adapter"; - tag = CodeEventListener::STUB_TAG; - break; - case AbstractCode::WASM_TO_JS_FUNCTION: - description = "A Wasm to JavaScript adapter"; - tag = CodeEventListener::STUB_TAG; - break; - case AbstractCode::WASM_INTERPRETER_ENTRY: - description = "A Wasm to Interpreter adapter"; - tag = CodeEventListener::STUB_TAG; - break; - case AbstractCode::C_WASM_ENTRY: - description = "A C to Wasm entry stub"; - tag = CodeEventListener::STUB_TAG; - break; - case AbstractCode::NUMBER_OF_KINDS: - UNIMPLEMENTED(); - } - PROFILE(isolate_, CodeCreateEvent(tag, code_object, description)); + existing_code_logger_.LogCodeObject(object); } -void Logger::LogCodeObjects() { - Heap* heap = isolate_->heap(); - HeapIterator iterator(heap); - DisallowHeapAllocation no_gc; - for (HeapObject* obj = iterator.next(); obj != nullptr; - obj = iterator.next()) { - if (obj->IsCode()) LogCodeObject(obj); - if (obj->IsBytecodeArray()) LogCodeObject(obj); - } -} +void Logger::LogCodeObjects() { existing_code_logger_.LogCodeObjects(); } void Logger::LogBytecodeHandler(interpreter::Bytecode bytecode, interpreter::OperandScale operand_scale, Code* code) { - std::string bytecode_name = - interpreter::Bytecodes::ToString(bytecode, operand_scale); - PROFILE(isolate_, - CodeCreateEvent(CodeEventListener::BYTECODE_HANDLER_TAG, - AbstractCode::cast(code), bytecode_name.c_str())); + existing_code_logger_.LogBytecodeHandler(bytecode, operand_scale, code); } void Logger::LogBytecodeHandlers() { - const interpreter::OperandScale kOperandScales[] = { -#define VALUE(Name, _) interpreter::OperandScale::k##Name, - OPERAND_SCALE_LIST(VALUE) -#undef VALUE - }; - - const int last_index = static_cast(interpreter::Bytecode::kLast); - interpreter::Interpreter* interpreter = isolate_->interpreter(); - for (auto operand_scale : kOperandScales) { - for (int index = 0; index <= last_index; ++index) { - interpreter::Bytecode bytecode = interpreter::Bytecodes::FromByte(index); - if (interpreter::Bytecodes::BytecodeHasHandler(bytecode, operand_scale)) { - Code* code = interpreter->GetBytecodeHandler(bytecode, operand_scale); - if (isolate_->heap()->IsDeserializeLazyHandler(code)) continue; - LogBytecodeHandler(bytecode, operand_scale, code); - } - } - } + existing_code_logger_.LogBytecodeHandlers(); } void Logger::LogExistingFunction(Handle shared, Handle code) { - if (shared->script()->IsScript()) { - Handle { more perl code } @@ -96,7 +96,7 @@ JavaScript program with executable Perl code. One strategy: s()(q{$1})gsi; } -Then use C \"e_scripts>. This will transform +Then use C \"e_scripts>. This will transform @@ -141,3 +141,4 @@ For updates, visit C. =cut + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/00-version.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/00-version.t index 4784ba008e5c0a..5f9560f89875d6 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/00-version.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/00-version.t @@ -8,3 +8,4 @@ if ($Text::Template::VERSION == 1.46) { } else { print "not ok 1\n"; } + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/01-basic.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/01-basic.t index d983797786c40a..be43390c67fa92 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/01-basic.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/01-basic.t @@ -33,12 +33,12 @@ if (defined($template)) { $n++; # (3) Fill in template from file -$X::v = "abc"; +$X::v = "abc"; $resultX = < abc We will evaluate 1+1 here -> 2 EOM -$Y::v = "ABC"; +$Y::v = "ABC"; $resultY = < ABC We will evaluate 1+1 here -> 2 @@ -74,7 +74,7 @@ $n++; # (6) test creation of template from filehandle if (open (TMPL, "< $TEMPFILE")) { - $template = new Text::Template ('type' => 'FILEHANDLE', + $template = new Text::Template ('type' => 'FILEHANDLE', 'source' => *TMPL); if (defined($template)) { print "ok $n\n"; @@ -109,9 +109,9 @@ if (open (TMPL, "< $TEMPFILE")) { # (9) test creation of template from array -$template = new Text::Template - ('type' => 'ARRAY', - 'source' => [ +$template = new Text::Template + ('type' => 'ARRAY', + 'source' => [ 'We will put value of $v (which is "abc") here -> {$v}', "\n", 'We will evaluate 1+1 here -> {1+1}', @@ -209,7 +209,7 @@ for ($i=0; $i<@tests; $i+=2) { # MJD 20010827 # (28) test creation of template from filehandle if (open (TMPL, "< $TEMPFILE")) { - $template = new Text::Template ('type' => 'FILEHANDLE', + $template = new Text::Template ('type' => 'FILEHANDLE', 'source' => \*TMPL); if (defined($template)) { print "ok $n\n"; diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/02-hash.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/02-hash.t index 050638c853a548..29ba51a40e21c6 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/02-hash.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/02-hash.t @@ -68,13 +68,13 @@ my $WARNINGS = 0; local $^W = 1; # Make sure this is on for this test $template8 = 'We will put value of $v (which is "good") here -> {defined $v ? "bad" : "good"}'; $result8 = 'We will put value of $v (which is "good") here -> good'; - my $template = + my $template = new Text::Template ('type' => 'STRING', 'source' => $template8); my $text = $template->fill_in(HASH => {'v' => undef}); # (8) Did we generate a warning? print +($WARNINGS == 0 ? '' : 'not '), "ok $n\n"; $n++; - + # (9) Was the output correct? print +($text eq $result8 ? '' : 'not '), "ok $n\n"; $n++; @@ -85,7 +85,7 @@ my $WARNINGS = 0; # (10) Did we generate a warning? print +($WARNINGS == 0 ? '' : 'not '), "ok $n\n"; $n++; - + # (11) Was the output correct? if ($] < 5.005) { print "ok $n # skipped -- not supported before 5.005\n"; @@ -98,7 +98,7 @@ my $WARNINGS = 0; # (12) Now we'll test the multiple-hash option (Added for 1.20.) $text = Text::Template::fill_in_string(q{$v: {$v}. @v: [{"@v"}].}, - HASH => [{'v' => 17}, + HASH => [{'v' => 17}, {'v' => ['a', 'b', 'c']}, {'v' => \23}, ]); @@ -108,3 +108,4 @@ $n++; exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/03-out.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/03-out.t index 8094392dcaf32f..0ba65a54dc5e31 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/03-out.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/03-out.t @@ -46,10 +46,11 @@ $textOUT = $templateOUT->fill_in() print +($text eq $textOUT ? '' : 'not '), "ok $n\n"; $n++; -# Missing: Test this feature in Safe compartments; +# Missing: Test this feature in Safe compartments; # it's a totally different code path. # Decision: Put that into safe.t, because that file should # be skipped when Safe.pm is unavailable. exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/04-safe.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/04-safe.t index 6d94820d2a9186..4c07121b449f9d 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/04-safe.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/04-safe.t @@ -141,13 +141,13 @@ print +($text1 eq $text2 ? '' : 'not '), "ok $n\n"; $n++; # (16) Try the BROKEN routine in safe compartments -sub my_broken { +sub my_broken { my %a = @_; $a{error} =~ s/ at.*//s; "OK! text:$a{text} error:$a{error} lineno:$a{lineno} arg:$a{arg}" ; } $templateB = new Text::Template (TYPE => 'STRING', SOURCE => '{die}') or die; -$text1 = $templateB->fill_in(BROKEN => \&my_broken, +$text1 = $templateB->fill_in(BROKEN => \&my_broken, BROKEN_ARG => 'barg', SAFE => new Safe, ); @@ -158,3 +158,4 @@ $n++; exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/05-safe2.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/05-safe2.t index 71f242592f99ae..03534770f17546 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/05-safe2.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/05-safe2.t @@ -96,7 +96,10 @@ print +($Q::H eq 'good7' ? '' : 'not '), "ok $n\n"; $Q::H = $Q::H; $n++; -# (12) +# (12) print +($Q2::H eq 'good8' ? '' : 'not '), "ok $n\n"; $Q2::H = $Q2::H; $n++; + + + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/06-ofh.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/06-ofh.t index 22d4a1c841e4ac..6865ad194531d1 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/06-ofh.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/06-ofh.t @@ -36,3 +36,4 @@ print +($t eq "My process ID is $$" ? '' : 'not '), "ok $n\n"; $n++; exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/07-safe3.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/07-safe3.t index 8baaf7ad444920..5f438f61480e27 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/07-safe3.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/07-safe3.t @@ -88,3 +88,4 @@ $n++; } exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/08-exported.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/08-exported.t index 6014400840a78d..ef9cfafdeeed88 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/08-exported.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/08-exported.t @@ -14,7 +14,7 @@ Aborting" print "1..6\n"; $n=1; -$Q::n = $Q::n = 119; +$Q::n = $Q::n = 119; # (1) Test fill_in_string $out = fill_in_string('The value of $n is {$n}.', PACKAGE => 'Q' ); @@ -26,7 +26,7 @@ $TEMPFILE = "tt$$"; open F, "> $TEMPFILE" or die "Couldn't open test file: $!; aborting"; print F 'The value of $n is {$n}.', "\n"; close F or die "Couldn't write test file: $!; aborting"; -$R::n = $R::n = 8128; +$R::n = $R::n = 8128; $out = fill_in_file($TEMPFILE, PACKAGE => 'R'); print +($out eq "The value of \$n is 8128.\n" ? '' : 'not '), "ok $n\n"; @@ -42,7 +42,7 @@ print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n"; $n++; # (4) It probably occurs in fill_this_in also: -$out = +$out = Text::Template->fill_this_in("With a message here? [% \$var %]\n", DELIMITERS => ['[%', '%]'], HASH => { "var" => \"It is good!" }); @@ -50,7 +50,7 @@ print +($out eq "With a message here? It is good!\n" ? '' : 'not '), "ok $n\n"; $n++; # (5) This test failed in 1.25. It was supplied by Donald L. Greer Jr. -# Note that it's different from (1) in that there's no explicit +# Note that it's different from (1) in that there's no explicit # package=> argument. use vars qw($string $foo $r); $string='Hello {$foo}'; @@ -72,3 +72,4 @@ package main; END { $TEMPFILE && unlink $TEMPFILE } exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/09-error.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/09-error.t index c9d03f27f873f0..40f9fac6cbc813 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/09-error.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/09-error.t @@ -49,14 +49,15 @@ if ($@ =~ /^\QIllegal value `WLUNCH' for TYPE parameter/) { $n++; # (4-5) File does not exist -my $o = Text::Template->new(TYPE => 'file', +my $o = Text::Template->new(TYPE => 'file', SOURCE => 'this file does not exist'); print $o ? "not ok $n\n" : "ok $n\n"; $n++; -print defined($Text::Template::ERROR) +print defined($Text::Template::ERROR) && $Text::Template::ERROR =~ /^Couldn't open file/ ? "ok $n\n" : "not ok $n\n"; $n++; exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/10-delimiters.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/10-delimiters.t index 4b32ce04115409..f74d591cc75520 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/10-delimiters.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/10-delimiters.t @@ -19,7 +19,7 @@ $n = 1; $V = $V = 119; $template = q{The value of $V is <<$V>>.}; $result = q{The value of $V is 119.}; -$template1 = Text::Template->new(TYPE => STRING, +$template1 = Text::Template->new(TYPE => STRING, SOURCE => $template, DELIMITERS => ['<<', '>>'] ) @@ -37,7 +37,7 @@ $n++; # (3) Now we'll try using regex metacharacters # First with the delimiters specified at object creation time $template = q{The value of $V is [$V].}; -$template1 = Text::Template->new(TYPE => STRING, +$template1 = Text::Template->new(TYPE => STRING, SOURCE => $template, DELIMITERS => ['[', ']'] ) @@ -63,10 +63,10 @@ my @tests = ('{""}' => '', # (5) '{"}"}' => undef, '{"\\}"}' => undef, # One backslash '{"\\\\}"}' => undef, # Two backslashes - '{"\\\\\\}"}' => undef, # Three backslashes + '{"\\\\\\}"}' => undef, # Three backslashes '{"\\\\\\\\}"}' => undef, # Four backslashes (10) '{"\\\\\\\\\\}"}' => undef, # Five backslashes - + # Backslashes are always passed directly to Perl '{"x20"}' => 'x20', '{"\\x20"}' => ' ', # One backslash @@ -96,3 +96,4 @@ for ($i=0; $i<@tests; $i+=2) { exit; + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/11-prepend.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/11-prepend.t index 833a5fa4449ca0..fe242e5898a210 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/11-prepend.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/11-prepend.t @@ -22,11 +22,11 @@ my $tin = q{The value of $foo is: {$foo}}; Text::Template->always_prepend(q{$foo = "global"}); $tmpl1 = Text::Template->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, ); $tmpl2 = Text::Template->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, PREPEND => q{$foo = "template"}, ); @@ -46,11 +46,11 @@ print "ok $n\n"; $n++; Emptyclass1->always_prepend(q{$foo = 'Emptyclass global';}); $tmpl1 = Emptyclass1->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, ); $tmpl2 = Emptyclass1->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, PREPEND => q{$foo = "template"}, ); @@ -69,11 +69,11 @@ print "ok $n\n"; $n++; print "ok $n\n"; $n++; $tmpl1 = Emptyclass2->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, ); $tmpl2 = Emptyclass2->new(TYPE => 'STRING', - SOURCE => $tin, + SOURCE => $tin, PREPEND => q{$foo = "template"}, ); @@ -90,3 +90,5 @@ print "ok $n\n"; $n++; print "ok $n\n"; $n++; ($t3 eq 'The value of $foo is: fillin') or print "not "; print "ok $n\n"; $n++; + + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/12-preprocess.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/12-preprocess.t index 422b10ec9aec4b..60b6b0c65beb22 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/12-preprocess.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/12-preprocess.t @@ -32,16 +32,16 @@ for my $trial (1, 0) { for my $test (0 .. 3) { my $tmpl; if ($trial == 0) { - $tmpl = new Text::Template::Preprocess + $tmpl = new Text::Template::Preprocess (TYPE => 'STRING', SOURCE => $t) or die; } else { open TF, "< $TMPFILE" or die "Couldn't open test file: $!; aborting"; - $tmpl = new Text::Template::Preprocess + $tmpl = new Text::Template::Preprocess (TYPE => 'FILEHANDLE', SOURCE => \*TF) or die; } $tmpl->preprocessor($py) if ($test & 1) == 1; my @args = ((($test & 2) == 2) ? (PREPROCESSOR => $pz) : ()); - my $o = $tmpl->fill_in(@args, + my $o = $tmpl->fill_in(@args, HASH => {x => 119, 'y' => 23, z => 5}); # print STDERR "$o/$result[$test]\n"; print +(($o eq $result[$test]) ? '' : 'not '), "ok $n\n"; diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/13-taint.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/13-taint.t index 30664993ac3681..d92a37463ab3c3 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/13-taint.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/13-taint.t @@ -58,14 +58,14 @@ sub should_be_tainted { if (Text::Template::_is_clean($_[0])) { print "not ok $n\n"; $n++; return; } - print "ok $n\n"; $n++; return; + print "ok $n\n"; $n++; return; } sub should_be_clean { unless (Text::Template::_is_clean($_[0])) { print "not ok $n\n"; $n++; return; } - print "ok $n\n"; $n++; return; + print "ok $n\n"; $n++; return; } # Tainted filename should die with and without UNTAINT option @@ -116,3 +116,4 @@ Text::Template::_unconditionally_untaint($tfile); should_be_clean($tfile); END { unlink $file } + diff --git a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/14-broken.t b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/14-broken.t index db88a0711f19b2..d362395cfbc7fd 100644 --- a/deps/openssl/openssl/external/perl/Text-Template-1.46/t/14-broken.t +++ b/deps/openssl/openssl/external/perl/Text-Template-1.46/t/14-broken.t @@ -68,7 +68,7 @@ Aborting" # (5) BROKEN sub passed correct args when called in ->fill_in? { my $r = Text::Template->new(TYPE => 'string', SOURCE => '{1/0}', - )->fill_in(BROKEN => + )->fill_in(BROKEN => sub { my %a = @_; qq{$a{lineno},$a{error},$a{text}} }); @@ -79,3 +79,4 @@ Aborting" } $n++; } + diff --git a/deps/openssl/openssl/external/perl/transfer/Text/Template.pm b/deps/openssl/openssl/external/perl/transfer/Text/Template.pm index 7dbfe3f84f4d7f..b21f875312b51c 100644 --- a/deps/openssl/openssl/external/perl/transfer/Text/Template.pm +++ b/deps/openssl/openssl/external/perl/transfer/Text/Template.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -7,6 +7,9 @@ # Quick transfer to the downloaded Text::Template +package transfer::Text::Template; +$VERSION = 1.46; + BEGIN { use File::Spec::Functions; use File::Basename; diff --git a/deps/openssl/openssl/fuzz/test-corpus.c b/deps/openssl/openssl/fuzz/test-corpus.c index c553697d6c78aa..628e633536d356 100644 --- a/deps/openssl/openssl/fuzz/test-corpus.c +++ b/deps/openssl/openssl/fuzz/test-corpus.c @@ -1,5 +1,5 @@ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL licenses, (the "License"); * you may not use this file except in compliance with the License. @@ -16,31 +16,86 @@ #include #include +#include #include #include #include "fuzzer.h" +#include "internal/o_dir.h" -int main(int argc, char **argv) { - int n; +#if defined(_WIN32) && defined(_MAX_PATH) +# define PATH_MAX _MAX_PATH +#endif - FuzzerInitialize(&argc, &argv); +#ifndef PATH_MAX +# define PATH_MAX 4096 +#endif - for (n = 1; n < argc; ++n) { - struct stat st; - FILE *f; - unsigned char *buf; - size_t s; - - stat(argv[n], &st); - f = fopen(argv[n], "rb"); - if (f == NULL) - continue; - buf = malloc(st.st_size); +# if !defined(S_ISREG) +# define S_ISREG(m) ((m) & S_IFREG) +# endif + +static void testfile(const char *pathname) +{ + struct stat st; + FILE *f; + unsigned char *buf; + size_t s; + + if (stat(pathname, &st) < 0 || !S_ISREG(st.st_mode)) + return; + printf("# %s\n", pathname); + fflush(stdout); + f = fopen(pathname, "rb"); + if (f == NULL) + return; + buf = malloc(st.st_size); + if (buf != NULL) { s = fread(buf, 1, st.st_size, f); OPENSSL_assert(s == (size_t)st.st_size); FuzzerTestOneInput(buf, s); free(buf); - fclose(f); + } + fclose(f); +} + +int main(int argc, char **argv) { + int n; + + FuzzerInitialize(&argc, &argv); + + for (n = 1; n < argc; ++n) { + size_t dirname_len = strlen(argv[n]); + const char *filename = NULL; + char *pathname = NULL; + OPENSSL_DIR_CTX *ctx = NULL; + int wasdir = 0; + + /* + * We start with trying to read the given path as a directory. + */ + while ((filename = OPENSSL_DIR_read(&ctx, argv[n])) != NULL) { + wasdir = 1; + if (pathname == NULL) { + pathname = malloc(PATH_MAX); + if (pathname == NULL) + break; + strcpy(pathname, argv[n]); +#ifdef __VMS + if (strchr(":<]", pathname[dirname_len - 1]) == NULL) +#endif + pathname[dirname_len++] = '/'; + pathname[dirname_len] = '\0'; + } + strcpy(pathname + dirname_len, filename); + testfile(pathname); + } + OPENSSL_DIR_end(&ctx); + + /* If it wasn't a directory, treat it as a file instead */ + if (!wasdir) + testfile(argv[n]); + + free(pathname); } return 0; } diff --git a/deps/openssl/openssl/include/internal/__DECC_INCLUDE_EPILOGUE.H b/deps/openssl/openssl/include/internal/__DECC_INCLUDE_EPILOGUE.H new file mode 100644 index 00000000000000..5f63860808b6d2 --- /dev/null +++ b/deps/openssl/openssl/include/internal/__DECC_INCLUDE_EPILOGUE.H @@ -0,0 +1,16 @@ +/* + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * This file is only used by HP C on VMS, and is included automatically + * after each header file from this directory + */ + +/* restore state. Must correspond to the save in __decc_include_prologue.h */ +#pragma names restore diff --git a/deps/openssl/openssl/include/internal/__DECC_INCLUDE_PROLOGUE.H b/deps/openssl/openssl/include/internal/__DECC_INCLUDE_PROLOGUE.H new file mode 100644 index 00000000000000..78b2a87d886831 --- /dev/null +++ b/deps/openssl/openssl/include/internal/__DECC_INCLUDE_PROLOGUE.H @@ -0,0 +1,20 @@ +/* + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * This file is only used by HP C on VMS, and is included automatically + * after each header file from this directory + */ + +/* save state */ +#pragma names save +/* have the compiler shorten symbols larger than 31 chars to 23 chars + * followed by a 8 hex char CRC + */ +#pragma names as_is,shortened diff --git a/deps/openssl/openssl/include/internal/numbers.h b/deps/openssl/openssl/include/internal/numbers.h index cf2c30eebbc42a..31931df3c2fff5 100644 --- a/deps/openssl/openssl/include/internal/numbers.h +++ b/deps/openssl/openssl/include/internal/numbers.h @@ -65,3 +65,4 @@ # endif #endif + diff --git a/deps/openssl/openssl/include/internal/sslconf.h b/deps/openssl/openssl/include/internal/sslconf.h new file mode 100644 index 00000000000000..d538f8614f5864 --- /dev/null +++ b/deps/openssl/openssl/include/internal/sslconf.h @@ -0,0 +1,20 @@ +/* + * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSLCONF_H +# define HEADER_SSLCONF_H + +typedef struct ssl_conf_cmd_st SSL_CONF_CMD; + +const SSL_CONF_CMD *conf_ssl_get(size_t idx, const char **name, size_t *cnt); +int conf_ssl_name_find(const char *name, size_t *idx); +void conf_ssl_get_cmd(const SSL_CONF_CMD *cmd, size_t idx, char **cmdstr, + char **arg); + +#endif diff --git a/deps/openssl/openssl/include/openssl/asn1.h b/deps/openssl/openssl/include/openssl/asn1.h index 05ae1dbe1c23c7..d0b1099a4fafe6 100644 --- a/deps/openssl/openssl/include/openssl/asn1.h +++ b/deps/openssl/openssl/include/openssl/asn1.h @@ -953,8 +953,10 @@ int ERR_load_ASN1_strings(void); # define ASN1_F_D2I_AUTOPRIVATEKEY 207 # define ASN1_F_D2I_PRIVATEKEY 154 # define ASN1_F_D2I_PUBLICKEY 155 +# define ASN1_F_DO_BUF 142 # define ASN1_F_DO_TCREATE 222 # define ASN1_F_I2D_ASN1_BIO_STREAM 211 +# define ASN1_F_I2D_ASN1_OBJECT 143 # define ASN1_F_I2D_DSA_PUBKEY 161 # define ASN1_F_I2D_EC_PUBKEY 181 # define ASN1_F_I2D_PRIVATEKEY 163 diff --git a/deps/openssl/openssl/include/openssl/bio.h b/deps/openssl/openssl/include/openssl/bio.h index f435bd8ef6dbf1..3a72862561fafc 100644 --- a/deps/openssl/openssl/include/openssl/bio.h +++ b/deps/openssl/openssl/include/openssl/bio.h @@ -730,26 +730,26 @@ __bio_h__attr__((__format__(__printf__, 3, 0))); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); +int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); -int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); -int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); +int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *); +long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *); +int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); +int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) +long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, BIO_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, diff --git a/deps/openssl/openssl/include/openssl/bn.h b/deps/openssl/openssl/include/openssl/bn.h index 54ae760152f1b8..301edd525062ca 100644 --- a/deps/openssl/openssl/include/openssl/bn.h +++ b/deps/openssl/openssl/include/openssl/bn.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -119,25 +119,76 @@ void *BN_GENCB_get_arg(BN_GENCB *cb); * on the size of the number */ /* - * number of Miller-Rabin iterations for an error rate of less than 2^-80 for - * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of - * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error - * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) - * 177-194) + * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations + * that will be done for checking that a random number is probably prime. The + * error rate for accepting a composite number as prime depends on the size of + * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, + * and so the level is what you would expect for a key of double the size of the + * prime. + * + * This table is generated using the algorithm of FIPS PUB 186-4 + * Digital Signature Standard (DSS), section F.1, page 117. + * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) + * + * The following magma script was used to generate the output: + * securitybits:=125; + * k:=1024; + * for t:=1 to 65 do + * for M:=3 to Floor(2*Sqrt(k-1)-1) do + * S:=0; + * // Sum over m + * for m:=3 to M do + * s:=0; + * // Sum over j + * for j:=2 to m do + * s+:=(RealField(32)!2)^-(j+(k-1)/j); + * end for; + * S+:=2^(m-(m-1)*t)*s; + * end for; + * A:=2^(k-2-M*t); + * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; + * pkt:=2.00743*Log(2)*k*2^-k*(A+B); + * seclevel:=Floor(-Log(2,pkt)); + * if seclevel ge securitybits then + * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; + * break; + * end if; + * end for; + * if seclevel ge securitybits then break; end if; + * end for; + * + * It can be run online at: + * http://magma.maths.usyd.edu.au/calc + * + * And will output: + * k: 1024, security: 129 bits (t: 6, M: 23) + * + * k is the number of bits of the prime, securitybits is the level we want to + * reach. + * + * prime length | RSA key size | # MR tests | security level + * -------------+--------------|------------+--------------- + * (b) >= 6394 | >= 12788 | 3 | 256 bit + * (b) >= 3747 | >= 7494 | 3 | 192 bit + * (b) >= 1345 | >= 2690 | 4 | 128 bit + * (b) >= 1080 | >= 2160 | 5 | 128 bit + * (b) >= 852 | >= 1704 | 5 | 112 bit + * (b) >= 476 | >= 952 | 5 | 80 bit + * (b) >= 400 | >= 800 | 6 | 80 bit + * (b) >= 347 | >= 694 | 7 | 80 bit + * (b) >= 308 | >= 616 | 8 | 80 bit + * (b) >= 55 | >= 110 | 27 | 64 bit + * (b) >= 6 | >= 12 | 34 | 64 bit */ -# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) + +# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ + (b) >= 1345 ? 4 : \ + (b) >= 476 ? 5 : \ + (b) >= 400 ? 6 : \ + (b) >= 347 ? 7 : \ + (b) >= 308 ? 8 : \ + (b) >= 55 ? 27 : \ + /* b >= 6 */ 34) # define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) diff --git a/deps/openssl/openssl/include/openssl/conf.h b/deps/openssl/openssl/include/openssl/conf.h index 980a51b157f456..e0539e312884f0 100644 --- a/deps/openssl/openssl/include/openssl/conf.h +++ b/deps/openssl/openssl/include/openssl/conf.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -191,6 +191,7 @@ int ERR_load_CONF_strings(void); # define CONF_F_NCONF_LOAD_BIO 110 # define CONF_F_NCONF_LOAD_FP 114 # define CONF_F_NCONF_NEW 111 +# define CONF_F_SSL_MODULE_INIT 123 # define CONF_F_STR_COPY 101 /* Reason codes. */ @@ -206,6 +207,10 @@ int ERR_load_CONF_strings(void); # define CONF_R_NO_SECTION 107 # define CONF_R_NO_SUCH_FILE 114 # define CONF_R_NO_VALUE 108 +# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 +# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 +# define CONF_R_SSL_SECTION_EMPTY 119 +# define CONF_R_SSL_SECTION_NOT_FOUND 120 # define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 # define CONF_R_UNKNOWN_MODULE_NAME 113 # define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 diff --git a/deps/openssl/openssl/include/openssl/crypto.h b/deps/openssl/openssl/include/openssl/crypto.h index 1ba7f25f012341..fa3f12af3b2308 100644 --- a/deps/openssl/openssl/include/openssl/crypto.h +++ b/deps/openssl/openssl/include/openssl/crypto.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -371,7 +371,9 @@ int CRYPTO_memcmp(const volatile void * volatile in_a, # define OPENSSL_INIT_ENGINE_CAPI 0x00002000L # define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L # define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* OPENSSL_INIT flag 0x00010000 reserved for internal use */ +/* OPENSSL_INIT_ZLIB 0x00010000L */ +/* currently unused 0x00020000L */ +/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ /* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ /* Max OPENSSL_INIT flag value is 0x80000000 */ diff --git a/deps/openssl/openssl/include/openssl/dh.h b/deps/openssl/openssl/include/openssl/dh.h index fbd479039e9e8b..8cf879e14fad11 100644 --- a/deps/openssl/openssl/include/openssl/dh.h +++ b/deps/openssl/openssl/include/openssl/dh.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -187,7 +187,7 @@ void DH_meth_free(DH_METHOD *dhm); DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); const char *DH_meth_get0_name(const DH_METHOD *dhm); int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -int DH_meth_get_flags(DH_METHOD *dhm); +int DH_meth_get_flags(const DH_METHOD *dhm); int DH_meth_set_flags(DH_METHOD *dhm, int flags); void *DH_meth_get0_app_data(const DH_METHOD *dhm); int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); diff --git a/deps/openssl/openssl/include/openssl/dsa.h b/deps/openssl/openssl/include/openssl/dsa.h index 139718edb940e5..3a7b1a626e1973 100644 --- a/deps/openssl/openssl/include/openssl/dsa.h +++ b/deps/openssl/openssl/include/openssl/dsa.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -146,10 +146,12 @@ int DSAparams_print_fp(FILE *fp, const DSA *x); int DSA_print_fp(FILE *bp, const DSA *x, int off); # endif -# define DSS_prime_checks 50 +# define DSS_prime_checks 64 /* - * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of - * Rabin-Miller + * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only + * have one value here we set the number of checks to 64 which is the 128 bit + * security level that is the highest level and valid for creating a 3072 bit + * DSA key. */ # define DSA_is_prime(n, callback, cb_arg) \ BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) @@ -186,7 +188,7 @@ void DSA_meth_free(DSA_METHOD *dsam); DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); const char *DSA_meth_get0_name(const DSA_METHOD *dsam); int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); -int DSA_meth_get_flags(DSA_METHOD *dsam); +int DSA_meth_get_flags(const DSA_METHOD *dsam); int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); @@ -260,6 +262,7 @@ int ERR_load_DSA_strings(void); # define DSA_F_DSA_SIG_NEW 102 # define DSA_F_OLD_DSA_PRIV_DECODE 122 # define DSA_F_PKEY_DSA_CTRL 120 +# define DSA_F_PKEY_DSA_CTRL_STR 104 # define DSA_F_PKEY_DSA_KEYGEN 121 /* Reason codes. */ diff --git a/deps/openssl/openssl/include/openssl/evp.h b/deps/openssl/openssl/include/openssl/evp.h index 43c97a7560fba2..36e2934485aaa0 100644 --- a/deps/openssl/openssl/include/openssl/evp.h +++ b/deps/openssl/openssl/include/openssl/evp.h @@ -1351,34 +1351,34 @@ void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, const char *type, const char *value)); -void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx)); -void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, int (**pcopy) (EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)); -void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, void (**pcleanup) (EVP_PKEY_CTX *ctx)); -void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, int (**pparamgen_init) (EVP_PKEY_CTX *ctx), int (**pparamgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, int (**pkeygen_init) (EVP_PKEY_CTX *ctx), int (**pkeygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, int (**psign_init) (EVP_PKEY_CTX *ctx), int (**psign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, const unsigned char *tbs, size_t tbslen)); -void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, int (**pverify_init) (EVP_PKEY_CTX *ctx), int (**pverify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, @@ -1386,7 +1386,7 @@ void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, const unsigned char *tbs, size_t tbslen)); -void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, int (**pverify_recover_init) (EVP_PKEY_CTX *ctx), int (**pverify_recover) (EVP_PKEY_CTX @@ -1398,7 +1398,7 @@ void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, char *tbs, size_t tbslen)); -void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, int (**psignctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), int (**psignctx) (EVP_PKEY_CTX *ctx, @@ -1406,7 +1406,7 @@ void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, size_t *siglen, EVP_MD_CTX *mctx)); -void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), int (**pverifyctx) (EVP_PKEY_CTX *ctx, @@ -1414,7 +1414,7 @@ void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, int siglen, EVP_MD_CTX *mctx)); -void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, int (**pencrypt_init) (EVP_PKEY_CTX *ctx), int (**pencryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, @@ -1422,7 +1422,7 @@ void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, const unsigned char *in, size_t inlen)); -void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), int (**pdecrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, @@ -1430,13 +1430,13 @@ void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, const unsigned char *in, size_t inlen)); -void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, int (**pderive_init) (EVP_PKEY_CTX *ctx), int (**pderive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); -void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, +void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2), int (**pctrl_str) (EVP_PKEY_CTX *ctx, @@ -1506,6 +1506,8 @@ int ERR_load_EVP_strings(void); # define EVP_F_EVP_PKEY_GET0_RSA 121 # define EVP_F_EVP_PKEY_KEYGEN 146 # define EVP_F_EVP_PKEY_KEYGEN_INIT 147 +# define EVP_F_EVP_PKEY_METH_ADD0 172 +# define EVP_F_EVP_PKEY_METH_NEW 173 # define EVP_F_EVP_PKEY_NEW 106 # define EVP_F_EVP_PKEY_PARAMGEN 148 # define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 @@ -1570,6 +1572,7 @@ int ERR_load_EVP_strings(void); # define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 # define EVP_R_OPERATON_NOT_INITIALIZED 151 # define EVP_R_PARTIALLY_OVERLAPPING 162 +# define EVP_R_PBKDF2_ERROR 176 # define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 # define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 # define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 diff --git a/deps/openssl/openssl/include/openssl/lhash.h b/deps/openssl/openssl/include/openssl/lhash.h index 82d40c1e0e708d..8ecc5884842030 100644 --- a/deps/openssl/openssl/include/openssl/lhash.h +++ b/deps/openssl/openssl/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -95,7 +95,7 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); # define _LHASH OPENSSL_LHASH # define LHASH_NODE OPENSSL_LH_NODE # define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_lh_new +# define lh_new OPENSSL_LH_new # define lh_free OPENSSL_LH_free # define lh_insert OPENSSL_LH_insert # define lh_delete OPENSSL_LH_delete diff --git a/deps/openssl/openssl/include/openssl/opensslconf.h b/deps/openssl/openssl/include/openssl/opensslconf.h deleted file mode 100644 index 76c99d433ab886..00000000000000 --- a/deps/openssl/openssl/include/openssl/opensslconf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../config/opensslconf.h" diff --git a/deps/openssl/openssl/include/openssl/opensslconf.h.in b/deps/openssl/openssl/include/openssl/opensslconf.h.in index 9f8634a3a28e53..17807fb6bd374c 100644 --- a/deps/openssl/openssl/include/openssl/opensslconf.h.in +++ b/deps/openssl/openssl/include/openssl/opensslconf.h.in @@ -68,12 +68,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/openssl/include/openssl/opensslv.h b/deps/openssl/openssl/include/openssl/opensslv.h index 4fb437f2ee3ec7..c5ef2a7535640a 100644 --- a/deps/openssl/openssl/include/openssl/opensslv.h +++ b/deps/openssl/openssl/include/openssl/opensslv.h @@ -39,18 +39,13 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1010008fL +# define OPENSSL_VERSION_NUMBER 0x1010009fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h-fips 27 Mar 2018" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0i-fips 14 Aug 2018" # else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h 27 Mar 2018" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0i 14 Aug 2018" # endif -#define OPENSSL_MAKE_VERSION(maj,min,fix,patch) ((0x10000000L)+((maj&0xff)<<20)+((min&0xff)<<12)+((fix&0xff)<<4)+patch) - -/* use this for #if tests, should never depend upon fix/patch */ -#define OPENSSL_VERSION_AT_LEAST(maj,min) (OPENSSL_MAKE_VERSION(maj,min, 0, 0) >= OPENSSL_VERSION_NUMBER) - /*- * The macros below are to be used for shared library (.so, .dll, ...) * versioning. That kind of versioning works a bit differently between diff --git a/deps/openssl/openssl/include/openssl/pem.h b/deps/openssl/openssl/include/openssl/pem.h index 2375d6355381de..f7ce3c61f5fa84 100644 --- a/deps/openssl/openssl/include/openssl/pem.h +++ b/deps/openssl/openssl/include/openssl/pem.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -322,7 +322,8 @@ int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen, EVP_PKEY *pkey); -int PEM_def_callback(char *buf, int num, int w, void *key); +/* The default pem_password_cb that's used internally */ +int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); void PEM_proc_type(char *buf, int type); void PEM_dek_info(char *buf, const char *type, int len, char *str); diff --git a/deps/openssl/openssl/include/openssl/rsa.h b/deps/openssl/openssl/include/openssl/rsa.h index d97d6e075aefe3..790831b94545c6 100644 --- a/deps/openssl/openssl/include/openssl/rsa.h +++ b/deps/openssl/openssl/include/openssl/rsa.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -374,7 +374,7 @@ void RSA_meth_free(RSA_METHOD *meth); RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); const char *RSA_meth_get0_name(const RSA_METHOD *meth); int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); -int RSA_meth_get_flags(RSA_METHOD *meth); +int RSA_meth_get_flags(const RSA_METHOD *meth); int RSA_meth_set_flags(RSA_METHOD *meth, int flags); void *RSA_meth_get0_app_data(const RSA_METHOD *meth); int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); diff --git a/deps/openssl/openssl/include/openssl/ssl.h b/deps/openssl/openssl/include/openssl/ssl.h index 1cb3462f485495..56e2056260d63e 100644 --- a/deps/openssl/openssl/include/openssl/ssl.h +++ b/deps/openssl/openssl/include/openssl/ssl.h @@ -381,7 +381,7 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); # define SSL_OP_PKCS1_CHECK_1 0x0 /* Removed from OpenSSL 1.0.1. Was 0x10000000L */ # define SSL_OP_PKCS1_CHECK_2 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ +/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ # define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 /* Removed from OpenSSL 1.1.0. Was 0x40000000L */ # define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 @@ -967,8 +967,8 @@ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); # define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 # define SSL_VERIFY_CLIENT_ONCE 0x04 -# define OpenSSL_add_ssl_algorithms() SSL_library_init() # if OPENSSL_API_COMPAT < 0x10100000L +# define OpenSSL_add_ssl_algorithms() SSL_library_init() # define SSLeay_add_ssl_algorithms() SSL_library_init() # endif @@ -1358,7 +1358,7 @@ __owur int SSL_get_fd(const SSL *s); __owur int SSL_get_rfd(const SSL *s); __owur int SSL_get_wfd(const SSL *s); __owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); +__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); __owur int SSL_get_read_ahead(const SSL *s); __owur int SSL_pending(const SSL *s); __owur int SSL_has_pending(const SSL *s); diff --git a/deps/openssl/openssl/include/openssl/ssl3.h b/deps/openssl/openssl/include/openssl/ssl3.h index 4ca434e760ed8d..115940ad315757 100644 --- a/deps/openssl/openssl/include/openssl/ssl3.h +++ b/deps/openssl/openssl/include/openssl/ssl3.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -252,9 +252,15 @@ extern "C" { # define SSL3_CT_FORTEZZA_DMS 20 /* * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined either for SSLv3 and TLSv1. + * contain all of the cert types defined for *either* SSLv3 and TLSv1. */ -# define SSL3_CT_NUMBER 9 +# define SSL3_CT_NUMBER 10 + +# if defined(TLS_CT_NUMBER) +# if TLS_CT_NUMBER != SSL3_CT_NUMBER +# error "SSL/TLS CT_NUMBER values do not match" +# endif +# endif # define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 diff --git a/deps/openssl/openssl/include/openssl/tls1.h b/deps/openssl/openssl/include/openssl/tls1.h index 3fe01fe8138384..732e87ab35c226 100644 --- a/deps/openssl/openssl/include/openssl/tls1.h +++ b/deps/openssl/openssl/include/openssl/tls1.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -883,7 +883,13 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see * comment there) */ -# define TLS_CT_NUMBER 9 +# define TLS_CT_NUMBER 10 + +# if defined(SSL3_CT_NUMBER) +# if TLS_CT_NUMBER != SSL3_CT_NUMBER +# error "SSL/TLS CT_NUMBER values do not match" +# endif +# endif # define TLS1_FINISH_MAC_LENGTH 12 diff --git a/deps/openssl/openssl/include/openssl/x509.h b/deps/openssl/openssl/include/openssl/x509.h index d23fad8e3596a5..780386d530ce1a 100644 --- a/deps/openssl/openssl/include/openssl/x509.h +++ b/deps/openssl/openssl/include/openssl/x509.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -805,7 +805,7 @@ X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, const unsigned char *bytes, int len); X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, + int type, const unsigned char *bytes, int len); int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, @@ -1055,6 +1055,7 @@ int ERR_load_X509_strings(void); # define X509_F_X509_LOAD_CERT_CRL_FILE 132 # define X509_F_X509_LOAD_CERT_FILE 111 # define X509_F_X509_LOAD_CRL_FILE 112 +# define X509_F_X509_LOOKUP_METH_NEW 160 # define X509_F_X509_NAME_ADD_ENTRY 113 # define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 # define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 diff --git a/deps/openssl/openssl/include/openssl/x509_vfy.h b/deps/openssl/openssl/include/openssl/x509_vfy.h index 1aa0a33b8a3226..d91581c7735389 100644 --- a/deps/openssl/openssl/include/openssl/x509_vfy.h +++ b/deps/openssl/openssl/include/openssl/x509_vfy.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -257,7 +257,9 @@ X509_OBJECT *X509_OBJECT_new(void); void X509_OBJECT_free(X509_OBJECT *a); X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); +int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); +int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); X509_STORE *X509_STORE_new(void); void X509_STORE_free(X509_STORE *v); int X509_STORE_lock(X509_STORE *ctx); @@ -364,6 +366,76 @@ X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); X509_LOOKUP_METHOD *X509_LOOKUP_file(void); +typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + ASN1_INTEGER *serial, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const unsigned char* bytes, + int len, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const char *str, + int len, + X509_OBJECT *ret); + +X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); +void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, + int (*new_item) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, + void (*free) (X509_LOOKUP *ctx)); +void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, + int (*init) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, + int (*shutdown) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, + X509_LOOKUP_ctrl_fn ctrl_fn); +X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_subject_fn fn); +X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_issuer_serial_fn fn); +X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_fingerprint_fn fn); +X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_alias_fn fn); +X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( + const X509_LOOKUP_METHOD *method); + + int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); @@ -393,6 +465,9 @@ int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_OBJECT *ret); int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str, int len, X509_OBJECT *ret); +int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); +void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); +X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); int X509_STORE_load_locations(X509_STORE *ctx, @@ -475,6 +550,7 @@ int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, const char *name, size_t namelen); void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, unsigned int flags); +unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, diff --git a/deps/openssl/openssl/ms/uplink-x86.pl b/deps/openssl/openssl/ms/uplink-x86.pl index e25668ea35d1c8..2c0b12b86e7499 100755 --- a/deps/openssl/openssl/ms/uplink-x86.pl +++ b/deps/openssl/openssl/ms/uplink-x86.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -41,4 +41,4 @@ } &asm_finish(); -close OUTPUT; +close STDOUT; diff --git a/deps/openssl/openssl/ssl/record/rec_layer_d1.c b/deps/openssl/openssl/ssl/record/rec_layer_d1.c index b3ff5f1fbfc7ba..6111a2e1913e50 100644 --- a/deps/openssl/openssl/ssl/record/rec_layer_d1.c +++ b/deps/openssl/openssl/ssl/record/rec_layer_d1.c @@ -423,6 +423,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, /* get new packet if necessary */ if ((SSL3_RECORD_get_length(rr) == 0) || (s->rlayer.rstate == SSL_ST_READ_BODY)) { + RECORD_LAYER_set_numrpipes(&s->rlayer, 0); ret = dtls1_get_record(s); if (ret <= 0) { ret = dtls1_read_failed(s, ret); @@ -432,6 +433,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, else goto start; } + RECORD_LAYER_set_numrpipes(&s->rlayer, 1); } /* @@ -442,6 +444,19 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, && SSL3_RECORD_get_length(rr) != 0) s->rlayer.alert_count = 0; + if (SSL3_RECORD_get_type(rr) != SSL3_RT_HANDSHAKE + && SSL3_RECORD_get_type(rr) != SSL3_RT_CHANGE_CIPHER_SPEC + && !SSL_in_init(s) + && (s->d1->next_timeout.tv_sec != 0 + || s->d1->next_timeout.tv_usec != 0)) { + /* + * The timer is still running but we've received something that isn't + * handshake data - so the peer must have finished processing our + * last handshake flight. Stop the timer. + */ + dtls1_stop_timer(s); + } + /* we now have a packet which can be read and processed */ if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, @@ -458,6 +473,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, return -1; } SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); goto start; } @@ -467,8 +483,9 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, */ if (s->shutdown & SSL_RECEIVED_SHUTDOWN) { SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); s->rwstate = SSL_NOTHING; - return (0); + return 0; } if (type == SSL3_RECORD_get_type(rr) @@ -493,8 +510,16 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, if (recvd_type != NULL) *recvd_type = SSL3_RECORD_get_type(rr); - if (len <= 0) - return (len); + if (len <= 0) { + /* + * Mark a zero length record as read. This ensures multiple calls to + * SSL_read() with a zero length buffer will eventually cause + * SSL_pending() to report data as being available. + */ + if (SSL3_RECORD_get_length(rr) == 0) + SSL3_RECORD_set_read(rr); + return len; + } if ((unsigned int)len > SSL3_RECORD_get_length(rr)) n = SSL3_RECORD_get_length(rr); @@ -502,12 +527,16 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, n = (unsigned int)len; memcpy(buf, &(SSL3_RECORD_get_data(rr)[SSL3_RECORD_get_off(rr)]), n); - if (!peek) { + if (peek) { + if (SSL3_RECORD_get_length(rr) == 0) + SSL3_RECORD_set_read(rr); + } else { SSL3_RECORD_sub_length(rr, n); SSL3_RECORD_add_off(rr, n); if (SSL3_RECORD_get_length(rr) == 0) { s->rlayer.rstate = SSL_ST_READ_HEADER; SSL3_RECORD_set_off(rr, 0); + SSL3_RECORD_set_read(rr); } } #ifndef OPENSSL_NO_SCTP @@ -558,6 +587,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, } /* Exit and notify application to read again */ SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); s->rwstate = SSL_READING; BIO_clear_retry_flags(SSL_get_rbio(s)); BIO_set_retry_read(SSL_get_rbio(s)); @@ -602,6 +632,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, #endif s->rlayer.rstate = SSL_ST_READ_HEADER; SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); goto start; } @@ -611,6 +642,8 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, SSL3_RECORD_add_off(rr, 1); SSL3_RECORD_add_length(rr, -1); } + if (SSL3_RECORD_get_length(rr) == 0) + SSL3_RECORD_set_read(rr); *dest_len = dest_maxlen; } } @@ -681,6 +714,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, } } else { SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); ssl3_send_alert(s, SSL3_AL_WARNING, SSL_AD_NO_RENEGOTIATION); } /* @@ -705,6 +739,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, || (s->options & SSL_OP_NO_RENEGOTIATION) != 0)) { s->rlayer.d->handshake_fragment_len = 0; SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); ssl3_send_alert(s, SSL3_AL_WARNING, SSL_AD_NO_RENEGOTIATION); goto start; } @@ -732,6 +767,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, if (alert_level == SSL3_AL_WARNING) { s->s3->warn_alert = alert_descr; + SSL3_RECORD_set_read(rr); s->rlayer.alert_count++; if (s->rlayer.alert_count == MAX_WARN_ALERT_COUNT) { @@ -796,6 +832,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, BIO_snprintf(tmp, sizeof(tmp), "%d", alert_descr); ERR_add_error_data(2, "SSL alert number ", tmp); s->shutdown |= SSL_RECEIVED_SHUTDOWN; + SSL3_RECORD_set_read(rr); SSL_CTX_remove_session(s->session_ctx, s->session); return (0); } else { @@ -811,7 +848,8 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, * shutdown */ s->rwstate = SSL_NOTHING; SSL3_RECORD_set_length(rr, 0); - return (0); + SSL3_RECORD_set_read(rr); + return 0; } if (SSL3_RECORD_get_type(rr) == SSL3_RT_CHANGE_CIPHER_SPEC) { @@ -820,6 +858,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, * are still missing, so just drop it. */ SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); goto start; } @@ -834,6 +873,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, dtls1_get_message_header(rr->data, &msg_hdr); if (SSL3_RECORD_get_epoch(rr) != s->rlayer.d->r_epoch) { SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); goto start; } @@ -847,6 +887,19 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, dtls1_retransmit_buffered_messages(s); SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); + if (!(s->mode & SSL_MODE_AUTO_RETRY)) { + if (SSL3_BUFFER_get_left(&s->rlayer.rbuf) == 0) { + /* no read-ahead left? */ + BIO *bio; + + s->rwstate = SSL_READING; + bio = SSL_get_rbio(s); + BIO_clear_retry_flags(bio); + BIO_set_retry_read(bio); + return -1; + } + } goto start; } @@ -889,6 +942,7 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, /* TLS just ignores unknown message types */ if (s->version == TLS1_VERSION) { SSL3_RECORD_set_length(rr, 0); + SSL3_RECORD_set_read(rr); goto start; } al = SSL_AD_UNEXPECTED_MESSAGE; diff --git a/deps/openssl/openssl/ssl/record/rec_layer_s3.c b/deps/openssl/openssl/ssl/record/rec_layer_s3.c index 20225d2db779e3..1ffc1205d97bf9 100644 --- a/deps/openssl/openssl/ssl/record/rec_layer_s3.c +++ b/deps/openssl/openssl/ssl/record/rec_layer_s3.c @@ -368,7 +368,7 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) * promptly send beyond the end of the users buffer ... so we trap and * report the error in a way the user will notice */ - if (((unsigned int)len < s->rlayer.wnum) + if (((unsigned int)len < s->rlayer.wnum) || ((wb->left != 0) && ((unsigned int)len < (s->rlayer.wnum + s->rlayer.wpend_tot)))) { SSLerr(SSL_F_SSL3_WRITE_BYTES, SSL_R_BAD_LENGTH); return -1; diff --git a/deps/openssl/openssl/ssl/record/ssl3_record.c b/deps/openssl/openssl/ssl/record/ssl3_record.c index c7a54feb126a69..c80add37f931c2 100644 --- a/deps/openssl/openssl/ssl/record/ssl3_record.c +++ b/deps/openssl/openssl/ssl/record/ssl3_record.c @@ -1531,6 +1531,7 @@ int dtls1_get_record(SSL *s) p += 6; n2s(p, rr->length); + rr->read = 0; /* * Lets check the version. We tolerate alerts that don't have the exact @@ -1540,6 +1541,7 @@ int dtls1_get_record(SSL *s) if (version != s->version) { /* unexpected version, silently discard */ rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); goto again; } @@ -1548,6 +1550,7 @@ int dtls1_get_record(SSL *s) if ((version & 0xff00) != (s->version & 0xff00)) { /* wrong version, silently discard record */ rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); goto again; } @@ -1555,10 +1558,10 @@ int dtls1_get_record(SSL *s) if (rr->length > SSL3_RT_MAX_ENCRYPTED_LENGTH) { /* record too long, silently discard it */ rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); goto again; } - /* now s->rlayer.rstate == SSL_ST_READ_BODY */ } @@ -1572,6 +1575,7 @@ int dtls1_get_record(SSL *s) /* this packet contained a partial record, dump it */ if (n != i) { rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); goto again; } @@ -1588,6 +1592,7 @@ int dtls1_get_record(SSL *s) bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch); if (bitmap == NULL) { rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); /* dump this record */ goto again; /* get another record */ } @@ -1602,6 +1607,7 @@ int dtls1_get_record(SSL *s) */ if (!dtls1_record_replay_check(s, bitmap)) { rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); /* dump this record */ goto again; /* get another record */ } @@ -1610,8 +1616,10 @@ int dtls1_get_record(SSL *s) #endif /* just read a 0 length packet */ - if (rr->length == 0) + if (rr->length == 0) { + rr->read = 1; goto again; + } /* * If this record is from the next epoch (either HM or ALERT), and a @@ -1626,12 +1634,14 @@ int dtls1_get_record(SSL *s) return -1; } rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); goto again; } if (!dtls1_process_record(s, bitmap)) { rr->length = 0; + rr->read = 1; RECORD_LAYER_reset_packet_length(&s->rlayer); /* dump this record */ goto again; /* get another record */ } diff --git a/deps/openssl/openssl/ssl/ssl_ciph.c b/deps/openssl/openssl/ssl/ssl_ciph.c index 7a393cbe803157..b8da9821058509 100644 --- a/deps/openssl/openssl/ssl/ssl_ciph.c +++ b/deps/openssl/openssl/ssl/ssl_ciph.c @@ -101,10 +101,7 @@ static const ssl_cipher_table ssl_cipher_table_cipher[SSL_ENC_NUM_IDX] = { {SSL_CHACHA20POLY1305, NID_chacha20_poly1305}, }; -static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX] = { - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL -}; +static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX]; #define SSL_COMP_NULL_IDX 0 #define SSL_COMP_ZLIB_IDX 1 diff --git a/deps/openssl/openssl/ssl/ssl_conf.c b/deps/openssl/openssl/ssl/ssl_conf.c index 7f894885dc5183..9d9309ac15f305 100644 --- a/deps/openssl/openssl/ssl/ssl_conf.c +++ b/deps/openssl/openssl/ssl/ssl_conf.c @@ -222,8 +222,9 @@ static int cmd_ECDHParameters(SSL_CONF_CTX *cctx, const char *value) int nid; /* Ignore values supported by 1.0.2 for the automatic selection */ - if ((cctx->flags & SSL_CONF_FLAG_FILE) && - strcasecmp(value, "+automatic") == 0) + if ((cctx->flags & SSL_CONF_FLAG_FILE) + && (strcasecmp(value, "+automatic") == 0 + || strcasecmp(value, "automatic") == 0)) return 1; if ((cctx->flags & SSL_CONF_FLAG_CMDLINE) && strcmp(value, "auto") == 0) diff --git a/deps/openssl/openssl/ssl/ssl_init.c b/deps/openssl/openssl/ssl/ssl_init.c index 3e62d4811102ae..dc16e39bf34167 100644 --- a/deps/openssl/openssl/ssl/ssl_init.c +++ b/deps/openssl/openssl/ssl/ssl_init.c @@ -1,5 +1,5 @@ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,6 +12,7 @@ #include "internal/err.h" #include #include +#include #include #include "ssl_locl.h" #include "internal/thread_once.h" @@ -126,8 +127,8 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings) "ERR_load_SSL_strings()\n"); # endif ERR_load_SSL_strings(); -#endif ssl_strings_inited = 1; +#endif return 1; } @@ -191,11 +192,13 @@ int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS * settings) return 0; } - if (!RUN_ONCE(&ssl_base, ossl_init_ssl_base)) + if (!OPENSSL_init_crypto(opts + | OPENSSL_INIT_ADD_ALL_CIPHERS + | OPENSSL_INIT_ADD_ALL_DIGESTS, + settings)) return 0; - if (!OPENSSL_init_crypto(opts | OPENSSL_INIT_ADD_ALL_CIPHERS - | OPENSSL_INIT_ADD_ALL_DIGESTS, settings)) + if (!RUN_ONCE(&ssl_base, ossl_init_ssl_base)) return 0; if ((opts & OPENSSL_INIT_NO_LOAD_SSL_STRINGS) diff --git a/deps/openssl/openssl/ssl/ssl_lib.c b/deps/openssl/openssl/ssl/ssl_lib.c index 8a190d23e8075a..2002c1712f688d 100644 --- a/deps/openssl/openssl/ssl/ssl_lib.c +++ b/deps/openssl/openssl/ssl/ssl_lib.c @@ -2213,28 +2213,37 @@ int SSL_set_cipher_list(SSL *s, const char *str) return 1; } -char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len) +char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size) { char *p; - STACK_OF(SSL_CIPHER) *sk; + STACK_OF(SSL_CIPHER) *clntsk, *srvrsk; const SSL_CIPHER *c; int i; - if ((s->session == NULL) || (s->session->ciphers == NULL) || (len < 2)) - return (NULL); + if (!s->server + || s->session == NULL + || s->session->ciphers == NULL + || size < 2) + return NULL; p = buf; - sk = s->session->ciphers; + clntsk = s->session->ciphers; + srvrsk = SSL_get_ciphers(s); + if (clntsk == NULL || srvrsk == NULL) + return NULL; - if (sk_SSL_CIPHER_num(sk) == 0) + if (sk_SSL_CIPHER_num(clntsk) == 0 || sk_SSL_CIPHER_num(srvrsk) == 0) return NULL; - for (i = 0; i < sk_SSL_CIPHER_num(sk); i++) { + for (i = 0; i < sk_SSL_CIPHER_num(clntsk); i++) { int n; - c = sk_SSL_CIPHER_value(sk, i); + c = sk_SSL_CIPHER_value(clntsk, i); + if (sk_SSL_CIPHER_find(srvrsk, c) < 0) + continue; + n = strlen(c->name); - if (n + 1 > len) { + if (n + 1 > size) { if (p != buf) --p; *p = '\0'; @@ -2243,7 +2252,7 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len) memcpy(p, c->name, n + 1); p += n; *(p++) = ':'; - len -= n + 1; + size -= n + 1; } p[-1] = '\0'; return (buf); @@ -3035,12 +3044,13 @@ void ssl_update_cache(SSL *s, int mode) /* * If sid_ctx_length is 0 there is no specific application context * associated with this session, so when we try to resume it and - * SSL_VERIFY_PEER is requested, we have no indication that this is - * actually a session for the proper application context, and the - * *handshake* will fail, not just the resumption attempt. - * Do not cache these sessions that are not resumable. + * SSL_VERIFY_PEER is requested to verify the client identity, we have no + * indication that this is actually a session for the proper application + * context, and the *handshake* will fail, not just the resumption attempt. + * Do not cache (on the server) these sessions that are not resumable + * (clients can set SSL_VERIFY_PEER without needing a sid_ctx set). */ - if (s->session->sid_ctx_length == 0 + if (s->server && s->session->sid_ctx_length == 0 && (s->verify_mode & SSL_VERIFY_PEER) != 0) return; @@ -3519,7 +3529,6 @@ void ssl_free_wbio_buffer(SSL *s) return; s->wbio = BIO_pop(s->wbio); - assert(s->wbio != NULL); BIO_free(s->bbio); s->bbio = NULL; } diff --git a/deps/openssl/openssl/ssl/ssl_locl.h b/deps/openssl/openssl/ssl/ssl_locl.h index d86bd7e8e20743..3c7c1a8e648361 100644 --- a/deps/openssl/openssl/ssl/ssl_locl.h +++ b/deps/openssl/openssl/ssl/ssl_locl.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -164,6 +164,8 @@ (c)[1]=(unsigned char)(((l)>> 8)&0xff), \ (c)[2]=(unsigned char)(((l) )&0xff)),(c)+=3) +# define SSL_MAX_2_BYTE_LEN (0xffff) + /* * DTLS version numbers are strange because they're inverted. Except for * DTLS1_BAD_VER, which should be considered "lower" than the rest. @@ -347,6 +349,9 @@ /* we have used 0000003f - 26 bits left to go */ +# define SSL_IS_FIRST_HANDSHAKE(S) ((s)->s3->tmp.finish_md_len == 0 \ + || (s)->s3->tmp.peer_finish_md_len == 0) + /* Check if an SSL structure is using DTLS */ # define SSL_IS_DTLS(s) (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS) /* See if we need explicit IV */ @@ -537,7 +542,7 @@ struct ssl_session_st { const SSL_CIPHER *cipher; unsigned long cipher_id; /* when ASN.1 loaded, this needs to be used to * load the 'cipher' structure */ - STACK_OF(SSL_CIPHER) *ciphers; /* shared ciphers? */ + STACK_OF(SSL_CIPHER) *ciphers; /* ciphers offered by the client */ CRYPTO_EX_DATA ex_data; /* application specific data */ /* * These are used to make removal of session-ids more efficient and to diff --git a/deps/openssl/openssl/ssl/ssl_mcnf.c b/deps/openssl/openssl/ssl/ssl_mcnf.c index c2d9dba64ac9b1..24742660e4340e 100644 --- a/deps/openssl/openssl/ssl/ssl_mcnf.c +++ b/deps/openssl/openssl/ssl/ssl_mcnf.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,148 +11,35 @@ #include #include #include "ssl_locl.h" +#include "internal/sslconf.h" /* SSL library configuration module. */ -struct ssl_conf_name { - /* Name of this set of commands */ - char *name; - /* List of commands */ - struct ssl_conf_cmd *cmds; - /* Number of commands */ - size_t cmd_count; -}; - -struct ssl_conf_cmd { - /* Command */ - char *cmd; - /* Argument */ - char *arg; -}; - -static struct ssl_conf_name *ssl_names; -static size_t ssl_names_count; - -static void ssl_module_free(CONF_IMODULE *md) -{ - size_t i, j; - if (ssl_names == NULL) - return; - for (i = 0; i < ssl_names_count; i++) { - struct ssl_conf_name *tname = ssl_names + i; - OPENSSL_free(tname->name); - for (j = 0; j < tname->cmd_count; j++) { - OPENSSL_free(tname->cmds[j].cmd); - OPENSSL_free(tname->cmds[j].arg); - } - OPENSSL_free(tname->cmds); - } - OPENSSL_free(ssl_names); - ssl_names = NULL; - ssl_names_count = 0; -} - -static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) -{ - size_t i, j, cnt; - int rv = 0; - const char *ssl_conf_section; - STACK_OF(CONF_VALUE) *cmd_lists; - ssl_conf_section = CONF_imodule_get_value(md); - cmd_lists = NCONF_get_section(cnf, ssl_conf_section); - if (sk_CONF_VALUE_num(cmd_lists) <= 0) { - if (cmd_lists == NULL) - SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_SECTION_NOT_FOUND); - else - SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_SECTION_EMPTY); - ERR_add_error_data(2, "section=", ssl_conf_section); - goto err; - } - cnt = sk_CONF_VALUE_num(cmd_lists); - ssl_names = OPENSSL_zalloc(sizeof(*ssl_names) * cnt); - ssl_names_count = cnt; - for (i = 0; i < ssl_names_count; i++) { - struct ssl_conf_name *ssl_name = ssl_names + i; - CONF_VALUE *sect = sk_CONF_VALUE_value(cmd_lists, i); - STACK_OF(CONF_VALUE) *cmds = NCONF_get_section(cnf, sect->value); - if (sk_CONF_VALUE_num(cmds) <= 0) { - if (cmds == NULL) - SSLerr(SSL_F_SSL_MODULE_INIT, - SSL_R_SSL_COMMAND_SECTION_NOT_FOUND); - else - SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_COMMAND_SECTION_EMPTY); - ERR_add_error_data(4, "name=", sect->name, ", value=", sect->value); - goto err; - } - ssl_name->name = BUF_strdup(sect->name); - if (ssl_name->name == NULL) - goto err; - cnt = sk_CONF_VALUE_num(cmds); - ssl_name->cmds = OPENSSL_zalloc(cnt * sizeof(struct ssl_conf_cmd)); - if (ssl_name->cmds == NULL) - goto err; - ssl_name->cmd_count = cnt; - for (j = 0; j < cnt; j++) { - const char *name; - CONF_VALUE *cmd_conf = sk_CONF_VALUE_value(cmds, j); - struct ssl_conf_cmd *cmd = ssl_name->cmds + j; - /* Skip any initial dot in name */ - name = strchr(cmd_conf->name, '.'); - if (name != NULL) - name++; - else - name = cmd_conf->name; - cmd->cmd = BUF_strdup(name); - cmd->arg = BUF_strdup(cmd_conf->value); - if (cmd->cmd == NULL || cmd->arg == NULL) - goto err; - } - - } - rv = 1; - err: - if (rv == 0) - ssl_module_free(md); - return rv; -} - void SSL_add_ssl_module(void) { - CONF_module_add("ssl_conf", ssl_module_init, ssl_module_free); -} - -static const struct ssl_conf_name *ssl_name_find(const char *name) -{ - size_t i; - const struct ssl_conf_name *nm; - if (name == NULL) - return NULL; - for (i = 0, nm = ssl_names; i < ssl_names_count; i++, nm++) { - if (strcmp(nm->name, name) == 0) - return nm; - } - return NULL; + /* Just load all of the crypto builtin modules. This includes the SSL one */ + OPENSSL_load_builtin_modules(); } static int ssl_do_config(SSL *s, SSL_CTX *ctx, const char *name) { SSL_CONF_CTX *cctx = NULL; - size_t i; + size_t i, idx, cmd_count; int rv = 0; unsigned int flags; const SSL_METHOD *meth; - const struct ssl_conf_name *nm; - struct ssl_conf_cmd *cmd; + const SSL_CONF_CMD *cmds; + if (s == NULL && ctx == NULL) { SSLerr(SSL_F_SSL_DO_CONFIG, ERR_R_PASSED_NULL_PARAMETER); goto err; } - nm = ssl_name_find(name); - if (nm == NULL) { + if (!conf_ssl_name_find(name, &idx)) { SSLerr(SSL_F_SSL_DO_CONFIG, SSL_R_INVALID_CONFIGURATION_NAME); ERR_add_error_data(2, "name=", name); goto err; } + cmds = conf_ssl_get(idx, &name, &cmd_count); cctx = SSL_CONF_CTX_new(); if (cctx == NULL) goto err; @@ -170,15 +57,18 @@ static int ssl_do_config(SSL *s, SSL_CTX *ctx, const char *name) if (meth->ssl_connect != ssl_undefined_function) flags |= SSL_CONF_FLAG_CLIENT; SSL_CONF_CTX_set_flags(cctx, flags); - for (i = 0, cmd = nm->cmds; i < nm->cmd_count; i++, cmd++) { - rv = SSL_CONF_cmd(cctx, cmd->cmd, cmd->arg); + for (i = 0; i < cmd_count; i++) { + char *cmdstr, *arg; + + conf_ssl_get_cmd(cmds, i, &cmdstr, &arg); + rv = SSL_CONF_cmd(cctx, cmdstr, arg); if (rv <= 0) { if (rv == -2) SSLerr(SSL_F_SSL_DO_CONFIG, SSL_R_UNKNOWN_COMMAND); else SSLerr(SSL_F_SSL_DO_CONFIG, SSL_R_BAD_VALUE); - ERR_add_error_data(6, "section=", name, ", cmd=", cmd->cmd, - ", arg=", cmd->arg); + ERR_add_error_data(6, "section=", name, ", cmd=", cmdstr, + ", arg=", arg); goto err; } } diff --git a/deps/openssl/openssl/ssl/ssl_sess.c b/deps/openssl/openssl/ssl/ssl_sess.c index 0dea8b52242ab0..926b55c7ba2b1a 100644 --- a/deps/openssl/openssl/ssl/ssl_sess.c +++ b/deps/openssl/openssl/ssl/ssl_sess.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -734,11 +734,11 @@ static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck) if (lck) CRYPTO_THREAD_unlock(ctx->lock); - if (ret) - SSL_SESSION_free(r); - if (ctx->remove_session_cb != NULL) ctx->remove_session_cb(ctx, c); + + if (ret) + SSL_SESSION_free(r); } else ret = 0; return (ret); diff --git a/deps/openssl/openssl/ssl/ssl_txt.c b/deps/openssl/openssl/ssl/ssl_txt.c index dbbf9d9e8d8beb..f149a3ad091511 100644 --- a/deps/openssl/openssl/ssl/ssl_txt.c +++ b/deps/openssl/openssl/ssl/ssl_txt.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -70,18 +70,18 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) if (x->cipher == NULL) { if (((x->cipher_id) & 0xff000000) == 0x02000000) { - if (BIO_printf - (bp, " Cipher : %06lX\n", x->cipher_id & 0xffffff) <= 0) + if (BIO_printf(bp, " Cipher : %06lX\n", + x->cipher_id & 0xffffff) <= 0) goto err; } else { - if (BIO_printf - (bp, " Cipher : %04lX\n", x->cipher_id & 0xffff) <= 0) + if (BIO_printf(bp, " Cipher : %04lX\n", + x->cipher_id & 0xffff) <= 0) goto err; } } else { - if (BIO_printf - (bp, " Cipher : %s\n", - ((x->cipher == NULL) ? "unknown" : x->cipher->name)) <= 0) + if (BIO_printf(bp, " Cipher : %s\n", + ((x->cipher->name == NULL) ? "unknown" + : x->cipher->name)) <= 0) goto err; } if (BIO_puts(bp, " Session-ID: ") <= 0) diff --git a/deps/openssl/openssl/ssl/statem/README b/deps/openssl/openssl/ssl/statem/README index 4467bd1e588979..145c69db8d54c5 100644 --- a/deps/openssl/openssl/ssl/statem/README +++ b/deps/openssl/openssl/ssl/statem/README @@ -60,3 +60,4 @@ Conceptually the state machine component is designed as follows: | Non core functions common | | Non core functions common to | | to both servers and clients | | both DTLS servers and clients | |_____________________________| |_______________________________| + diff --git a/deps/openssl/openssl/ssl/statem/statem.c b/deps/openssl/openssl/ssl/statem/statem.c index b91ec0a360a339..69bb40f00e114f 100644 --- a/deps/openssl/openssl/ssl/statem/statem.c +++ b/deps/openssl/openssl/ssl/statem/statem.c @@ -556,10 +556,8 @@ static SUB_STATE_RETURN read_state_machine(SSL *s) * Validate that we are allowed to move to the new state and move * to that state if so */ - if (!transition(s, mt)) { - ossl_statem_set_error(s); + if (!transition(s, mt)) return SUB_STATE_ERROR; - } if (s->s3->tmp.message_size > max_message_size(s)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER); diff --git a/deps/openssl/openssl/ssl/statem/statem_clnt.c b/deps/openssl/openssl/ssl/statem/statem_clnt.c index 6fa3f1db67028c..ed993553c56ecc 100644 --- a/deps/openssl/openssl/ssl/statem/statem_clnt.c +++ b/deps/openssl/openssl/ssl/statem/statem_clnt.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -265,6 +265,21 @@ int ossl_statem_client_read_transition(SSL *s, int mt) err: /* No valid transition found */ + if (SSL_IS_DTLS(s) && mt == SSL3_MT_CHANGE_CIPHER_SPEC) { + BIO *rbio; + + /* + * CCS messages don't have a message sequence number so this is probably + * because of an out-of-order CCS. We'll just drop it. + */ + s->init_num = 0; + s->rwstate = SSL_READING; + rbio = SSL_get_rbio(s); + BIO_clear_retry_flags(rbio); + BIO_set_retry_read(rbio); + return 0; + } + ossl_statem_set_error(s); ssl3_send_alert(s, SSL3_AL_FATAL, SSL3_AD_UNEXPECTED_MESSAGE); SSLerr(SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION, SSL_R_UNEXPECTED_MESSAGE); return 0; diff --git a/deps/openssl/openssl/ssl/statem/statem_dtls.c b/deps/openssl/openssl/ssl/statem/statem_dtls.c index 6b80620ee9c532..5b34425445363a 100644 --- a/deps/openssl/openssl/ssl/statem/statem_dtls.c +++ b/deps/openssl/openssl/ssl/statem/statem_dtls.c @@ -493,7 +493,8 @@ static int dtls1_retrieve_buffered_fragment(SSL *s, int *ok) al = dtls1_preprocess_fragment(s, &frag->msg_header); - if (al == 0) { /* no alert */ + /* al will be 0 if no alert */ + if (al == 0 && frag->msg_header.frag_len > 0) { unsigned char *p = (unsigned char *)s->init_buf->data + DTLS1_HM_HEADER_LENGTH; memcpy(&p[frag->msg_header.frag_off], frag->fragment, diff --git a/deps/openssl/openssl/ssl/statem/statem_lib.c b/deps/openssl/openssl/ssl/statem/statem_lib.c index 36d410bdf778f9..eba4c6fb40118b 100644 --- a/deps/openssl/openssl/ssl/statem/statem_lib.c +++ b/deps/openssl/openssl/ssl/statem/statem_lib.c @@ -299,6 +299,15 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst) s->ctx->stats.sess_accept_good++; s->handshake_func = ossl_statem_accept; + + if (SSL_IS_DTLS(s) && !s->hit) { + /* + * We are finishing after the client. We start the timer going + * in case there are any retransmits of our final flight + * required. + */ + dtls1_start_timer(s); + } } else { ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); if (s->hit) @@ -306,6 +315,15 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst) s->handshake_func = ossl_statem_connect; s->ctx->stats.sess_connect_good++; + + if (SSL_IS_DTLS(s) && s->hit) { + /* + * We are finishing after the server. We start the timer going + * in case there are any retransmits of our final flight + * required. + */ + dtls1_start_timer(s); + } } if (s->info_callback != NULL) @@ -1073,6 +1091,13 @@ int ssl_set_client_hello_version(SSL *s) { int ver_min, ver_max, ret; + /* + * In a renegotiation we always send the same client_version that we sent + * last time, regardless of which version we eventually negotiated. + */ + if (!SSL_IS_FIRST_HANDSHAKE(s)) + return 0; + ret = ssl_get_client_min_max_version(s, &ver_min, &ver_max); if (ret != 0) diff --git a/deps/openssl/openssl/ssl/statem/statem_srvr.c b/deps/openssl/openssl/ssl/statem/statem_srvr.c index c7cd9eb662d444..f81fa5e199438f 100644 --- a/deps/openssl/openssl/ssl/statem/statem_srvr.c +++ b/deps/openssl/openssl/ssl/statem/statem_srvr.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -213,6 +213,21 @@ int ossl_statem_server_read_transition(SSL *s, int mt) } /* No valid transition found */ + if (SSL_IS_DTLS(s) && mt == SSL3_MT_CHANGE_CIPHER_SPEC) { + BIO *rbio; + + /* + * CCS messages don't have a message sequence number so this is probably + * because of an out-of-order CCS. We'll just drop it. + */ + s->init_num = 0; + s->rwstate = SSL_READING; + rbio = SSL_get_rbio(s); + BIO_clear_retry_flags(rbio); + BIO_set_retry_read(rbio); + return 0; + } + ossl_statem_set_error(s); ssl3_send_alert(s, SSL3_AL_FATAL, SSL3_AD_UNEXPECTED_MESSAGE); SSLerr(SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION, SSL_R_UNEXPECTED_MESSAGE); return 0; @@ -1698,6 +1713,12 @@ int tls_construct_server_key_exchange(SSL *s) } dh = EVP_PKEY_get0_DH(s->s3->tmp.pkey); + if (dh == NULL) { + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE, + ERR_R_INTERNAL_ERROR); + goto err; + } EVP_PKEY_free(pkdh); pkdh = NULL; @@ -1985,6 +2006,11 @@ int tls_construct_certificate_request(SSL *s) const unsigned char *psigs; unsigned char *etmp = p; nl = tls12_get_psigalgs(s, 1, &psigs); + if (nl > SSL_MAX_2_BYTE_LEN) { + SSLerr(SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST, + SSL_R_LENGTH_TOO_LONG); + goto err; + } /* Skip over length for now */ p += 2; nl = tls12_copy_sigalgs(s, p, psigs, nl); @@ -2004,6 +2030,11 @@ int tls_construct_certificate_request(SSL *s) for (i = 0; i < sk_X509_NAME_num(sk); i++) { name = sk_X509_NAME_value(sk, i); j = i2d_X509_NAME(name, NULL); + if (j > SSL_MAX_2_BYTE_LEN) { + SSLerr(SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST, + SSL_R_LENGTH_TOO_LONG); + goto err; + } if (!BUF_MEM_grow_clean(buf, SSL_HM_HEADER_LENGTH(s) + n + j + 2)) { SSLerr(SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST, ERR_R_BUF_LIB); goto err; @@ -2013,6 +2044,11 @@ int tls_construct_certificate_request(SSL *s) i2d_X509_NAME(name, &p); n += 2 + j; nl += 2 + j; + if (nl > SSL_MAX_2_BYTE_LEN) { + SSLerr(SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST, + SSL_R_LENGTH_TOO_LONG); + goto err; + } } } /* else no CA names */ @@ -2303,13 +2339,12 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt, int *al) SSLerr(SSL_F_TLS_PROCESS_CKE_DHE, SSL_R_BN_LIB); goto err; } + cdh = EVP_PKEY_get0_DH(ckey); pub_key = BN_bin2bn(data, i, NULL); - - if (pub_key == NULL || !DH_set0_key(cdh, pub_key, NULL)) { + if (pub_key == NULL || cdh == NULL || !DH_set0_key(cdh, pub_key, NULL)) { SSLerr(SSL_F_TLS_PROCESS_CKE_DHE, ERR_R_INTERNAL_ERROR); - if (pub_key != NULL) - BN_free(pub_key); + BN_free(pub_key); goto err; } diff --git a/deps/openssl/openssl/ssl/t1_lib.c b/deps/openssl/openssl/ssl/t1_lib.c index 7a5721a1e213cd..95711fb6df8776 100644 --- a/deps/openssl/openssl/ssl/t1_lib.c +++ b/deps/openssl/openssl/ssl/t1_lib.c @@ -408,7 +408,7 @@ int tls1_set_curves(unsigned char **pext, size_t *pextlen, return 1; } -# define MAX_CURVELIST 28 +# define MAX_CURVELIST OSSL_NELEM(nid_list) typedef struct { size_t nidcnt; @@ -490,13 +490,16 @@ static int tls1_set_ec_id(unsigned char *curve_id, unsigned char *comp_id, return 1; } +# define DONT_CHECK_OWN_GROUPS 0 +# define CHECK_OWN_GROUPS 1 /* Check an EC key is compatible with extensions */ -static int tls1_check_ec_key(SSL *s, - unsigned char *curve_id, unsigned char *comp_id) +static int tls1_check_ec_key(SSL *s, unsigned char *curve_id, + unsigned char *comp_id, int check_own_groups) { const unsigned char *pformats, *pcurves; size_t num_formats, num_curves, i; int j; + /* * If point formats extension present check it, otherwise everything is * supported (see RFC4492). @@ -513,8 +516,12 @@ static int tls1_check_ec_key(SSL *s, } if (!curve_id) return 1; + + if (!s->server && !check_own_groups) + return 1; + /* Check curve is consistent with client and server preferences */ - for (j = 0; j <= 1; j++) { + for (j = check_own_groups ? 0 : 1; j <= 1; j++) { if (!tls1_get_curvelist(s, j, &pcurves, &num_curves)) return 0; if (j == 1 && num_curves == 0) { @@ -579,9 +586,12 @@ static int tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md) return 0; /* * Can't check curve_id for client certs as we don't have a supported - * curves extension. + * curves extension. For server certs we will tolerate certificates that + * aren't in our own list of curves. If we've been configured to use an EC + * cert then we should use it - therefore we use DONT_CHECK_OWN_GROUPS here. */ - rv = tls1_check_ec_key(s, s->server ? curve_id : NULL, &comp_id); + rv = tls1_check_ec_key(s, s->server ? curve_id : NULL, &comp_id, + DONT_CHECK_OWN_GROUPS); if (!rv) return 0; /* @@ -644,7 +654,7 @@ int tls1_check_ec_tmp_key(SSL *s, unsigned long cid) return 0; curve_id[0] = 0; /* Check this curve is acceptable */ - if (!tls1_check_ec_key(s, curve_id, NULL)) + if (!tls1_check_ec_key(s, curve_id, NULL, CHECK_OWN_GROUPS)) return 0; return 1; } @@ -746,8 +756,9 @@ size_t tls12_get_psigalgs(SSL *s, int sent, const unsigned char **psigs) } /* - * Check signature algorithm is consistent with sent supported signature - * algorithms and if so return relevant digest. + * Check signature algorithm received from the peer with a signature is + * consistent with the sent supported signature algorithms and if so return + * relevant digest. */ int tls12_check_peer_sigalg(const EVP_MD **pmd, SSL *s, const unsigned char *sig, EVP_PKEY *pkey) @@ -769,7 +780,8 @@ int tls12_check_peer_sigalg(const EVP_MD **pmd, SSL *s, /* Check compression and curve matches extensions */ if (!tls1_set_ec_id(curve_id, &comp_id, EVP_PKEY_get0_EC_KEY(pkey))) return 0; - if (!s->server && !tls1_check_ec_key(s, curve_id, &comp_id)) { + if (!s->server && !tls1_check_ec_key(s, curve_id, &comp_id, + CHECK_OWN_GROUPS)) { SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_WRONG_CURVE); return 0; } @@ -2144,6 +2156,10 @@ static int ssl_scan_clienthello_tlsext(SSL *s, PACKET *pkt, int *al) } } } else if (type == TLSEXT_TYPE_status_request) { + /* Ignore this if resuming */ + if (s->hit) + continue; + if (!PACKET_get_1(&extension, (unsigned int *)&s->tlsext_status_type)) { return 0; @@ -2784,7 +2800,7 @@ int tls1_set_server_sigalgs(SSL *s) if (!s->cert->shared_sigalgs) { SSLerr(SSL_F_TLS1_SET_SERVER_SIGALGS, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS); - al = SSL_AD_ILLEGAL_PARAMETER; + al = SSL_AD_HANDSHAKE_FAILURE; goto err; } } else { @@ -4125,13 +4141,16 @@ DH *ssl_get_auto_dh(SSL *s) if (dhp == NULL) return NULL; g = BN_new(); - if (g != NULL) - BN_set_word(g, 2); + if (g == NULL || !BN_set_word(g, 2)) { + DH_free(dhp); + BN_free(g); + return NULL; + } if (dh_secbits >= 192) p = BN_get_rfc3526_prime_8192(NULL); else p = BN_get_rfc3526_prime_3072(NULL); - if (p == NULL || g == NULL || !DH_set0_pqg(dhp, p, NULL, g)) { + if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) { DH_free(dhp); BN_free(p); BN_free(g); @@ -4172,6 +4191,9 @@ static int ssl_security_cert_sig(SSL *s, SSL_CTX *ctx, X509 *x, int op) if ((X509_get_extension_flags(x) & EXFLAG_SS) != 0) return 1; sig_nid = X509_get_signature_nid(x); + /* We are not able to look up the CA MD for RSA PSS in this version */ + if (sig_nid == NID_rsassaPss) + return 1; if (sig_nid && OBJ_find_sigid_algs(sig_nid, &md_nid, NULL)) { const EVP_MD *md; if (md_nid && (md = EVP_get_digestbynid(md_nid))) diff --git a/deps/openssl/openssl/ssl/t1_trce.c b/deps/openssl/openssl/ssl/t1_trce.c index 76bdf792ae3b88..588cb8cc3d8fc3 100644 --- a/deps/openssl/openssl/ssl/t1_trce.c +++ b/deps/openssl/openssl/ssl/t1_trce.c @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2012-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -725,6 +725,8 @@ static int ssl_print_extensions(BIO *bio, int indent, int server, BIO_puts(bio, "No Extensions\n"); return 1; } + if (msglen < 2) + return 0; extslen = (msg[0] << 8) | msg[1]; if (extslen != msglen - 2) return 0; @@ -1092,6 +1094,8 @@ static int ssl_print_cert_request(BIO *bio, int indent, SSL *s, msglen -= xlen + 2; skip_sig: + if (msglen < 2) + return 0; xlen = (msg[0] << 8) | msg[1]; BIO_indent(bio, indent, 80); if (msglen < xlen + 2) @@ -1271,7 +1275,16 @@ void SSL_trace(int write_p, int version, int content_type, switch (content_type) { case SSL3_RT_HEADER: { - int hvers = msg[1] << 8 | msg[2]; + int hvers; + + /* avoid overlapping with length at the end of buffer */ + if (msglen < (size_t)(SSL_IS_DTLS(ssl) ? + DTLS1_RT_HEADER_LENGTH : SSL3_RT_HEADER_LENGTH)) { + BIO_puts(bio, write_p ? "Sent" : "Received"); + ssl_print_hex(bio, 0, " too short message", msg, msglen); + break; + } + hvers = msg[1] << 8 | msg[2]; BIO_puts(bio, write_p ? "Sent" : "Received"); BIO_printf(bio, " Record\nHeader:\n Version = %s (0x%x)\n", ssl_trace_str(hvers, ssl_version_tbl), hvers); diff --git a/deps/openssl/openssl/test/README b/deps/openssl/openssl/test/README index b1222399f7b79a..ef39d38ac97c66 100644 --- a/deps/openssl/openssl/test/README +++ b/deps/openssl/openssl/test/README @@ -38,9 +38,9 @@ A recipe that just runs a test executable A script that just runs a program looks like this: #! /usr/bin/perl - + use OpenSSL::Test::Simple; - + simple_test("test_{name}", "{name}test", "{name}"); {name} is the unique name you have chosen for your test. @@ -62,28 +62,28 @@ documentation. For OpenSSL::Test, do `perldoc test/testlib/OpenSSL/Test.pm'. A script to start from could be this: #! /usr/bin/perl - + use strict; use warnings; use OpenSSL::Test; - + setup("test_{name}"); - + plan tests => 2; # The number of tests being performed - + ok(test1, "test1"); ok(test2, "test1"); - + sub test1 { # test feature 1 } - + sub test2 { # test feature 2 } - + Changes to test/Makefile ======================== diff --git a/deps/openssl/openssl/test/bioprinttest.c b/deps/openssl/openssl/test/bioprinttest.c index d8bb2c2e349a6b..b2d26225e52cb5 100644 --- a/deps/openssl/openssl/test/bioprinttest.c +++ b/deps/openssl/openssl/test/bioprinttest.c @@ -221,3 +221,5 @@ int main(int argc, char **argv) } return 0; } + + diff --git a/deps/openssl/openssl/test/build.info b/deps/openssl/openssl/test/build.info index c262248b6f2748..d850b5229cee63 100644 --- a/deps/openssl/openssl/test/build.info +++ b/deps/openssl/openssl/test/build.info @@ -1,5 +1,6 @@ IF[{- !$disabled{tests} -}] PROGRAMS_NO_INST=\ + versions \ aborttest \ sanitytest exdatatest bntest \ ectest ecdsatest gmdifftest pbelutest ideatest \ @@ -17,7 +18,11 @@ IF[{- !$disabled{tests} -}] dtlsv1listentest ct_test threadstest afalgtest d2i_test \ ssl_test_ctx_test ssl_test x509aux cipherlist_test asynciotest \ bioprinttest sslapitest dtlstest sslcorrupttest bio_enc_test \ - ocspapitest fatalerrtest + ocspapitest fatalerrtest x509_time_test x509_dup_cert_test errtest + + SOURCE[versions]=versions.c + INCLUDE[versions]=../include + DEPEND[versions]=../libcrypto SOURCE[aborttest]=aborttest.c INCLUDE[aborttest]=../include @@ -292,11 +297,23 @@ IF[{- !$disabled{tests} -}] INCLUDE[bio_enc_test]=../include DEPEND[bio_enc_test]=../libcrypto + SOURCE[x509_time_test]=x509_time_test.c testutil.c + INCLUDE[x509_time_test]=.. ../include + DEPEND[x509_time_test]=../libcrypto + + SOURCE[x509_dup_cert_test]=x509_dup_cert_test.c + INCLUDE[x509_dup_cert_test]=../include + DEPEND[x509_dup_cert_test]=../libcrypto + IF[{- !$disabled{shared} -}] PROGRAMS_NO_INST=shlibloadtest SOURCE[shlibloadtest]=shlibloadtest.c INCLUDE[shlibloadtest]=../include ENDIF + + SOURCE[errtest]=errtest.c testutil.c + INCLUDE[errtest]=../include + DEPEND[errtest]=../libcrypto ENDIF {- diff --git a/deps/openssl/openssl/test/certs/alt1-cert.pem b/deps/openssl/openssl/test/certs/alt1-cert.pem index b94d0eaf9ddd56..d68b0e51930528 100644 --- a/deps/openssl/openssl/test/certs/alt1-cert.pem +++ b/deps/openssl/openssl/test/certs/alt1-cert.pem @@ -1,22 +1,21 @@ -----BEGIN CERTIFICATE----- -MIIDlTCCAn2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMGgxIzAh -BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAxMRUwEwYDVQQDDAx3d3cu -Z29vZC5vcmcxEzARBgNVBAMMCkpvZSBCbG9nZ3MxFTATBgNVBAMMDGFueS5nb29k -LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALAv1X8S8uUpnjTa -3bv7m1jJbbX7bC9w7k4TfxiU5XL/m3EhN//EUBJSoamy6vFC6oy/6jA8XmptlVrY -Sp3ZKFdjdZh+CyYZKcrv4JReF2lfRIINn6d6EgcAobGTNwdcv67xuNtMi0meAvmK -gLjOa/IhCHNC+l8vNDJx/a+7mxH+yNxPL6lC/kJMja6oaYndx74WJpPC22LJ/cCp -xspKKsoPYYjk0BX9RvbKO8s4b86Wjzzntht+NpQ4LLh9XwPZog11qGE4UIrsV8XA -YxJrMGQNZd69cnCOz8vnOVCszFOa4qVvXeAGr0iFlZAXbQJevpiiXaXHMEt8C1qH -xpcW8DcCAwEAAaOBmDCBlTAdBgNVHQ4EFgQUw8nB25NP0gUaFCrOwAO5KzllnREw -HwYDVR0jBBgwFoAUCNGb+ebVZHCg8Wsanu1S2t31UEMwCQYDVR0TBAIwADBIBgNV -HREEQTA/ggx3d3cuZ29vZC5vcmeCDGFueS5nb29kLmNvbYENZ29vZEBnb29kLm9y -Z4EMYW55QGdvb2QuY29thwTAqAABMA0GCSqGSIb3DQEBCwUAA4IBAQBUnDMrg1py -8/iYXzs11Qbw7bBhc/HQDpu5QVgriaX2zDUpTLSEUV7qZFSHmwWm91ILw2VA1Xni -ua2sF19o/tJT0ZHpapkfqGpfsym2H04NDMKy0l0fSZhlCB5Kv5wpiFt9hBUrxS/2 -Dd6Kg+Ka02nD5QBXSAk/xz0FmgezzGGCLjg85/Sfe9Y7tNhQXh3HuGXuJizYccdQ -Fh1IAFYW3DZoDKS7dDTCltvDEma/2IE684+CRJiA6PH9rYfJ1CCUfAMpyA85CxKT -P68GDKI++WoUgM8LDfxS0KOL7A9cqcpM2L27hjyEgnqIBPHFfm9fxztBotuCTl5L -vRlTFVjv65nn +MIIDgTCCAmmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 +IE5DIENBIDEwIBcNMTgwNTE2MDIzODEzWhgPMjExODA1MTcwMjM4MTNaMFQxIzAh +BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAxMRgwFgYDVQQDDA93d3cu +ZXhhbXBsZS5uZXQxEzARBgNVBAMMCkpvZSBCbG9nZ3MwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDTqvf6j+WxCtn4RU8/6uXXgCTcksv6NDXCZ9JAz4Vv +cQbJfhFbDWpGZQZDOCqwtj+7CSVIraxItHzPlrt36cevsoPmpuqGbHrUaOLneme2 +x81SXUq0z/DmDvwxVENmRj1u7iCt3sL7awcid4SiotLOY2F1jBazmqprqKZBUiyQ +XqpSp+9uSav77ydwDXCrQozBdns1YRshgU9omQrTcIqHCj1f9Lo+A2y4+TZYZkvS +DuUZiTfPTPouR6sopM8JLyAZc+TvFFncEg24N+zz3O3jwH82BZEjzavw92J9npJB +UXvKb8O9z7UA65WYuL2he7kSQCsPNLoRWZnVpchwr3VHAgMBAAGjgZgwgZUwHQYD +VR0OBBYEFHvLhGWckFjVXdDI3ds9Wti6zgXAMB8GA1UdIwQYMBaAFAjRm/nm1WRw +oPFrGp7tUtrd9VBDMAkGA1UdEwQCMAAwSAYDVR0RBEEwP4IMd3d3Lmdvb2Qub3Jn +ggxhbnkuZ29vZC5jb22BDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgA +ATANBgkqhkiG9w0BAQsFAAOCAQEATVcTyrAxsehdQNrkL6kquXxWlyegJcxvVxUe +hfh9+Lw4620b2S1/l2YxFM3peLAsRgJOznmJOeG18+y7/kx/3UNqYGY7e8iJQ3Gl +JwDIJp5JCaUOlodjhMJtRc7jn9RcsL97oizXdcryyWT0vSlM9Pie9NtHG5iq5X4+ +oL3X8+OG25MOkF2h3YVCEG3vDu7quyTlHc2ebwpdLZRndcOewO2Cap1ettyWXUPP +Mha6wyJE8LJhrGmrI8Lw+i7gGscP0xYZn3yCLk5BtOabn4dvCiDmb+TPruKQQARw +BG45LEZzGxz+Ad3xRdZyVi1I67v9YShoYTCpMTSxJaR0erH74g== -----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/certs/alt1-key.pem b/deps/openssl/openssl/test/certs/alt1-key.pem index b5d4d326c55a7a..6df050a38f3a96 100644 --- a/deps/openssl/openssl/test/certs/alt1-key.pem +++ b/deps/openssl/openssl/test/certs/alt1-key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCwL9V/EvLlKZ40 -2t27+5tYyW21+2wvcO5OE38YlOVy/5txITf/xFASUqGpsurxQuqMv+owPF5qbZVa -2Eqd2ShXY3WYfgsmGSnK7+CUXhdpX0SCDZ+nehIHAKGxkzcHXL+u8bjbTItJngL5 -ioC4zmvyIQhzQvpfLzQycf2vu5sR/sjcTy+pQv5CTI2uqGmJ3ce+FiaTwttiyf3A -qcbKSirKD2GI5NAV/Ub2yjvLOG/Olo8857YbfjaUOCy4fV8D2aINdahhOFCK7FfF -wGMSazBkDWXevXJwjs/L5zlQrMxTmuKlb13gBq9IhZWQF20CXr6Yol2lxzBLfAta -h8aXFvA3AgMBAAECggEAa073DcqQvhq3DSIw4wm/+DfW5nwXzF1QB6XAR0yI453j -IuhEnzcGPeKuLBmZFxDWoptRG8fpCZFs4kPSTomxFGizewlp6O5ykfPAKR2VzMwF -geCiWPL0f+dWlD1Byu4moXsASDE6tL/UuAAvnl+7R2HvL6SfsdGiTQc4qAvvyukM -szks+MePHSlXmL5Eld7HfKgpvxY1SbYOQU0aPXAQAnLaOT931q+tgZMG6nBWN+pu -w5bgKCA26BMAAaUAdIIDEa9fjzkpXjElCT4qhJYVKQn9Pb7aSc4jihSpCknqbb9c -55nW5PWMZJyCbCOUG/SVTblXV+NmhdtwrgUbHImXIQKBgQDcb/7vp+rq06uNx3b4 -AjTZdzCVbHM8gp7b1GkGD0SncrzX6RxPSzNn7d4AUKY065bwa89A+TRwV8DSo7G8 -hxjzdU/FKCg8ce0eqoCtWjIT2r+rV2P9dFhfRT5jdOwHrym8LeSGzANjIBNV7FOf -FIRkQ1BVD0QSPla+26ASqsw60wKBgQDMnEzChQWgAsBelALmGaj/wDdWDUXK8xRg -s7dG1Sx41SLk39SAjCUYXPyy8IHBitJtPZNDp23tR4/m8Ui1pB2T0EnlzBsuzrZ/ -0aCbJnQ08FXE8iVajrgce4ZCdT8vkeH8EVhqDpJIlAhoKy3HaoAr4o2/uRoGDpHZ -iAbDLTEOjQKBgFrp4dXLhkqFNArMShetKUjLLIFj8f7xzDzT1ODH6UO6QYI2xRM6 -65+gbd/pYzMOOvk7LYYZgXQX7RGyq3oaqcK3Dkg88KNFRUtRfLKCMYcYv9YVu8pr -cosQTtPMBBCDQI44yziA6aC3OOJGDpLcbmG/lWEPY762cSZUBCfOw147AoGAd8S+ -AdcPtdwmcrY9BCfdDuea/JoEUon7UaehDqtVvt0z8bk7kIt4Y0x69ttleL8j8aHr -g9yLsisDhvGR2BFa5t0zhHn3J20E0skINAlMWHieHAyJ5PpJtxJvQpOTCutf1sbo -dBxXcHiGe0NbJrGmmQmiY6mcHBOHOEgxfSoE3zkCgYAc+ozIr3xmUcooUeA7uqpd -LvGGqHThGrtXVFIErOIcajC9bHEeZw4Do/oT5L7Wr7pOZ20VUmuRvwytd7IYYTVV -g+nIyKaMttEaCzHEsO0CQUHexOkJbL4rpc3HiK5hIhL8Yo2L/obQgCxYmvyChpo3 -sXJAoFllBNfAK3aanFOR1Q== +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDTqvf6j+WxCtn4 +RU8/6uXXgCTcksv6NDXCZ9JAz4VvcQbJfhFbDWpGZQZDOCqwtj+7CSVIraxItHzP +lrt36cevsoPmpuqGbHrUaOLneme2x81SXUq0z/DmDvwxVENmRj1u7iCt3sL7awci +d4SiotLOY2F1jBazmqprqKZBUiyQXqpSp+9uSav77ydwDXCrQozBdns1YRshgU9o +mQrTcIqHCj1f9Lo+A2y4+TZYZkvSDuUZiTfPTPouR6sopM8JLyAZc+TvFFncEg24 +N+zz3O3jwH82BZEjzavw92J9npJBUXvKb8O9z7UA65WYuL2he7kSQCsPNLoRWZnV +pchwr3VHAgMBAAECggEACPTB+1sdV+lioaulF8pDoWOtq5uWf+a3o5sq/U0Kk1WP ++PSZnWWq6oGZyzxUKhf8CFjxt+qJUKY6Zbo2AnPk3B1MkXTclYV/iP9LIoo+WzCH +EoYaBB6MTd+ycg/jri8oqEnxHgo/681yhtXRyePj0ZHI7OVZjI3tyhJfvoHQmuci +u6qYYUP0GWuyM+kHS11vn6Q1U8nOZWvXpEDXDDdJ7+2QRuv01AXcjFxpbFzkMn2W +JkhKkCTIQpUU66VMRHwNexi+TR2rRESq0G+fa+6gaVFVIs0vBukq48IeC5W21j1L +zyftHxci67FlYC9iaiUxDVt3KB+lcukx6Cz5mjtzqQKBgQD/GrAtFfjiXKj9O5ld +K7dnnBHE8fzyWQWyOfwpVjNAC1J7tgwFvDpBpTHOwS5JnCwMWWM3rkBPRhCusmrF +AtfE8b643G+cJbTgDuEhGh11QR0p9VWMVFQL9kZxx12PegDtFBfzcfcI3XQwKVKL +ZbQn4ibW3BKSt9+Nh3APa0s5iwKBgQDUaTxZBajTdzoDd6Pg3warL5BhsxWr2tUQ +qf+iVoba2Y9NTBdxBht2whSaYweU9kxmeNZvnCu95B8HeRGE69Dxb7IWwpsaxoaf +ND0NcCF7aPZgx7hvhbHF7duzt3nuv+q5sOuuyHPzm+nF2snAuY3Zg+Bpv3nlYekf +18aXZdwStQKBgEpF8e9ei1UUl1sLZC6dUMvIw9+sePHye1cVzNYYM9m8sio0qbFt +ySRdvW+uDRT/dE+wItQOVsj95FOIvM9ZcYr0u4vFGnXDALOPgXqKyPLfn2cc9+hg +kQvei0oLOrFQWz6rcAHAN6WMHIz9KvxNAzPtg1NhRcMT5/Gj8jt7CK7bAoGAIeKz +7OO5Phr8F0eDzkDmGHMbDmr6XxMnAGSOUoCJPOqOMN+dsbsusHBfxw1bTUlJgONw +GhgI5l85EAEhaVoRWCLgfz8GbWwUV9uGjdlAjiZ9f4z9AFWMua2rae0wN4VIVd1C +i/yQeuF5lsXDf8paNcQTDeus74oCHcFXfhmS1S0CgYB2q8E+H0kFHbUxkIZYwhsM +r0lTecn+kVsyPPje2UlzfTwvcC9dFIC4ppCdJGUJAwi/PJnr6xNyOH6I1pjUA8ER +Aofm4Oj2DwX8W+81oO71/RXSfEFUjdOw0H6iRDyvWa1gqftj2/aWjV7Ifdo49thx +EzX/9GdsRInifN6FfOfo/A== -----END PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/certs/badalt6-cert.pem b/deps/openssl/openssl/test/certs/badalt6-cert.pem index fbe040b52c6a7c..f41568f6eefa76 100644 --- a/deps/openssl/openssl/test/certs/badalt6-cert.pem +++ b/deps/openssl/openssl/test/certs/badalt6-cert.pem @@ -1,22 +1,21 @@ -----BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMGkxIjAg +MIIDeDCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 +IE5DIENBIDEwIBcNMTgwNTE2MDMyNjMyWhgPMjExODA1MTcwMzI2MzJaMGkxIjAg BgNVBAoMGUJhZCBOQyBUZXN0IENlcnRpZmljYXRlIDYxFzAVBgNVBAMMDm90aGVy Lmdvb2Qub3JnMRMwEQYDVQQDDApKb2UgQmxvZ2dzMRUwEwYDVQQDDAxhbnkuZ29v -ZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKz8F/ndKz0vuv -BymjTUjtrWSQsnsuisR+oW8CIliNBi8yqqeNrtoa2s+e2GBC7gxDlK9IOqGo4Ulu -9jY5On6RysrFWLpK97I7EP9cg63alH+NRFEwczRzErHtYx54yiBjcovcCVeTtdnd -7/P4T8hIGy6QjdW68lzwnN/I9x11NWoipIKvAOGXz0L/WaPPWZ0GJFlBqEX//O3+ -6sweSUX4ivAC9txou3rwDA8kJx5Ge9trQ9dPPG/jpL96f1DLE9H2SkVff1KLTPmb -jUwiYj161lsKLxGkbdmPWRjt1pP4+5UUhioo1Y0WrTd5ELwB1eKTtWsOlRsdLOa8 -1L6m8ngXAgMBAAGjgZgwgZUwHQYDVR0OBBYEFBIKyD5bUUNIFxlQJl/rBvvIm0XZ -MB8GA1UdIwQYMBaAFAjRm/nm1WRwoPFrGp7tUtrd9VBDMAkGA1UdEwQCMAAwSAYD -VR0RBEEwP4IMd3d3Lmdvb2Qub3JnggxhbnkuZ29vZC5jb22BDWdvb2RAZ29vZC5v -cmeBDGFueUBnb29kLmNvbYcEwKgAATANBgkqhkiG9w0BAQsFAAOCAQEAa2lydA7a -YgRhYeIuPEtR+bKyDkIKNjvx2IRL/FL70s/IWFWDK1rpsMYLGNa7rWpW5gq4T6zb -JIwC/770Rw1p+0j9eAC95d2wCEhyNcLdoP4ch7whr0MhxYHUJ8zQGPdQ97DWGoEB -2seLjrhMrX004TM4UlM+lpjsb88QEcD+kOEhdDTKm0ABUygOr1KRay437mtUhAzb -WyUbAjKbhgyv6IFRNHKy6YtCMugPihn+Pd1NY6c2ACRVOAUS/+rvVyjxBCATW5Wk -zAtNIxYgcm3rYRroGYT2BGj8Ic7oqPOWPdGWhsieX0c+y2ZnS727Kwc5tXFfW9By -GH32QmEN5o5jZQ== +ZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDl46xhstHmmYhp +XY/FcnQStR4XHtHcNRyvq1perl0fezeCY85KkddGppic5qIWQDL4ViP3HfvhMlDZ +E0tAjEfr8Auac9gpa2IFVJAzMnnzOkhO6cr5kmid4392tNCG5sUWS99t2Z4f9sOP +DQKdoN7lnmxnpZqNf9NUERsN5i4fcvErfQZ4LqV5ld810ZAQZUfarn1rg6/U/ADc +qA0uQgk9RxVgSDt3M5mi8AaC73Be9nAefXQUybzs6J8EfsDijhD85msxs4Fha4pg +gM+bXHv9C7whxM5F2WTeET0cIcAfE3+jzQlkjcjlS1rTEq4d0Pd+1rXkhMwZeze2 +KRL2Le8jAgMBAAGjezB5MB0GA1UdDgQWBBRJJljvheyfKr9neNplhIMIFx25QjAf +BgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa3fVQQzAJBgNVHRMEAjAAMCwGA1Ud +EQQlMCOBDWdvb2RAZ29vZC5vcmeBDGFueUBnb29kLmNvbYcEwKgAATANBgkqhkiG +9w0BAQsFAAOCAQEAPfRFkpkTsPlH54n/i3kxR8Hw17kUOV0/v39fnNzV+PXS/IIU +9OFfP7qNeuoWVQKXCwNWGWYXb7O0LNJMJQWWtyXtzWH3rOSxdSRIrTsCVHA41Lbo +te2nrfnGMtg6em51Do6Kk0JM304sVAWl5OY/eckBmuDgN/5WfZudOLd8Ohv8vZ6U +ZNoSBNpu1x5gfEPywMUGAgbkNZVpzNAfulx3/D2kWk0qwEKqnphUyaXiTVqO49gr +n1LwSVdqBcmapBmEO3puV4TBWFwM49iMMNGn0fp/JBVsLjt+q7TK96qGBo/BSEL+ +e2TXTNpdkn3l+ZK2FYdf7s8fytoe+6o92dN+fA== -----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/certs/badalt6-key.pem b/deps/openssl/openssl/test/certs/badalt6-key.pem index 203a4c7a0010be..782d69334a4063 100644 --- a/deps/openssl/openssl/test/certs/badalt6-key.pem +++ b/deps/openssl/openssl/test/certs/badalt6-key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKz8F/ndKz0vuv -BymjTUjtrWSQsnsuisR+oW8CIliNBi8yqqeNrtoa2s+e2GBC7gxDlK9IOqGo4Ulu -9jY5On6RysrFWLpK97I7EP9cg63alH+NRFEwczRzErHtYx54yiBjcovcCVeTtdnd -7/P4T8hIGy6QjdW68lzwnN/I9x11NWoipIKvAOGXz0L/WaPPWZ0GJFlBqEX//O3+ -6sweSUX4ivAC9txou3rwDA8kJx5Ge9trQ9dPPG/jpL96f1DLE9H2SkVff1KLTPmb -jUwiYj161lsKLxGkbdmPWRjt1pP4+5UUhioo1Y0WrTd5ELwB1eKTtWsOlRsdLOa8 -1L6m8ngXAgMBAAECggEBAJNMHK8BAvzTqTPPsfAGu4bTvgxRdKGy609FFAiqxUF3 -UmQsCZEfgwyqCszFPfSeS43xuPRukObE6L6MV4ls8GwWqvp1nKfCClJX3/9jK6tq -2tDQ416a7Wb+FvfgW0tDEg7oLKfcqRyAoQFNuxWHbGDiTQlz2dzzFYkzhlzBDUYH -/pu9qkNFGfYMFwsBUd8pp8zMnv552CCIgalBBFr1hy9q47HBaJPaF2/CjZJmsqkp -rVMBH7+j0y1DW3JO5rSKcRdz+mgEd9m/yQIazvBPJKxeGza8JfLBuACYFLIoO1S+ -b8s/zmQPHeZwTxSsM64M1uYi4dmJy0viozLlWsjrE1ECgYEA/GxGG/lB1mL+Hzmc -kXzWmA2nLPxZXGxMBOYH/n8l4OyDmKi2Bmly7kS0kLdY6gYTVBWFCRcvPxf+UJu9 -x4NcKDkjXVXSg7Muux3Bh1JoRCOKB2Hk3pqdDe55GcT5bSikkd5PYCNobcnqzSK1 -HzKveDdukraZxIPFpVs1VM9/gxMCgYEAza+BJUAEWoq925a1RKlMwdXW1ONBhFqU -fXon15fgycHkiYIBGbGE65Oyz8BwE6jNAT+SwKlNCc6jPAkXvEUpczEi5Rcox8Ec -hNoXBHcBxHEhtfV2VKX5I9JFAadmvnfS5St7HjRLzE2Y6xym1+fKfnAlSLpdb3W2 -eRqVBi3F020CgYEA6K/yrQTHwRX+BdC42JCIzSAA1IJG6eDW7skR43NX+pBr+sTD -DwQTszrYbHLnXst888zmluutXO8EO1Bl0E3yHQ4W4IolhcweLtUOOm0nunA8Y/PE -48MJNfd34N5nw01s7x5Mc2YQdOxmKvVsmzbA9AO9RTdYZgPGpVh/wA+LDssCgYBh -F2+G/ekQNF3awhFfD+vDtAVtCLlsmLVvZbJY+sCJfJU8s7mBP2LXMSk/GD/Ph+b9 -p9zGRSSwdHJpbIFfxeYDEja+nWgKowWrUKd83BBhgmW/Vtc8rfwlBKS+Wx8M2dMb -iqLbZyRAlICSuzumvyu+84EmC5L/gjlYgUvHVuQDIQKBgHH7q3hrKI5mQ0BR9h75 -4yP98c+Duz8IsQllIG0gzCiiOYIVTl3uzTCa/E9Sa+jG+kFsCeUDchmC6LmHdF/Z -ZHfECcQT4B37xMMwvjwNW7E6/FyRx3XC762Fd5vlz3fBuVKburfh1JpfpcO85Wvo -R1UfsJugW9Yetsqd9WB6q3ln +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDl46xhstHmmYhp +XY/FcnQStR4XHtHcNRyvq1perl0fezeCY85KkddGppic5qIWQDL4ViP3HfvhMlDZ +E0tAjEfr8Auac9gpa2IFVJAzMnnzOkhO6cr5kmid4392tNCG5sUWS99t2Z4f9sOP +DQKdoN7lnmxnpZqNf9NUERsN5i4fcvErfQZ4LqV5ld810ZAQZUfarn1rg6/U/ADc +qA0uQgk9RxVgSDt3M5mi8AaC73Be9nAefXQUybzs6J8EfsDijhD85msxs4Fha4pg +gM+bXHv9C7whxM5F2WTeET0cIcAfE3+jzQlkjcjlS1rTEq4d0Pd+1rXkhMwZeze2 +KRL2Le8jAgMBAAECggEBAMcDjTTa2GmYWoZUr+UPizqyvsTnMmg/NoFBhy9WJVne +kpR3kJvvm30XNiEGbCV1GGryL5p7w5UVuPXjhQ7xIkY3feQNC4H361iP93HK7dXJ +i9V9AfGCdLzSuILsT2Wpm88MifUQIpqrRmqtqakKHkyMFG655409rpYlZNVogl9H +vzrTE8rjysNMjP+bpbgkxUJfeATw8OYhEwd9ahj/E0r0r2enYhGEP3j+1zYsGdmM +L2Uy4M+modaAWpZg5pUWpFjxl+V2cSJHdaQc8KYg8Z8RUyzYipFk3YzjP5jtprq5 +dHf9FqlcXk+MtzcYe+x8mIb3uwZhOtdpnUqe5l+GTyECgYEA9j++rS9sajQzMqp0 +p+EptacD/p7A3wldIDGEpPJsSQL+vhcigyn4iPCM1pGWR4iuR7Od9RpQSf3Tfnqc +ZwUJQOpiYpxo1+QlqlBJkDjDRztp+kETZAgzc084ZhwQv9PfYyxa+8layQFhnClt +Z9G0o4AV1povVeQLO5+9CQZQ4VMCgYEA7v4WuydzlLGKppsJEG8vvieR64mjOfO4 +gHBMEYnzEeTZPDvIfEfguM1upJCvt5GXp3huVHCAsFgs6kDjVbpIL1A2HzrMPtOa +MNDSOrpuLcakAgEgx2VFv4TMnA1QKPg3//YCqEqqTJyX0C4OwaADRZJS7YfHp9lg +mpv90baE8PECgYAv3oxulj15F9SsEL7Es9yr11/La4kK0oMr8vRaLFYoi1CCG3U2 +Ej6iQEDgpUSVe1iFz8DxGMBq4dDvUV5+GFiIKggeK1GmRk+cICdsxdwQSNh9MZFX +bNCzpb7M+r+2yrUuTj0RnT7svDwBY3xFJlr7PbcBFNAG3mHgoVjaHEQ0yQKBgHbS +zepvSv/65bzACFmrbklU0zAQVp9RlcIGE0wFEl0rMvbHon5oHkrDmOcpKLRUJtqU +/gXtiY4jyPEPIfhVjd44OzB7w2DZRChRKrUYS/9ma9SzSuDYcT0vgat00w4Lm4wf +fGK//Lvqf3B59cw/CmFkxuZiQ9ooMees9x11adOBAoGBAMdb0r8sAtgh+KTbA8Kq +guIWiknOk6/LYUTuT3fidPIPbErrUQQR9WWHuXjrj2RyHI/RLjYLFamikvhU7PmE +jPjPAo4p1a0WBwrYgjGDIRjTVjbUK282vuYkunGWYfgnZurAyjJCndL/eNZuX2F5 +m1rTfab8O+tOOGKGyzfouD2A -----END PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/certs/badalt7-cert.pem b/deps/openssl/openssl/test/certs/badalt7-cert.pem index b515ba43d99b50..4fa81b3c6f8d01 100644 --- a/deps/openssl/openssl/test/certs/badalt7-cert.pem +++ b/deps/openssl/openssl/test/certs/badalt7-cert.pem @@ -1,23 +1,22 @@ -----BEGIN CERTIFICATE----- -MIID1DCCArygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 -IE5DIENBIDEwIBcNMTYwNzA5MTQ0ODExWhgPMjExNjA3MTAxNDQ4MTFaMIGmMTsw +MIIDtjCCAp6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 +IE5DIENBIDEwIBcNMTgwNTE2MDMyNzA5WhgPMjExODA1MTcwMzI3MDlaMIGmMTsw OQYDVQQKHjIAQgBhAGQAIABOAEMAIABUAGUAcwB0ACAAQwBlAHIAdABpAGYAaQBj AGEAdABlACAANzElMCMGA1UEAx4cAG8AdABoAGUAcgAuAGcAbwBvAGQALgBvAHIA ZzEdMBsGA1UEAx4UAEoAbwBlACAAQgBsAG8AZwBnAHMxITAfBgNVBAMeGABhAG4A eQAuAGcAbwBvAGQALgBjAG8AbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBANStByWr70u2A49OO+LYu0ivQP+uBu2n3E6RoEYf+op/+JF3clwfMQCGqiSg -QxOJMHkcu4gJDudRLCSXqHPnR0hOd+mQ5wQQJmLj8A99ImcD2oN5R3V5I4bSlXP9 -GCq2pFDnwXuEcJ3d2Dt1HYO4jA4Ol/RBT3NIqmwSnQzXv98mjYFpy6AuAIaYGmbh -1DLWxsTPI2NjNafJYS85NrQDLkTpq48nCmQCJ+ly6Zzu7WuJiDKD1Rxs7ZwgNtLi -Zhp41TeFHxCbfSFKe9u4rnUmImKxwgc9KuzOLpLAzD9avWpPGHtkCsLFsiw/EJYf -UdeCXc7tz9WhXZzOk/ffLOcrorMCAwEAAaOBmDCBlTAdBgNVHQ4EFgQUwYsR1XfZ -2cPcAR7i5i9obalnJcIwHwYDVR0jBBgwFoAUCNGb+ebVZHCg8Wsanu1S2t31UEMw -CQYDVR0TBAIwADBIBgNVHREEQTA/ggx3d3cuZ29vZC5vcmeCDGFueS5nb29kLmNv -bYENZ29vZEBnb29kLm9yZ4EMYW55QGdvb2QuY29thwTAqAABMA0GCSqGSIb3DQEB -CwUAA4IBAQAN/klfzMLi2acp5KdH9UZR4XCk3cZBOuMuI0vU+wrU/ETgY6rFhAwY -gSZsO6vX0mt/G6QfOmY5+kW4FY5XavGhhNVY2x5ATZKvQCf+orIsUHOBxVTjH6az -uEnxGDRTbjXSkBTCTSoOqdJNeOmEwiaHEVy/atumUW2B2KP5FeBGdud/94c4Q9/O -WBJ0EICGF6hYTDra63lAjxyARTvocVakIE8zytT1SbU4yO05mYPyNdXxiXikepFE -phPQWNSLx4EPBIorGCFj7MPDmFCH/+EjDjGz3SNUvqsak6MstzK94KVriQyIHKex -IL5WuKFm0XSGKTX8SzyMGErMGeriveL2 +ggEBAOG4PegItzkmJDwlSA/FyVHWLWUIQrnxgS0KSds3On2CMsjDJ+X77B4s1IPI +yKHuqNbXqV/hJGAxKnZRZe0D6VsmKlYOYpz9QtFxvpo5DwA3q6BTx6sIElFn/lip +Pbu5ZeIMNeN4bot7x5sBobr6OgidAVaAuqQHHJnD7mQ1s22qY0UqkBqNBhhJWOmx +YC0Q56WDi9+C7Cy2+kiiSlT4jCZ8m1K0F7tTK5mF0p4HppXmXLzcecZ/Sw8jOqQK +JM/4UCj/nxWCGYKWkv8zLJtG+ryfZMf15/0Cd1dzHAS9mYU4mFssPdFyT+WFpw7b +K3TOTXkS/tAPbj0xin2wqBJz8m8CAwEAAaN7MHkwHQYDVR0OBBYEFOWYNq+H1LH6 +lZUpgijb/S/sAiDsMB8GA1UdIwQYMBaAFAjRm/nm1WRwoPFrGp7tUtrd9VBDMAkG +A1UdEwQCMAAwLAYDVR0RBCUwI4ENZ29vZEBnb29kLm9yZ4EMYW55QGdvb2QuY29t +hwTAqAABMA0GCSqGSIb3DQEBCwUAA4IBAQAwUxnqq0gBgKmEHIRgZVu10KtOknjt +p/wEcqQ9METvXb+4/a4U6ftjTgaOrPVjamNFlaoUcTgx2nk2zRsjM+e+tpnxDgRR +/yoVB3HsISpdeN70s/WYAgvev/FdV3O+JWhUYHdKrDB4DMfPhlRIfSgOymJljo6+ +wL8qa7lVonF91Im4SCbq4dqtAnbg4ttblQ3yjFfQtuwzyJD/3ism6FQPLbg1K4eu +1Si0EDL4Fct581Gb5D+NU8PYiwg7Nk8ubNlRHXydoVGDLmT0hLE+/IsPd1M8tMqm +sifRl2Is+lGVeg4pPHFjB0npTNkaYafu89dz/3PNRRr5If06B+apk4AX -----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/certs/badalt7-key.pem b/deps/openssl/openssl/test/certs/badalt7-key.pem index 50557e8968124f..b453f1ff30a27f 100644 --- a/deps/openssl/openssl/test/certs/badalt7-key.pem +++ b/deps/openssl/openssl/test/certs/badalt7-key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDUrQclq+9LtgOP -Tjvi2LtIr0D/rgbtp9xOkaBGH/qKf/iRd3JcHzEAhqokoEMTiTB5HLuICQ7nUSwk -l6hz50dITnfpkOcEECZi4/APfSJnA9qDeUd1eSOG0pVz/RgqtqRQ58F7hHCd3dg7 -dR2DuIwODpf0QU9zSKpsEp0M17/fJo2BacugLgCGmBpm4dQy1sbEzyNjYzWnyWEv -OTa0Ay5E6auPJwpkAifpcumc7u1riYgyg9UcbO2cIDbS4mYaeNU3hR8Qm30hSnvb -uK51JiJiscIHPSrszi6SwMw/Wr1qTxh7ZArCxbIsPxCWH1HXgl3O7c/VoV2czpP3 -3yznK6KzAgMBAAECggEADjQ0Kv7tr3fLixGljEP/Vh5mT+02hz7TxueQ9b4DBKcB -We3JVH+8zRUxXdraP/7EnwIdQDuipC5WrWb3mC4VI64h8hZ8Z1gQyEAC83XfC1RF -jsxVynG5vrJnyuRXbdre5Ixl7rLsto5vd6EdxINZz0KIQYbvIHr07tzbYlUyelvA -mu0kYdtbjm2p2AGJJ99zN3EiQ9lZDyiFirOXEA9P/YdKKVlIwpDPbn/TmNY/k6Ul -mRxgAJKwKiR6Gg3QMdTUKeaXBpKf/pa+5rzR7zxNbiQO3IXOVx7ZzQ2R0Wuivpqk -yjMaqUa7dDuvtIHJBpJB7TIL6SlQkiS1lEQFhO7EAQKBgQDz30obdymxqQVy7IsH -NLo5xRX1hRRN9h34Y4qC0JXkCTG1fWJ19KYHod0S5peaIo/ThDVf1UXln6amdCjM -oIfhmo0baNIdMMpxxBdsdLfUKwyVh8qROaBscPE4FGBUrfEW/wSn1WRYcWh+oda3 -LuLVf5Qt9a9f6ZYuy1X6dDi8swKBgQDfQJTSFUNkV8yKfMX54x0DcUkiWOu3LaET -GSu0UXqBVn1Q+u6CUAkh5jA9fpyM5sp9+t5FuwjO+ITHfiNFoD/LCeMUfYVDF7O2 -uCLTsN+7gTGpKMnfL/rg9exrsfDdsmbQe4BhrUFBsYfKgBlBraL0QGD+25qgU8CS -CQ6toGCCAQKBgQDCYJskwRoObPXW4AsAN1qnaRtTkjrY2O6SaGSiV7bhByMD0WiF -M/aR5sXapsj3Jc0Vfi88rzUDDPk7eyJ51wn3G8SUsDuo4Ja7jtxMqctL5PQmyxD+ -J7xiMrNRS4xscifTeHgxfbh5dgsfw8bsQwaxvPpSl5ytCfWWXqOs+K2wWQKBgBM4 -Mher8PNQg7FgcILExJipRgyI7zID4ZwNTK/nW86KrZstHx9k2IRslraUkdGnhMM3 -t671HRsEVhn+h/bUhulp3nzDGZffEH+odocW8QvpYWcYtdha/xQi18mltgC//Q3x -s+m0yqtnJzONt57p3d99M1x9d2BaFXf9A6B68BQBAoGBAOatu9+wGaIEB//fpaQt -mnsS2XBJco5gHTjOegCSNe3gQQsB5mhTEekOeMzJ8WLTMVXQVCXx9/8HxKoycbq8 -M/7ScH1iT/wJTkSsjyeycUgH31GPeRvmo9YU2PsW3NN6ZyNpxWJFdcPYHAzZqJeA -cZtQWiEyaf026DdR8YBYn6tf +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDhuD3oCLc5JiQ8 +JUgPxclR1i1lCEK58YEtCknbNzp9gjLIwyfl++weLNSDyMih7qjW16lf4SRgMSp2 +UWXtA+lbJipWDmKc/ULRcb6aOQ8AN6ugU8erCBJRZ/5YqT27uWXiDDXjeG6Le8eb +AaG6+joInQFWgLqkBxyZw+5kNbNtqmNFKpAajQYYSVjpsWAtEOelg4vfguwstvpI +okpU+IwmfJtStBe7UyuZhdKeB6aV5ly83HnGf0sPIzqkCiTP+FAo/58VghmClpL/ +MyybRvq8n2TH9ef9AndXcxwEvZmFOJhbLD3Rck/lhacO2yt0zk15Ev7QD249MYp9 +sKgSc/JvAgMBAAECggEAZG2cJawTEXtV7ejMii//Jck8g1JMlfzM86Q7Pizxejw+ +qjKiguI2qSpbF5NzKRFNz+E+e+lpTN8zPFd1GSJ/Zk2x0n4uBBlu7E9GdcnjUb5z +Py9njEJYHB4//WS3kdmoag3ywBWqYaceJWpxcga5YXGx0bIO2MJNSGDzpWR7Q9QQ +tG/lWmno5goY2BxI08BTKSlqNIBkg/rr9jJo3axRcEmbx7hj4vUkAlypFKtmR4dW +bNo0f6VAd5Y6c9YbnKybR/44lScBksuSkZjm076cbbbp5PpsiLGe/12bqUcwCH+T +8hRVndmOLdOxC11OZOvMbX6x2uXNh3/Qr/GMyfzZcQKBgQD4we7E9vOygk1J5Vbl +1zETR9x3dujpBBx3xaHXUSJNUTNwmnZ+0JoFTqPkRmmPMNK7XfZuPymBehtk8WYt +NnezM2UNTdbfVOnJWnU6igRNGBaDW6F9AezlADBNwIbFVw6RqP4fTUFsmm9TQ/8M +4kZmmlW4uLZyX0WQO+AJa7NShwKBgQDoSpnQgmWqXMcaHwY2l8fEDuDc41nDoJIm +/CMppPbr7GkUX4OU785p6E0N0o1ONt+xCBT1lxHwWEeMAKZXrNC1XGpfvhpVZ72v +VruATDFs1rcL3S2Sty7A+jhFKKXlGeDWNcpaKY8nDvv2uJG0+J3bLprdMqnY/gQ1 +C+FzyQ6S2QKBgDnHIaRSD6xoo3cEc7iS0O0/ha+hyNtGfy46kyqlx6fZsm73EYrG +/N86ssp0qFP/7RJj8rcMqKFQMUiy4R6jRg4zY8dBSyU4XczM2+mq4PDfJWuBPvMA +HXvbHV0R2LvBSrr+W3f9w7Jr9GuMoZLmg5+VPU/YZ1gNVOT5Y0IM5+vFAoGBANx9 +CzlGvLeTrw1VS3GAaobn1Hr2dlrhTDki9UFvK03PLgK/ksdJRLV0YcdwBt6p6XRB +hpuC1O087lSuvTXVfJnZacMNUDOm7/7BpeJm8DcuK7tgKwTrSb61A7ppleY7xRWv +Iy6n6hCaAYIzuWJ85mGJAEhb8apdmqK7bzmXK3UpAoGBALdOvJfqbF0YlHbdQCVi +ftjtxs/dZKdF1rNARR0VMqUtZX+WP2b6OPXlwux94Cr//iNv5ih3B4Z4LIgTpgBJ +AKGXEBGMMthAlptC4BcOAEs9cYeWGLAoYk8jpNmXvXjhGqvzhPO2YrX5xy46dVOG +iiCseyA7Kr8Axt9QhUzoi5f7 -----END PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/certs/badcn1-cert.pem b/deps/openssl/openssl/test/certs/badcn1-cert.pem new file mode 100644 index 00000000000000..3b3bad658bc433 --- /dev/null +++ b/deps/openssl/openssl/test/certs/badcn1-cert.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDQDCCAiigAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 +IE5DIENBIDEwIBcNMTgwNTE2MDI0MTMyWhgPMjExODA1MTcwMjQxMzJaME4xIzAh +BgNVBAoMGkdvb2QgTkMgVGVzdCBDZXJ0aWZpY2F0ZSAxMRUwEwYDVQQDDAx3d3cu +Z29vZC5vcmcxEDAOBgNVBAMMB2JhZC5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDN9WI6OyxnW+R98FqrWwMo3JE165bRB8iQOdDP3xE1+bvUMDYh +8wFR9gfNrKhqXubJ3lCHKgaApTXNKM/jwrT/pqhF6iNfPIbKAMTT4VZPy4/eI45R +03Yn+dJnZLDz7BDpnuhORp8XzQqfxSGBX0Rdr17xYOwGHcruwoitRyS/w8p8EKos +/LIDvjzye5GaPXqXkAkcBcLBpWlgMm+j8xE+LzGw1NVw8vWMSpP2WX9kp7aPbh+A +jSbT522yHy1r6WeElbSY7WOFvnmgbZ19pUdyz8CN6KKb87dBA0joyWSly5ZsNbjh +/YuRhCgRExvdQ6kImwdKAfO7RLkxho6jny1HAgMBAAGjXjBcMB0GA1UdDgQWBBT5 +fenRjyFKUb1XvUnm4GV9kZmONDAfBgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa +3fVQQzAJBgNVHRMEAjAAMA8GA1UdEQQIMAaHBMCoAAEwDQYJKoZIhvcNAQELBQAD +ggEBACKtfZCcP/pY8Bu+lb/pGZj5txsmNbJ1l2RVACQA7CGjwfUr7VaQGMuT+FuA +Erlh+UnEC3R/e1xQwgJeuAXBOWFkxA61isVSrmM7YM6vDB0+t8N9lMUFjPbRyEkM +A5kaSLPrgSOg7ONsO6YGbaWm1XCoUC6Ilrdzy+ckzklgjYRth99b2d5WrjIxEWIq +BX2DI2ruetjXYGRzsqSK+O9d4fsqrb5M0ZCNWQZ4WnrMNaAeHWpW6NqSvof/N21x +WC5zcU7GXLrDigwWPMDLQhVtu4OihWjsqugh6Jl7DxDBhi8JKO6tJQAISHjKaL98 +yXZFsQ//q7ATwlcHyB81B+X16AI= +-----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/certs/badcn1-key.pem b/deps/openssl/openssl/test/certs/badcn1-key.pem new file mode 100644 index 00000000000000..dbcf4b5d44ca91 --- /dev/null +++ b/deps/openssl/openssl/test/certs/badcn1-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDN9WI6OyxnW+R9 +8FqrWwMo3JE165bRB8iQOdDP3xE1+bvUMDYh8wFR9gfNrKhqXubJ3lCHKgaApTXN +KM/jwrT/pqhF6iNfPIbKAMTT4VZPy4/eI45R03Yn+dJnZLDz7BDpnuhORp8XzQqf +xSGBX0Rdr17xYOwGHcruwoitRyS/w8p8EKos/LIDvjzye5GaPXqXkAkcBcLBpWlg +Mm+j8xE+LzGw1NVw8vWMSpP2WX9kp7aPbh+AjSbT522yHy1r6WeElbSY7WOFvnmg +bZ19pUdyz8CN6KKb87dBA0joyWSly5ZsNbjh/YuRhCgRExvdQ6kImwdKAfO7RLkx +ho6jny1HAgMBAAECggEBAKDxiUHx7cATShm0ElZnd6+dtQfKwv8zsuIpm+hk62Ef +d0zYI+UhrT1sIiryKmV9JaJITOtixtQOxl088D+Obrx8cnC4B84rUTVXpnfgVf9j +FljDtjpxIZsZmPbc836ZUZoOaICKpVYHD69Mb+NWG+mN2oaLc8VP0L4FXKLzvl7u +69NQlTPG2CS61BktVqMtWWc/9CvdOwqwVbckyISj9QLUgSXIyB4IP3bjp0RYSpOu +m3nhuhil1G3c05R4UfiE2d9Er7SBBoQ304ld892YRinSgtZqC1G25uZmWJ3ekAAM +bg6P0hBd86F/G2TxNdelYrxTazjqZShYi1N48SK6kUECgYEA+51O19Q5XkskD/Dn +VfaCjSOTFwDlb5ATmVCrJu+13/5IJfmJgWA6xdqfWoqxSOsJzXBEETKWgkahoo4K +OU1UaBTHEJ588xOpoMzbJkKlb5hPseEQsvu055Ky0euMgmlrALPQQ9e1DUSlowui +Cq9wCak4dqq9NNs6FMIeGhqczGECgYEA0YxcajJFxPHJsdFCVa4tdy9jgfC64t4Y +CWDzRfUnuX24ILbW9+olvvoZkMSzoVpiQ9YU8kPJUaOyFrw6jUV5GRHUCMgfkx2Y +nqe+7aSFmv0Nlo0RMV2PqaOZzlxnG9FzyNE+4PygZqtFhN21b5Idc69k2Ltu7K4J +J4MG1kMUGqcCgYEA0ttUPEisPtoHgZhntUFczHx4gnmMzH5X/k5876dIqkrFGZXR +5urGthHtIwpBYZMeZtxjHmpfeRNJ1xjjdnvYdVScMdAvc+ERcSDbsmd9jlR8zNuI +jAWl576nPoX//TXspu0JZiE5p8HUcRuJkxzMbjwyhje1Ubs6JDU81rFgn2ECgYAG +3WVNqVX1zMIBzEwzCGC+7dOBt0Q4GHSLIhz2JsDlZ8P3dmX2ezo/Vmwt/POxjod3 +l3TaNvRKc2VrL0FvzV3ZP2dF3mCCbk7Iq9AqcuBZon6mdvqgNmN1eEGarBZIqAT2 +CDzaHAyZMHU3lBfUjuHeH1nba9CHenAcVkOME2h+MwKBgQDiHAnTK4ovCNmT5E9i +03x/wPSH8FZ3Wrb1GMtNlTc7lOtB5eYIvwkaloJkNKHbUDv57V66hnYT6CyH4u45 +dPtuohtafL9mdScYqmicGLtbLLglSQpJYt4J59hffNZ30E84dKXtyDN7E5P5Z00Z +8PbOMUy3oK6j+GMP/xRNI76RtA== +-----END PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/certs/goodcn1-cert.pem b/deps/openssl/openssl/test/certs/goodcn1-cert.pem new file mode 100644 index 00000000000000..d9205e03b0057c --- /dev/null +++ b/deps/openssl/openssl/test/certs/goodcn1-cert.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDkTCCAnmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxUZXN0 +IE5DIENBIDEwIBcNMTgwNTE2MDI0MDA0WhgPMjExODA1MTcwMjQwMDRaMIGeMSMw +IQYDVQQKDBpHb29kIE5DIFRlc3QgQ2VydGlmaWNhdGUgMTEVMBMGA1UEAwwMd3d3 +Lmdvb2Qub3JnMRUwEwYDVQQDDAxhbnkuZ29vZC5jb20xETAPBgNVBAMMCG5vdC4u +ZG5zMRAwDgYDVQQDDAdub3RAZG5zMREwDwYDVQQDDAhub3QtLmRuczERMA8GA1UE +AwwIbm90LmRucy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDigxI +nlYVjHtrFI+Iv/3b0jeZbs1jVnPF6ZREk46BTNAVNZsq24jKFG6yK4n9vKA/JuS7 +jZe+gMX+sWh/S1IlsNDY8/Io1UsG/s1tmsvE2UrURUX4s8HnqB6AZ4Y9Cp4rSADe +mD/YdekRf3HFA0IKQvIFRkpegj8uuWwILC0n/ozMNUlNmxCBlOmtFwjFxmNr9Txa +ZeFvWvvc6oTubAETK4HcjLdimx1tePdd4+0mxJ/akQ3wVzUAI2ysijMmMJDzTxLs +FPkw4yUtJHK0/H2yJtpoJ4wQjsWd6a8F7wY/pHszAud1M8QZJKQDzkJOMnqLKNLT +OKw6dm1UG2J7iuqtAgMBAAGjXjBcMB0GA1UdDgQWBBSTKvqap2ab0z/UPrdDgc0V +m88R3TAfBgNVHSMEGDAWgBQI0Zv55tVkcKDxaxqe7VLa3fVQQzAJBgNVHRMEAjAA +MA8GA1UdEQQIMAaHBMCoAAEwDQYJKoZIhvcNAQELBQADggEBADcdm62qaOHbIDoa +5oUjXGHSQjV1g4BFe6DLH5/CZ0wOws3QzfQbPIxJrp3yJgDcQyZNOE/xQlq/nASS +thU6cUTB07voFVnbotB8YQuNU1wM9TAJOHC9LT1Y0J2GIP6QeXts6Cz6aBlqaQEZ +IrGRLuKVZePTO0Haup0mZ91XoXs3CBzkSerl0XpFL7BeugSigrhprFRPB4UC3IWb +pdNar61Wk4bN/COb6utRkK3iYk5YUTqYFib9EG4VBdxYfXv/tiBIGqQLnqPbId6w +q+McpSEPF1DIcCyL0vEDdIVN0SzxMfnfHMx0Qp0sh2aydIZk4xfEqXHZgZthSrse +u7nhn7s= +-----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/certs/goodcn1-key.pem b/deps/openssl/openssl/test/certs/goodcn1-key.pem new file mode 100644 index 00000000000000..2ad660c6dbfab6 --- /dev/null +++ b/deps/openssl/openssl/test/certs/goodcn1-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDigxInlYVjHtr +FI+Iv/3b0jeZbs1jVnPF6ZREk46BTNAVNZsq24jKFG6yK4n9vKA/JuS7jZe+gMX+ +sWh/S1IlsNDY8/Io1UsG/s1tmsvE2UrURUX4s8HnqB6AZ4Y9Cp4rSADemD/YdekR +f3HFA0IKQvIFRkpegj8uuWwILC0n/ozMNUlNmxCBlOmtFwjFxmNr9TxaZeFvWvvc +6oTubAETK4HcjLdimx1tePdd4+0mxJ/akQ3wVzUAI2ysijMmMJDzTxLsFPkw4yUt +JHK0/H2yJtpoJ4wQjsWd6a8F7wY/pHszAud1M8QZJKQDzkJOMnqLKNLTOKw6dm1U +G2J7iuqtAgMBAAECggEAeQ1xZVOAf36kuTnVUhdplTii6v3JcQIIUjG0dG/U/P8M +otS45uNZ36CelvaVStwHaJEvcVzK4EjgSjiSNJvwkxzPbkA3XkgNVptPmdcG5yqO +RLNOChVeqYdOurdcR1XXbXv57dPbUqpMS2TWjdzieW/QXKuTRsbjTo3D75tJqUO6 +1Bm4sSM3PogmsQwTP8HlZAmJXuSD+ZSB22Np5pT1dn5TvQU6xeA3NJR4ZO/HEZz4 +CHJEiOx2BuGD6M0V1ZL6DzEsyIS/KKsvj4I2F4ROAK1j3lSD5VqrYPXn3oEsQdlm +OW8aVnHPYO6FI0LVLgcIEKxhdwGV3i6v/GRUe0Y9kQKBgQD0Zqn1trAuP5Peiy1K +Wc91yRjQxQTwSD00hzXMtvKzkEIiLEuVZq9qrqQ2TRRa5xneDGHDuUY9eZY8JwEr +l7f8CcfYC93PXLyRM2Gaz0jMxZxVPz5w7zssK3DZ+7JvH3nKkCUl7+Y0tH26qTO0 +wTD9w9jd9bf85SLVgk3zSbUDwwKBgQDM0b2ffZpxyA16h7w8ZBuk1Z+iumrxnn5/ +lKtffR2b4dZN37KiWw2c265vYhRfe/ANnVuagXb9aRM97yeQloRlWR10AaXJz3EB +sromqFShkorYRhwZoRiJC0laLG3W76wKMRr2T6TM1UG9gJ0szdGFG/yUDU+9pTRo +uq514rGgzwKBgQCGtsAgLF7YXzsGg/im7vInnn0LNk4OlAMInS7OdFk7GN0bMQdI +hp1SVIk3VS1PHetoNbL9y3YoFIj3BxjiCnLjfhClyYSt9BQMhSHbzz31gUc2xfGJ +FpSrOBawUMh97/+V4/ZV/vIJQyO6a+GQVJzIg9daIUMVJsgYoAaPf6VDOQKBgFyH +eHnf/XDfpq8vOOuzcgWieG7EduHW72DlohIObNzqRq2BnKraJakyWXh6P6fvTsBn +0WVYjY/n80hsjVw1k3RRsQuiXupv66aPvqcOLsWbdVxFOBaf/3yR+75gCfMq7Xbh +PkP+MP5UbVGWE+uUw821mgKsjNSpGKcjhwM8uXBjAoGAFEU3O8gQXfocVB8lxUeU +c0inLdAIgiw/36NPuW4NwKxzLOmHzlmvn7C98ihnbnGoQ0XBRfLw8siTbD3INgHY +NA0JeK8Qrt56b6wK14w9RzLQTu9gy1pULW21p1wswdNK4tlxfnnnozISZAYxeqAx +YMTtYZN77nb+yY4oE6XEugQ= +-----END PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/certs/setup.sh b/deps/openssl/openssl/test/certs/setup.sh index 7e1086a2240d9b..018e5fc69095d2 100755 --- a/deps/openssl/openssl/test/certs/setup.sh +++ b/deps/openssl/openssl/test/certs/setup.sh @@ -241,15 +241,30 @@ NC="$NC excluded;DNS:bad.ok.good.com" NC=$NC ./mkcert.sh genca "Test NC sub CA" ncca3-key ncca3-cert \ ncca1-key ncca1-cert -# all subjectAltNames allowed by CA1. +# all subjectAltNames allowed by CA1. Some CNs are not! ./mkcert.sh req alt1-key "O = Good NC Test Certificate 1" \ - "1.CN=www.good.org" "2.CN=Joe Bloggs" "3.CN=any.good.com" | \ + "1.CN=www.example.net" "2.CN=Joe Bloggs" | \ ./mkcert.sh geneealt alt1-key alt1-cert ncca1-key ncca1-cert \ "DNS.1 = www.good.org" "DNS.2 = any.good.com" \ "email.1 = good@good.org" "email.2 = any@good.com" \ "IP = 127.0.0.1" "IP = 192.168.0.1" +# all DNS-like CNs allowed by CA1, no DNS SANs. + +./mkcert.sh req goodcn1-key "O = Good NC Test Certificate 1" \ + "1.CN=www.good.org" "2.CN=any.good.com" \ + "3.CN=not..dns" "4.CN=not@dns" "5.CN=not-.dns" "6.CN=not.dns." | \ + ./mkcert.sh geneealt goodcn1-key goodcn1-cert ncca1-key ncca1-cert \ + "IP = 127.0.0.1" "IP = 192.168.0.1" + +# Some DNS-like CNs not permitted by CA1, no DNS SANs. + +./mkcert.sh req badcn1-key "O = Good NC Test Certificate 1" \ + "1.CN=www.good.org" "3.CN=bad.net" | \ + ./mkcert.sh geneealt badcn1-key badcn1-cert ncca1-key ncca1-cert \ + "IP = 127.0.0.1" "IP = 192.168.0.1" + # no subjectAltNames excluded by CA2. ./mkcert.sh req alt2-key "O = Good NC Test Certificate 2" | \ @@ -293,19 +308,17 @@ NC=$NC ./mkcert.sh genca "Test NC sub CA" ncca3-key ncca3-cert \ "email.1 = good@good.org" "email.2 = any@good.com" \ "IP = 127.0.0.2" -# all subject alt names OK but subject CN not allowed by CA1. +# No DNS-ID SANs and subject CN not allowed by CA1. ./mkcert.sh req badalt6-key "O = Bad NC Test Certificate 6" \ "1.CN=other.good.org" "2.CN=Joe Bloggs" "3.CN=any.good.com" | \ ./mkcert.sh geneealt badalt6-key badalt6-cert ncca1-key ncca1-cert \ - "DNS.1 = www.good.org" "DNS.2 = any.good.com" \ "email.1 = good@good.org" "email.2 = any@good.com" \ "IP = 127.0.0.1" "IP = 192.168.0.1" -# all subject alt names OK but subject CN not allowed by CA1, BMPSTRING +# No DNS-ID SANS and subject CN not allowed by CA1, BMPSTRING REQMASK=MASK:0x800 ./mkcert.sh req badalt7-key "O = Bad NC Test Certificate 7" \ "1.CN=other.good.org" "2.CN=Joe Bloggs" "3.CN=any.good.com" | \ ./mkcert.sh geneealt badalt7-key badalt7-cert ncca1-key ncca1-cert \ - "DNS.1 = www.good.org" "DNS.2 = any.good.com" \ "email.1 = good@good.org" "email.2 = any@good.com" \ "IP = 127.0.0.1" "IP = 192.168.0.1" diff --git a/deps/openssl/openssl/test/ct/log_list.conf b/deps/openssl/openssl/test/ct/log_list.conf index 3724599a9d3201..4b68e535580312 100644 --- a/deps/openssl/openssl/test/ct/log_list.conf +++ b/deps/openssl/openssl/test/ct/log_list.conf @@ -35,3 +35,4 @@ key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEluqsHEYMG1XcDfy1lCdGV0JwOmkY4r87xNuroP [venafi] description = Venafi log key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAolpIHxdSlTXLo1s6H1OCdpSj/4DyHDc8wLG9wVmLqy1lk9fz4ATVmm+/1iN2Nk8jmctUKK2MFUtlWXZBSpym97M7frGlSaQXUWyA3CqQUEuIJOmlEjKTBEiQAvpfDjCHjlV2Be4qTM6jamkJbiWtgnYPhJL6ONaGTiSPm7Byy57iaz/hbckldSOIoRhYBiMzeNoA0DiRZ9KmfSeXZ1rB8y8X5urSW+iBzf2SaOfzBvDpcoTuAaWx2DPazoOl28fP1hZ+kHUYvxbcMjttjauCFx+JII0dmuZNIwjfeG/GBb9frpSX219k1O4Wi6OEbHEr8at/XQ0y7gTikOxBn/s5wQIDAQAB + diff --git a/deps/openssl/openssl/test/danetest.in b/deps/openssl/openssl/test/danetest.in index c94f526aabfbf5..0cedf10a2a786a 100644 --- a/deps/openssl/openssl/test/danetest.in +++ b/deps/openssl/openssl/test/danetest.in @@ -26,7 +26,7 @@ # 3 1 0 3059301306072A8648CE3D020106082A8648CE3D03010703420004664995F47BDE35E7B4DE48B258E9E8A07ADEBBDB863B3D06F481A1946C83DA9F56CFF4D9389B855D2F364B1585B0C734FCFA263026964FF5A4308B3FC879BDB8 # 3 1 1 3111668338043DE264D0256A702248696C9484B6221A42740F920187B4C61838 # 3 1 2 CB861AF6DDED185EE04472A9092052CCC735120C34785E72C996C94B122EBA6F329BE630B1B4C6E2756E7A75392C21E253C6AEACC31FD45FF4595DED375FAF62 -# -- +# -- # subject= CN = Issuer CA # 2 0 0 308201683082010DA003020102020102300A06082A8648CE3D04030230123110300E06035504030C07526F6F742043413020170D3135313231333233323030395A180F33303135303431353233323030395A30143112301006035504030C094973737565722043413059301306072A8648CE3D020106082A8648CE3D030107034200047D4BAE18B49F5DC69D0A3C85C66A3E2119DE92CFAD081FAD55C12D510EC97B6C00E13695A8D9713548FE60DF15573390433E2A1BD92DB4B7AA016EC6185DC5AFA350304E301D0603551D0E041604147AB75A3CD295CA5DF7C5150916E18FF5CC376A15301F0603551D23041830168014E4BD405F052A820DDF9883F93D7D3F90AAEC723F300C0603551D13040530030101FF300A06082A8648CE3D0403020349003046022100831DCD882DA8785D50E41020898C0248879DDDF72D701D1DC1DE6BE08155B43E022100B84B2FB519C4CD3CBC791603D4488F7707597DB7980D9C173E7FDD0ECD7CA308 # 2 0 1 0DAA76425A1FC398C55A643D5A2485AE4CC2B64B9515A75054722B2E83C31BBD diff --git a/deps/openssl/openssl/test/errtest.c b/deps/openssl/openssl/test/errtest.c new file mode 100644 index 00000000000000..df4cddb096dd0c --- /dev/null +++ b/deps/openssl/openssl/test/errtest.c @@ -0,0 +1,40 @@ +/* + * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include +#include + +#include "testutil.h" + +#if defined(OPENSSL_SYS_WINDOWS) +# include +#else +# include +#endif + +/* Test that querying the error queue preserves the OS error. */ +static int preserves_system_error(void) +{ +#if defined(OPENSSL_SYS_WINDOWS) + SetLastError(ERROR_INVALID_FUNCTION); + ERR_get_error(); + return GetLastError() == ERROR_INVALID_FUNCTION; +#else + errno = EINVAL; + ERR_get_error(); + return errno == EINVAL; +#endif +} + +int main(int argc, char **argv) +{ + ADD_TEST(preserves_system_error); + + return run_tests(argv[0]); +} diff --git a/deps/openssl/openssl/test/evp_test.c b/deps/openssl/openssl/test/evp_test.c index 4bea4ea2b92c99..ea9455374f482f 100644 --- a/deps/openssl/openssl/test/evp_test.c +++ b/deps/openssl/openssl/test/evp_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -1592,19 +1592,19 @@ static int pderive_test_run(struct evp_test *t) struct pkey_data *kdata = t->data; unsigned char *out = NULL; size_t out_len; - const char *err = "INTERNAL_ERROR"; + const char *err = "DERIVE_ERROR"; - out_len = kdata->output_len; + if (EVP_PKEY_derive(kdata->ctx, NULL, &out_len) <= 0) + goto err; out = OPENSSL_malloc(out_len); if (!out) { fprintf(stderr, "Error allocating output buffer!\n"); exit(1); } - err = "DERIVE_ERROR"; if (EVP_PKEY_derive(kdata->ctx, out, &out_len) <= 0) goto err; err = "SHARED_SECRET_LENGTH_MISMATCH"; - if (out_len != kdata->output_len) + if (kdata->output == NULL || out_len != kdata->output_len) goto err; err = "SHARED_SECRET_MISMATCH"; if (check_output(t, kdata->output, out, out_len)) @@ -2169,3 +2169,4 @@ static const struct evp_test_method keypair_test_method = { void_test_parse, keypair_test_run }; + diff --git a/deps/openssl/openssl/test/evptests.txt b/deps/openssl/openssl/test/evptests.txt index 83c6c6a3a913a5..269684e11b3f65 100644 --- a/deps/openssl/openssl/test/evptests.txt +++ b/deps/openssl/openssl/test/evptests.txt @@ -1,5 +1,5 @@ # -# Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -15,7 +15,7 @@ # Which is currently unsupported by OpenSSL. They were generated using the # reference implementation. RFC7693 also mentions the 616263 / "abc" values. Digest = BLAKE2s256 -Input = +Input = Output = 69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9 Digest = BLAKE2s256 @@ -51,7 +51,7 @@ Input = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223 Output = C80ABEEBB669AD5DEEB5F5EC8EA6B7A05DDF7D31EC4C0A2EE20B0B98CAEC6746 Digest = BLAKE2b512 -Input = +Input = Output = 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce Digest = BLAKE2b512 @@ -19144,6 +19144,35 @@ PeerKey=KAS-ECC-CDH_B-571_C24-Peer-PUBLIC Ctrl=ecdh_cofactor_mode:1 SharedSecret=02da266a269bdc8d8b2a0c6bb5762f102fc801c8d5394a9271539136bd81d4b69cfbb7525cd0a983fb7f7e9deec583b8f8e574c6184b2d79831ec770649e484dc006fa35b0bffd0b +# for cofactor-order points, ECC CDH (co-factor ECDH) should fail. Test that. + +PrivateKey=ALICE_cf_sect283k1 +-----BEGIN PRIVATE KEY----- +MIGQAgEAMBAGByqGSM49AgEGBSuBBAAQBHkwdwIBAQQkAHtPwRfQZ9pWgSctyHdt +xt3pd8ESMI3ugVx8MDLkiVB8GkCRoUwDSgAEA+xpY5sDcgM2yYxoWOrzH7WUH+b3 +n68A32kODgcKu8PXRYEKBH8Xzbr974982ZJW1sGrDs+P81sIFH8tdp45Jkr+OtfM +8uKr +-----END PRIVATE KEY----- + +PublicKey=ALICE_cf_sect283k1_PUB +-----BEGIN PUBLIC KEY----- +MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEA+xpY5sDcgM2yYxoWOrzH7WUH+b3n68A +32kODgcKu8PXRYEKBH8Xzbr974982ZJW1sGrDs+P81sIFH8tdp45Jkr+OtfM8uKr +-----END PUBLIC KEY----- + +PublicKey=BOB_cf_sect283k1_PUB +-----BEGIN PUBLIC KEY----- +MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB +-----END PUBLIC KEY----- + +PrivPubKeyPair = ALICE_cf_sect283k1:ALICE_cf_sect283k1_PUB + +# ECDH Alice with Bob peer +Derive=ALICE_cf_sect283k1 +PeerKey=BOB_cf_sect283k1_PUB +Ctrl=ecdh_cofactor_mode:1 +Result = DERIVE_ERROR # Test mismatches PrivPubKeyPair = Alice-25519:Bob-25519-PUBLIC diff --git a/deps/openssl/openssl/test/r160test.c b/deps/openssl/openssl/test/r160test.c index 9ed453849e1faa..06033eb91f8336 100644 --- a/deps/openssl/openssl/test/r160test.c +++ b/deps/openssl/openssl/test/r160test.c @@ -6,3 +6,4 @@ * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ + diff --git a/deps/openssl/openssl/test/recipes/04-test_err.t b/deps/openssl/openssl/test/recipes/04-test_err.t new file mode 100644 index 00000000000000..dd7681afa4e4bf --- /dev/null +++ b/deps/openssl/openssl/test/recipes/04-test_err.t @@ -0,0 +1,12 @@ +#! /usr/bin/env perl +# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +use OpenSSL::Test::Simple; + +simple_test("test_err", "errtest"); diff --git a/deps/openssl/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem b/deps/openssl/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem index 99ddf079a499eb..ab0dfe85b7c069 100644 --- a/deps/openssl/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem +++ b/deps/openssl/openssl/test/recipes/04-test_pem_data/cert-trailingwhitespace.pem @@ -1,28 +1,28 @@ -----BEGIN CERTIFICATE----- -MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM -WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs -ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G -A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2 -b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw -aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk -ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN -MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH -cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l -cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW -VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg -U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz -MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy -eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg -j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56 -0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp -hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN -5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ -hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ -KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J -ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3 -aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX -30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ -rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA -A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII= +MIIEzDCCA7QCCQCgxkRox+YljjANBgkqhkiG9w0BAQsFADCCASYxYzBhBgNVBAgM +WlRoZSBHcmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVs +ZCBOYW1lcyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0G +A1UEBwwWVG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2 +b2xlbnQgU29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlw +aHJhc2lzMT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlk +ZW50aWFyeSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwHhcN +MTcwMjIzMjAyNTM2WhcNMTcwMzI1MjAyNTM2WjCCASYxYzBhBgNVBAgMWlRoZSBH +cmVhdCBTdGF0ZSBvZiBMb25nLVdpbmRlZCBDZXJ0aWZpY2F0ZSBGaWVsZCBOYW1l +cyBXaGVyZWJ5IHRvIEluY3JlYXNlIHRoZSBPdXRwdXQgU2l6ZTEfMB0GA1UEBwwW +VG9vbWFueWNoYXJhY3RlcnN2aWxsZTFIMEYGA1UECgw/VGhlIEJlbmV2b2xlbnQg +U29jaWV0eSBvZiBMb3F1YWNpb3VzIGFuZCBQbGVvbmFzdGljIFBlcmlwaHJhc2lz +MT0wOwYDVQQLDDRFbmRvcnNlbWVudCBvZiBWb3VjaHNhZmUnZCBFdmlkZW50aWFy +eSBDZXJ0aWZpY2F0aW9uMRUwEwYDVQQDDAxjZXJ0LmV4YW1wbGUwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MOIrqH+ZIJiZdroKMrelKMSvvRKg2MEg +j/sx9TaHHqrKys4AiL4Rq/ybQEigFC6G8mpZWbBrU+vN2SLr1ZsPftCHIY12LF56 +0WLYTYNqDgF5BdCZCrjJ2hhN+XwML2tgYdWioV/Eey8SJSqUskf03MpcwnLbVfSp +hwmowqNfiEFFqPBCf7E8IVarGWctbMpvlMbAM5owhMev/Ccmqqt81NFkb1WVejvN +5v/JKv243/Xedf4I7ZJv7zKeswoP9piFzWHXCd9SIVzWqF77u/crHufIhoEa7NkZ +hSC2aosQF619iKnfk0nqWaLDJ182CCXkHERoQC7q9X2IGLDLoA0XAgMBAAEwDQYJ +KoZIhvcNAQELBQADggEBAKbtLx+YlCGRCBmYn3dfYF+BIvK/b/e0DKNhDKhb4s9J +ywlJ4qnAB48tgPx0q+ZB+EdMYRqCwyvXJxEdZ7PsCdUeU6xI2ybkhSdUUfQbYem3 +aYRG+yukGzazySQJs8lGqxBlRMFl/FGCg+oSQ/I32eGf8micDskj2zkAJtCkUPHX +30YrWMfOwW1r2xYr2mBNXbNWXJhW/sIg5u8aa9fcALeuQcMXkbsbVoPmC5aLdiVZ +rvUFoJ8DPg0aYYwj64RwU0B5HW/7jKhQ25FgKVAzLGrgYx1DivkM7UQGdWYnU8IA +A8S89gRjGk2hnkeagWas3dxqTTpgJDhprgWzyKa9hII= -----END CERTIFICATE----- diff --git a/deps/openssl/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem b/deps/openssl/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem index 78ebd1b7028973..0b5de58c4cfb2d 100644 --- a/deps/openssl/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem +++ b/deps/openssl/openssl/test/recipes/04-test_pem_data/dsa-trailingwhitespace.pem @@ -2,22 +2,22 @@ Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,A2A7FA3E5E454B59C8777564E7AF3CD6 -EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U -gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM -wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS -3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou -pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei -SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5 -UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F -Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4 -vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g -2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG -Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K -q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM -4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn -9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX -zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD -oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m -OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI -o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6 +EBDWX0Qfarl+QNsHgCUudLyb6DkC4zyaDU/vUqWyHX0m+8W2bbmT5TexlL3hsM5U +gz7KsGqyjeOuK9QT5LOM4VyK6BgmhqpQaJ1MgCWA/gbBPTgBp2jfp3oS0WC5D6GM +wcsdqoeIpD/wce3k0H2Gfu6+rINBmbITtn4DTf3PkOcDIwdDceN2qkZanloFVriS +3kABUIh1ehYIXQibLRFY5rXdQnhY2CZNrQFIMwl64hK5P5hQbcyJKGDHAYzXV7ou +pdXy5F9oyEd6eA5ix+n1jKFRB7PmApZmuiQjzfExVKmBPGxRzOGT0qR5vLylQhei +SC77nkerawUyjA2QlIa/SmNzXEYkN3goDzHSFKBauB0o5qFc1b1x7dXPCFL0atG5 +UxoRr/Ep7tiab4DZmYEnOGkL2dVN8jA04F+HQGBeP6nDOSKhXRjbUODUpDpDvj+F +Jf77Rv0p48l9ip8i/bquwukXlMed3O4d6rnEwkggdySS5itiShwaVLPf+icI/Yd4 +vcPXDPUHTkj1XmoZ4f1mUF17OtCohsJT7O4oMBBMBwqCkC7enrLaALi9jiKym47g +2bZH05xJPpWXS/kSEkwt/jI+a+o4CuDPly3XhIcYRtsaWBJWiam1OT7sGQ+zkjTG +Aa6NfwbR8ScQC8MzDfVnkJ3VnXjT345bz+F7HTAveQ8a7KGxNntPhE0KVjpl369K +q2TMLyexQARJapabBf/ST9zWP7wxzWfrEbX3OEZCuRDVkwWf18BH/Eh6Lqnqg5QM +4GuX708NiFpiwQt9p/DAuQdhBrP67BxL64CbI7CgW4Lv3z3qnKfFV9zY5/mxCERn +9mPOig2r8WvvXt7ch6nhzBPfCwq0BoPqLKUFgDpeXsNdJ9sW5IV3yi/3Bh98ZBYX +zj8g/7XMo6v998fct+EiHPscuqeYUaoJZ6+Zj7W45nGA9DGsnEmZ0Wux2tTj70mD +oH//21TiRAx6ypPP+Iq2YDzqh7VXc/gssOn/vU1Aj19gzL+MRn1Z55SMrA7nO90m +OgOyEP+uGrXyahfZGPbmpgIx+MTbtfvRtZBsG3EcXyW9NnHJfk4O8xN3hYPWXaBI +o15qB3jYbx1oktbcQPo0hzaNv+PJ5wtT47JLNcbMeMSnwKM8MB4CXlM43RUtKws6 -----END DSA PRIVATE KEY----- diff --git a/deps/openssl/openssl/test/recipes/15-test_genrsa.t b/deps/openssl/openssl/test/recipes/15-test_genrsa.t index cc74e303f115a3..766ea4f0aa3f67 100644 --- a/deps/openssl/openssl/test/recipes/15-test_genrsa.t +++ b/deps/openssl/openssl/test/recipes/15-test_genrsa.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -18,9 +18,38 @@ setup("test_genrsa"); plan tests => 5; +# We want to know that an absurdly small number of bits isn't support is(run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', '8'])), 0, "genrsa -3 8"); -ok(run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', '16'])), "genrsa -3 16"); -ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout'])), "rsa -check"); -ok(run(app([ 'openssl', 'genrsa', '-f4', '-out', 'genrsatest.pem', '16'])), "genrsa -f4 16"); -ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout'])), "rsa -check"); + +# Depending on the shared library, we might have different lower limits. +# Let's find it! This is a simple binary search +# ------------------------------------------------------------ +# NOTE: $good may need an update in the future +# ------------------------------------------------------------ +note "Looking for lowest amount of bits"; +my $bad = 3; # Log2 of number of bits (2 << 3 == 8) +my $good = 11; # Log2 of number of bits (2 << 11 == 2048) +while ($good > $bad + 1) { + my $checked = int(($good + $bad + 1) / 2); + if (run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', + 2 ** $checked ], stderr => undef))) { + note 2 ** $checked, " bits is good"; + $good = $checked; + } else { + note 2 ** $checked, " bits is bad"; + $bad = $checked; + } +} +$good++ if $good == $bad; +$good = 2 ** $good; +note "Found lowest allowed amount of bits to be $good"; + +ok(run(app([ 'openssl', 'genrsa', '-3', '-out', 'genrsatest.pem', $good ])), + "genrsa -3 $good"); +ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout' ])), + "rsa -check"); +ok(run(app([ 'openssl', 'genrsa', '-f4', '-out', 'genrsatest.pem', $good ])), + "genrsa -f4 $good"); +ok(run(app([ 'openssl', 'rsa', '-check', '-in', 'genrsatest.pem', '-noout' ])), + "rsa -check"); unlink 'genrsatest.pem'; diff --git a/deps/openssl/openssl/test/recipes/25-test_verify.t b/deps/openssl/openssl/test/recipes/25-test_verify.t index 11bd43090f0bb1..11f54d0486f667 100644 --- a/deps/openssl/openssl/test/recipes/25-test_verify.t +++ b/deps/openssl/openssl/test/recipes/25-test_verify.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -30,7 +30,7 @@ sub verify { run(app([@args])); } -plan tests => 127; +plan tests => 129; # Canonical success ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]), @@ -326,6 +326,12 @@ ok(verify("alt2-cert", "sslserver", ["root-cert"], ["ncca2-cert"], ), ok(verify("alt3-cert", "sslserver", ["root-cert"], ["ncca1-cert", "ncca3-cert"], ), "Name Constraints nested test all permitted"); +ok(verify("goodcn1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ), + "Name Constraints CNs permitted"); + +ok(!verify("badcn1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ), + "Name Constraints CNs not permitted"); + ok(!verify("badalt1-cert", "sslserver", ["root-cert"], ["ncca1-cert"], ), "Name Constraints hostname not permitted"); diff --git a/deps/openssl/openssl/test/recipes/60-test_x509_dup_cert.t b/deps/openssl/openssl/test/recipes/60-test_x509_dup_cert.t new file mode 100644 index 00000000000000..8e1c31381470af --- /dev/null +++ b/deps/openssl/openssl/test/recipes/60-test_x509_dup_cert.t @@ -0,0 +1,19 @@ +#! /usr/bin/env perl +# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html +# +# ====================================================================== +# Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. + + +use OpenSSL::Test qw/:DEFAULT srctop_file/; + +setup("test_x509_dup_cert"); + +plan tests => 1; + +ok(run(test(["x509_dup_cert_test", srctop_file("test", "certs", "leaf.pem")]))); diff --git a/deps/openssl/openssl/test/recipes/60-test_x509_time.t b/deps/openssl/openssl/test/recipes/60-test_x509_time.t new file mode 100644 index 00000000000000..e812cd0b26f3a0 --- /dev/null +++ b/deps/openssl/openssl/test/recipes/60-test_x509_time.t @@ -0,0 +1,12 @@ +#! /usr/bin/env perl +# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +use OpenSSL::Test::Simple; + +simple_test("test_x509_time", "x509_time_test"); diff --git a/deps/openssl/openssl/test/recipes/80-test_ca.t b/deps/openssl/openssl/test/recipes/80-test_ca.t index f40aba1d4ddd50..28a090ea7dd9bd 100644 --- a/deps/openssl/openssl/test/recipes/80-test_ca.t +++ b/deps/openssl/openssl/test/recipes/80-test_ca.t @@ -56,3 +56,4 @@ sub yes { close PIPE; return 0; } + diff --git a/deps/openssl/openssl/test/recipes/80-test_cipherlist.t b/deps/openssl/openssl/test/recipes/80-test_cipherlist.t index 98d537e5f36817..5c1b1d45457f80 100644 --- a/deps/openssl/openssl/test/recipes/80-test_cipherlist.t +++ b/deps/openssl/openssl/test/recipes/80-test_cipherlist.t @@ -1,6 +1,6 @@ #! /usr/bin/perl # -# Copyright 2016-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -12,11 +12,16 @@ use strict; use warnings; use OpenSSL::Test::Simple; -use OpenSSL::Test; +use OpenSSL::Test qw(:DEFAULT openssl_versions); use OpenSSL::Test::Utils qw(alldisabled available_protocols); setup("test_cipherlist"); +my ($build_version, $library_version) = openssl_versions(); +plan skip_all => + "This test recipe isn't supported when doing regression testing" + if $build_version != $library_version; + my $no_anytls = alldisabled(available_protocols("tls")); # If we have no protocols, then we also have no supported ciphers. diff --git a/deps/openssl/openssl/test/recipes/80-test_x509aux.t b/deps/openssl/openssl/test/recipes/80-test_x509aux.t index b4897c580883a3..65ba5fcf529260 100644 --- a/deps/openssl/openssl/test/recipes/80-test_x509aux.t +++ b/deps/openssl/openssl/test/recipes/80-test_x509aux.t @@ -19,7 +19,7 @@ plan skip_all => "test_dane uses ec which is not supported by this OpenSSL build plan tests => 1; # The number of tests being performed -ok(run(test(["x509aux", +ok(run(test(["x509aux", srctop_file("test", "certs", "roots.pem"), srctop_file("test", "certs", "root+anyEKU.pem"), srctop_file("test", "certs", "root-anyEKU.pem"), diff --git a/deps/openssl/openssl/test/recipes/90-test_fuzz.t b/deps/openssl/openssl/test/recipes/90-test_fuzz.t index d1529257335082..8d3b3541fc4b74 100644 --- a/deps/openssl/openssl/test/recipes/90-test_fuzz.t +++ b/deps/openssl/openssl/test/recipes/90-test_fuzz.t @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -26,14 +26,14 @@ plan tests => scalar @fuzzers; foreach my $f (@fuzzers) { subtest "Fuzzing $f" => sub { - my @files = glob(srctop_file('fuzz', 'corpora', $f, '*')); - push @files, glob(srctop_file('fuzz', 'corpora', "$f-*", '*')); + my @dirs = glob(srctop_file('fuzz', 'corpora', $f)); + push @dirs, glob(srctop_file('fuzz', 'corpora', "$f-*")); - plan skip_all => "No corpora for $f-test" unless @files; + plan skip_all => "No corpora for $f-test" unless @dirs; - plan tests => scalar @files; + plan tests => scalar @dirs; - foreach (@files) { + foreach (@dirs) { ok(run(fuzz(["$f-test", $_]))); } } diff --git a/deps/openssl/openssl/test/recipes/90-test_shlibload.t b/deps/openssl/openssl/test/recipes/90-test_shlibload.t index 2bc86fdec55d5d..04d52658900be5 100644 --- a/deps/openssl/openssl/test/recipes/90-test_shlibload.t +++ b/deps/openssl/openssl/test/recipes/90-test_shlibload.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -20,7 +20,7 @@ use configdata; plan skip_all => "Test only supported in a shared build" if disabled("shared"); -plan tests => 3; +plan tests => 4; my $libcrypto_idx = $unified_info{rename}->{libcrypto} // "libcrypto"; my $libssl_idx = $unified_info{rename}->{libssl} // "libssl"; @@ -35,3 +35,6 @@ ok(run(test(["shlibloadtest", "-ssl_first", $libcrypto, $libssl])), "running shlibloadtest -ssl_first"); ok(run(test(["shlibloadtest", "-just_crypto", $libcrypto, $libssl])), "running shlibloadtest -just_crypto"); +ok(run(test(["shlibloadtest", "-dso_ref", $libcrypto, $libssl])), + "running shlibloadtest -dso_ref"); + diff --git a/deps/openssl/openssl/test/recipes/tconversion.pl b/deps/openssl/openssl/test/recipes/tconversion.pl index e19147b6975782..1cf68dc09b8b28 100644 --- a/deps/openssl/openssl/test/recipes/tconversion.pl +++ b/deps/openssl/openssl/test/recipes/tconversion.pl @@ -23,7 +23,7 @@ sub tconversion { my $testtype = shift; my $t = shift; - my @conversionforms = + my @conversionforms = defined($conversionforms{$testtype}) ? @{$conversionforms{$testtype}} : @{$conversionforms{"*"}}; diff --git a/deps/openssl/openssl/test/run_tests.pl b/deps/openssl/openssl/test/run_tests.pl index 889d6dc117ebd0..77dffb332b39c8 100644 --- a/deps/openssl/openssl/test/run_tests.pl +++ b/deps/openssl/openssl/test/run_tests.pl @@ -21,7 +21,7 @@ BEGIN use OpenSSL::Glob; use Module::Load::Conditional qw(can_load); -my $TAP_Harness = can_load(modules => { 'TAP::Harness' => undef }) +my $TAP_Harness = can_load(modules => { 'TAP::Harness' => undef }) ? 'TAP::Harness' : 'OpenSSL::TAP::Harness'; my $srctop = $ENV{SRCTOP} || $ENV{TOP}; diff --git a/deps/openssl/openssl/test/shlibloadtest.c b/deps/openssl/openssl/test/shlibloadtest.c index 25df363f235b2a..d584413ac9be57 100644 --- a/deps/openssl/openssl/test/shlibloadtest.c +++ b/deps/openssl/openssl/test/shlibloadtest.c @@ -40,6 +40,16 @@ static OpenSSL_version_num_t OpenSSL_version_num; #ifdef DSO_DLFCN +# define DSO_DSOBYADDR "DSO_dsobyaddr" +# define DSO_FREE "DSO_free" + +typedef void DSO; +typedef DSO * (*DSO_dsobyaddr_t)(void (*addr)(void), int flags); +typedef int (*DSO_free_t)(DSO *dso); + +static DSO_dsobyaddr_t DSO_dsobyaddr; +static DSO_free_t DSO_free; + # include typedef void * SHLIB; @@ -108,11 +118,13 @@ static int shlib_close(SHLIB lib) # define CRYPTO_FIRST_OPT "-crypto_first" # define SSL_FIRST_OPT "-ssl_first" # define JUST_CRYPTO_OPT "-just_crypto" +# define DSO_REFTEST_OPT "-dso_ref" enum test_types_en { CRYPTO_FIRST, SSL_FIRST, - JUST_CRYPTO + JUST_CRYPTO, + DSO_REFTEST }; int main(int argc, char **argv) @@ -123,7 +135,7 @@ int main(int argc, char **argv) void (*func) (void); SHLIB_SYM sym; } tls_method_sym, ssl_ctx_new_sym, ssl_ctx_free_sym, err_get_error_sym, - openssl_version_num_sym; + openssl_version_num_sym, dso_dsobyaddr_sym, dso_free_sym; enum test_types_en test_type; int i; @@ -138,6 +150,8 @@ int main(int argc, char **argv) test_type = SSL_FIRST; } else if (strcmp(argv[1], JUST_CRYPTO_OPT) == 0) { test_type = JUST_CRYPTO; + } else if (strcmp(argv[1], DSO_REFTEST_OPT) == 0) { + test_type = DSO_REFTEST; } else { printf("Unrecognised argument\n"); return 1; @@ -145,7 +159,8 @@ int main(int argc, char **argv) for (i = 0; i < 2; i++) { if ((i == 0 && (test_type == CRYPTO_FIRST - || test_type == JUST_CRYPTO)) + || test_type == JUST_CRYPTO + || test_type == DSO_REFTEST)) || (i == 1 && test_type == SSL_FIRST)) { if (!shlib_load(argv[2], &cryptolib)) { printf("Unable to load libcrypto\n"); @@ -161,7 +176,7 @@ int main(int argc, char **argv) } } - if (test_type != JUST_CRYPTO) { + if (test_type != JUST_CRYPTO && test_type != DSO_REFTEST) { if (!shlib_sym(ssllib, TLS_METHOD, &tls_method_sym.sym) || !shlib_sym(ssllib, SSL_CTX_NEW, &ssl_ctx_new_sym.sym) || !shlib_sym(ssllib, SSL_CTX_FREE, &ssl_ctx_free_sym.sym)) { @@ -215,6 +230,38 @@ int main(int argc, char **argv) return 1; } + if (test_type == DSO_REFTEST) { +# ifdef DSO_DLFCN + /* + * This is resembling the code used in ossl_init_base() and + * OPENSSL_atexit() to block unloading the library after dlclose(). + * We are not testing this on Windows, because it is done there in a + * completely different way. Especially as a call to DSO_dsobyaddr() + * will always return an error, because DSO_pathbyaddr() is not + * implemented there. + */ + if (!shlib_sym(cryptolib, DSO_DSOBYADDR, &dso_dsobyaddr_sym.sym) + || !shlib_sym(cryptolib, DSO_FREE, &dso_free_sym.sym)) { + printf("Unable to load crypto dso symbols\n"); + return 1; + } + + DSO_dsobyaddr = (DSO_dsobyaddr_t)dso_dsobyaddr_sym.func; + DSO_free = (DSO_free_t)dso_free_sym.func; + + { + DSO *hndl; + /* use known symbol from crypto module */ + if ((hndl = DSO_dsobyaddr((void (*)(void))ERR_get_error, 0)) != NULL) { + DSO_free(hndl); + } else { + printf("Unable to obtain DSO reference from crypto symbol\n"); + return 1; + } + } +# endif /* DSO_DLFCN */ + } + for (i = 0; i < 2; i++) { if ((i == 0 && test_type == CRYPTO_FIRST) || (i == 1 && test_type == SSL_FIRST)) { @@ -224,7 +271,8 @@ int main(int argc, char **argv) } } if ((i == 0 && (test_type == SSL_FIRST - || test_type == JUST_CRYPTO)) + || test_type == JUST_CRYPTO + || test_type == DSO_REFTEST)) || (i == 1 && test_type == CRYPTO_FIRST)) { if (!shlib_close(cryptolib)) { printf("Unable to close libcrypto\n"); diff --git a/deps/openssl/openssl/test/ssl-tests/01-simple.conf b/deps/openssl/openssl/test/ssl-tests/01-simple.conf index 65c7e5d151f109..5f4dd841b473a0 100644 --- a/deps/openssl/openssl/test/ssl-tests/01-simple.conf +++ b/deps/openssl/openssl/test/ssl-tests/01-simple.conf @@ -74,3 +74,5 @@ VerifyMode = Peer [test-2] ExpectedClientAlert = UnknownCA ExpectedResult = ClientFail + + diff --git a/deps/openssl/openssl/test/ssl-tests/02-protocol-version.conf b/deps/openssl/openssl/test/ssl-tests/02-protocol-version.conf index cb737f80722ee0..cb89dbc10aa696 100644 --- a/deps/openssl/openssl/test/ssl-tests/02-protocol-version.conf +++ b/deps/openssl/openssl/test/ssl-tests/02-protocol-version.conf @@ -9971,3 +9971,5 @@ VerifyMode = Peer [test-360] ExpectedProtocol = TLSv1.2 ExpectedResult = Success + + diff --git a/deps/openssl/openssl/test/ssl-tests/03-custom_verify.conf b/deps/openssl/openssl/test/ssl-tests/03-custom_verify.conf index 65c9005ff85c5f..8dca715e74da8c 100644 --- a/deps/openssl/openssl/test/ssl-tests/03-custom_verify.conf +++ b/deps/openssl/openssl/test/ssl-tests/03-custom_verify.conf @@ -234,3 +234,5 @@ client = 8-verify-custom-fail-no-root-client-extra [8-verify-custom-fail-no-root-client-extra] VerifyCallback = RejectAll + + diff --git a/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf b/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf index bf374039d186f8..0e91bed9f18ebb 100644 --- a/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf +++ b/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf @@ -588,3 +588,5 @@ VerifyMode = Peer [test-19] ExpectedResult = ServerFail ExpectedServerAlert = UnknownCA + + diff --git a/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf.in b/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf.in index bb7fddb8bc90a5..8738aaa769662f 100644 --- a/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf.in +++ b/deps/openssl/openssl/test/ssl-tests/04-client_auth.conf.in @@ -119,5 +119,5 @@ sub generate_tests() { } } } - + generate_tests(); diff --git a/deps/openssl/openssl/test/ssl-tests/05-sni.conf b/deps/openssl/openssl/test/ssl-tests/05-sni.conf index 4278cbf85b0d68..e1fb3d9d896714 100644 --- a/deps/openssl/openssl/test/ssl-tests/05-sni.conf +++ b/deps/openssl/openssl/test/ssl-tests/05-sni.conf @@ -199,3 +199,5 @@ ServerNameCallback = RejectMismatch [5-SNI-bad-sni-reject-mismatch-client-extra] ServerName = invalid + + diff --git a/deps/openssl/openssl/test/ssl-tests/06-sni-ticket.conf b/deps/openssl/openssl/test/ssl-tests/06-sni-ticket.conf index 9ee9c71fcc64cc..9620e015a1a9e3 100644 --- a/deps/openssl/openssl/test/ssl-tests/06-sni-ticket.conf +++ b/deps/openssl/openssl/test/ssl-tests/06-sni-ticket.conf @@ -730,3 +730,5 @@ ServerNameCallback = IgnoreMismatch [16-sni-session-ticket-client-extra] ServerName = server2 + + diff --git a/deps/openssl/openssl/test/ssl-tests/07-dtls-protocol-version.conf b/deps/openssl/openssl/test/ssl-tests/07-dtls-protocol-version.conf index bd9a5db7a28b13..3304a3bbaaec77 100644 --- a/deps/openssl/openssl/test/ssl-tests/07-dtls-protocol-version.conf +++ b/deps/openssl/openssl/test/ssl-tests/07-dtls-protocol-version.conf @@ -1816,3 +1816,5 @@ VerifyMode = Peer ExpectedProtocol = DTLSv1.2 ExpectedResult = Success Method = DTLS + + diff --git a/deps/openssl/openssl/test/ssl-tests/08-npn.conf b/deps/openssl/openssl/test/ssl-tests/08-npn.conf index 8b4b5360c0708f..9115ef458b890c 100644 --- a/deps/openssl/openssl/test/ssl-tests/08-npn.conf +++ b/deps/openssl/openssl/test/ssl-tests/08-npn.conf @@ -790,3 +790,5 @@ NPNProtocols = baz [19-npn-used-if-alpn-not-supported-resumption-client-extra] ALPNProtocols = foo NPNProtocols = bar,baz + + diff --git a/deps/openssl/openssl/test/ssl-tests/08-npn.conf.in b/deps/openssl/openssl/test/ssl-tests/08-npn.conf.in index 796599224474d3..bcb632f051ddc6 100644 --- a/deps/openssl/openssl/test/ssl-tests/08-npn.conf.in +++ b/deps/openssl/openssl/test/ssl-tests/08-npn.conf.in @@ -237,7 +237,7 @@ our @tests = ( test => { "ExpectedALPNProtocol" => undef, "ExpectedNPNProtocol" => "bar", - "ExpectedServerName" => "server2", + "ExpectedServerName" => "server2", }, }, { diff --git a/deps/openssl/openssl/test/ssl-tests/09-alpn.conf b/deps/openssl/openssl/test/ssl-tests/09-alpn.conf index bb11102636e65e..e7e6cb95348b72 100644 --- a/deps/openssl/openssl/test/ssl-tests/09-alpn.conf +++ b/deps/openssl/openssl/test/ssl-tests/09-alpn.conf @@ -615,3 +615,5 @@ ALPNProtocols = foo [15-alpn-no-client-support-resumption-client-extra] ALPNProtocols = foo + + diff --git a/deps/openssl/openssl/test/ssl-tests/09-alpn.conf.in b/deps/openssl/openssl/test/ssl-tests/09-alpn.conf.in index 41c9486fa52e5f..37035f1d84d4b7 100644 --- a/deps/openssl/openssl/test/ssl-tests/09-alpn.conf.in +++ b/deps/openssl/openssl/test/ssl-tests/09-alpn.conf.in @@ -180,7 +180,7 @@ our @tests = ( name => "alpn-selected-sni-server-does-not-support-alpn", server => { extra => { - "ALPNProtocols" => "bar", + "ALPNProtocols" => "bar", "ServerNameCallback" => "IgnoreMismatch", }, }, diff --git a/deps/openssl/openssl/test/ssl-tests/10-resumption.conf b/deps/openssl/openssl/test/ssl-tests/10-resumption.conf index 4c79b0898e7b86..b2deee4209fdba 100644 --- a/deps/openssl/openssl/test/ssl-tests/10-resumption.conf +++ b/deps/openssl/openssl/test/ssl-tests/10-resumption.conf @@ -1332,3 +1332,5 @@ VerifyMode = Peer ExpectedProtocol = TLSv1.2 HandshakeMode = Resume ResumptionExpected = Yes + + diff --git a/deps/openssl/openssl/test/ssl-tests/11-dtls_resumption.conf b/deps/openssl/openssl/test/ssl-tests/11-dtls_resumption.conf index df28ecb1e7bd04..ceed9597447255 100644 --- a/deps/openssl/openssl/test/ssl-tests/11-dtls_resumption.conf +++ b/deps/openssl/openssl/test/ssl-tests/11-dtls_resumption.conf @@ -608,3 +608,5 @@ ExpectedProtocol = DTLSv1.2 HandshakeMode = Resume Method = DTLS ResumptionExpected = Yes + + diff --git a/deps/openssl/openssl/test/ssl-tests/12-ct.conf b/deps/openssl/openssl/test/ssl-tests/12-ct.conf index 985292e9000f4f..2e6e9dea675735 100644 --- a/deps/openssl/openssl/test/ssl-tests/12-ct.conf +++ b/deps/openssl/openssl/test/ssl-tests/12-ct.conf @@ -187,3 +187,5 @@ CTValidation = Strict [5-ct-strict-resumption-resume-client-extra] CTValidation = Strict + + diff --git a/deps/openssl/openssl/test/ssl-tests/13-fragmentation.conf b/deps/openssl/openssl/test/ssl-tests/13-fragmentation.conf index 02feb2c7783af2..4c1e9e2b338943 100644 --- a/deps/openssl/openssl/test/ssl-tests/13-fragmentation.conf +++ b/deps/openssl/openssl/test/ssl-tests/13-fragmentation.conf @@ -393,3 +393,5 @@ VerifyMode = Peer [test-15] ApplicationData = 4096 MaxFragmentSize = 4096 + + diff --git a/deps/openssl/openssl/test/ssl-tests/14-curves.conf b/deps/openssl/openssl/test/ssl-tests/14-curves.conf index 61b297053e7fc5..7f7ac4ba8dc0b1 100644 --- a/deps/openssl/openssl/test/ssl-tests/14-curves.conf +++ b/deps/openssl/openssl/test/ssl-tests/14-curves.conf @@ -783,3 +783,5 @@ VerifyMode = Peer [test-28] ExpectedResult = Success ExpectedTmpKeyType = X25519 + + diff --git a/deps/openssl/openssl/test/ssl-tests/15-certstatus.conf b/deps/openssl/openssl/test/ssl-tests/15-certstatus.conf index 770f024d13fc41..bf6c41cda2f3c7 100644 --- a/deps/openssl/openssl/test/ssl-tests/15-certstatus.conf +++ b/deps/openssl/openssl/test/ssl-tests/15-certstatus.conf @@ -58,3 +58,5 @@ server = 1-certstatus-bad-server-extra [1-certstatus-bad-server-extra] CertStatus = BadResponse + + diff --git a/deps/openssl/openssl/test/ssl-tests/16-dtls-certstatus.conf b/deps/openssl/openssl/test/ssl-tests/16-dtls-certstatus.conf index eb55bbd71c2e46..a561803a554415 100644 --- a/deps/openssl/openssl/test/ssl-tests/16-dtls-certstatus.conf +++ b/deps/openssl/openssl/test/ssl-tests/16-dtls-certstatus.conf @@ -58,3 +58,5 @@ server = 1-certstatus-bad-server-extra [1-certstatus-bad-server-extra] CertStatus = BadResponse + + diff --git a/deps/openssl/openssl/test/ssl-tests/17-renegotiate.conf b/deps/openssl/openssl/test/ssl-tests/17-renegotiate.conf index 45a9d5864b1f4a..48f569fad6da8b 100644 --- a/deps/openssl/openssl/test/ssl-tests/17-renegotiate.conf +++ b/deps/openssl/openssl/test/ssl-tests/17-renegotiate.conf @@ -424,3 +424,5 @@ ExpectedResult = ClientFail HandshakeMode = RenegotiateClient Method = TLS ResumptionExpected = No + + diff --git a/deps/openssl/openssl/test/ssl-tests/18-dtls-renegotiate.conf b/deps/openssl/openssl/test/ssl-tests/18-dtls-renegotiate.conf index d23a84a89b7729..3d8ebd74c45513 100644 --- a/deps/openssl/openssl/test/ssl-tests/18-dtls-renegotiate.conf +++ b/deps/openssl/openssl/test/ssl-tests/18-dtls-renegotiate.conf @@ -272,3 +272,5 @@ client = 8-renegotiate-aead-to-aead-client-extra [8-renegotiate-aead-to-aead-client-extra] RenegotiateCiphers = AES256-GCM-SHA384 + + diff --git a/deps/openssl/openssl/test/ssl-tests/19-mac-then-encrypt.conf b/deps/openssl/openssl/test/ssl-tests/19-mac-then-encrypt.conf index 8626a06669c572..40480edbf89001 100644 --- a/deps/openssl/openssl/test/ssl-tests/19-mac-then-encrypt.conf +++ b/deps/openssl/openssl/test/ssl-tests/19-mac-then-encrypt.conf @@ -152,3 +152,5 @@ VerifyMode = Peer [test-5] ExpectedResult = Success + + diff --git a/deps/openssl/openssl/test/ssl_test.tmpl b/deps/openssl/openssl/test/ssl_test.tmpl index 0517bff44fd881..9506837f84e521 100644 --- a/deps/openssl/openssl/test/ssl_test.tmpl +++ b/deps/openssl/openssl/test/ssl_test.tmpl @@ -92,35 +92,35 @@ client = {-$testname-}-client{- $OUT .= "\n[$testname-server-extra]\n"; foreach my $key (sort keys %{$server{"extra"}}) { $OUT .= qq{$key} . " = " . qq{$server{"extra"}{$key}\n} - if defined $server{"extra"}{$key}; + if defined $server{"extra"}{$key}; } } if (%server2 && $server2{"extra"}) { $OUT .= "\n[$testname-server2-extra]\n"; foreach my $key (sort keys %{$server2{"extra"}}) { $OUT .= qq{$key} . " = " . qq{$server2{"extra"}{$key}\n} - if defined $server2{"extra"}{$key}; + if defined $server2{"extra"}{$key}; } } if (%resume_server && $resume_server{"extra"}) { $OUT .= "\n[$testname-resume-server-extra]\n"; foreach my $key (sort keys %{$resume_server{"extra"}}) { $OUT .= qq{$key} . " = " . qq{$resume_server{"extra"}{$key}\n} - if defined $resume_server{"extra"}{$key}; + if defined $resume_server{"extra"}{$key}; } } if ($client{"extra"}) { $OUT .= "\n[$testname-client-extra]\n"; foreach my $key (sort keys %{$client{"extra"}}) { $OUT .= qq{$key} . " = " . qq{$client{"extra"}{$key}\n} - if defined $client{"extra"}{$key}; + if defined $client{"extra"}{$key}; } } if (%resume_client && $resume_client{"extra"}) { $OUT .= "\n[$testname-resume-client-extra]\n"; foreach my $key (sort keys %{$resume_client{"extra"}}) { $OUT .= qq{$key} . " = " . qq{$resume_client{"extra"}{$key}\n} - if defined $resume_client{"extra"}{$key}; + if defined $resume_client{"extra"}{$key}; } } -} diff --git a/deps/openssl/openssl/test/sslapitest.c b/deps/openssl/openssl/test/sslapitest.c index 77e8f2e9ad367b..8badd284e3280c 100644 --- a/deps/openssl/openssl/test/sslapitest.c +++ b/deps/openssl/openssl/test/sslapitest.c @@ -1208,6 +1208,61 @@ static int test_custom_exts(int tst) return testresult; } +static int test_ssl_pending(int tst) +{ + SSL_CTX *cctx = NULL, *sctx = NULL; + SSL *clientssl = NULL, *serverssl = NULL; + int testresult = 0; + char msg[] = "A test message"; + char buf[5]; + size_t written; + + if (tst == 0) { + if (!create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(), + TLS1_VERSION, TLS_MAX_VERSION, + &sctx, &cctx, cert, privkey)) { + printf("Failed creating SSL_CTX pair\n"); + goto end; + } + } else { +#ifndef OPENSSL_NO_DTLS + if (!create_ssl_ctx_pair(DTLS_server_method(), DTLS_client_method(), + DTLS1_VERSION, DTLS_MAX_VERSION, + &sctx, &cctx, cert, privkey)) { + printf("Failed creating SSL_CTX pair\n"); + goto end; + } +#else + return 1; +#endif + } + + if (!create_ssl_objects(sctx, cctx, &serverssl, &clientssl, NULL, NULL) + || !create_ssl_connection(serverssl, clientssl)) { + printf("Failed creating connection\n"); + goto end; + } + + written = SSL_write(serverssl, msg, sizeof(msg)); + if (written != sizeof(msg) + || SSL_read(clientssl, buf, sizeof(buf)) != sizeof(buf) + || SSL_pending(clientssl) != (int)(written - sizeof(buf))) { + printf("Failed checking SSL_pending\n"); + goto end; + } + + testresult = 1; + + end: + SSL_free(serverssl); + SSL_free(clientssl); + SSL_CTX_free(sctx); + SSL_CTX_free(cctx); + + return testresult; +} + + int main(int argc, char *argv[]) { BIO *err = NULL; @@ -1244,6 +1299,7 @@ int main(int argc, char *argv[]) ADD_TEST(test_ssl_bio_change_wbio); ADD_ALL_TESTS(test_set_sigalgs, OSSL_NELEM(testsigalgs) * 2); ADD_ALL_TESTS(test_custom_exts, 2); + ADD_ALL_TESTS(test_ssl_pending, 2); testresult = run_tests(argv[0]); diff --git a/deps/openssl/openssl/test/verify_extra_test.c b/deps/openssl/openssl/test/verify_extra_test.c index cc05bc2ef1f069..fabc1dc59f6f14 100644 --- a/deps/openssl/openssl/test/verify_extra_test.c +++ b/deps/openssl/openssl/test/verify_extra_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -137,6 +137,43 @@ static int test_alt_chains_cert_forgery(const char *roots_f, return ret; } +static int test_store_ctx(const char *bad_f) +{ + X509_STORE_CTX *sctx = NULL; + X509 *x = NULL; + BIO *bio = NULL; + int testresult = 0, ret; + + bio = BIO_new_file(bad_f, "r"); + if (bio == NULL) + goto err; + + x = PEM_read_bio_X509(bio, NULL, 0, NULL); + if (x == NULL) + goto err; + + sctx = X509_STORE_CTX_new(); + if (sctx == NULL) + goto err; + + if (!X509_STORE_CTX_init(sctx, NULL, x, NULL)) + goto err; + + /* Verifying a cert where we have no trusted certs should fail */ + ret = X509_verify_cert(sctx); + + if (ret == 0) { + /* This is the result we were expecting: Test passed */ + testresult = 1; + } + + err: + X509_STORE_CTX_free(sctx); + X509_free(x); + BIO_free(bio); + return testresult; +} + int main(int argc, char **argv) { CRYPTO_set_mem_debug(1); @@ -152,6 +189,11 @@ int main(int argc, char **argv) return 1; } + if (!test_store_ctx(argv[3])) { + fprintf(stderr, "Test X509_STORE_CTX failed\n"); + return 1; + } + #ifndef OPENSSL_NO_CRYPTO_MDEBUG if (CRYPTO_mem_leaks_fp(stderr) <= 0) return 1; diff --git a/deps/openssl/openssl/test/versions.c b/deps/openssl/openssl/test/versions.c new file mode 100644 index 00000000000000..3ab05ec35d5d38 --- /dev/null +++ b/deps/openssl/openssl/test/versions.c @@ -0,0 +1,20 @@ +/* + * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include +#include +#include + +/* A simple helper for the perl function OpenSSL::Test::openssl_versions */ +int main(void) +{ + printf("Build version: 0x%08lX\n", OPENSSL_VERSION_NUMBER); + printf("Library version: 0x%08lX\n", OpenSSL_version_num()); + return 0; +} diff --git a/deps/openssl/openssl/test/x509_dup_cert_test.c b/deps/openssl/openssl/test/x509_dup_cert_test.c new file mode 100644 index 00000000000000..7f7adebbb0fbf4 --- /dev/null +++ b/deps/openssl/openssl/test/x509_dup_cert_test.c @@ -0,0 +1,70 @@ +/* + * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* ==================================================================== + * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. + */ + +#include +#include +#include + +static int test_509_dup_cert(const char *cert_f) +{ + int ret = 0; + X509_STORE_CTX *sctx = NULL; + X509_STORE *store = NULL; + X509_LOOKUP *lookup = NULL; + + store = X509_STORE_new(); + if (store == NULL) + goto err; + + lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file()); + if (lookup == NULL) + goto err; + + if (!X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM)) + goto err; + if (!X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM)) + goto err; + + ret = 1; + + err: + X509_STORE_CTX_free(sctx); + X509_STORE_free(store); + if (ret != 1) + ERR_print_errors_fp(stderr); + return ret; +} + +int main(int argc, char **argv) +{ + CRYPTO_set_mem_debug(1); + CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + + if (argc != 2) { + fprintf(stderr, "usage: x509_dup_cert_test cert.pem\n"); + return 1; + } + + if (!test_509_dup_cert(argv[1])) { + fprintf(stderr, "Test X509 duplicate cert failed\n"); + return 1; + } + +#ifndef OPENSSL_NO_CRYPTO_MDEBUG + if (CRYPTO_mem_leaks_fp(stderr) <= 0) + return 1; +#endif + + printf("PASS\n"); + return 0; +} diff --git a/deps/openssl/openssl/test/x509_time_test.c b/deps/openssl/openssl/test/x509_time_test.c new file mode 100644 index 00000000000000..32d65c87617bfa --- /dev/null +++ b/deps/openssl/openssl/test/x509_time_test.c @@ -0,0 +1,212 @@ +/* + * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* Tests for X509 time functions */ + +#include +#include + +#include +#include +#include "testutil.h" +#include "e_os.h" + +typedef struct { + const char *data; + int type; + time_t cmp_time; + /* -1 if asn1_time <= cmp_time, 1 if asn1_time > cmp_time, 0 if error. */ + int expected; +} TESTDATA; + +static TESTDATA x509_cmp_tests[] = { + { + "20170217180154Z", V_ASN1_GENERALIZEDTIME, + /* The same in seconds since epoch. */ + 1487354514, -1, + }, + { + "20170217180154Z", V_ASN1_GENERALIZEDTIME, + /* One second more. */ + 1487354515, -1, + }, + { + "20170217180154Z", V_ASN1_GENERALIZEDTIME, + /* One second less. */ + 1487354513, 1, + }, + /* Same as UTC time. */ + { + "170217180154Z", V_ASN1_UTCTIME, + /* The same in seconds since epoch. */ + 1487354514, -1, + }, + { + "170217180154Z", V_ASN1_UTCTIME, + /* One second more. */ + 1487354515, -1, + }, + { + "170217180154Z", V_ASN1_UTCTIME, + /* One second less. */ + 1487354513, 1, + }, + /* UTCTime from the 20th century. */ + { + "990217180154Z", V_ASN1_UTCTIME, + /* The same in seconds since epoch. */ + 919274514, -1, + }, + { + "990217180154Z", V_ASN1_UTCTIME, + /* One second more. */ + 919274515, -1, + }, + { + "990217180154Z", V_ASN1_UTCTIME, + /* One second less. */ + 919274513, 1, + }, + /* Various invalid formats. */ + { + /* No trailing Z. */ + "20170217180154", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* No trailing Z, UTCTime. */ + "170217180154", V_ASN1_UTCTIME, 0, 0, + }, + { + /* No seconds. */ + "201702171801Z", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* No seconds, UTCTime. */ + "1702171801Z", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Fractional seconds. */ + "20170217180154.001Z", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Fractional seconds, UTCTime. */ + "170217180154.001Z", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Timezone offset. */ + "20170217180154+0100", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Timezone offset, UTCTime. */ + "170217180154+0100", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Extra digits. */ + "2017021718015400Z", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Extra digits, UTCTime. */ + "17021718015400Z", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Non-digits. */ + "2017021718015aZ", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Non-digits, UTCTime. */ + "17021718015aZ", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Trailing garbage. */ + "20170217180154Zlongtrailinggarbage", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Trailing garbage, UTCTime. */ + "170217180154Zlongtrailinggarbage", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Swapped type. */ + "20170217180154Z", V_ASN1_UTCTIME, 0, 0, + }, + { + /* Swapped type. */ + "170217180154Z", V_ASN1_GENERALIZEDTIME, 0, 0, + }, + { + /* Bad type. */ + "20170217180154Z", V_ASN1_OCTET_STRING, 0, 0, + }, +}; + +static int test_x509_cmp_time(int idx) +{ + ASN1_TIME t; + int result; + + memset(&t, 0, sizeof(t)); + t.type = x509_cmp_tests[idx].type; + t.data = (unsigned char*)(x509_cmp_tests[idx].data); + t.length = strlen(x509_cmp_tests[idx].data); + + result = X509_cmp_time(&t, &x509_cmp_tests[idx].cmp_time); + if (result != x509_cmp_tests[idx].expected) { + fprintf(stderr, "test_x509_cmp_time(%d) failed: expected %d, got %d\n", + idx, x509_cmp_tests[idx].expected, result); + return 0; + } + return 1; +} + +static int test_x509_cmp_time_current() +{ + time_t now = time(NULL); + /* Pick a day earlier and later, relative to any system clock. */ + ASN1_TIME *asn1_before = NULL, *asn1_after = NULL; + int cmp_result, failed = 0; + + asn1_before = ASN1_TIME_adj(NULL, now, -1, 0); + asn1_after = ASN1_TIME_adj(NULL, now, 1, 0); + + cmp_result = X509_cmp_time(asn1_before, NULL); + if (cmp_result != -1) { + fprintf(stderr, "test_x509_cmp_time_current failed: expected -1, got %d\n", + cmp_result); + failed = 1; + } + + cmp_result = X509_cmp_time(asn1_after, NULL); + if (cmp_result != 1) { + fprintf(stderr, "test_x509_cmp_time_current failed: expected 1, got %d\n", + cmp_result); + failed = 1; + } + + ASN1_TIME_free(asn1_before); + ASN1_TIME_free(asn1_after); + + return failed == 0; +} + +int main(int argc, char **argv) +{ + int ret = 0; + unsigned int idx; + + if (!test_x509_cmp_time_current()) + ret = 1; + + for (idx=0 ; idx < OSSL_NELEM(x509_cmp_tests) ; ++idx) { + if (!test_x509_cmp_time(idx)) + ret = 1; + } + + if (ret == 0) + printf("PASS\n"); + return ret; +} diff --git a/deps/openssl/openssl/util/copy.pl b/deps/openssl/openssl/util/copy.pl index 01964f585e87c6..fe1c908e681acc 100644 --- a/deps/openssl/openssl/util/copy.pl +++ b/deps/openssl/openssl/util/copy.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -18,6 +18,7 @@ my $stripcr = 0; my $arg; +my @excludes = (); foreach $arg (@ARGV) { if ($arg eq "-stripcr") @@ -25,11 +26,16 @@ $stripcr = 1; next; } + if ($arg =~ /^-exclude_re=(.*)$/) + { + push @excludes, $1; + next; + } $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob... $arg = qq("$arg") if ($arg =~ /\s/); # compensate for bug in 5.10... - foreach (glob $arg) + foreach my $f (glob $arg) { - push @filelist, $_; + push @filelist, $f unless grep { $f =~ /$_/ } @excludes; } } diff --git a/deps/openssl/openssl/util/dofile.pl b/deps/openssl/openssl/util/dofile.pl index fc72989b0fd91e..4533c135a30ef4 100644 --- a/deps/openssl/openssl/util/dofile.pl +++ b/deps/openssl/openssl/util/dofile.pl @@ -40,7 +40,7 @@ package OpenSSL::Template; use File::Basename; use File::Spec::Functions; use lib "$FindBin::Bin/perl"; -use with_fallback qw(Text::Template); +use with_fallback "Text::Template 1.46"; #use parent qw/Text::Template/; use vars qw/@ISA/; @@ -99,9 +99,9 @@ package main; # This adds quotes (") around the given string, and escapes any $, @, \, # " and ' by prepending a \ to them. sub quotify1 { - my $s = my $orig = shift @_; + my $s = shift @_; $s =~ s/([\$\@\\"'])/\\$1/g; - $s ne $orig || $s =~ /\s/ ? '"'.$s.'"' : $s; + '"'.$s.'"'; } # quotify_l LIST diff --git a/deps/openssl/openssl/util/echo.pl b/deps/openssl/openssl/util/echo.pl new file mode 100644 index 00000000000000..d90e52129bab8b --- /dev/null +++ b/deps/openssl/openssl/util/echo.pl @@ -0,0 +1,12 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use Getopt::Std; + +our $opt_n = 0; + +getopts('n') or die "Invalid option: $!\n"; + +print join(' ', @ARGV); +print "\n" unless $opt_n; diff --git a/deps/openssl/openssl/util/fipslink.pl b/deps/openssl/openssl/util/fipslink.pl index 8248382c848373..18a91532be535b 100644 --- a/deps/openssl/openssl/util/fipslink.pl +++ b/deps/openssl/openssl/util/fipslink.pl @@ -20,7 +20,7 @@ sub check_env my ($fips_cc,$fips_cc_args, $fips_link,$fips_target, $fips_libdir, $sha1_exe) = check_env("FIPS_CC", "FIPS_CC_ARGS", "FIPS_LINK", "FIPS_TARGET", - "FIPSLIB_D", "FIPS_SHA1_EXE"); + "FIPSLIB_D", "FIPS_SHA1_EXE"); @@ -109,5 +109,7 @@ sub check_hash $hashval =~ s/^.*=\s+//; die "Invalid hash syntax in file" if (length($hashfile) != 40); die "Invalid hash received for file" if (length($hashval) != 40); - die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile); + die "***HASH VALUE MISMATCH FOR FILE $filename ***" if ($hashval ne $hashfile); } + + diff --git a/deps/openssl/openssl/util/incore b/deps/openssl/openssl/util/incore index 8a88f81559c402..26fcf95033fca7 100755 --- a/deps/openssl/openssl/util/incore +++ b/deps/openssl/openssl/util/incore @@ -65,7 +65,7 @@ # put aside e_machine in case one has to treat specific # platforms differently, see EM_ constants in elf.h for - # assortment... + # assortment... $self->{e_machine} = $elf_ehdr{e_machine}; ################################################# @@ -131,12 +131,12 @@ my $name; # (STT_OBJECT || STT_FUNC) if ($st_bind<3 && ($st_type==1 || $st_type==2) - && $st_secn <= $#sections # sane st_shndx + && $st_secn <= $#sections # sane st_shndx && @sections[$st_secn]->{sh_type} # not SHN_UNDEF && ($name=(split(chr(0),substr($strings,$elf_sym{st_name},128)))[0]) ) { # synthesize st_offset, ... - $elf_sym{st_offset} = $elf_sym{st_value} + $elf_sym{st_offset} = $elf_sym{st_value} - @sections[$st_secn]->{sh_addr} + @sections[$st_secn]->{sh_offset}; $elf_sym{st_name} = $name; diff --git a/deps/openssl/openssl/util/libcrypto.num b/deps/openssl/openssl/util/libcrypto.num index 8414d97ff11412..51f1d7d6540a71 100644 --- a/deps/openssl/openssl/util/libcrypto.num +++ b/deps/openssl/openssl/util/libcrypto.num @@ -4234,3 +4234,32 @@ CRYPTO_secure_clear_free 4315 1_1_0g EXIST::FUNCTION: EVP_PKEY_set1_engine 4347 1_1_0g EXIST::FUNCTION:ENGINE OCSP_resp_get0_signer 4374 1_1_0h EXIST::FUNCTION:OCSP X509_get0_authority_key_id 4448 1_1_0h EXIST::FUNCTION: +conf_ssl_name_find 4469 1_1_0i EXIST::FUNCTION: +conf_ssl_get_cmd 4470 1_1_0i EXIST::FUNCTION: +conf_ssl_get 4471 1_1_0i EXIST::FUNCTION: +X509_VERIFY_PARAM_get_hostflags 4472 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_fingerprint 4493 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_new 4494 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_init 4495 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_alias 4496 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_new_item 4497 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_shutdown 4498 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_new_item 4499 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_ctrl 4500 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_issuer_serial 4501 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_get_store 4502 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_ctrl 4503 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_alias 4504 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_subject 4505 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_free 4506 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_subject 4507 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_free 4508 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_shutdown 4509 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_set_method_data 4510 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_get_method_data 4511 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_get_by_fingerprint 4512 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_free 4513 1_1_0i EXIST::FUNCTION: +X509_OBJECT_set1_X509 4514 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_get_get_by_issuer_serial 4515 1_1_0i EXIST::FUNCTION: +X509_LOOKUP_meth_set_init 4516 1_1_0i EXIST::FUNCTION: +X509_OBJECT_set1_X509_CRL 4517 1_1_0i EXIST::FUNCTION: diff --git a/deps/openssl/openssl/util/local_shlib.com.in b/deps/openssl/openssl/util/local_shlib.com.in index a381872537e142..e49aa15c77921c 100644 --- a/deps/openssl/openssl/util/local_shlib.com.in +++ b/deps/openssl/openssl/util/local_shlib.com.in @@ -16,7 +16,7 @@ $ $ NAMES := {- join(",", keys %names); -} {- join("\n", map { "\$ __$_ = \"".$names{$_}."\"" } keys %names); --} +-} $ I = 0 $ LOOP: $ E = F$ELEMENT(I,",",NAMES) diff --git a/deps/openssl/openssl/util/mkdef.pl b/deps/openssl/openssl/util/mkdef.pl index 66db26c3b9562c..823cb664d0ae64 100755 --- a/deps/openssl/openssl/util/mkdef.pl +++ b/deps/openssl/openssl/util/mkdef.pl @@ -252,6 +252,7 @@ $crypto.=" include/internal/o_str.h"; $crypto.=" include/internal/err.h"; $crypto.=" include/internal/asn1t.h"; +$crypto.=" include/internal/sslconf.h"; $crypto.=" include/openssl/des.h" ; # unless $no_des; $crypto.=" include/openssl/idea.h" ; # unless $no_idea; $crypto.=" include/openssl/rc4.h" ; # unless $no_rc4; @@ -1335,7 +1336,7 @@ sub print_def_file } elsif ($VMS) { print OUT ")\n"; (my $libvmaj, my $libvmin, my $libvedit) = - $currversion =~ /^(\d+)_(\d+)_(\d+)$/; + $currversion =~ /^(\d+)_(\d+)_(\d+)[a-z]{0,2}$/; # The reason to multiply the edit number with 100 is to make space # for the possibility that we want to encode the patch letters print OUT "GSMATCH=LEQUAL,",($libvmaj * 100 + $libvmin),",",($libvedit * 100),"\n"; diff --git a/deps/openssl/openssl/util/perl/OpenSSL/Test.pm b/deps/openssl/openssl/util/perl/OpenSSL/Test.pm index 5de7b58e8be404..a6be4878950a59 100644 --- a/deps/openssl/openssl/util/perl/OpenSSL/Test.pm +++ b/deps/openssl/openssl/util/perl/OpenSSL/Test.pm @@ -21,7 +21,8 @@ $VERSION = "0.8"; @EXPORT_OK = (@Test::More::EXPORT_OK, qw(bldtop_dir bldtop_file srctop_dir srctop_file data_file - pipe with cmdstr quotify)); + pipe with cmdstr quotify + openssl_versions)); =head1 NAME @@ -695,6 +696,32 @@ sub quotify { return map { $arg_formatter->($_) } @_; } +=over 4 + +=item B + +Returns a list of two numbers, the first representing the build version, +the second representing the library version. See opensslv.h for more +information on those numbers. + += back + +=cut + +my @versions = (); +sub openssl_versions { + unless (@versions) { + my %lines = + map { s/\R$//; + /^(.*): (0x[[:xdigit:]]{8})$/; + die "Weird line: $_" unless defined $1; + $1 => hex($2) } + run(test(['versions']), capture => 1); + @versions = ( $lines{'Build version'}, $lines{'Library version'} ); + } + return @versions; +} + ###################################################################### # private functions. These are never exported. diff --git a/deps/openssl/openssl/util/perl/TLSProxy/Message.pm b/deps/openssl/openssl/util/perl/TLSProxy/Message.pm index 10daba4b4246bc..0821bdedd328ba 100644 --- a/deps/openssl/openssl/util/perl/TLSProxy/Message.pm +++ b/deps/openssl/openssl/util/perl/TLSProxy/Message.pm @@ -170,7 +170,7 @@ sub get_messages $startoffset = $recoffset; $recoffset += 4; $payload = ""; - + if ($recoffset <= $record->decrypt_len) { #Some payload data is present in this record if ($record->decrypt_len - $recoffset >= $messlen) { @@ -296,7 +296,7 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = { server => $server, data => $data, diff --git a/deps/openssl/openssl/util/perl/TLSProxy/Record.pm b/deps/openssl/openssl/util/perl/TLSProxy/Record.pm index ad942d4251deb7..786ba0c72b66c3 100644 --- a/deps/openssl/openssl/util/perl/TLSProxy/Record.pm +++ b/deps/openssl/openssl/util/perl/TLSProxy/Record.pm @@ -178,7 +178,7 @@ sub new $decrypt_len, $data, $decrypt_data) = @_; - + my $self = { flight => $flight, content_type => $content_type, diff --git a/deps/openssl/openssl/util/perl/TLSProxy/ServerHello.pm b/deps/openssl/openssl/util/perl/TLSProxy/ServerHello.pm index fd3fba5694559a..79a8be9a895e79 100644 --- a/deps/openssl/openssl/util/perl/TLSProxy/ServerHello.pm +++ b/deps/openssl/openssl/util/perl/TLSProxy/ServerHello.pm @@ -20,7 +20,7 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = $class->SUPER::new( $server, TLSProxy::Message::MT_SERVER_HELLO, @@ -66,7 +66,7 @@ sub parse my $extension_data; if ($extensions_len != 0) { $extension_data = substr($self->data, $ptr); - + if (length($extension_data) != $extensions_len) { die "Invalid extension length\n"; } diff --git a/deps/openssl/openssl/util/perl/TLSProxy/ServerKeyExchange.pm b/deps/openssl/openssl/util/perl/TLSProxy/ServerKeyExchange.pm index c011d2707a9fa7..6e5b4cdcb42fe5 100644 --- a/deps/openssl/openssl/util/perl/TLSProxy/ServerKeyExchange.pm +++ b/deps/openssl/openssl/util/perl/TLSProxy/ServerKeyExchange.pm @@ -20,7 +20,7 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = $class->SUPER::new( $server, TLSProxy::Message::MT_SERVER_KEY_EXCHANGE, diff --git a/deps/openssl/openssl/util/perl/with_fallback.pm b/deps/openssl/openssl/util/perl/with_fallback.pm index 2af1d5fbd50d08..242365033fc4c0 100644 --- a/deps/openssl/openssl/util/perl/with_fallback.pm +++ b/deps/openssl/openssl/util/perl/with_fallback.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -8,15 +8,17 @@ package with_fallback; sub import { + shift; + use File::Basename; use File::Spec::Functions; foreach (@_) { - eval "require $_"; + eval "use $_"; if ($@) { unshift @INC, catdir(dirname(__FILE__), "..", "..", "external", "perl"); my $transfer = "transfer::$_"; - eval "require $transfer"; + eval "use $transfer"; shift @INC; warn $@ if $@; } diff --git a/deps/openssl/openssl/util/process_docs.pl b/deps/openssl/openssl/util/process_docs.pl index e084df78a571de..f7daef0dd89617 100755 --- a/deps/openssl/openssl/util/process_docs.pl +++ b/deps/openssl/openssl/util/process_docs.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -101,7 +101,7 @@ my $suffix = { man => ".$podinfo{section}".($options{suffix} // ""), html => ".html" } -> {$options{type}}; my $generate = { man => "pod2man --name=$name --section=$podinfo{section} --center=OpenSSL --release=$config{version} \"$podpath\"", - html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=apps:crypto:ssl \"--infile=$podpath\" \"--title=$podname\"" + html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=apps:crypto:ssl \"--infile=$podpath\" \"--title=$podname\" --quiet" } -> {$options{type}}; my $output_dir = catdir($options{destdir}, "man$podinfo{section}"); my $output_file = $podname . $suffix; @@ -115,6 +115,32 @@ @output = `$generate`; map { s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html|g; } @output if $options{type} eq "html"; + if ($options{type} eq "man") { + # Because some *roff parsers are more strict than others, + # multiple lines in the NAME section must be merged into + # one. + my $in_name = 0; + my $name_line = ""; + my @newoutput = (); + foreach (@output) { + if ($in_name) { + if (/^\.SH "/) { + $in_name = 0; + push @newoutput, $name_line."\n"; + } else { + chomp (my $x = $_); + $name_line .= " " if $name_line; + $name_line .= $x; + next; + } + } + if (/^\.SH +"NAME" *$/) { + $in_name = 1; + } + push @newoutput, $_; + } + @output = @newoutput; + } } print STDERR "DEBUG: Done processing\n" if $options{debug}; @@ -238,7 +264,7 @@ =head1 OPTIONS =head1 COPYRIGHT -Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy From 473996c90f625b4ed6f8f87adfcadd0ac8ea6db3 Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Wed, 7 Mar 2018 23:52:52 +0900 Subject: [PATCH 133/159] deps: add s390 asm rules for OpenSSL-1.1.0 This is a floating patch against OpenSSL-1.1.0 to generate asm files with Makefile rules and it is to be submitted to the upstream. Fixes: https://github.com/nodejs/node/issues/4270 PR-URL: https://github.com/nodejs/node/pull/19794 Reviewed-By: James M Snell Reviewed-By: Rod Vagg Reviewed-By: Michael Dawson --- deps/openssl/openssl/crypto/aes/build.info | 3 +++ deps/openssl/openssl/crypto/chacha/build.info | 2 ++ deps/openssl/openssl/crypto/modes/build.info | 2 ++ deps/openssl/openssl/crypto/poly1305/build.info | 2 ++ deps/openssl/openssl/crypto/rc4/build.info | 2 ++ deps/openssl/openssl/crypto/sha/build.info | 7 +++++++ 6 files changed, 18 insertions(+) diff --git a/deps/openssl/openssl/crypto/aes/build.info b/deps/openssl/openssl/crypto/aes/build.info index cf6cb5ec25bacf..5240b9c87fa8cc 100644 --- a/deps/openssl/openssl/crypto/aes/build.info +++ b/deps/openssl/openssl/crypto/aes/build.info @@ -45,6 +45,9 @@ INCLUDE[aes-armv4.o]=.. GENERATE[bsaes-armv7.S]=asm/bsaes-armv7.pl $(PERLASM_SCHEME) INCLUDE[bsaes-armv7.o]=.. +GENERATE[aes-s390x.S]=asm/aes-s390x.pl $(PERLASM_SCHEME) +INCLUDE[aes-s390x.o]=.. + BEGINRAW[Makefile] ##### AES assembler implementations diff --git a/deps/openssl/openssl/crypto/chacha/build.info b/deps/openssl/openssl/crypto/chacha/build.info index f99114c135b3d8..ed1e01ae30f0db 100644 --- a/deps/openssl/openssl/crypto/chacha/build.info +++ b/deps/openssl/openssl/crypto/chacha/build.info @@ -8,6 +8,8 @@ GENERATE[chacha-armv4.S]=asm/chacha-armv4.pl $(PERLASM_SCHEME) INCLUDE[chacha-armv4.o]=.. GENERATE[chacha-armv8.S]=asm/chacha-armv8.pl $(PERLASM_SCHEME) INCLUDE[chacha-armv8.o]=.. +GENERATE[chacha-s390x.S]=asm/chacha-s390x.pl $(PERLASM_SCHEME) +INCLUDE[chacha-s390x.o]=.. BEGINRAW[Makefile(unix)] ##### CHACHA assembler implementations diff --git a/deps/openssl/openssl/crypto/modes/build.info b/deps/openssl/openssl/crypto/modes/build.info index 38195c44a56570..b794c5041a87e7 100644 --- a/deps/openssl/openssl/crypto/modes/build.info +++ b/deps/openssl/openssl/crypto/modes/build.info @@ -19,6 +19,8 @@ GENERATE[ghash-armv4.S]=asm/ghash-armv4.pl $(PERLASM_SCHEME) INCLUDE[ghash-armv4.o]=.. GENERATE[ghashv8-armx.S]=asm/ghashv8-armx.pl $(PERLASM_SCHEME) INCLUDE[ghashv8-armx.o]=.. +GENERATE[ghash-s390x.S]=asm/ghash-s390x.pl $(PERLASM_SCHEME) +INCLUDE[ghash-s390x.o]=.. BEGINRAW[Makefile] # GNU make "catch all" diff --git a/deps/openssl/openssl/crypto/poly1305/build.info b/deps/openssl/openssl/crypto/poly1305/build.info index d575f5a63e1c8d..f90ce2b9500a73 100644 --- a/deps/openssl/openssl/crypto/poly1305/build.info +++ b/deps/openssl/openssl/crypto/poly1305/build.info @@ -13,6 +13,8 @@ INCLUDE[poly1305-armv4.o]=.. GENERATE[poly1305-armv8.S]=asm/poly1305-armv8.pl $(PERLASM_SCHEME) INCLUDE[poly1305-armv8.o]=.. GENERATE[poly1305-mips.S]=asm/poly1305-mips.pl $(PERLASM_SCHEME) +GENERATE[poly1305-s390x.S]=asm/poly1305-s390x.pl $(PERLASM_SCHEME) +INCLUDE[poly1305-s390x.o]=.. BEGINRAW[Makefile(unix)] {- $builddir -}/poly1305-%.S: {- $sourcedir -}/asm/poly1305-%.pl diff --git a/deps/openssl/openssl/crypto/rc4/build.info b/deps/openssl/openssl/crypto/rc4/build.info index 8659526d7184f8..000fd6bc0d8ac5 100644 --- a/deps/openssl/openssl/crypto/rc4/build.info +++ b/deps/openssl/openssl/crypto/rc4/build.info @@ -10,6 +10,8 @@ GENERATE[rc4-md5-x86_64.s]=asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) GENERATE[rc4-parisc.s]=asm/rc4-parisc.pl $(PERLASM_SCHEME) +GENERATE[rc4-s390x.s]=asm/rc4-s390x.pl $(PERLASM_SCHEME) + BEGINRAW[makefile(windows)] {- $builddir -}\rc4-ia64.asm: {- $sourcedir -}\asm\rc4-ia64.pl $(PERL) {- $sourcedir -}\asm\rc4-ia64.pl $@.S diff --git a/deps/openssl/openssl/crypto/sha/build.info b/deps/openssl/openssl/crypto/sha/build.info index 5843e508941d9e..2a00988786db47 100644 --- a/deps/openssl/openssl/crypto/sha/build.info +++ b/deps/openssl/openssl/crypto/sha/build.info @@ -56,6 +56,13 @@ INCLUDE[sha256-armv8.o]=.. GENERATE[sha512-armv8.S]=asm/sha512-armv8.pl $(PERLASM_SCHEME) INCLUDE[sha512-armv8.o]=.. +GENERATE[sha1-s390x.S]=asm/sha1-s390x.pl $(PERLASM_SCHEME) +INCLUDE[sha1-s390x.o]=.. +GENERATE[sha256-s390x.S]=asm/sha512-s390x.pl $(PERLASM_SCHEME) +INCLUDE[sha256-s390x.o]=.. +GENERATE[sha512-s390x.S]=asm/sha512-s390x.pl $(PERLASM_SCHEME) +INCLUDE[sha512-s390x.o]=.. + BEGINRAW[Makefile(unix)] ##### SHA assembler implementations From a07ccaeb19285653aa4295c20cd8e50ed1d033dc Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Tue, 14 Aug 2018 23:14:19 +0900 Subject: [PATCH 134/159] deps: update archs files for OpenSSL-1.1.0i `cd deps/openssl/config; make` updates all archs dependant files. PR-URL: https://github.com/nodejs/node/pull/22318 Reviewed-By: James M Snell Reviewed-By: Rod Vagg --- .../config/archs/BSD-x86_64/asm/configdata.pm | 111 ++++- .../BSD-x86_64/asm/crypto/aes/aes-x86_64.s | 2 +- .../asm/crypto/aes/aesni-mb-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha1-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha256-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/aes/aesni-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/bn/rsaz-avx2.s | 2 +- .../BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s | 2 +- .../BSD-x86_64/asm/crypto/bn/x86_64-mont.s | 81 ++-- .../BSD-x86_64/asm/crypto/bn/x86_64-mont5.s | 19 +- .../archs/BSD-x86_64/asm/crypto/buildinf.h | 2 +- .../asm/crypto/camellia/cmll-x86_64.s | 2 +- .../asm/crypto/chacha/chacha-x86_64.s | 2 +- .../asm/crypto/ec/ecp_nistz256-x86_64.s | 4 +- .../BSD-x86_64/asm/crypto/md5/md5-x86_64.s | 2 +- .../asm/crypto/modes/aesni-gcm-x86_64.s | 2 +- .../asm/crypto/modes/ghash-x86_64.s | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.s | 2 +- .../asm/crypto/rc4/rc4-md5-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/rc4/rc4-x86_64.s | 2 +- .../asm/crypto/sha/sha1-mb-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/sha/sha1-x86_64.s | 2 +- .../asm/crypto/sha/sha256-mb-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/sha/sha256-x86_64.s | 2 +- .../BSD-x86_64/asm/crypto/sha/sha512-x86_64.s | 2 +- .../asm/crypto/whrlpool/wp-x86_64.s | 2 +- .../archs/BSD-x86_64/asm/crypto/x86_64cpuid.s | 2 +- .../BSD-x86_64/asm/engines/e_padlock-x86_64.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/BSD-x86_64/asm/openssl.gypi | 2 + .../archs/BSD-x86_64/no-asm/configdata.pm | 109 ++++- .../archs/BSD-x86_64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/BSD-x86_64/no-asm/openssl.gypi | 2 + .../config/archs/VC-WIN32/asm/configdata.pm | 109 ++++- .../archs/VC-WIN32/asm/crypto/bf/bf-586.asm | 70 +-- .../archs/VC-WIN32/asm/crypto/bn/bn-586.asm | 30 +- .../archs/VC-WIN32/asm/crypto/bn/x86-mont.asm | 16 +- .../archs/VC-WIN32/asm/crypto/buildinf.h | 2 +- .../VC-WIN32/asm/crypto/des/crypt586.asm | 46 +- .../archs/VC-WIN32/asm/crypto/des/des-586.asm | 86 ++-- .../asm/crypto/ec/ecp_nistz256-x86.asm | 2 +- .../archs/VC-WIN32/asm/crypto/md5/md5-586.asm | 8 +- .../VC-WIN32/asm/crypto/ripemd/rmd-586.asm | 2 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/VC-WIN32/asm/openssl.gypi | 2 + .../archs/VC-WIN32/no-asm/configdata.pm | 111 ++++- .../archs/VC-WIN32/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../config/archs/VC-WIN32/no-asm/openssl.gypi | 2 + .../config/archs/VC-WIN64A/asm/configdata.pm | 109 ++++- .../VC-WIN64A/asm/crypto/bn/x86_64-mont.asm | 79 ++-- .../VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm | 17 +- .../archs/VC-WIN64A/asm/crypto/buildinf.h | 2 +- .../VC-WIN64A/asm/crypto/x86_64cpuid.asm | 1 + .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/VC-WIN64A/asm/openssl.gypi | 2 + .../archs/VC-WIN64A/no-asm/configdata.pm | 111 ++++- .../archs/VC-WIN64A/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/VC-WIN64A/no-asm/openssl.gypi | 2 + .../config/archs/aix-gcc/asm/configdata.pm | 137 ++++-- .../archs/aix-gcc/asm/crypto/aes/aes-ppc.s | 20 +- .../archs/aix-gcc/asm/crypto/aes/aesp8-ppc.s | 64 +-- .../archs/aix-gcc/asm/crypto/aes/vpaes-ppc.s | 35 +- .../archs/aix-gcc/asm/crypto/bn/bn-ppc.s | 22 +- .../archs/aix-gcc/asm/crypto/bn/ppc-mont.s | 15 +- .../archs/aix-gcc/asm/crypto/bn/ppc64-mont.s | 23 +- .../archs/aix-gcc/asm/crypto/buildinf.h | 2 +- .../aix-gcc/asm/crypto/chacha/chacha-ppc.s | 14 +- .../aix-gcc/asm/crypto/modes/ghashp8-ppc.s | 8 +- .../asm/crypto/poly1305/poly1305-ppc.s | 6 +- .../asm/crypto/poly1305/poly1305-ppcfp.s | 8 +- .../archs/aix-gcc/asm/crypto/ppccpuid.s | 27 +- .../archs/aix-gcc/asm/crypto/sha/sha1-ppc.s | 4 +- .../archs/aix-gcc/asm/crypto/sha/sha256-ppc.s | 6 +- .../aix-gcc/asm/crypto/sha/sha256p8-ppc.s | 4 +- .../archs/aix-gcc/asm/crypto/sha/sha512-ppc.s | 6 +- .../aix-gcc/asm/crypto/sha/sha512p8-ppc.s | 4 +- .../aix-gcc/asm/include/openssl/opensslconf.h | 18 +- .../config/archs/aix-gcc/asm/openssl.gypi | 2 + .../config/archs/aix-gcc/no-asm/configdata.pm | 109 ++++- .../archs/aix-gcc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../config/archs/aix-gcc/no-asm/openssl.gypi | 2 + .../config/archs/aix64-gcc/asm/configdata.pm | 109 ++++- .../archs/aix64-gcc/asm/crypto/aes/aes-ppc.s | 20 +- .../aix64-gcc/asm/crypto/aes/aesp8-ppc.s | 64 +-- .../aix64-gcc/asm/crypto/aes/vpaes-ppc.s | 35 +- .../archs/aix64-gcc/asm/crypto/bn/bn-ppc.s | 22 +- .../archs/aix64-gcc/asm/crypto/bn/ppc-mont.s | 13 +- .../aix64-gcc/asm/crypto/bn/ppc64-mont.s | 18 +- .../archs/aix64-gcc/asm/crypto/buildinf.h | 2 +- .../aix64-gcc/asm/crypto/chacha/chacha-ppc.s | 14 +- .../aix64-gcc/asm/crypto/modes/ghashp8-ppc.s | 8 +- .../asm/crypto/poly1305/poly1305-ppc.s | 6 +- .../asm/crypto/poly1305/poly1305-ppcfp.s | 8 +- .../archs/aix64-gcc/asm/crypto/ppccpuid.s | 27 +- .../archs/aix64-gcc/asm/crypto/sha/sha1-ppc.s | 4 +- .../aix64-gcc/asm/crypto/sha/sha256-ppc.s | 6 +- .../aix64-gcc/asm/crypto/sha/sha256p8-ppc.s | 4 +- .../aix64-gcc/asm/crypto/sha/sha512-ppc.s | 6 +- .../aix64-gcc/asm/crypto/sha/sha512p8-ppc.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/aix64-gcc/asm/openssl.gypi | 2 + .../archs/aix64-gcc/no-asm/configdata.pm | 109 ++++- .../archs/aix64-gcc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/aix64-gcc/no-asm/openssl.gypi | 2 + .../archs/darwin-i386-cc/asm/configdata.pm | 109 ++++- .../darwin-i386-cc/asm/crypto/bf/bf-586.s | 78 ++-- .../darwin-i386-cc/asm/crypto/bn/bn-586.s | 242 +++++----- .../darwin-i386-cc/asm/crypto/bn/co-586.s | 432 +++++++++--------- .../darwin-i386-cc/asm/crypto/bn/x86-mont.s | 16 +- .../darwin-i386-cc/asm/crypto/buildinf.h | 2 +- .../darwin-i386-cc/asm/crypto/des/crypt586.s | 36 +- .../darwin-i386-cc/asm/crypto/des/des-586.s | 104 ++--- .../asm/crypto/ec/ecp_nistz256-x86.s | 2 +- .../darwin-i386-cc/asm/crypto/md5/md5-586.s | 136 +++--- .../asm/crypto/ripemd/rmd-586.s | 320 ++++++------- .../darwin-i386-cc/asm/crypto/sha/sha1-586.s | 160 +++---- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/darwin-i386-cc/asm/openssl.gypi | 2 + .../archs/darwin-i386-cc/no-asm/configdata.pm | 109 ++++- .../darwin-i386-cc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/darwin-i386-cc/no-asm/openssl.gypi | 2 + .../darwin64-x86_64-cc/asm/configdata.pm | 111 ++++- .../asm/crypto/aes/aes-x86_64.s | 2 +- .../asm/crypto/aes/aesni-mb-x86_64.s | 3 +- .../asm/crypto/aes/aesni-sha1-x86_64.s | 3 +- .../asm/crypto/aes/aesni-sha256-x86_64.s | 3 +- .../asm/crypto/aes/aesni-x86_64.s | 2 +- .../asm/crypto/aes/bsaes-x86_64.s | 3 +- .../asm/crypto/aes/vpaes-x86_64.s | 3 +- .../asm/crypto/bn/rsaz-avx2.s | 2 +- .../asm/crypto/bn/rsaz-x86_64.s | 2 +- .../asm/crypto/bn/x86_64-gf2m.s | 2 +- .../asm/crypto/bn/x86_64-mont.s | 81 ++-- .../asm/crypto/bn/x86_64-mont5.s | 19 +- .../darwin64-x86_64-cc/asm/crypto/buildinf.h | 2 +- .../asm/crypto/camellia/cmll-x86_64.s | 2 +- .../asm/crypto/chacha/chacha-x86_64.s | 3 +- .../asm/crypto/ec/ecp_nistz256-x86_64.s | 5 +- .../asm/crypto/md5/md5-x86_64.s | 3 +- .../asm/crypto/modes/aesni-gcm-x86_64.s | 2 +- .../asm/crypto/modes/ghash-x86_64.s | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.s | 2 +- .../asm/crypto/rc4/rc4-md5-x86_64.s | 3 +- .../asm/crypto/rc4/rc4-x86_64.s | 3 +- .../asm/crypto/sha/sha1-mb-x86_64.s | 2 +- .../asm/crypto/sha/sha1-x86_64.s | 2 +- .../asm/crypto/sha/sha256-mb-x86_64.s | 2 +- .../asm/crypto/sha/sha256-x86_64.s | 3 +- .../asm/crypto/sha/sha512-x86_64.s | 3 +- .../asm/crypto/whrlpool/wp-x86_64.s | 2 +- .../asm/crypto/x86_64cpuid.s | 3 +- .../asm/engines/e_padlock-x86_64.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/darwin64-x86_64-cc/asm/openssl.gypi | 2 + .../darwin64-x86_64-cc/no-asm/configdata.pm | 111 ++++- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../darwin64-x86_64-cc/no-asm/openssl.gypi | 2 + .../archs/linux-aarch64/asm/configdata.pm | 109 ++++- .../archs/linux-aarch64/asm/crypto/buildinf.h | 2 +- .../asm/crypto/ec/ecp_nistz256-armv8.S | 18 +- .../asm/crypto/modes/ghashv8-armx.S | 2 + .../asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-aarch64/asm/openssl.gypi | 2 + .../archs/linux-aarch64/no-asm/configdata.pm | 111 ++++- .../linux-aarch64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-aarch64/no-asm/openssl.gypi | 2 + .../archs/linux-armv4/asm/configdata.pm | 111 ++++- .../archs/linux-armv4/asm/crypto/armv4cpuid.S | 2 +- .../linux-armv4/asm/crypto/bn/armv4-mont.S | 15 +- .../archs/linux-armv4/asm/crypto/buildinf.h | 2 +- .../asm/crypto/ec/ecp_nistz256-armv4.S | 10 +- .../asm/crypto/modes/ghash-armv4.S | 7 +- .../asm/crypto/modes/ghashv8-armx.S | 2 + .../asm/crypto/poly1305/poly1305-armv4.S | 3 +- .../linux-armv4/asm/crypto/sha/sha256-armv4.S | 4 +- .../linux-armv4/asm/crypto/sha/sha512-armv4.S | 8 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/linux-armv4/asm/openssl.gypi | 2 + .../archs/linux-armv4/no-asm/configdata.pm | 111 ++++- .../linux-armv4/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-armv4/no-asm/openssl.gypi | 2 + .../config/archs/linux-elf/asm/configdata.pm | 109 ++++- .../archs/linux-elf/asm/crypto/bn/x86-mont.s | 16 +- .../archs/linux-elf/asm/crypto/buildinf.h | 2 +- .../asm/crypto/ec/ecp_nistz256-x86.s | 2 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/linux-elf/asm/openssl.gypi | 2 + .../archs/linux-elf/no-asm/configdata.pm | 111 ++++- .../archs/linux-elf/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-elf/no-asm/openssl.gypi | 2 + .../config/archs/linux-ppc/asm/configdata.pm | 111 ++++- .../archs/linux-ppc/asm/crypto/aes/aes-ppc.s | 20 +- .../linux-ppc/asm/crypto/aes/aesp8-ppc.s | 64 +-- .../linux-ppc/asm/crypto/aes/vpaes-ppc.s | 34 +- .../archs/linux-ppc/asm/crypto/bn/bn-ppc.s | 22 +- .../archs/linux-ppc/asm/crypto/bn/ppc-mont.s | 15 +- .../linux-ppc/asm/crypto/bn/ppc64-mont.s | 23 +- .../archs/linux-ppc/asm/crypto/buildinf.h | 2 +- .../linux-ppc/asm/crypto/chacha/chacha-ppc.s | 14 +- .../linux-ppc/asm/crypto/modes/ghashp8-ppc.s | 8 +- .../asm/crypto/poly1305/poly1305-ppc.s | 6 +- .../asm/crypto/poly1305/poly1305-ppcfp.s | 8 +- .../archs/linux-ppc/asm/crypto/ppccpuid.s | 26 +- .../archs/linux-ppc/asm/crypto/sha/sha1-ppc.s | 4 +- .../linux-ppc/asm/crypto/sha/sha256-ppc.s | 6 +- .../linux-ppc/asm/crypto/sha/sha256p8-ppc.s | 4 +- .../linux-ppc/asm/crypto/sha/sha512-ppc.s | 6 +- .../linux-ppc/asm/crypto/sha/sha512p8-ppc.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/linux-ppc/asm/openssl.gypi | 2 + .../archs/linux-ppc/no-asm/configdata.pm | 109 ++++- .../archs/linux-ppc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-ppc/no-asm/openssl.gypi | 2 + .../archs/linux-ppc64/asm/configdata.pm | 111 ++++- .../linux-ppc64/asm/crypto/aes/aes-ppc.s | 20 +- .../linux-ppc64/asm/crypto/aes/aesp8-ppc.s | 64 +-- .../linux-ppc64/asm/crypto/aes/vpaes-ppc.s | 34 +- .../archs/linux-ppc64/asm/crypto/bn/bn-ppc.s | 22 +- .../linux-ppc64/asm/crypto/bn/ppc-mont.s | 13 +- .../linux-ppc64/asm/crypto/bn/ppc64-mont.s | 18 +- .../archs/linux-ppc64/asm/crypto/buildinf.h | 2 +- .../asm/crypto/chacha/chacha-ppc.s | 14 +- .../asm/crypto/modes/ghashp8-ppc.s | 8 +- .../asm/crypto/poly1305/poly1305-ppc.s | 6 +- .../asm/crypto/poly1305/poly1305-ppcfp.s | 8 +- .../archs/linux-ppc64/asm/crypto/ppccpuid.s | 26 +- .../linux-ppc64/asm/crypto/sha/sha1-ppc.s | 4 +- .../linux-ppc64/asm/crypto/sha/sha256-ppc.s | 6 +- .../linux-ppc64/asm/crypto/sha/sha256p8-ppc.s | 4 +- .../linux-ppc64/asm/crypto/sha/sha512-ppc.s | 6 +- .../linux-ppc64/asm/crypto/sha/sha512p8-ppc.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/linux-ppc64/asm/openssl.gypi | 2 + .../archs/linux-ppc64/no-asm/configdata.pm | 111 ++++- .../linux-ppc64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-ppc64/no-asm/openssl.gypi | 2 + .../archs/linux-ppc64le/asm/configdata.pm | 111 ++++- .../linux-ppc64le/asm/crypto/aes/aes-ppc.s | 20 +- .../linux-ppc64le/asm/crypto/aes/aesp8-ppc.s | 58 +-- .../linux-ppc64le/asm/crypto/aes/vpaes-ppc.s | 34 +- .../linux-ppc64le/asm/crypto/bn/bn-ppc.s | 22 +- .../linux-ppc64le/asm/crypto/bn/ppc-mont.s | 13 +- .../linux-ppc64le/asm/crypto/bn/ppc64-mont.s | 18 +- .../archs/linux-ppc64le/asm/crypto/buildinf.h | 2 +- .../asm/crypto/chacha/chacha-ppc.s | 14 +- .../asm/crypto/modes/ghashp8-ppc.s | 8 +- .../asm/crypto/poly1305/poly1305-ppc.s | 6 +- .../asm/crypto/poly1305/poly1305-ppcfp.s | 8 +- .../archs/linux-ppc64le/asm/crypto/ppccpuid.s | 26 +- .../linux-ppc64le/asm/crypto/sha/sha1-ppc.s | 4 +- .../linux-ppc64le/asm/crypto/sha/sha256-ppc.s | 6 +- .../asm/crypto/sha/sha256p8-ppc.s | 4 +- .../linux-ppc64le/asm/crypto/sha/sha512-ppc.s | 6 +- .../asm/crypto/sha/sha512p8-ppc.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-ppc64le/asm/openssl.gypi | 2 + .../archs/linux-ppc64le/no-asm/configdata.pm | 111 ++++- .../linux-ppc64le/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-ppc64le/no-asm/openssl.gypi | 2 + .../config/archs/linux-x32/asm/configdata.pm | 111 ++++- .../linux-x32/asm/crypto/aes/aes-x86_64.s | 2 +- .../asm/crypto/aes/aesni-mb-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha1-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha256-x86_64.s | 2 +- .../linux-x32/asm/crypto/aes/aesni-x86_64.s | 2 +- .../linux-x32/asm/crypto/aes/bsaes-x86_64.s | 2 +- .../linux-x32/asm/crypto/aes/vpaes-x86_64.s | 2 +- .../archs/linux-x32/asm/crypto/bn/rsaz-avx2.s | 2 +- .../linux-x32/asm/crypto/bn/rsaz-x86_64.s | 2 +- .../linux-x32/asm/crypto/bn/x86_64-gf2m.s | 2 +- .../linux-x32/asm/crypto/bn/x86_64-mont.s | 81 ++-- .../linux-x32/asm/crypto/bn/x86_64-mont5.s | 19 +- .../archs/linux-x32/asm/crypto/buildinf.h | 2 +- .../asm/crypto/camellia/cmll-x86_64.s | 2 +- .../asm/crypto/chacha/chacha-x86_64.s | 2 +- .../asm/crypto/ec/ecp_nistz256-x86_64.s | 4 +- .../linux-x32/asm/crypto/md5/md5-x86_64.s | 2 +- .../asm/crypto/modes/aesni-gcm-x86_64.s | 2 +- .../linux-x32/asm/crypto/modes/ghash-x86_64.s | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.s | 2 +- .../linux-x32/asm/crypto/rc4/rc4-md5-x86_64.s | 2 +- .../linux-x32/asm/crypto/rc4/rc4-x86_64.s | 2 +- .../linux-x32/asm/crypto/sha/sha1-mb-x86_64.s | 2 +- .../linux-x32/asm/crypto/sha/sha1-x86_64.s | 2 +- .../asm/crypto/sha/sha256-mb-x86_64.s | 2 +- .../linux-x32/asm/crypto/sha/sha256-x86_64.s | 2 +- .../linux-x32/asm/crypto/sha/sha512-x86_64.s | 2 +- .../linux-x32/asm/crypto/whrlpool/wp-x86_64.s | 2 +- .../archs/linux-x32/asm/crypto/x86_64cpuid.s | 2 +- .../linux-x32/asm/engines/e_padlock-x86_64.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../config/archs/linux-x32/asm/openssl.gypi | 2 + .../archs/linux-x32/no-asm/configdata.pm | 111 ++++- .../archs/linux-x32/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-x32/no-asm/openssl.gypi | 2 + .../archs/linux-x86_64/asm/configdata.pm | 111 ++++- .../linux-x86_64/asm/crypto/aes/aes-x86_64.s | 2 +- .../asm/crypto/aes/aesni-mb-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha1-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha256-x86_64.s | 2 +- .../asm/crypto/aes/aesni-x86_64.s | 2 +- .../asm/crypto/aes/bsaes-x86_64.s | 2 +- .../asm/crypto/aes/vpaes-x86_64.s | 2 +- .../linux-x86_64/asm/crypto/bn/rsaz-avx2.s | 2 +- .../linux-x86_64/asm/crypto/bn/rsaz-x86_64.s | 2 +- .../linux-x86_64/asm/crypto/bn/x86_64-gf2m.s | 2 +- .../linux-x86_64/asm/crypto/bn/x86_64-mont.s | 81 ++-- .../linux-x86_64/asm/crypto/bn/x86_64-mont5.s | 19 +- .../archs/linux-x86_64/asm/crypto/buildinf.h | 2 +- .../asm/crypto/camellia/cmll-x86_64.s | 2 +- .../asm/crypto/chacha/chacha-x86_64.s | 2 +- .../asm/crypto/ec/ecp_nistz256-x86_64.s | 4 +- .../linux-x86_64/asm/crypto/md5/md5-x86_64.s | 2 +- .../asm/crypto/modes/aesni-gcm-x86_64.s | 2 +- .../asm/crypto/modes/ghash-x86_64.s | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.s | 2 +- .../asm/crypto/rc4/rc4-md5-x86_64.s | 2 +- .../linux-x86_64/asm/crypto/rc4/rc4-x86_64.s | 2 +- .../asm/crypto/sha/sha1-mb-x86_64.s | 2 +- .../linux-x86_64/asm/crypto/sha/sha1-x86_64.s | 2 +- .../asm/crypto/sha/sha256-mb-x86_64.s | 2 +- .../asm/crypto/sha/sha256-x86_64.s | 2 +- .../asm/crypto/sha/sha512-x86_64.s | 2 +- .../asm/crypto/whrlpool/wp-x86_64.s | 2 +- .../linux-x86_64/asm/crypto/x86_64cpuid.s | 2 +- .../asm/engines/e_padlock-x86_64.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-x86_64/asm/openssl.gypi | 2 + .../archs/linux-x86_64/no-asm/configdata.pm | 111 ++++- .../linux-x86_64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux-x86_64/no-asm/openssl.gypi | 2 + .../archs/linux32-s390x/asm/configdata.pm | 109 ++++- .../linux32-s390x/asm/crypto/aes/aes-s390x.S | 16 +- .../linux32-s390x/asm/crypto/bn/s390x-mont.S | 14 +- .../archs/linux32-s390x/asm/crypto/buildinf.h | 2 +- .../asm/crypto/modes/ghash-s390x.S | 2 +- .../asm/crypto/sha/sha256-s390x.S | 2 +- .../asm/crypto/sha/sha512-s390x.S | 2 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/linux32-s390x/asm/openssl.gypi | 2 + .../archs/linux32-s390x/no-asm/configdata.pm | 111 ++++- .../linux32-s390x/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux32-s390x/no-asm/openssl.gypi | 2 + .../archs/linux64-s390x/asm/configdata.pm | 111 ++++- .../linux64-s390x/asm/crypto/aes/aes-s390x.S | 16 +- .../linux64-s390x/asm/crypto/bn/s390x-gf2m.s | 2 +- .../linux64-s390x/asm/crypto/bn/s390x-mont.S | 40 +- .../archs/linux64-s390x/asm/crypto/buildinf.h | 2 +- .../asm/crypto/modes/ghash-s390x.S | 2 +- .../asm/crypto/sha/sha256-s390x.S | 2 +- .../asm/crypto/sha/sha512-s390x.S | 2 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/linux64-s390x/asm/openssl.gypi | 2 + .../archs/linux64-s390x/no-asm/configdata.pm | 109 ++++- .../linux64-s390x/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/linux64-s390x/no-asm/openssl.gypi | 2 + .../archs/solaris-x86-gcc/asm/configdata.pm | 111 ++++- .../solaris-x86-gcc/asm/crypto/bn/x86-mont.s | 16 +- .../solaris-x86-gcc/asm/crypto/buildinf.h | 2 +- .../asm/crypto/ec/ecp_nistz256-x86.s | 2 +- .../asm/include/openssl/opensslconf.h | 18 +- .../archs/solaris-x86-gcc/asm/openssl.gypi | 2 + .../solaris-x86-gcc/no-asm/configdata.pm | 109 ++++- .../solaris-x86-gcc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../archs/solaris-x86-gcc/no-asm/openssl.gypi | 2 + .../solaris64-x86_64-gcc/asm/configdata.pm | 111 ++++- .../asm/crypto/aes/aes-x86_64.s | 2 +- .../asm/crypto/aes/aesni-mb-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha1-x86_64.s | 2 +- .../asm/crypto/aes/aesni-sha256-x86_64.s | 2 +- .../asm/crypto/aes/aesni-x86_64.s | 2 +- .../asm/crypto/aes/bsaes-x86_64.s | 2 +- .../asm/crypto/aes/vpaes-x86_64.s | 2 +- .../asm/crypto/bn/rsaz-avx2.s | 2 +- .../asm/crypto/bn/rsaz-x86_64.s | 2 +- .../asm/crypto/bn/x86_64-gf2m.s | 2 +- .../asm/crypto/bn/x86_64-mont.s | 81 ++-- .../asm/crypto/bn/x86_64-mont5.s | 19 +- .../asm/crypto/buildinf.h | 2 +- .../asm/crypto/camellia/cmll-x86_64.s | 2 +- .../asm/crypto/chacha/chacha-x86_64.s | 2 +- .../asm/crypto/ec/ecp_nistz256-x86_64.s | 4 +- .../asm/crypto/md5/md5-x86_64.s | 2 +- .../asm/crypto/modes/aesni-gcm-x86_64.s | 2 +- .../asm/crypto/modes/ghash-x86_64.s | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.s | 2 +- .../asm/crypto/rc4/rc4-md5-x86_64.s | 2 +- .../asm/crypto/rc4/rc4-x86_64.s | 2 +- .../asm/crypto/sha/sha1-mb-x86_64.s | 2 +- .../asm/crypto/sha/sha1-x86_64.s | 2 +- .../asm/crypto/sha/sha256-mb-x86_64.s | 2 +- .../asm/crypto/sha/sha256-x86_64.s | 2 +- .../asm/crypto/sha/sha512-x86_64.s | 2 +- .../asm/crypto/whrlpool/wp-x86_64.s | 2 +- .../asm/crypto/x86_64cpuid.s | 2 +- .../asm/engines/e_padlock-x86_64.s | 4 +- .../asm/include/openssl/opensslconf.h | 18 +- .../solaris64-x86_64-gcc/asm/openssl.gypi | 2 + .../solaris64-x86_64-gcc/no-asm/configdata.pm | 111 ++++- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslconf.h | 18 +- .../solaris64-x86_64-gcc/no-asm/openssl.gypi | 2 + deps/openssl/openssl/.gitignore | 175 ------- .../openssl/crypto/include/internal/bn_conf.h | 1 + .../crypto/include/internal/dso_conf.h | 1 + .../openssl/include/openssl/opensslconf.h | 1 + 427 files changed, 6794 insertions(+), 2626 deletions(-) delete mode 100644 deps/openssl/openssl/.gitignore create mode 100644 deps/openssl/openssl/crypto/include/internal/bn_conf.h create mode 100644 deps/openssl/openssl/crypto/include/internal/dso_conf.h create mode 100644 deps/openssl/openssl/include/openssl/opensslconf.h diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm index 7ebb1a0112d872..91428207085eb7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "BSD-x86_64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1076,6 +1076,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1242,10 +1246,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3992,6 +4008,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6330,6 +6352,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7329,6 +7357,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7501,8 +7533,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7523,10 +7555,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7682,6 +7727,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7722,7 +7768,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8104,6 +8153,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8224,9 +8276,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9255,6 +9316,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10735,6 +10800,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11272,6 +11341,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11642,6 +11712,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12647,6 +12718,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12996,6 +13076,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13004,6 +13092,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s index aa7a1ea1cf9b99..488ae6d781acb0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _x86_64_AES_encrypt,@function .align 16 _x86_64_AES_encrypt: diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-mb-x86_64.s index d493797832987c..3dcd55d3f59a7b 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s index c7c53e8771e132..ca193ddb9ea491 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha1_enc diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s index 70eed05b00c136..427a1c7d123253 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha256_enc diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s index cd8b00f25983b2..e18f87c4e60cf0 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/aesni-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_encrypt .type aesni_encrypt,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s index 0fd201167f647a..c76c5a8afb4788 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/bsaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s index bf7c2b0b6f6b04..d19329894079d7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/aes/vpaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s index a2cccde63604f4..ee619092c9b7c7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-avx2.s @@ -1,4 +1,4 @@ -.text +.text .globl rsaz_1024_sqr_avx2 .type rsaz_1024_sqr_avx2,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s index b6797a68498e49..795cebe1d743cc 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/rsaz-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s index f4e5337565bbc7..a0b78a0565f75d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-gf2m.s @@ -1,4 +1,4 @@ -.text +.text .type _mul_1x1,@function .align 16 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s index d19d4662b4921b..3a78cd844090ec 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont.s @@ -1,4 +1,4 @@ -.text +.text @@ -197,30 +197,30 @@ bn_mul_mont: xorq %r14,%r14 movq (%rsp),%rax - leaq (%rsp),%rsi movq %r9,%r15 - jmp .Lsub + .align 16 .Lsub: sbbq (%rcx,%r14,8),%rax movq %rax,(%rdi,%r14,8) - movq 8(%rsi,%r14,8),%rax + movq 8(%rsp,%r14,8),%rax leaq 1(%r14),%r14 decq %r15 jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax - movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy @@ -574,10 +574,10 @@ bn_mul4x_mont: cmpq %r9,%r14 jb .Louter4x movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 movq 0(%rsp),%rax - pxor %xmm0,%xmm0 movq 8(%rsp),%rdx - shrq $2,%r9 + shrq $2,%r15 leaq (%rsp),%rsi xorq %r14,%r14 @@ -585,9 +585,7 @@ bn_mul4x_mont: movq 16(%rsi),%rbx movq 24(%rsi),%rbp sbbq 8(%rcx),%rdx - leaq -1(%r9),%r15 - jmp .Lsub4x -.align 16 + .Lsub4x: movq %rax,0(%rdi,%r14,8) movq %rdx,8(%rdi,%r14,8) @@ -614,34 +612,35 @@ bn_mul4x_mont: sbbq $0,%rax movq %rbp,24(%rdi,%r14,8) - xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx - leaq -1(%r9),%r15 - orq %rcx,%rsi - - movdqu (%rsi),%xmm1 - movdqa %xmm0,(%rsp) - movdqu %xmm1,(%rdi) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + jmp .Lcopy4x .align 16 .Lcopy4x: - movdqu 16(%rsi,%r14,1),%xmm2 - movdqu 32(%rsi,%r14,1),%xmm1 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) - movdqa %xmm0,32(%rsp,%r14,1) - movdqu %xmm1,32(%rdi,%r14,1) - leaq 32(%r14),%r14 + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax decq %r15 jnz .Lcopy4x - - shlq $2,%r9 - movdqu 16(%rsi,%r14,1),%xmm2 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) movq 8(%rsp,%r9,8),%rsi movq $1,%rax movq -48(%rsi),%r15 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s index a2fccf088e752f..0dd53512f9c95f 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/bn/x86_64-mont5.s @@ -1,4 +1,4 @@ -.text +.text @@ -393,18 +393,19 @@ bn_mul_mont_gather5: jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h index 42960ff4599afa..a77851f6c8f314 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h @@ -35,4 +35,4 @@ static const char cflags[] = { 'n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Tue Apr 3 00:38:12 2018" +#define DATE "built on: Tue Aug 14 23:13:00 2018" diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s index 1117381f316d9e..1dead91b1752f4 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/camellia/cmll-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl Camellia_EncryptBlock diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s index 044b8f031efa06..a9fed05fd7e327 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/chacha/chacha-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s index ce86d5d969f76b..62a7ac611f3733 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2372,7 +2372,7 @@ ecp_nistz256_precomputed: .long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 .long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd .size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s index 0aa90515d6c91a..0defe666bb75dd 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/md5/md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl md5_block_asm_data_order diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s index d1a1c895a39bd0..21e49925f1ae5d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _aesni_ctr32_ghash_6x,@function .align 32 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s index 10f5987415a1be..0116ef1c94c454 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/modes/ghash-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl gcm_gmult_4bit diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s index 5662696481edf6..8b2e361ea1cd1d 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/poly1305/poly1305-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s index 9c7110f4ef09c3..aab3c6db13d930 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl rc4_md5_enc diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-x86_64.s index bdd0da3bd1389e..781b48b9eb4408 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/rc4/rc4-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl RC4 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s index d2857f3288bf07..d266d776ec6681 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s index 195a148bb9b2a3..dbeebed9a0a8dd 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha1_block_data_order diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s index bd72a459ab249d..f2896b4d6e3367 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s index 23b932e1de4a74..8264a7dbdf1044 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha256_block_data_order diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s index a1021c17a966b8..6f8488a38a9b23 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/sha/sha512-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha512_block_data_order diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s index f83130ea68634b..a4d55b6afc3427 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/whrlpool/wp-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl whirlpool_block .type whirlpool_block,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s index 5a109c6fd915d9..7e1f5e27408c52 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/x86_64cpuid.s @@ -6,7 +6,7 @@ .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,16,4 -.text +.text .globl OPENSSL_atomic_add .type OPENSSL_atomic_add,@function diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/engines/e_padlock-x86_64.s b/deps/openssl/config/archs/BSD-x86_64/asm/engines/e_padlock-x86_64.s index 3e5ab736fd86ba..38c02c188ee110 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/engines/e_padlock-x86_64.s +++ b/deps/openssl/config/archs/BSD-x86_64/asm/engines/e_padlock-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl padlock_capability .type padlock_capability,@function .align 16 @@ -1020,7 +1020,7 @@ padlock_ctr32_encrypt: .size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 -.data +.data .align 8 .Lpadlock_saved_context: .quad 0 diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslconf.h index 9df0f86ed6edef..7dd2101053aa2e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi index 5c26facf11661c..5d135ede2c2fbb 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm index 0815b65b4ce205..85457389c35089 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "BSD-x86_64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1075,6 +1075,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1241,10 +1245,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3931,6 +3947,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6209,6 +6231,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7196,6 +7224,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7390,10 +7422,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7549,6 +7594,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7589,7 +7635,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7971,6 +8020,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8091,9 +8143,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9082,6 +9143,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10522,6 +10587,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11041,6 +11110,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11401,6 +11471,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12404,6 +12475,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12753,6 +12833,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12761,6 +12849,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h index 9bcf65021a97ee..52f1b831f32f29 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Tue Apr 3 00:38:16 2018" +#define DATE "built on: Tue Aug 14 23:13:04 2018" diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h index e20916814d7003..7b122bd86ee597 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi index f54f6ed68e9fde..d603375ad407a1 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm index 77adc3e250c294..d5456721270262 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "VC-WIN32", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1100,6 +1100,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1266,10 +1270,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3974,6 +3990,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6306,6 +6328,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7305,6 +7333,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7499,10 +7531,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7658,6 +7703,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7698,7 +7744,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8037,6 +8086,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8157,9 +8209,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9161,6 +9222,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10637,6 +10702,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11166,6 +11235,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11534,6 +11604,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12539,6 +12610,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12888,6 +12968,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12896,6 +12984,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bf/bf-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bf/bf-586.asm index 1da1e643bb37fb..78d5e7375e0f84 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bf/bf-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bf/bf-586.asm @@ -10,7 +10,7 @@ global _BF_encrypt align 16 _BF_encrypt: L$_BF_encrypt_begin: - ; + ; push ebp push ebx mov ebx,DWORD [12+esp] @@ -24,7 +24,7 @@ L$_BF_encrypt_begin: mov ebx,DWORD [ebp] xor ecx,ecx xor edi,ebx - ; + ; ; Round 0 mov edx,DWORD [4+ebp] mov ebx,edi @@ -44,7 +44,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 1 mov edx,DWORD [8+ebp] mov ebx,esi @@ -64,7 +64,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 2 mov edx,DWORD [12+ebp] mov ebx,edi @@ -84,7 +84,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 3 mov edx,DWORD [16+ebp] mov ebx,esi @@ -104,7 +104,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 4 mov edx,DWORD [20+ebp] mov ebx,edi @@ -124,7 +124,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 5 mov edx,DWORD [24+ebp] mov ebx,esi @@ -144,7 +144,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 6 mov edx,DWORD [28+ebp] mov ebx,edi @@ -164,7 +164,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 7 mov edx,DWORD [32+ebp] mov ebx,esi @@ -184,7 +184,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 8 mov edx,DWORD [36+ebp] mov ebx,edi @@ -204,7 +204,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 9 mov edx,DWORD [40+ebp] mov ebx,esi @@ -224,7 +224,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 10 mov edx,DWORD [44+ebp] mov ebx,edi @@ -244,7 +244,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 11 mov edx,DWORD [48+ebp] mov ebx,esi @@ -264,7 +264,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 12 mov edx,DWORD [52+ebp] mov ebx,edi @@ -284,7 +284,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 13 mov edx,DWORD [56+ebp] mov ebx,esi @@ -304,7 +304,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 14 mov edx,DWORD [60+ebp] mov ebx,edi @@ -324,7 +324,7 @@ L$_BF_encrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 15 mov edx,DWORD [64+ebp] mov ebx,esi @@ -358,7 +358,7 @@ global _BF_decrypt align 16 _BF_decrypt: L$_BF_decrypt_begin: - ; + ; push ebp push ebx mov ebx,DWORD [12+esp] @@ -372,7 +372,7 @@ L$_BF_decrypt_begin: mov ebx,DWORD [68+ebp] xor ecx,ecx xor edi,ebx - ; + ; ; Round 16 mov edx,DWORD [64+ebp] mov ebx,edi @@ -392,7 +392,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 15 mov edx,DWORD [60+ebp] mov ebx,esi @@ -412,7 +412,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 14 mov edx,DWORD [56+ebp] mov ebx,edi @@ -432,7 +432,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 13 mov edx,DWORD [52+ebp] mov ebx,esi @@ -452,7 +452,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 12 mov edx,DWORD [48+ebp] mov ebx,edi @@ -472,7 +472,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 11 mov edx,DWORD [44+ebp] mov ebx,esi @@ -492,7 +492,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 10 mov edx,DWORD [40+ebp] mov ebx,edi @@ -512,7 +512,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 9 mov edx,DWORD [36+ebp] mov ebx,esi @@ -532,7 +532,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 8 mov edx,DWORD [32+ebp] mov ebx,edi @@ -552,7 +552,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 7 mov edx,DWORD [28+ebp] mov ebx,esi @@ -572,7 +572,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 6 mov edx,DWORD [24+ebp] mov ebx,edi @@ -592,7 +592,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 5 mov edx,DWORD [20+ebp] mov ebx,esi @@ -612,7 +612,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 4 mov edx,DWORD [16+ebp] mov ebx,edi @@ -632,7 +632,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 3 mov edx,DWORD [12+ebp] mov ebx,esi @@ -652,7 +652,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor edi,ebx - ; + ; ; Round 2 mov edx,DWORD [8+ebp] mov ebx,edi @@ -672,7 +672,7 @@ L$_BF_decrypt_begin: add ebx,edx xor eax,eax xor esi,ebx - ; + ; ; Round 1 mov edx,DWORD [4+ebp] mov ebx,esi @@ -706,7 +706,7 @@ global _BF_cbc_encrypt align 16 _BF_cbc_encrypt: L$_BF_cbc_encrypt_begin: - ; + ; push ebp push ebx push esi diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm index 8534042b05a95a..82002b353bfd3b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/bn-586.asm @@ -108,7 +108,7 @@ L$000maw_non_sse2: push ebx push esi push edi - ; + ; xor esi,esi mov edi,DWORD [20+esp] mov ecx,DWORD [28+esp] @@ -191,7 +191,7 @@ L$006maw_loop: adc edx,0 mov DWORD [28+edi],eax mov esi,edx - ; + ; sub ecx,8 lea ebx,[32+ebx] lea edi,[32+edi] @@ -317,7 +317,7 @@ L$009mw_non_sse2: push ebx push esi push edi - ; + ; xor esi,esi mov edi,DWORD [20+esp] mov ebx,DWORD [24+esp] @@ -382,7 +382,7 @@ L$012mw_loop: adc edx,0 mov DWORD [28+edi],eax mov esi,edx - ; + ; add ebx,32 add edi,32 sub ebp,8 @@ -489,7 +489,7 @@ L$015sqr_non_sse2: push ebx push esi push edi - ; + ; mov esi,DWORD [20+esp] mov edi,DWORD [24+esp] mov ebx,DWORD [28+esp] @@ -536,7 +536,7 @@ L$018sw_loop: mul eax mov DWORD [56+esi],eax mov DWORD [60+esi],edx - ; + ; add edi,32 add esi,64 sub ebx,8 @@ -615,7 +615,7 @@ L$_bn_add_words_begin: push ebx push esi push edi - ; + ; mov ebx,DWORD [20+esp] mov esi,DWORD [24+esp] mov edi,DWORD [28+esp] @@ -696,7 +696,7 @@ L$021aw_loop: add ecx,edx adc eax,0 mov DWORD [28+ebx],ecx - ; + ; add esi,32 add edi,32 add ebx,32 @@ -795,7 +795,7 @@ L$_bn_sub_words_begin: push ebx push esi push edi - ; + ; mov ebx,DWORD [20+esp] mov esi,DWORD [24+esp] mov edi,DWORD [28+esp] @@ -876,7 +876,7 @@ L$024aw_loop: sub ecx,edx adc eax,0 mov DWORD [28+ebx],ecx - ; + ; add esi,32 add edi,32 add ebx,32 @@ -975,7 +975,7 @@ L$_bn_sub_part_words_begin: push ebx push esi push edi - ; + ; mov ebx,DWORD [20+esp] mov esi,DWORD [24+esp] mov edi,DWORD [28+esp] @@ -1056,7 +1056,7 @@ L$027aw_loop: sub ecx,edx adc eax,0 mov DWORD [28+ebx],ecx - ; + ; add esi,32 add edi,32 add ebx,32 @@ -1248,7 +1248,7 @@ L$032pw_neg_loop: sub ecx,edx adc eax,0 mov DWORD [28+ebx],ecx - ; + ; add edi,32 add ebx,32 sub ebp,8 @@ -1379,7 +1379,7 @@ L$034pw_pos_loop: sub ecx,eax mov DWORD [28+ebx],ecx jnc NEAR L$042pw_nc7 - ; + ; add esi,32 add ebx,32 sub ebp,8 @@ -1462,7 +1462,7 @@ L$041pw_nc6: mov ecx,DWORD [28+esi] mov DWORD [28+ebx],ecx L$042pw_nc7: - ; + ; add esi,32 add ebx,32 sub ebp,8 diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm index bf237b633a5f2d..090630c3a00c2b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/bn/x86-mont.asm @@ -448,16 +448,18 @@ L$016sub: lea edx,[1+edx] jge NEAR L$016sub sbb eax,0 - and esi,eax - not eax - mov ebp,edi - and ebp,eax - or esi,ebp + mov edx,-1 + xor edx,eax + jmp NEAR L$017copy align 16 L$017copy: - mov eax,DWORD [ebx*4+esi] - mov DWORD [ebx*4+edi],eax + mov esi,DWORD [32+ebx*4+esp] + mov ebp,DWORD [ebx*4+edi] mov DWORD [32+ebx*4+esp],ecx + and esi,eax + and ebp,edx + or ebp,esi + mov DWORD [ebx*4+edi],ebp dec ebx jge NEAR L$017copy mov esp,DWORD [24+esp] diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h index 29159b7a1898dc..74eb547a29516d 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h @@ -9,4 +9,4 @@ static const char cflags[] = { 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' }; #define PLATFORM "platform: " -#define DATE "built on: Tue Apr 3 00:38:59 2018" +#define DATE "built on: Tue Aug 14 23:13:47 2018" diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/crypt586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/crypt586.asm index 912b2b9e90f4dc..2af8af39d66216 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/crypt586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/crypt586.asm @@ -15,7 +15,7 @@ L$_fcrypt_body_begin: push ebx push esi push edi - ; + ; ; Load the 2 words xor edi,edi xor esi,esi @@ -24,7 +24,7 @@ L$_fcrypt_body_begin: mov ebp,DWORD [28+esp] push DWORD 25 L$000start: - ; + ; ; Round 0 mov eax,DWORD [36+esp] mov edx,esi @@ -74,7 +74,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 1 mov eax,DWORD [36+esp] mov edx,edi @@ -124,7 +124,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 2 mov eax,DWORD [36+esp] mov edx,esi @@ -174,7 +174,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 3 mov eax,DWORD [36+esp] mov edx,edi @@ -224,7 +224,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 4 mov eax,DWORD [36+esp] mov edx,esi @@ -274,7 +274,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 5 mov eax,DWORD [36+esp] mov edx,edi @@ -324,7 +324,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 6 mov eax,DWORD [36+esp] mov edx,esi @@ -374,7 +374,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 7 mov eax,DWORD [36+esp] mov edx,edi @@ -424,7 +424,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 8 mov eax,DWORD [36+esp] mov edx,esi @@ -474,7 +474,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 9 mov eax,DWORD [36+esp] mov edx,edi @@ -524,7 +524,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 10 mov eax,DWORD [36+esp] mov edx,esi @@ -574,7 +574,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 11 mov eax,DWORD [36+esp] mov edx,edi @@ -624,7 +624,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 12 mov eax,DWORD [36+esp] mov edx,esi @@ -674,7 +674,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 13 mov eax,DWORD [36+esp] mov edx,edi @@ -724,7 +724,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor esi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 14 mov eax,DWORD [36+esp] mov edx,esi @@ -774,7 +774,7 @@ L$000start: mov ebx,DWORD [0x500+edx*1+ebp] xor edi,ebx mov ebp,DWORD [32+esp] - ; + ; ; Round 15 mov eax,DWORD [36+esp] mov edx,edi @@ -831,7 +831,7 @@ L$000start: mov esi,eax mov DWORD [esp],ebx jnz NEAR L$000start - ; + ; ; FP mov edx,DWORD [28+esp] ror edi,1 @@ -840,35 +840,35 @@ L$000start: and esi,0xaaaaaaaa xor eax,esi xor edi,esi - ; + ; rol eax,23 mov esi,eax xor eax,edi and eax,0x03fc03fc xor esi,eax xor edi,eax - ; + ; rol esi,10 mov eax,esi xor esi,edi and esi,0x33333333 xor eax,esi xor edi,esi - ; + ; rol edi,18 mov esi,edi xor edi,eax and edi,0xfff0000f xor esi,edi xor eax,edi - ; + ; rol esi,12 mov edi,esi xor esi,eax and esi,0xf0f0f0f0 xor edi,esi xor eax,esi - ; + ; ror eax,4 mov DWORD [edx],eax mov DWORD [4+edx],edi diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/des-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/des-586.asm index d4a46e16060f84..3d6ee2a5e4b384 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/des-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/des/des-586.asm @@ -951,7 +951,7 @@ _DES_encrypt1: L$_DES_encrypt1_begin: push esi push edi - ; + ; ; Load the 2 words mov esi,DWORD [12+esp] xor ecx,ecx @@ -960,7 +960,7 @@ L$_DES_encrypt1_begin: mov eax,DWORD [esi] mov ebx,DWORD [28+esp] mov edi,DWORD [4+esi] - ; + ; ; IP rol eax,4 mov esi,eax @@ -968,35 +968,35 @@ L$_DES_encrypt1_begin: and eax,0xf0f0f0f0 xor esi,eax xor edi,eax - ; + ; rol edi,20 mov eax,edi xor edi,esi and edi,0xfff0000f xor eax,edi xor esi,edi - ; + ; rol eax,14 mov edi,eax xor eax,esi and eax,0x33333333 xor edi,eax xor esi,eax - ; + ; rol esi,22 mov eax,esi xor esi,edi and esi,0x03fc03fc xor eax,esi xor edi,esi - ; + ; rol eax,9 mov esi,eax xor eax,edi and eax,0xaaaaaaaa xor esi,eax xor edi,eax - ; + ; rol edi,1 call L$000pic_point L$000pic_point: @@ -1010,7 +1010,7 @@ L$000pic_point: L$001decrypt: call __x86_DES_decrypt L$002done: - ; + ; ; FP mov edx,DWORD [20+esp] ror esi,1 @@ -1019,35 +1019,35 @@ L$002done: and edi,0xaaaaaaaa xor eax,edi xor esi,edi - ; + ; rol eax,23 mov edi,eax xor eax,esi and eax,0x03fc03fc xor edi,eax xor esi,eax - ; + ; rol edi,10 mov eax,edi xor edi,esi and edi,0x33333333 xor eax,edi xor esi,edi - ; + ; rol esi,18 mov edi,esi xor esi,eax and esi,0xfff0000f xor edi,esi xor eax,esi - ; + ; rol edi,12 mov esi,edi xor edi,eax and edi,0xf0f0f0f0 xor esi,edi xor eax,edi - ; + ; ror eax,4 mov DWORD [edx],eax mov DWORD [4+edx],esi @@ -1062,7 +1062,7 @@ _DES_encrypt2: L$_DES_encrypt2_begin: push esi push edi - ; + ; ; Load the 2 words mov eax,DWORD [12+esp] xor ecx,ecx @@ -1085,7 +1085,7 @@ L$003pic_point: L$004decrypt: call __x86_DES_decrypt L$005done: - ; + ; ; Fixup ror edi,3 mov eax,DWORD [20+esp] @@ -1106,12 +1106,12 @@ L$_DES_encrypt3_begin: push ebp push esi push edi - ; + ; ; Load the data words mov edi,DWORD [ebx] mov esi,DWORD [4+ebx] sub esp,12 - ; + ; ; IP rol edi,4 mov edx,edi @@ -1119,35 +1119,35 @@ L$_DES_encrypt3_begin: and edi,0xf0f0f0f0 xor edx,edi xor esi,edi - ; + ; rol esi,20 mov edi,esi xor esi,edx and esi,0xfff0000f xor edi,esi xor edx,esi - ; + ; rol edi,14 mov esi,edi xor edi,edx and edi,0x33333333 xor esi,edi xor edx,edi - ; + ; rol edx,22 mov edi,edx xor edx,esi and edx,0x03fc03fc xor edi,edx xor esi,edx - ; + ; rol edi,9 mov edx,edi xor edi,esi and edi,0xaaaaaaaa xor edx,edi xor esi,edi - ; + ; ror edx,3 ror esi,2 mov DWORD [4+ebx],esi @@ -1170,7 +1170,7 @@ L$_DES_encrypt3_begin: add esp,12 mov edi,DWORD [ebx] mov esi,DWORD [4+ebx] - ; + ; ; FP rol esi,2 rol edi,3 @@ -1179,35 +1179,35 @@ L$_DES_encrypt3_begin: and edi,0xaaaaaaaa xor eax,edi xor esi,edi - ; + ; rol eax,23 mov edi,eax xor eax,esi and eax,0x03fc03fc xor edi,eax xor esi,eax - ; + ; rol edi,10 mov eax,edi xor edi,esi and edi,0x33333333 xor eax,edi xor esi,edi - ; + ; rol esi,18 mov edi,esi xor esi,eax and esi,0xfff0000f xor edi,esi xor eax,esi - ; + ; rol edi,12 mov esi,edi xor edi,eax and edi,0xf0f0f0f0 xor esi,edi xor eax,edi - ; + ; ror eax,4 mov DWORD [ebx],eax mov DWORD [4+ebx],esi @@ -1225,12 +1225,12 @@ L$_DES_decrypt3_begin: push ebp push esi push edi - ; + ; ; Load the data words mov edi,DWORD [ebx] mov esi,DWORD [4+ebx] sub esp,12 - ; + ; ; IP rol edi,4 mov edx,edi @@ -1238,35 +1238,35 @@ L$_DES_decrypt3_begin: and edi,0xf0f0f0f0 xor edx,edi xor esi,edi - ; + ; rol esi,20 mov edi,esi xor esi,edx and esi,0xfff0000f xor edi,esi xor edx,esi - ; + ; rol edi,14 mov esi,edi xor edi,edx and edi,0x33333333 xor esi,edi xor edx,edi - ; + ; rol edx,22 mov edi,edx xor edx,esi and edx,0x03fc03fc xor edi,edx xor esi,edx - ; + ; rol edi,9 mov edx,edi xor edi,esi and edi,0xaaaaaaaa xor edx,edi xor esi,edi - ; + ; ror edx,3 ror esi,2 mov DWORD [4+ebx],esi @@ -1289,7 +1289,7 @@ L$_DES_decrypt3_begin: add esp,12 mov edi,DWORD [ebx] mov esi,DWORD [4+ebx] - ; + ; ; FP rol esi,2 rol edi,3 @@ -1298,35 +1298,35 @@ L$_DES_decrypt3_begin: and edi,0xaaaaaaaa xor eax,edi xor esi,edi - ; + ; rol eax,23 mov edi,eax xor eax,esi and eax,0x03fc03fc xor edi,eax xor esi,eax - ; + ; rol edi,10 mov eax,edi xor edi,esi and edi,0x33333333 xor eax,edi xor esi,edi - ; + ; rol esi,18 mov edi,esi xor esi,eax and esi,0xfff0000f xor edi,esi xor eax,esi - ; + ; rol edi,12 mov esi,edi xor edi,eax and edi,0xf0f0f0f0 xor esi,edi xor eax,edi - ; + ; ror eax,4 mov DWORD [ebx],eax mov DWORD [4+ebx],esi @@ -1339,7 +1339,7 @@ global _DES_ncbc_encrypt align 16 _DES_ncbc_encrypt: L$_DES_ncbc_encrypt_begin: - ; + ; push ebp push ebx push esi @@ -1517,7 +1517,7 @@ global _DES_ede3_cbc_encrypt align 16 _DES_ede3_cbc_encrypt: L$_DES_ede3_cbc_encrypt_begin: - ; + ; push ebp push ebx push esi diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm index 8203213818f30b..7383523877eec8 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ec/ecp_nistz256-x86.asm @@ -3829,7 +3829,7 @@ L$_ecp_nistz256_scatter_w7_begin: mov edi,DWORD [20+esp] mov esi,DWORD [24+esp] mov ebp,DWORD [28+esp] - lea edi,[ebp*1+edi-1] + lea edi,[ebp*1+edi] mov ebp,16 L$007scatter_w7_loop: mov eax,DWORD [esi] diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm index efa6b5f8949bbb..90663d022d719e 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/md5/md5-586.asm @@ -26,7 +26,7 @@ L$_md5_block_asm_data_order_begin: mov ecx,DWORD [8+edi] mov edx,DWORD [12+edi] L$000start: - ; + ; ; R0 section mov edi,ecx mov ebp,DWORD [esi] @@ -190,7 +190,7 @@ L$000start: rol ebx,22 mov edi,ecx add ebx,ecx - ; + ; ; R1 section ; R1 16 xor edi,ebx @@ -352,7 +352,7 @@ L$000start: mov edi,ecx rol ebx,20 add ebx,ecx - ; + ; ; R2 section ; R2 32 xor edi,edx @@ -498,7 +498,7 @@ L$000start: mov edi,-1 rol ebx,23 add ebx,ecx - ; + ; ; R3 section ; R3 48 xor edi,edx diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ripemd/rmd-586.asm b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ripemd/rmd-586.asm index 0a058888457247..a5ab6836728a4b 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/ripemd/rmd-586.asm +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/ripemd/rmd-586.asm @@ -21,7 +21,7 @@ L$_ripemd160_block_asm_data_order_begin: push ebx sub esp,108 L$000start: - ; + ; mov ebx,DWORD [eax] mov ebp,DWORD [4+eax] mov DWORD [esp],ebx diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslconf.h index 630bb306230e5c..19c35390f1676c 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi index 10fa852b2adf4f..31ec4eb42c05c5 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/asm/openssl.gypi @@ -211,6 +211,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -567,6 +568,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm index a7afa26f5185c2..e4f7a3d14edf3a 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "VC-WIN32", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1099,6 +1099,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1265,10 +1269,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3961,6 +3977,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6245,6 +6267,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7232,6 +7260,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7404,9 +7436,9 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", "include", + "test", ".", ], "test/threadstest.o" => @@ -7426,10 +7458,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7585,6 +7630,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7625,7 +7671,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7964,6 +8013,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8084,9 +8136,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9080,6 +9141,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h index c58c6e6c40b854..a9c58caa468f27 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h @@ -9,4 +9,4 @@ static const char cflags[] = { 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' }; #define PLATFORM "platform: " -#define DATE "built on: Tue Apr 3 00:39:00 2018" +#define DATE "built on: Tue Aug 14 23:13:48 2018" diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h index 1f09ee0d7fbe32..eaf7b68125fa43 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi index 09aef657a42f81..379f77ea50586c 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm index 95949bf7a46544..fefc45903a7c0b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "VC-WIN64A", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1101,6 +1101,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1267,10 +1271,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -4023,6 +4039,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6367,6 +6389,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7366,6 +7394,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7560,10 +7592,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7719,6 +7764,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7759,7 +7805,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8098,6 +8147,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8218,9 +8270,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9254,6 +9315,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10738,6 +10803,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11275,6 +11344,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11645,6 +11715,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12650,6 +12721,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12999,6 +13079,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13007,6 +13095,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm index f58343ff2b0000..26908c313b2cd9 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont.asm @@ -214,30 +214,30 @@ $L$inner_enter: xor r14,r14 mov rax,QWORD[rsp] - lea rsi,[rsp] mov r15,r9 - jmp NEAR $L$sub + ALIGN 16 $L$sub: sbb rax,QWORD[r14*8+rcx] mov QWORD[r14*8+rdi],rax - mov rax,QWORD[8+r14*8+rsi] + mov rax,QWORD[8+r14*8+rsp] lea r14,[1+r14] dec r15 jnz NEAR $L$sub sbb rax,0 + mov rbx,-1 + xor rbx,rax xor r14,r14 - and rsi,rax - not rax - mov rcx,rdi - and rcx,rax mov r15,r9 - or rsi,rcx -ALIGN 16 + $L$copy: - mov rax,QWORD[r14*8+rsi] - mov QWORD[r14*8+rsp],r14 - mov QWORD[r14*8+rdi],rax + mov rcx,QWORD[r14*8+rdi] + mov rdx,QWORD[r14*8+rsp] + and rcx,rbx + and rdx,rax + mov QWORD[r14*8+rsp],r9 + or rdx,rcx + mov QWORD[r14*8+rdi],rdx lea r14,[1+r14] sub r15,1 jnz NEAR $L$copy @@ -605,10 +605,10 @@ $L$inner4x: cmp r14,r9 jb NEAR $L$outer4x mov rdi,QWORD[16+r9*8+rsp] + lea r15,[((-4))+r9] mov rax,QWORD[rsp] - pxor xmm0,xmm0 mov rdx,QWORD[8+rsp] - shr r9,2 + shr r15,2 lea rsi,[rsp] xor r14,r14 @@ -616,9 +616,7 @@ $L$inner4x: mov rbx,QWORD[16+rsi] mov rbp,QWORD[24+rsi] sbb rdx,QWORD[8+rcx] - lea r15,[((-1))+r9] - jmp NEAR $L$sub4x -ALIGN 16 + $L$sub4x: mov QWORD[r14*8+rdi],rax mov QWORD[8+r14*8+rdi],rdx @@ -645,34 +643,35 @@ $L$sub4x: sbb rax,0 mov QWORD[24+r14*8+rdi],rbp - xor r14,r14 - and rsi,rax - not rax - mov rcx,rdi - and rcx,rax - lea r15,[((-1))+r9] - or rsi,rcx - - movdqu xmm1,XMMWORD[rsi] - movdqa XMMWORD[rsp],xmm0 - movdqu XMMWORD[rdi],xmm1 + pxor xmm0,xmm0 +DB 102,72,15,110,224 + pcmpeqd xmm5,xmm5 + pshufd xmm4,xmm4,0 + mov r15,r9 + pxor xmm5,xmm4 + shr r15,2 + xor eax,eax + jmp NEAR $L$copy4x ALIGN 16 $L$copy4x: - movdqu xmm2,XMMWORD[16+r14*1+rsi] - movdqu xmm1,XMMWORD[32+r14*1+rsi] - movdqa XMMWORD[16+r14*1+rsp],xmm0 - movdqu XMMWORD[16+r14*1+rdi],xmm2 - movdqa XMMWORD[32+r14*1+rsp],xmm0 - movdqu XMMWORD[32+r14*1+rdi],xmm1 - lea r14,[32+r14] + movdqa xmm1,XMMWORD[rax*1+rsp] + movdqu xmm2,XMMWORD[rax*1+rdi] + pand xmm1,xmm4 + pand xmm2,xmm5 + movdqa xmm3,XMMWORD[16+rax*1+rsp] + movdqa XMMWORD[rax*1+rsp],xmm0 + por xmm1,xmm2 + movdqu xmm2,XMMWORD[16+rax*1+rdi] + movdqu XMMWORD[rax*1+rdi],xmm1 + pand xmm3,xmm4 + pand xmm2,xmm5 + movdqa XMMWORD[16+rax*1+rsp],xmm0 + por xmm3,xmm2 + movdqu XMMWORD[16+rax*1+rdi],xmm3 + lea rax,[32+rax] dec r15 jnz NEAR $L$copy4x - - shl r9,2 - movdqu xmm2,XMMWORD[16+r14*1+rsi] - movdqa XMMWORD[16+r14*1+rsp],xmm0 - movdqu XMMWORD[16+r14*1+rdi],xmm2 mov rsi,QWORD[8+r9*8+rsp] mov rax,1 mov r15,QWORD[((-48))+rsi] diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm index e0fb22b79e3564..de93630c8f5abf 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/bn/x86_64-mont5.asm @@ -410,18 +410,19 @@ $L$sub: sbb rax,QWORD[r14*8+rcx] jnz NEAR $L$sub sbb rax,0 + mov rbx,-1 + xor rbx,rax xor r14,r14 - and rsi,rax - not rax - mov rcx,rdi - and rcx,rax mov r15,r9 - or rsi,rcx -ALIGN 16 + $L$copy: - mov rax,QWORD[r14*8+rsi] + mov rcx,QWORD[r14*8+rdi] + mov rdx,QWORD[r14*8+rsp] + and rcx,rbx + and rdx,rax mov QWORD[r14*8+rsp],r14 - mov QWORD[r14*8+rdi],rax + or rdx,rcx + mov QWORD[r14*8+rdi],rdx lea r14,[1+r14] sub r15,1 jnz NEAR $L$copy diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h index bae537d4013c24..b4a762c77e93fc 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h @@ -9,4 +9,4 @@ static const char cflags[] = { 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' }; #define PLATFORM "platform: " -#define DATE "built on: Tue Apr 3 00:38:54 2018" +#define DATE "built on: Tue Aug 14 23:13:42 2018" diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm index cda3538dbab3e3..2aede40d9eef7c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/x86_64cpuid.asm @@ -456,3 +456,4 @@ $L$tail_rdseed_bytes: $L$done_rdseed_bytes: DB 0F3h,0C3h ;repret + diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h index 01084232d8d7d6..fd1ca5612f3e1f 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi index 8fccfe154d19be..b7ce577c2a1a7f 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm index b7918f728d50d7..909baa10162a1c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "VC-WIN64A", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1100,6 +1100,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1266,10 +1270,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3962,6 +3978,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6246,6 +6268,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7233,6 +7261,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7406,8 +7438,8 @@ our %unified_info = ( "test/testutil.o" => [ "crypto/include", - "test", "include", + "test", ".", ], "test/threadstest.o" => @@ -7427,10 +7459,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7586,6 +7631,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7626,7 +7672,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7965,6 +8014,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8085,9 +8137,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9081,6 +9142,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10525,6 +10590,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11044,6 +11113,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11404,6 +11474,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12407,6 +12478,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12756,6 +12836,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12764,6 +12852,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h index 12173ecb400e9a..c255115fe5fea6 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h @@ -9,4 +9,4 @@ static const char cflags[] = { 'c','o','m','p','i','l','e','r',':',' ','c','c','\0' }; #define PLATFORM "platform: " -#define DATE "built on: Tue Apr 3 00:38:58 2018" +#define DATE "built on: Tue Aug 14 23:13:46 2018" diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h index dfe71f8c607594..097c8ae7bfc67a 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi index 54cef95adbde1c..d9f65b4a877ae3 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/aix-gcc/asm/configdata.pm b/deps/openssl/config/archs/aix-gcc/asm/configdata.pm index 4fe3ed16b6f167..e63eec47d8468a 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/aix-gcc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "aix-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -871,11 +871,6 @@ our %unified_info = ( "libcrypto", "libssl", ], - "test/buildtest_opensslconf" => - [ - "libcrypto", - "libssl", - ], "test/buildtest_opensslv" => [ "libcrypto", @@ -1084,6 +1079,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1250,10 +1249,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -2328,11 +2339,6 @@ our %unified_info = ( "test/generate_buildtest.pl", "ocsp", ], - "test/buildtest_opensslconf.c" => - [ - "test/generate_buildtest.pl", - "opensslconf", - ], "test/buildtest_opensslv.c" => [ "test/generate_buildtest.pl", @@ -3975,6 +3981,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6307,6 +6319,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7112,10 +7130,6 @@ our %unified_info = ( [ "include", ], - "test/buildtest_opensslconf.o" => - [ - "include", - ], "test/buildtest_opensslv.o" => [ "include", @@ -7298,6 +7312,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7470,9 +7488,9 @@ our %unified_info = ( ], "test/testutil.o" => [ + "test", "crypto/include", "include", - "test", ".", ], "test/threadstest.o" => @@ -7492,10 +7510,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7607,7 +7638,6 @@ our %unified_info = ( "test/buildtest_obj_mac", "test/buildtest_objects", "test/buildtest_ocsp", - "test/buildtest_opensslconf", "test/buildtest_opensslv", "test/buildtest_ossl_typ", "test/buildtest_pem", @@ -7652,6 +7682,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7692,7 +7723,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7942,9 +7976,6 @@ our %unified_info = ( "test/buildtest_ocsp" => [ ], - "test/buildtest_opensslconf" => - [ - ], "test/buildtest_opensslv" => [ ], @@ -8077,6 +8108,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8197,9 +8231,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9208,6 +9251,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10684,6 +10731,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11208,6 +11259,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11577,6 +11629,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12222,14 +12275,6 @@ our %unified_info = ( [ "test/buildtest_ocsp.c", ], - "test/buildtest_opensslconf" => - [ - "test/buildtest_opensslconf.o", - ], - "test/buildtest_opensslconf.o" => - [ - "test/buildtest_opensslconf.c", - ], "test/buildtest_opensslv" => [ "test/buildtest_opensslv.o", @@ -12588,6 +12633,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12937,6 +12991,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12945,6 +13007,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aes-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aes-ppc.s index 2b16116024d6f3..dad9e59c718a20 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aes-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aes-ppc.s @@ -8,7 +8,7 @@ LAES_Te: mflr 3 addi 3,3,120 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -18,7 +18,7 @@ LAES_Td: mflr 3 addi 3,3,2360 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -739,7 +739,7 @@ Lenc_done: lwz 31,124(1) mtlr 0 addi 1,1,128 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -819,7 +819,7 @@ Lenc_loop: bc 16,0,Lenc_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -884,7 +884,7 @@ Lenc_loop: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1029,7 +1029,7 @@ Lenc_compact_done: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1173,7 +1173,7 @@ Ldec_done: lwz 31,124(1) mtlr 0 addi 1,1,128 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1253,7 +1253,7 @@ Ldec_loop: bc 16,0,Ldec_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -1318,7 +1318,7 @@ Ldec_loop: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1548,7 +1548,7 @@ Ldec_compact_done: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aesp8-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aesp8-ppc.s index bd2926e0b4a2e0..af77b045249a58 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aesp8-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/aesp8-ppc.s @@ -14,7 +14,7 @@ Lconsts: mflr 6 addi 6,6,-0x48 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -277,7 +277,7 @@ Ldone: Lenc_key_abort: mr 3,6 - blr + blr .long 0 .byte 0,12,0x14,1,0,0,3,0 .long 0 @@ -325,7 +325,7 @@ Ldeckey: xor 3,3,3 Ldec_key_abort: addi 1,1,32 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,3,0 .long 0 @@ -392,7 +392,7 @@ Loop_enc: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -459,7 +459,7 @@ Loop_dec: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -620,7 +620,7 @@ Lcbc_done: stvx 2,10,7 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -910,8 +910,8 @@ Loop_cbc_dec8x: addic. 5,5,128 beq Lcbc_dec8x_done - nop - nop + nop + nop Loop_cbc_dec8x_tail: .long 0x11EFC548 @@ -999,15 +999,15 @@ Loop_cbc_dec8x_tail: cmplwi 5,32 blt Lcbc_dec8x_one - nop + nop beq Lcbc_dec8x_two cmplwi 5,64 blt Lcbc_dec8x_three - nop + nop beq Lcbc_dec8x_four cmplwi 5,96 blt Lcbc_dec8x_five - nop + nop beq Lcbc_dec8x_six Lcbc_dec8x_seven: @@ -1194,7 +1194,7 @@ Lcbc_dec8x_done: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1301,7 +1301,7 @@ Loop_ctr32_enc: stvx 2,0,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -1604,15 +1604,15 @@ Loop_ctr32_enc8x_middle: Lctr32_enc8x_break: cmpwi 5,-0x60 blt Lctr32_enc8x_one - nop + nop beq Lctr32_enc8x_two cmpwi 5,-0x40 blt Lctr32_enc8x_three - nop + nop beq Lctr32_enc8x_four cmpwi 5,-0x20 blt Lctr32_enc8x_five - nop + nop beq Lctr32_enc8x_six cmpwi 5,0x00 blt Lctr32_enc8x_seven @@ -1821,7 +1821,7 @@ Lctr32_enc8x_done: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1958,7 +1958,7 @@ Loop_xts_enc: .long 0x10620509 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2031,7 +2031,7 @@ Lxts_enc_done: Lxts_enc_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2171,7 +2171,7 @@ Loop_xts_dec: .long 0x10620549 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2236,7 +2236,7 @@ Loop_xts_dec_short: .long 0x10620549 - nop + nop .long 0x7C602799 @@ -2287,7 +2287,7 @@ Lxts_dec_done: Lxts_dec_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2618,11 +2618,11 @@ Loop_xts_enc6x: beq Lxts_enc6x_zero cmpwi 5,0x20 blt Lxts_enc6x_one - nop + nop beq Lxts_enc6x_two cmpwi 5,0x40 blt Lxts_enc6x_three - nop + nop beq Lxts_enc6x_four Lxts_enc6x_five: @@ -2719,7 +2719,7 @@ Lxts_enc6x_two: .align 4 Lxts_enc6x_one: vxor 7,5,17 - nop + nop Loop_xts_enc1x: .long 0x10E7C508 lvx 24,26,7 @@ -2855,7 +2855,7 @@ Lxts_enc6x_ret: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -2940,7 +2940,7 @@ _aesp8_xts_enc5x: .long 0x11AD1509 .long 0x11CE1D09 .long 0x11EF2509 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -3268,11 +3268,11 @@ Loop_xts_dec6x: beq Lxts_dec6x_zero cmpwi 5,0x20 blt Lxts_dec6x_one - nop + nop beq Lxts_dec6x_two cmpwi 5,0x40 blt Lxts_dec6x_three - nop + nop beq Lxts_dec6x_four Lxts_dec6x_five: @@ -3373,7 +3373,7 @@ Lxts_dec6x_two: .align 4 Lxts_dec6x_one: vxor 7,5,17 - nop + nop Loop_xts_dec1x: .long 0x10E7C548 lvx 24,26,7 @@ -3543,7 +3543,7 @@ Lxts_dec6x_ret: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3628,6 +3628,6 @@ _aesp8_xts_dec5x: .long 0x11CE1D49 .long 0x11EF2549 mtctr 9 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/vpaes-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/vpaes-ppc.s index 6f29a012fa7ffc..b264c900333a35 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/vpaes-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/aes/vpaes-ppc.s @@ -95,7 +95,7 @@ Lconsts: mflr 12 addi 12,12,-0x308 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 @@ -135,7 +135,7 @@ _vpaes_encrypt_preheat: lvx 17, 12, 8 lvx 18, 12, 11 lvx 19, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -223,7 +223,7 @@ Lenc_entry: vxor 4, 4, 5 vxor 0, 0, 4 vperm 0, 0, 7, 1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -318,7 +318,7 @@ Lenc_done: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -360,7 +360,7 @@ _vpaes_decrypt_preheat: lvx 21, 12, 8 lvx 22, 12, 11 lvx 23, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -455,7 +455,7 @@ Ldec_entry: vxor 4, 4, 5 vxor 0, 1, 4 vperm 0, 0, 7, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -550,7 +550,7 @@ Ldec_done: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -777,7 +777,7 @@ Lcbc_abort: lwz 31,236(1) mtlr 0 addi 1,1,240 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,2,6,0 .long 0 @@ -831,7 +831,7 @@ _vpaes_key_preheat: lvx 24, 12, 9 lvx 25, 0, 12 lvx 26, 12, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1077,7 +1077,7 @@ Lschedule_mangle_done: vxor 6, 6, 6 vxor 7, 7, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1105,7 +1105,7 @@ _vpaes_schedule_192_smear: vor 0, 6, 6 vsldoi 6, 6, 9, 8 vsldoi 6, 9, 6, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1171,7 +1171,7 @@ _vpaes_schedule_low_round: vxor 0, 1, 7 vxor 7, 1, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1193,7 +1193,7 @@ _vpaes_schedule_transform: vperm 2, 13, 13, 2 vxor 0, 0, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1245,7 +1245,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .align 4 Lschedule_mangle_dec: @@ -1296,7 +1296,7 @@ Lschedule_mangle_dec: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1372,7 +1372,7 @@ Lschedule_mangle_dec: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -1455,7 +1455,8 @@ Lschedule_mangle_dec: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 + diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/bn-ppc.s index 51fd8f0b49993e..3f3b3057de02b6 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/bn-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/bn-ppc.s @@ -227,7 +227,7 @@ stw 9,24(3) stw 10,28(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -655,7 +655,7 @@ stw 9, 60(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -809,7 +809,7 @@ stw 10,24(3) stw 11,28(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1348,7 +1348,7 @@ adde 10,10,9 stw 12,56(3) stw 10,60(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1399,7 +1399,7 @@ Lppcasm_sub_mainloop: Lppcasm_sub_adios: subfze 3,0 andi. 3,3,1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1445,7 +1445,7 @@ Lppcasm_add_mainloop: bc 16,0,Lppcasm_add_mainloop Lppcasm_add_adios: addze 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1474,7 +1474,7 @@ Lppcasm_add_adios: cmplwi 0,5,0 bne Lppcasm_div1 li 3,-1 - blr + blr Lppcasm_div1: xor 0,0,0 li 8,32 @@ -1561,7 +1561,7 @@ Lppcasm_div8: b Lppcasm_divouterloop Lppcasm_div9: or 3,8,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1603,7 +1603,7 @@ Lppcasm_sqr_mainloop: stwu 8,4(3) bc 16,0,Lppcasm_sqr_mainloop Lppcasm_sqr_adios: - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1709,7 +1709,7 @@ Lppcasm_mw_REM: Lppcasm_mw_OVER: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1835,7 +1835,7 @@ Lppcasm_maw_leftover: Lppcasm_maw_adios: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc-mont.s index a9384f70b07d42..267308a6ac3b28 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc-mont.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc-mont.s @@ -9,7 +9,7 @@ li 3,0 bclr 12,0 cmpwi 8,32 - bgelr + bgelr slwi 8,8,2 li 12,-4096 addi 3,8,256 @@ -182,15 +182,16 @@ Lsub: lwzx 12,22,21 li 21,0 mtctr 8 subfe 3,21,3 - and 4,22,3 - andc 6,9,3 - or 4,4,6 .align 4 Lcopy: - lwzx 12,4,21 - stwx 12,9,21 + lwzx 12,22,21 + lwzx 10,9,21 + and 12,12,3 + andc 10,10,3 stwx 21,22,21 + or 10,10,12 + stwx 10,9,21 addi 21,21,4 bc 16,0,Lcopy @@ -209,7 +210,7 @@ Lcopy: lwz 30,-8(12) lwz 31,-4(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x80,12,6,0 .long 0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc64-mont.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc64-mont.s index 281d64ae7dc6fa..1506bcc03aae10 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc64-mont.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/bn/ppc64-mont.s @@ -888,11 +888,8 @@ Lsub: lwz 24,12(10) li 12,0 subfe 3,12,3 - addi 10,1,196 + addi 4,1,196 subf 9,8,9 - and 4,10,3 - andc 6,9,3 - or 4,4,6 addi 10,1,192 mtctr 11 @@ -902,6 +899,10 @@ Lcopy: lwz 25,8(4) lwz 26,12(4) lwzu 27,16(4) + lwz 28,4(9) + lwz 29,8(9) + lwz 30,12(9) + lwz 31,16(9) std 12,8(22) std 12,16(22) std 12,24(22) @@ -910,6 +911,18 @@ Lcopy: std 12,48(22) std 12,56(22) stdu 12,64(22) + and 24,24,3 + and 25,25,3 + and 26,26,3 + and 27,27,3 + andc 28,28,3 + andc 29,29,3 + andc 30,30,3 + andc 31,31,3 + or 24,24,28 + or 25,25,29 + or 26,26,30 + or 27,27,31 stw 24,4(9) stw 25,8(9) stw 26,12(9) @@ -945,7 +958,7 @@ Lcopy: lfd 30,-16(12) lfd 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x8c,13,6,0 .long 0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h index f75553781fed81..55bdf4131b046f 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/buildinf.h @@ -26,4 +26,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: aix-gcc" -#define DATE "built on: Tue Apr 3 00:38:08 2018" +#define DATE "built on: Tue Aug 14 23:12:56 2018" diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/chacha/chacha-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/chacha/chacha-ppc.s index 9130400355be38..e4e4612d3aab30 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/chacha/chacha-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/chacha/chacha-ppc.s @@ -59,7 +59,7 @@ __ChaCha20_ctr32_int: lwz 31,156(1) mtlr 0 addi 1,1,160 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,5,0 .long 0 @@ -345,7 +345,7 @@ Loop: bne Loop_outer - blr + blr .align 4 Ltail: @@ -396,7 +396,7 @@ Loop_tail: stw 1,80(1) stw 1,84(1) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -554,7 +554,7 @@ Loop_outer_vmx: vspltisw 27,7 mtctr 0 - nop + nop Loop_vmx: vadduwm 0,0,1 add 16,16,20 @@ -1047,7 +1047,7 @@ Laligned_vmx: cmplwi 5,255 bgt Loop_outer_vmx - nop + nop Ldone_vmx: cmplwi 5,0 @@ -1100,7 +1100,7 @@ Ldone_vmx: lwz 31,364(1) mtlr 0 addi 1,1,368 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,18,5,0 .long 0 @@ -1113,7 +1113,7 @@ Lconsts: mflr 12 addi 12,12,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/modes/ghashp8-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/modes/ghashp8-ppc.s index 972f88d9b83f69..81d7d24b74e992 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/modes/ghashp8-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/modes/ghashp8-ppc.s @@ -122,7 +122,7 @@ .long 0x7E4A1F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -171,7 +171,7 @@ .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -287,7 +287,7 @@ Leven: .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -554,7 +554,7 @@ Ldone_4x: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s index 3063cd30a20014..1adc3641dbb32e 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s @@ -35,7 +35,7 @@ Lno_key: xor 3,3,3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 @@ -236,7 +236,7 @@ Loop: lwz 31,92(1) addi 1,1,96 Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,18,4,0 @@ -300,7 +300,7 @@ Labort: lwz 30,88(1) lwz 31,92(1) addi 1,1,96 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppcfp.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppcfp.s index 17d3aeb195964a..f4cc796fa70ca7 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppcfp.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppcfp.s @@ -145,7 +145,7 @@ Lno_key: xor 3,3,3 addi 1,1,24 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,2,0 @@ -460,7 +460,7 @@ Lentry: lfd 31,208(1) addi 1,1,216 Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,0,4,0 @@ -544,7 +544,7 @@ Labort: lwz 30,32(1) lwz 31,36(1) addi 1,1,40 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 @@ -555,7 +555,7 @@ LPICmeup: mflr 5 addi 5,5,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/ppccpuid.s index 85665a6046048f..2eb7bd60a4b3f7 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/ppccpuid.s @@ -5,7 +5,7 @@ .align 4 .OPENSSL_fpu_probe: fmr 0,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -14,7 +14,7 @@ .OPENSSL_ppc64_probe: fcfid 1,1 rldicl 0,0,32,32 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -23,7 +23,7 @@ .align 4 .OPENSSL_altivec_probe: .long 0x10000484 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -33,7 +33,7 @@ .OPENSSL_crypto207_probe: .long 0x7C000E99 .long 0x10000508 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -44,7 +44,7 @@ xor 0,0,0 .long 0x10600033 .long 0x10600031 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -76,7 +76,7 @@ xor 12,12,12 fmr 12,31 fmr 13,31 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -89,7 +89,7 @@ Ladd: lwarx 5,0,3 stwcx. 0,0,3 bne- Ladd mr 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -104,7 +104,7 @@ Loop_rdtsc: mftbu 4 cmplw 0,4,5 bne Loop_rdtsc - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -121,7 +121,7 @@ Little: mtctr 4 stb 0,0(3) addi 3,3,1 bc 16,0,$-8 - blr + blr Lot: andi. 5,3,3 beq Laligned stb 0,0(3) @@ -136,7 +136,7 @@ Laligned: bc 16,0,$-8 andi. 4,4,3 bne Little - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -162,7 +162,7 @@ Lno_data: li 3,0 sub 3,3,0 extrwi 3,3,1,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -193,7 +193,7 @@ Loop: mftb 6 bc 16,0,Loop mr 3,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -245,7 +245,8 @@ Loop2: Ldone2: srwi 4,4,2 sub 3,0,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 + diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha1-ppc.s index 41cf5f850a1d10..2cbfbd5a3c2df8 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha1-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha1-ppc.s @@ -100,7 +100,7 @@ Ldone: lwz 31,156(1) mtlr 0 addi 1,1,160 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1108,7 +1108,7 @@ Lsha1_block_private: mr 11,20 addi 4,4,64 bc 16,0,Lsha1_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256-ppc.s index 1b8f10817411c4..0be5e923ef56d3 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256-ppc.s @@ -120,7 +120,7 @@ Ldone: lwz 31,188(1) mtlr 0 addi 1,1,192 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1286,7 +1286,7 @@ Lrounds: cmplw 0,31,5 stw 15,28(3) bne Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1297,7 +1297,7 @@ LPICmeup: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256p8-ppc.s index 8f73813109de16..e252f6fe29b3ec 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256p8-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha256p8-ppc.s @@ -772,7 +772,7 @@ L16_xx: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -784,7 +784,7 @@ LPICmeup: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512-ppc.s index 82da5d2e4e2dbd..ca3c3629a09898 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512-ppc.s @@ -127,7 +127,7 @@ Ldone: lwz 31,252(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -2972,7 +2972,7 @@ Lrounds: stw 4,164(1) cmplw 0,4,5 bne Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -2983,7 +2983,7 @@ LPICmeup: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512p8-ppc.s index 08ca5b45730f9b..930f009de78ca3 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512p8-ppc.s +++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/sha/sha512p8-ppc.s @@ -773,7 +773,7 @@ L16_xx: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -785,7 +785,7 @@ LPICmeup: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix-gcc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/aix-gcc/asm/include/openssl/opensslconf.h index 8f5c4f48d240e9..b3ae627c1af74a 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/aix-gcc/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/aix-gcc/asm/openssl.gypi b/deps/openssl/config/archs/aix-gcc/asm/openssl.gypi index 68196fdabfda06..552c22020ed531 100644 --- a/deps/openssl/config/archs/aix-gcc/asm/openssl.gypi +++ b/deps/openssl/config/archs/aix-gcc/asm/openssl.gypi @@ -217,6 +217,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -577,6 +578,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm index b8674f95372b8c..47fc553ca8b566 100644 --- a/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/aix-gcc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "aix-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3934,6 +3950,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6212,6 +6234,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7199,6 +7227,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7393,10 +7425,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7552,6 +7597,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7592,7 +7638,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7974,6 +8023,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8094,9 +8146,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9085,6 +9146,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10525,6 +10590,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11044,6 +11113,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11404,6 +11474,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12407,6 +12478,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12756,6 +12836,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12764,6 +12852,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h index 8f97dac70a3703..915064c8b3fe46 100644 --- a/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix-gcc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: aix-gcc" -#define DATE "built on: Tue Apr 3 00:38:09 2018" +#define DATE "built on: Tue Aug 14 23:12:58 2018" diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/aix-gcc/no-asm/include/openssl/opensslconf.h index ae6ea775d71987..de84cb510b9ed1 100644 --- a/deps/openssl/config/archs/aix-gcc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/aix-gcc/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/aix-gcc/no-asm/openssl.gypi b/deps/openssl/config/archs/aix-gcc/no-asm/openssl.gypi index 70dc22a3879d5b..eaa75cb78dbc49 100644 --- a/deps/openssl/config/archs/aix-gcc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/aix-gcc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm index 1512a38c0e07f1..67d415bf12cf02 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "aix64-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1079,6 +1079,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1245,10 +1249,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3965,6 +3981,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6297,6 +6319,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7284,6 +7312,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7478,10 +7510,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7637,6 +7682,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7677,7 +7723,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8059,6 +8108,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8179,9 +8231,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9190,6 +9251,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10666,6 +10731,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11190,6 +11259,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11559,6 +11629,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12562,6 +12633,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12911,6 +12991,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12919,6 +13007,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aes-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aes-ppc.s index cc96236fe5b652..32c684cd9c001e 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aes-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aes-ppc.s @@ -8,7 +8,7 @@ LAES_Te: mflr 3 addi 3,3,120 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -18,7 +18,7 @@ LAES_Td: mflr 3 addi 3,3,2360 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -739,7 +739,7 @@ Lenc_done: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -819,7 +819,7 @@ Lenc_loop: bc 16,0,Lenc_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -884,7 +884,7 @@ Lenc_loop: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1029,7 +1029,7 @@ Lenc_compact_done: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1173,7 +1173,7 @@ Ldec_done: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1253,7 +1253,7 @@ Ldec_loop: bc 16,0,Ldec_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -1318,7 +1318,7 @@ Ldec_loop: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1515,7 +1515,7 @@ Ldec_compact_done: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aesp8-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aesp8-ppc.s index 0893f20dc86956..0c906d17987cd9 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aesp8-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/aesp8-ppc.s @@ -14,7 +14,7 @@ Lconsts: mflr 6 addi 6,6,-0x48 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -277,7 +277,7 @@ Ldone: Lenc_key_abort: mr 3,6 - blr + blr .long 0 .byte 0,12,0x14,1,0,0,3,0 .long 0 @@ -325,7 +325,7 @@ Ldeckey: xor 3,3,3 Ldec_key_abort: addi 1,1,64 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,3,0 .long 0 @@ -392,7 +392,7 @@ Loop_enc: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -459,7 +459,7 @@ Loop_dec: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -620,7 +620,7 @@ Lcbc_done: stvx 2,10,7 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -910,8 +910,8 @@ Loop_cbc_dec8x: addic. 5,5,128 beq Lcbc_dec8x_done - nop - nop + nop + nop Loop_cbc_dec8x_tail: .long 0x11EFC548 @@ -999,15 +999,15 @@ Loop_cbc_dec8x_tail: cmplwi 5,32 blt Lcbc_dec8x_one - nop + nop beq Lcbc_dec8x_two cmplwi 5,64 blt Lcbc_dec8x_three - nop + nop beq Lcbc_dec8x_four cmplwi 5,96 blt Lcbc_dec8x_five - nop + nop beq Lcbc_dec8x_six Lcbc_dec8x_seven: @@ -1194,7 +1194,7 @@ Lcbc_dec8x_done: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1301,7 +1301,7 @@ Loop_ctr32_enc: stvx 2,0,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -1604,15 +1604,15 @@ Loop_ctr32_enc8x_middle: Lctr32_enc8x_break: cmpwi 5,-0x60 blt Lctr32_enc8x_one - nop + nop beq Lctr32_enc8x_two cmpwi 5,-0x40 blt Lctr32_enc8x_three - nop + nop beq Lctr32_enc8x_four cmpwi 5,-0x20 blt Lctr32_enc8x_five - nop + nop beq Lctr32_enc8x_six cmpwi 5,0x00 blt Lctr32_enc8x_seven @@ -1821,7 +1821,7 @@ Lctr32_enc8x_done: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1958,7 +1958,7 @@ Loop_xts_enc: .long 0x10620509 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2031,7 +2031,7 @@ Lxts_enc_done: Lxts_enc_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2171,7 +2171,7 @@ Loop_xts_dec: .long 0x10620549 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2236,7 +2236,7 @@ Loop_xts_dec_short: .long 0x10620549 - nop + nop .long 0x7C602799 @@ -2287,7 +2287,7 @@ Lxts_dec_done: Lxts_dec_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2618,11 +2618,11 @@ Loop_xts_enc6x: beq Lxts_enc6x_zero cmpwi 5,0x20 blt Lxts_enc6x_one - nop + nop beq Lxts_enc6x_two cmpwi 5,0x40 blt Lxts_enc6x_three - nop + nop beq Lxts_enc6x_four Lxts_enc6x_five: @@ -2719,7 +2719,7 @@ Lxts_enc6x_two: .align 4 Lxts_enc6x_one: vxor 7,5,17 - nop + nop Loop_xts_enc1x: .long 0x10E7C508 lvx 24,26,7 @@ -2855,7 +2855,7 @@ Lxts_enc6x_ret: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -2940,7 +2940,7 @@ _aesp8_xts_enc5x: .long 0x11AD1509 .long 0x11CE1D09 .long 0x11EF2509 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -3268,11 +3268,11 @@ Loop_xts_dec6x: beq Lxts_dec6x_zero cmpwi 5,0x20 blt Lxts_dec6x_one - nop + nop beq Lxts_dec6x_two cmpwi 5,0x40 blt Lxts_dec6x_three - nop + nop beq Lxts_dec6x_four Lxts_dec6x_five: @@ -3373,7 +3373,7 @@ Lxts_dec6x_two: .align 4 Lxts_dec6x_one: vxor 7,5,17 - nop + nop Loop_xts_dec1x: .long 0x10E7C548 lvx 24,26,7 @@ -3543,7 +3543,7 @@ Lxts_dec6x_ret: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3628,6 +3628,6 @@ _aesp8_xts_dec5x: .long 0x11CE1D49 .long 0x11EF2549 mtctr 9 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/vpaes-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/vpaes-ppc.s index f2682de7c1fa05..0e35758de8622f 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/vpaes-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/aes/vpaes-ppc.s @@ -95,7 +95,7 @@ Lconsts: mflr 12 addi 12,12,-0x308 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 @@ -135,7 +135,7 @@ _vpaes_encrypt_preheat: lvx 17, 12, 8 lvx 18, 12, 11 lvx 19, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -223,7 +223,7 @@ Lenc_entry: vxor 4, 4, 5 vxor 0, 0, 4 vperm 0, 0, 7, 1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -318,7 +318,7 @@ Lenc_done: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -360,7 +360,7 @@ _vpaes_decrypt_preheat: lvx 21, 12, 8 lvx 22, 12, 11 lvx 23, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -455,7 +455,7 @@ Ldec_entry: vxor 4, 4, 5 vxor 0, 1, 4 vperm 0, 0, 7, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -550,7 +550,7 @@ Ldec_done: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -777,7 +777,7 @@ Lcbc_abort: ld 31,264(1) mtlr 0 addi 1,1,272 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,2,6,0 .long 0 @@ -831,7 +831,7 @@ _vpaes_key_preheat: lvx 24, 12, 9 lvx 25, 0, 12 lvx 26, 12, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1077,7 +1077,7 @@ Lschedule_mangle_done: vxor 6, 6, 6 vxor 7, 7, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1105,7 +1105,7 @@ _vpaes_schedule_192_smear: vor 0, 6, 6 vsldoi 6, 6, 9, 8 vsldoi 6, 9, 6, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1171,7 +1171,7 @@ _vpaes_schedule_low_round: vxor 0, 1, 7 vxor 7, 1, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1193,7 +1193,7 @@ _vpaes_schedule_transform: vperm 2, 13, 13, 2 vxor 0, 0, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1245,7 +1245,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .align 4 Lschedule_mangle_dec: @@ -1296,7 +1296,7 @@ Lschedule_mangle_dec: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1372,7 +1372,7 @@ Lschedule_mangle_dec: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -1455,7 +1455,8 @@ Lschedule_mangle_dec: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 + diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/bn-ppc.s index b8414b98f4e9f0..0f88fd28ff8488 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/bn-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/bn-ppc.s @@ -227,7 +227,7 @@ std 9,48(3) std 10,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -655,7 +655,7 @@ std 9, 120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -809,7 +809,7 @@ std 10,48(3) std 11,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1348,7 +1348,7 @@ adde 10,10,9 std 12,112(3) std 10,120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1399,7 +1399,7 @@ Lppcasm_sub_mainloop: Lppcasm_sub_adios: subfze 3,0 andi. 3,3,1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1445,7 +1445,7 @@ Lppcasm_add_mainloop: bc 16,0,Lppcasm_add_mainloop Lppcasm_add_adios: addze 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1474,7 +1474,7 @@ Lppcasm_add_adios: cmpldi 0,5,0 bne Lppcasm_div1 li 3,-1 - blr + blr Lppcasm_div1: xor 0,0,0 li 8,64 @@ -1561,7 +1561,7 @@ Lppcasm_div8: b Lppcasm_divouterloop Lppcasm_div9: or 3,8,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1603,7 +1603,7 @@ Lppcasm_sqr_mainloop: stdu 8,8(3) bc 16,0,Lppcasm_sqr_mainloop Lppcasm_sqr_adios: - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1709,7 +1709,7 @@ Lppcasm_mw_REM: Lppcasm_mw_OVER: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1835,7 +1835,7 @@ Lppcasm_maw_leftover: Lppcasm_maw_adios: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc-mont.s index b767b00a5680b8..4b8b852812dd7f 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc-mont.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc-mont.s @@ -180,15 +180,16 @@ Lsub: ldx 12,22,21 li 21,0 mtctr 8 subfe 3,21,3 - and 4,22,3 - andc 6,9,3 - or 4,4,6 .align 4 Lcopy: - ldx 12,4,21 - stdx 12,9,21 + ldx 12,22,21 + ldx 10,9,21 + and 12,12,3 + andc 10,10,3 stdx 21,22,21 + or 10,10,12 + stdx 10,9,21 addi 21,21,8 bc 16,0,Lcopy @@ -207,7 +208,7 @@ Lcopy: ld 30,-16(12) ld 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x80,12,6,0 .long 0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc64-mont.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc64-mont.s index 2b5e5c9b257168..96ef2a9ea7b6ba 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc64-mont.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/bn/ppc64-mont.s @@ -679,16 +679,14 @@ Lsub: ldx 24,10,12 li 12,0 subfe 3,12,3 - and 4,10,3 - andc 6,9,3 - or 4,4,6 - addi 31,4,8 mtctr 11 .align 4 Lcopy: - ldx 24,4,12 - ldx 25,31,12 + ldx 24,10,12 + ldx 25,28,12 + ldx 26,9,12 + ldx 27,30,12 std 12,8(22) std 12,16(22) std 12,24(22) @@ -697,6 +695,12 @@ Lcopy: std 12,48(22) std 12,56(22) stdu 12,64(22) + and 24,24,3 + and 25,25,3 + andc 26,26,3 + andc 27,27,3 + or 24,24,26 + or 25,25,27 stdx 24,9,12 stdx 25,30,12 stdx 12,10,12 @@ -731,7 +735,7 @@ Lcopy: lfd 30,-16(12) lfd 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x8c,13,6,0 .long 0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h index eb144269c77661..bbb79117cab721 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/buildinf.h @@ -26,4 +26,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: aix64-gcc" -#define DATE "built on: Tue Apr 3 00:38:10 2018" +#define DATE "built on: Tue Aug 14 23:12:58 2018" diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/chacha/chacha-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/chacha/chacha-ppc.s index 60cf843569b06a..89e9d28bad3691 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/chacha/chacha-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/chacha/chacha-ppc.s @@ -59,7 +59,7 @@ __ChaCha20_ctr32_int: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,5,0 .long 0 @@ -345,7 +345,7 @@ Loop: bne Loop_outer - blr + blr .align 4 Ltail: @@ -396,7 +396,7 @@ Loop_tail: stw 1,104(1) stw 1,108(1) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -554,7 +554,7 @@ Loop_outer_vmx: vspltisw 27,7 mtctr 0 - nop + nop Loop_vmx: vadduwm 0,0,1 add 16,16,20 @@ -1047,7 +1047,7 @@ Laligned_vmx: cmpldi 5,255 bgt Loop_outer_vmx - nop + nop Ldone_vmx: cmpldi 5,0 @@ -1100,7 +1100,7 @@ Ldone_vmx: ld 31,456(1) mtlr 0 addi 1,1,464 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,18,5,0 .long 0 @@ -1113,7 +1113,7 @@ Lconsts: mflr 12 addi 12,12,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/modes/ghashp8-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/modes/ghashp8-ppc.s index 252ddc9d4ff9e2..db4f73d5590cc3 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/modes/ghashp8-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/modes/ghashp8-ppc.s @@ -122,7 +122,7 @@ .long 0x7E4A1F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -171,7 +171,7 @@ .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -287,7 +287,7 @@ Leven: .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -554,7 +554,7 @@ Ldone_4x: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppc.s index 0c976f6691dfe5..e5253a563b5120 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppc.s @@ -32,7 +32,7 @@ Lno_key: xor 3,3,3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 @@ -126,7 +126,7 @@ Loop: ld 31,184(1) addi 1,1,192 Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,5,4,0 @@ -166,7 +166,7 @@ Labort: li 12,12 stwbrx 8,11,4 stwbrx 7,12,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppcfp.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppcfp.s index a6393e8365be98..912a1f593367e2 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppcfp.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/poly1305/poly1305-ppcfp.s @@ -145,7 +145,7 @@ Lno_key: xor 3,3,3 addi 1,1,48 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,2,0 @@ -460,7 +460,7 @@ Lentry: lfd 31,232(1) addi 1,1,240 Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,0,4,0 @@ -547,7 +547,7 @@ Labort: ld 30,64(1) ld 31,72(1) addi 1,1,80 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 @@ -558,7 +558,7 @@ LPICmeup: mflr 5 addi 5,5,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/ppccpuid.s index d07c409ce4d784..4eabc3834422b6 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/ppccpuid.s @@ -5,7 +5,7 @@ .align 4 .OPENSSL_fpu_probe: fmr 0,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -14,7 +14,7 @@ .OPENSSL_ppc64_probe: fcfid 1,1 rldicl 0,0,32,32 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -23,7 +23,7 @@ .align 4 .OPENSSL_altivec_probe: .long 0x10000484 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -33,7 +33,7 @@ .OPENSSL_crypto207_probe: .long 0x7C000E99 .long 0x10000508 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -44,7 +44,7 @@ xor 0,0,0 .long 0x10600033 .long 0x10600031 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -76,7 +76,7 @@ xor 12,12,12 fmr 12,31 fmr 13,31 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -89,7 +89,7 @@ Ladd: lwarx 5,0,3 stwcx. 0,0,3 bne- Ladd extsw 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -99,7 +99,7 @@ Ladd: lwarx 5,0,3 .align 4 .OPENSSL_rdtsc: mftb 3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -116,7 +116,7 @@ Little: mtctr 4 stb 0,0(3) addi 3,3,1 bc 16,0,$-8 - blr + blr Lot: andi. 5,3,3 beq Laligned stb 0,0(3) @@ -131,7 +131,7 @@ Laligned: bc 16,0,$-8 andi. 4,4,3 bne Little - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -157,7 +157,7 @@ Lno_data: li 3,0 sub 3,3,0 extrwi 3,3,1,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -188,7 +188,7 @@ Loop: mftb 6 bc 16,0,Loop mr 3,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -240,7 +240,8 @@ Loop2: Ldone2: srwi 4,4,2 sub 3,0,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 + diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha1-ppc.s index 28dcdd1419f58a..1ffbb93d46afe5 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha1-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha1-ppc.s @@ -100,7 +100,7 @@ Ldone: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1108,7 +1108,7 @@ Lsha1_block_private: mr 11,20 addi 4,4,64 bc 16,0,Lsha1_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256-ppc.s index 8f1d4b31297358..b77b0151df92b3 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256-ppc.s @@ -120,7 +120,7 @@ Ldone: ld 31,312(1) mtlr 0 addi 1,1,320 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1286,7 +1286,7 @@ Lrounds: cmpld 31,5 stw 15,28(3) bne Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1297,7 +1297,7 @@ LPICmeup: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256p8-ppc.s index d765e581160cdc..fa3ea245144a27 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256p8-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha256p8-ppc.s @@ -772,7 +772,7 @@ L16_xx: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -784,7 +784,7 @@ LPICmeup: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512-ppc.s index 3a2073c9c87bef..91060790933892 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512-ppc.s @@ -120,7 +120,7 @@ Ldone: ld 31,376(1) mtlr 0 addi 1,1,384 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1318,7 +1318,7 @@ Lrounds: cmpld 31,5 std 15,56(3) bne Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1329,7 +1329,7 @@ LPICmeup: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512p8-ppc.s index a08d4748c1051e..60c23d4372fb51 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512p8-ppc.s +++ b/deps/openssl/config/archs/aix64-gcc/asm/crypto/sha/sha512p8-ppc.s @@ -773,7 +773,7 @@ L16_xx: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -785,7 +785,7 @@ LPICmeup: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/aix64-gcc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/aix64-gcc/asm/include/openssl/opensslconf.h index 5f12b2933d9b59..f4459a98a46d69 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/aix64-gcc/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/aix64-gcc/asm/openssl.gypi b/deps/openssl/config/archs/aix64-gcc/asm/openssl.gypi index 0985c459cc9846..44afda76b5eafa 100644 --- a/deps/openssl/config/archs/aix64-gcc/asm/openssl.gypi +++ b/deps/openssl/config/archs/aix64-gcc/asm/openssl.gypi @@ -217,6 +217,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -577,6 +578,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm index 5e25c7b88b4259..0b737280d0cb83 100644 --- a/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "aix64-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3934,6 +3950,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6212,6 +6234,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7199,6 +7227,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7393,10 +7425,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7552,6 +7597,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7592,7 +7638,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7974,6 +8023,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8094,9 +8146,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9085,6 +9146,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10525,6 +10590,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11044,6 +11113,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11404,6 +11474,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12407,6 +12478,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12756,6 +12836,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12764,6 +12852,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h index 88cd72b844a298..21038f0e3811e6 100644 --- a/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: aix64-gcc" -#define DATE "built on: Tue Apr 3 00:38:11 2018" +#define DATE "built on: Tue Aug 14 23:12:59 2018" diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h index d2aa6235359368..123e7f66ed2771 100644 --- a/deps/openssl/config/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/aix64-gcc/no-asm/openssl.gypi b/deps/openssl/config/archs/aix64-gcc/no-asm/openssl.gypi index 25974f0d08fc85..45566673058ca4 100644 --- a/deps/openssl/config/archs/aix64-gcc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/aix64-gcc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm index 0f822647dfceb8..5b271b6b96bd4a 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "darwin-i386-cc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3946,6 +3962,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6272,6 +6294,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7271,6 +7299,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7465,10 +7497,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7624,6 +7669,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7664,7 +7710,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8046,6 +8095,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8166,9 +8218,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9165,6 +9226,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10637,6 +10702,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11166,6 +11235,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11534,6 +11604,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12539,6 +12610,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12888,6 +12968,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12896,6 +12984,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bf/bf-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bf/bf-586.s index a7f782d965f344..bf02384737988f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bf/bf-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bf/bf-586.s @@ -11,7 +11,7 @@ L_BF_encrypt_begin: movl 16(%esp),%ebp pushl %esi pushl %edi - # Load the 2 words + # Load the 2 words movl (%ebx),%edi movl 4(%ebx),%esi xorl %eax,%eax @@ -19,7 +19,7 @@ L_BF_encrypt_begin: xorl %ecx,%ecx xorl %ebx,%edi - # Round 0 + # Round 0 movl 4(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -39,7 +39,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 1 + # Round 1 movl 8(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -59,7 +59,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 2 + # Round 2 movl 12(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -79,7 +79,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 3 + # Round 3 movl 16(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -99,7 +99,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 4 + # Round 4 movl 20(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -119,7 +119,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 5 + # Round 5 movl 24(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -139,7 +139,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 6 + # Round 6 movl 28(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -159,7 +159,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 7 + # Round 7 movl 32(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -179,7 +179,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 8 + # Round 8 movl 36(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -199,7 +199,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 9 + # Round 9 movl 40(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -219,7 +219,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 10 + # Round 10 movl 44(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -239,7 +239,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 11 + # Round 11 movl 48(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -259,7 +259,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 12 + # Round 12 movl 52(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -279,7 +279,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 13 + # Round 13 movl 56(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -299,7 +299,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 14 + # Round 14 movl 60(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -319,7 +319,7 @@ L_BF_encrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 15 + # Round 15 movl 64(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -336,7 +336,7 @@ L_BF_encrypt_begin: xorl %eax,%ebx movl 3144(%ebp,%edx,4),%edx addl %edx,%ebx - # Load parameter 0 (16) enc=1 + # Load parameter 0 (16) enc=1 movl 20(%esp),%eax xorl %ebx,%edi movl 68(%ebp),%edx @@ -359,7 +359,7 @@ L_BF_decrypt_begin: movl 16(%esp),%ebp pushl %esi pushl %edi - # Load the 2 words + # Load the 2 words movl (%ebx),%edi movl 4(%ebx),%esi xorl %eax,%eax @@ -367,7 +367,7 @@ L_BF_decrypt_begin: xorl %ecx,%ecx xorl %ebx,%edi - # Round 16 + # Round 16 movl 64(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -387,7 +387,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 15 + # Round 15 movl 60(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -407,7 +407,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 14 + # Round 14 movl 56(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -427,7 +427,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 13 + # Round 13 movl 52(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -447,7 +447,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 12 + # Round 12 movl 48(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -467,7 +467,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 11 + # Round 11 movl 44(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -487,7 +487,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 10 + # Round 10 movl 40(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -507,7 +507,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 9 + # Round 9 movl 36(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -527,7 +527,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 8 + # Round 8 movl 32(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -547,7 +547,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 7 + # Round 7 movl 28(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -567,7 +567,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 6 + # Round 6 movl 24(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -587,7 +587,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 5 + # Round 5 movl 20(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -607,7 +607,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 4 + # Round 4 movl 16(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -627,7 +627,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 3 + # Round 3 movl 12(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -647,7 +647,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%edi - # Round 2 + # Round 2 movl 8(%ebp),%edx movl %edi,%ebx xorl %edx,%esi @@ -667,7 +667,7 @@ L_BF_decrypt_begin: xorl %eax,%eax xorl %ebx,%esi - # Round 1 + # Round 1 movl 4(%ebp),%edx movl %esi,%ebx xorl %edx,%edi @@ -684,7 +684,7 @@ L_BF_decrypt_begin: xorl %eax,%ebx movl 3144(%ebp,%edx,4),%edx addl %edx,%ebx - # Load parameter 0 (1) enc=0 + # Load parameter 0 (1) enc=0 movl 20(%esp),%eax xorl %ebx,%edi movl (%ebp),%edx @@ -706,7 +706,7 @@ L_BF_cbc_encrypt_begin: pushl %esi pushl %edi movl 28(%esp),%ebp - # getting iv ptr from parameter 4 + # getting iv ptr from parameter 4 movl 36(%esp),%ebx movl (%ebx),%esi movl 4(%ebx),%edi @@ -717,9 +717,9 @@ L_BF_cbc_encrypt_begin: movl %esp,%ebx movl 36(%esp),%esi movl 40(%esp),%edi - # getting encrypt flag from parameter 5 + # getting encrypt flag from parameter 5 movl 56(%esp),%ecx - # get and push parameter 3 + # get and push parameter 3 movl 48(%esp),%eax pushl %eax pushl %ebx diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.s index 11f7e704c0a0bb..7e6ccce48743cd 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/bn-586.s @@ -115,7 +115,7 @@ L001maw_non_sse2: jz L006maw_finish .align 4,0x90 L007maw_loop: - # Round 0 + # Round 0 movl (%ebx),%eax mull %ebp addl %esi,%eax @@ -124,7 +124,7 @@ L007maw_loop: adcl $0,%edx movl %eax,(%edi) movl %edx,%esi - # Round 4 + # Round 4 movl 4(%ebx),%eax mull %ebp addl %esi,%eax @@ -133,7 +133,7 @@ L007maw_loop: adcl $0,%edx movl %eax,4(%edi) movl %edx,%esi - # Round 8 + # Round 8 movl 8(%ebx),%eax mull %ebp addl %esi,%eax @@ -142,7 +142,7 @@ L007maw_loop: adcl $0,%edx movl %eax,8(%edi) movl %edx,%esi - # Round 12 + # Round 12 movl 12(%ebx),%eax mull %ebp addl %esi,%eax @@ -151,7 +151,7 @@ L007maw_loop: adcl $0,%edx movl %eax,12(%edi) movl %edx,%esi - # Round 16 + # Round 16 movl 16(%ebx),%eax mull %ebp addl %esi,%eax @@ -160,7 +160,7 @@ L007maw_loop: adcl $0,%edx movl %eax,16(%edi) movl %edx,%esi - # Round 20 + # Round 20 movl 20(%ebx),%eax mull %ebp addl %esi,%eax @@ -169,7 +169,7 @@ L007maw_loop: adcl $0,%edx movl %eax,20(%edi) movl %edx,%esi - # Round 24 + # Round 24 movl 24(%ebx),%eax mull %ebp addl %esi,%eax @@ -178,7 +178,7 @@ L007maw_loop: adcl $0,%edx movl %eax,24(%edi) movl %edx,%esi - # Round 28 + # Round 28 movl 28(%ebx),%eax mull %ebp addl %esi,%eax @@ -198,7 +198,7 @@ L006maw_finish: jnz L008maw_finish2 jmp L009maw_end L008maw_finish2: - # Tail Round 0 + # Tail Round 0 movl (%ebx),%eax mull %ebp addl %esi,%eax @@ -209,7 +209,7 @@ L008maw_finish2: movl %eax,(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 1 + # Tail Round 1 movl 4(%ebx),%eax mull %ebp addl %esi,%eax @@ -220,7 +220,7 @@ L008maw_finish2: movl %eax,4(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 2 + # Tail Round 2 movl 8(%ebx),%eax mull %ebp addl %esi,%eax @@ -231,7 +231,7 @@ L008maw_finish2: movl %eax,8(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 3 + # Tail Round 3 movl 12(%ebx),%eax mull %ebp addl %esi,%eax @@ -242,7 +242,7 @@ L008maw_finish2: movl %eax,12(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 4 + # Tail Round 4 movl 16(%ebx),%eax mull %ebp addl %esi,%eax @@ -253,7 +253,7 @@ L008maw_finish2: movl %eax,16(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 5 + # Tail Round 5 movl 20(%ebx),%eax mull %ebp addl %esi,%eax @@ -264,7 +264,7 @@ L008maw_finish2: movl %eax,20(%edi) movl %edx,%esi jz L009maw_end - # Tail Round 6 + # Tail Round 6 movl 24(%ebx),%eax mull %ebp addl %esi,%eax @@ -325,56 +325,56 @@ L011mw_non_sse2: andl $4294967288,%ebp jz L013mw_finish L014mw_loop: - # Round 0 + # Round 0 movl (%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,(%edi) movl %edx,%esi - # Round 4 + # Round 4 movl 4(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,4(%edi) movl %edx,%esi - # Round 8 + # Round 8 movl 8(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,8(%edi) movl %edx,%esi - # Round 12 + # Round 12 movl 12(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,12(%edi) movl %edx,%esi - # Round 16 + # Round 16 movl 16(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,16(%edi) movl %edx,%esi - # Round 20 + # Round 20 movl 20(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,20(%edi) movl %edx,%esi - # Round 24 + # Round 24 movl 24(%ebx),%eax mull %ecx addl %esi,%eax adcl $0,%edx movl %eax,24(%edi) movl %edx,%esi - # Round 28 + # Round 28 movl 28(%ebx),%eax mull %ecx addl %esi,%eax @@ -393,7 +393,7 @@ L013mw_finish: jnz L015mw_finish2 jmp L016mw_end L015mw_finish2: - # Tail Round 0 + # Tail Round 0 movl (%ebx),%eax mull %ecx addl %esi,%eax @@ -402,7 +402,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 1 + # Tail Round 1 movl 4(%ebx),%eax mull %ecx addl %esi,%eax @@ -411,7 +411,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 2 + # Tail Round 2 movl 8(%ebx),%eax mull %ecx addl %esi,%eax @@ -420,7 +420,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 3 + # Tail Round 3 movl 12(%ebx),%eax mull %ecx addl %esi,%eax @@ -429,7 +429,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 4 + # Tail Round 4 movl 16(%ebx),%eax mull %ecx addl %esi,%eax @@ -438,7 +438,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 5 + # Tail Round 5 movl 20(%ebx),%eax mull %ecx addl %esi,%eax @@ -447,7 +447,7 @@ L015mw_finish2: movl %edx,%esi decl %ebp jz L016mw_end - # Tail Round 6 + # Tail Round 6 movl 24(%ebx),%eax mull %ecx addl %esi,%eax @@ -498,42 +498,42 @@ L018sqr_non_sse2: andl $4294967288,%ebx jz L020sw_finish L021sw_loop: - # Round 0 + # Round 0 movl (%edi),%eax mull %eax movl %eax,(%esi) movl %edx,4(%esi) - # Round 4 + # Round 4 movl 4(%edi),%eax mull %eax movl %eax,8(%esi) movl %edx,12(%esi) - # Round 8 + # Round 8 movl 8(%edi),%eax mull %eax movl %eax,16(%esi) movl %edx,20(%esi) - # Round 12 + # Round 12 movl 12(%edi),%eax mull %eax movl %eax,24(%esi) movl %edx,28(%esi) - # Round 16 + # Round 16 movl 16(%edi),%eax mull %eax movl %eax,32(%esi) movl %edx,36(%esi) - # Round 20 + # Round 20 movl 20(%edi),%eax mull %eax movl %eax,40(%esi) movl %edx,44(%esi) - # Round 24 + # Round 24 movl 24(%edi),%eax mull %eax movl %eax,48(%esi) movl %edx,52(%esi) - # Round 28 + # Round 28 movl 28(%edi),%eax mull %eax movl %eax,56(%esi) @@ -547,49 +547,49 @@ L020sw_finish: movl 28(%esp),%ebx andl $7,%ebx jz L022sw_end - # Tail Round 0 + # Tail Round 0 movl (%edi),%eax mull %eax movl %eax,(%esi) decl %ebx movl %edx,4(%esi) jz L022sw_end - # Tail Round 1 + # Tail Round 1 movl 4(%edi),%eax mull %eax movl %eax,8(%esi) decl %ebx movl %edx,12(%esi) jz L022sw_end - # Tail Round 2 + # Tail Round 2 movl 8(%edi),%eax mull %eax movl %eax,16(%esi) decl %ebx movl %edx,20(%esi) jz L022sw_end - # Tail Round 3 + # Tail Round 3 movl 12(%edi),%eax mull %eax movl %eax,24(%esi) decl %ebx movl %edx,28(%esi) jz L022sw_end - # Tail Round 4 + # Tail Round 4 movl 16(%edi),%eax mull %eax movl %eax,32(%esi) decl %ebx movl %edx,36(%esi) jz L022sw_end - # Tail Round 5 + # Tail Round 5 movl 20(%edi),%eax mull %eax movl %eax,40(%esi) decl %ebx movl %edx,44(%esi) jz L022sw_end - # Tail Round 6 + # Tail Round 6 movl 24(%edi),%eax mull %eax movl %eax,48(%esi) @@ -626,7 +626,7 @@ L_bn_add_words_begin: andl $4294967288,%ebp jz L023aw_finish L024aw_loop: - # Round 0 + # Round 0 movl (%esi),%ecx movl (%edi),%edx addl %eax,%ecx @@ -635,7 +635,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,(%ebx) - # Round 1 + # Round 1 movl 4(%esi),%ecx movl 4(%edi),%edx addl %eax,%ecx @@ -644,7 +644,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,4(%ebx) - # Round 2 + # Round 2 movl 8(%esi),%ecx movl 8(%edi),%edx addl %eax,%ecx @@ -653,7 +653,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,8(%ebx) - # Round 3 + # Round 3 movl 12(%esi),%ecx movl 12(%edi),%edx addl %eax,%ecx @@ -662,7 +662,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,12(%ebx) - # Round 4 + # Round 4 movl 16(%esi),%ecx movl 16(%edi),%edx addl %eax,%ecx @@ -671,7 +671,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,16(%ebx) - # Round 5 + # Round 5 movl 20(%esi),%ecx movl 20(%edi),%edx addl %eax,%ecx @@ -680,7 +680,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,20(%ebx) - # Round 6 + # Round 6 movl 24(%esi),%ecx movl 24(%edi),%edx addl %eax,%ecx @@ -689,7 +689,7 @@ L024aw_loop: addl %edx,%ecx adcl $0,%eax movl %ecx,24(%ebx) - # Round 7 + # Round 7 movl 28(%esi),%ecx movl 28(%edi),%edx addl %eax,%ecx @@ -708,7 +708,7 @@ L023aw_finish: movl 32(%esp),%ebp andl $7,%ebp jz L025aw_end - # Tail Round 0 + # Tail Round 0 movl (%esi),%ecx movl (%edi),%edx addl %eax,%ecx @@ -719,7 +719,7 @@ L023aw_finish: decl %ebp movl %ecx,(%ebx) jz L025aw_end - # Tail Round 1 + # Tail Round 1 movl 4(%esi),%ecx movl 4(%edi),%edx addl %eax,%ecx @@ -730,7 +730,7 @@ L023aw_finish: decl %ebp movl %ecx,4(%ebx) jz L025aw_end - # Tail Round 2 + # Tail Round 2 movl 8(%esi),%ecx movl 8(%edi),%edx addl %eax,%ecx @@ -741,7 +741,7 @@ L023aw_finish: decl %ebp movl %ecx,8(%ebx) jz L025aw_end - # Tail Round 3 + # Tail Round 3 movl 12(%esi),%ecx movl 12(%edi),%edx addl %eax,%ecx @@ -752,7 +752,7 @@ L023aw_finish: decl %ebp movl %ecx,12(%ebx) jz L025aw_end - # Tail Round 4 + # Tail Round 4 movl 16(%esi),%ecx movl 16(%edi),%edx addl %eax,%ecx @@ -763,7 +763,7 @@ L023aw_finish: decl %ebp movl %ecx,16(%ebx) jz L025aw_end - # Tail Round 5 + # Tail Round 5 movl 20(%esi),%ecx movl 20(%edi),%edx addl %eax,%ecx @@ -774,7 +774,7 @@ L023aw_finish: decl %ebp movl %ecx,20(%ebx) jz L025aw_end - # Tail Round 6 + # Tail Round 6 movl 24(%esi),%ecx movl 24(%edi),%edx addl %eax,%ecx @@ -806,7 +806,7 @@ L_bn_sub_words_begin: andl $4294967288,%ebp jz L026aw_finish L027aw_loop: - # Round 0 + # Round 0 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -815,7 +815,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,(%ebx) - # Round 1 + # Round 1 movl 4(%esi),%ecx movl 4(%edi),%edx subl %eax,%ecx @@ -824,7 +824,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,4(%ebx) - # Round 2 + # Round 2 movl 8(%esi),%ecx movl 8(%edi),%edx subl %eax,%ecx @@ -833,7 +833,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,8(%ebx) - # Round 3 + # Round 3 movl 12(%esi),%ecx movl 12(%edi),%edx subl %eax,%ecx @@ -842,7 +842,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,12(%ebx) - # Round 4 + # Round 4 movl 16(%esi),%ecx movl 16(%edi),%edx subl %eax,%ecx @@ -851,7 +851,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,16(%ebx) - # Round 5 + # Round 5 movl 20(%esi),%ecx movl 20(%edi),%edx subl %eax,%ecx @@ -860,7 +860,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,20(%ebx) - # Round 6 + # Round 6 movl 24(%esi),%ecx movl 24(%edi),%edx subl %eax,%ecx @@ -869,7 +869,7 @@ L027aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,24(%ebx) - # Round 7 + # Round 7 movl 28(%esi),%ecx movl 28(%edi),%edx subl %eax,%ecx @@ -888,7 +888,7 @@ L026aw_finish: movl 32(%esp),%ebp andl $7,%ebp jz L028aw_end - # Tail Round 0 + # Tail Round 0 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -899,7 +899,7 @@ L026aw_finish: decl %ebp movl %ecx,(%ebx) jz L028aw_end - # Tail Round 1 + # Tail Round 1 movl 4(%esi),%ecx movl 4(%edi),%edx subl %eax,%ecx @@ -910,7 +910,7 @@ L026aw_finish: decl %ebp movl %ecx,4(%ebx) jz L028aw_end - # Tail Round 2 + # Tail Round 2 movl 8(%esi),%ecx movl 8(%edi),%edx subl %eax,%ecx @@ -921,7 +921,7 @@ L026aw_finish: decl %ebp movl %ecx,8(%ebx) jz L028aw_end - # Tail Round 3 + # Tail Round 3 movl 12(%esi),%ecx movl 12(%edi),%edx subl %eax,%ecx @@ -932,7 +932,7 @@ L026aw_finish: decl %ebp movl %ecx,12(%ebx) jz L028aw_end - # Tail Round 4 + # Tail Round 4 movl 16(%esi),%ecx movl 16(%edi),%edx subl %eax,%ecx @@ -943,7 +943,7 @@ L026aw_finish: decl %ebp movl %ecx,16(%ebx) jz L028aw_end - # Tail Round 5 + # Tail Round 5 movl 20(%esi),%ecx movl 20(%edi),%edx subl %eax,%ecx @@ -954,7 +954,7 @@ L026aw_finish: decl %ebp movl %ecx,20(%ebx) jz L028aw_end - # Tail Round 6 + # Tail Round 6 movl 24(%esi),%ecx movl 24(%edi),%edx subl %eax,%ecx @@ -986,7 +986,7 @@ L_bn_sub_part_words_begin: andl $4294967288,%ebp jz L029aw_finish L030aw_loop: - # Round 0 + # Round 0 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -995,7 +995,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,(%ebx) - # Round 1 + # Round 1 movl 4(%esi),%ecx movl 4(%edi),%edx subl %eax,%ecx @@ -1004,7 +1004,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,4(%ebx) - # Round 2 + # Round 2 movl 8(%esi),%ecx movl 8(%edi),%edx subl %eax,%ecx @@ -1013,7 +1013,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,8(%ebx) - # Round 3 + # Round 3 movl 12(%esi),%ecx movl 12(%edi),%edx subl %eax,%ecx @@ -1022,7 +1022,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,12(%ebx) - # Round 4 + # Round 4 movl 16(%esi),%ecx movl 16(%edi),%edx subl %eax,%ecx @@ -1031,7 +1031,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,16(%ebx) - # Round 5 + # Round 5 movl 20(%esi),%ecx movl 20(%edi),%edx subl %eax,%ecx @@ -1040,7 +1040,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,20(%ebx) - # Round 6 + # Round 6 movl 24(%esi),%ecx movl 24(%edi),%edx subl %eax,%ecx @@ -1049,7 +1049,7 @@ L030aw_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,24(%ebx) - # Round 7 + # Round 7 movl 28(%esi),%ecx movl 28(%edi),%edx subl %eax,%ecx @@ -1068,7 +1068,7 @@ L029aw_finish: movl 32(%esp),%ebp andl $7,%ebp jz L031aw_end - # Tail Round 0 + # Tail Round 0 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1082,7 +1082,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 1 + # Tail Round 1 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1096,7 +1096,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 2 + # Tail Round 2 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1110,7 +1110,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 3 + # Tail Round 3 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1124,7 +1124,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 4 + # Tail Round 4 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1138,7 +1138,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 5 + # Tail Round 5 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1152,7 +1152,7 @@ L029aw_finish: addl $4,%ebx decl %ebp jz L031aw_end - # Tail Round 6 + # Tail Round 6 movl (%esi),%ecx movl (%edi),%edx subl %eax,%ecx @@ -1171,14 +1171,14 @@ L031aw_end: cmpl $0,%ebp je L032pw_end jge L033pw_pos - # pw_neg + # pw_neg movl $0,%edx subl %ebp,%edx movl %edx,%ebp andl $4294967288,%ebp jz L034pw_neg_finish L035pw_neg_loop: - # dl<0 Round 0 + # dl<0 Round 0 movl $0,%ecx movl (%edi),%edx subl %eax,%ecx @@ -1187,7 +1187,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,(%ebx) - # dl<0 Round 1 + # dl<0 Round 1 movl $0,%ecx movl 4(%edi),%edx subl %eax,%ecx @@ -1196,7 +1196,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,4(%ebx) - # dl<0 Round 2 + # dl<0 Round 2 movl $0,%ecx movl 8(%edi),%edx subl %eax,%ecx @@ -1205,7 +1205,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,8(%ebx) - # dl<0 Round 3 + # dl<0 Round 3 movl $0,%ecx movl 12(%edi),%edx subl %eax,%ecx @@ -1214,7 +1214,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,12(%ebx) - # dl<0 Round 4 + # dl<0 Round 4 movl $0,%ecx movl 16(%edi),%edx subl %eax,%ecx @@ -1223,7 +1223,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,16(%ebx) - # dl<0 Round 5 + # dl<0 Round 5 movl $0,%ecx movl 20(%edi),%edx subl %eax,%ecx @@ -1232,7 +1232,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,20(%ebx) - # dl<0 Round 6 + # dl<0 Round 6 movl $0,%ecx movl 24(%edi),%edx subl %eax,%ecx @@ -1241,7 +1241,7 @@ L035pw_neg_loop: subl %edx,%ecx adcl $0,%eax movl %ecx,24(%ebx) - # dl<0 Round 7 + # dl<0 Round 7 movl $0,%ecx movl 28(%edi),%edx subl %eax,%ecx @@ -1261,7 +1261,7 @@ L034pw_neg_finish: subl %edx,%ebp andl $7,%ebp jz L032pw_end - # dl<0 Tail Round 0 + # dl<0 Tail Round 0 movl $0,%ecx movl (%edi),%edx subl %eax,%ecx @@ -1272,7 +1272,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,(%ebx) jz L032pw_end - # dl<0 Tail Round 1 + # dl<0 Tail Round 1 movl $0,%ecx movl 4(%edi),%edx subl %eax,%ecx @@ -1283,7 +1283,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,4(%ebx) jz L032pw_end - # dl<0 Tail Round 2 + # dl<0 Tail Round 2 movl $0,%ecx movl 8(%edi),%edx subl %eax,%ecx @@ -1294,7 +1294,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,8(%ebx) jz L032pw_end - # dl<0 Tail Round 3 + # dl<0 Tail Round 3 movl $0,%ecx movl 12(%edi),%edx subl %eax,%ecx @@ -1305,7 +1305,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,12(%ebx) jz L032pw_end - # dl<0 Tail Round 4 + # dl<0 Tail Round 4 movl $0,%ecx movl 16(%edi),%edx subl %eax,%ecx @@ -1316,7 +1316,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,16(%ebx) jz L032pw_end - # dl<0 Tail Round 5 + # dl<0 Tail Round 5 movl $0,%ecx movl 20(%edi),%edx subl %eax,%ecx @@ -1327,7 +1327,7 @@ L034pw_neg_finish: decl %ebp movl %ecx,20(%ebx) jz L032pw_end - # dl<0 Tail Round 6 + # dl<0 Tail Round 6 movl $0,%ecx movl 24(%edi),%edx subl %eax,%ecx @@ -1341,42 +1341,42 @@ L033pw_pos: andl $4294967288,%ebp jz L036pw_pos_finish L037pw_pos_loop: - # dl>0 Round 0 + # dl>0 Round 0 movl (%esi),%ecx subl %eax,%ecx movl %ecx,(%ebx) jnc L038pw_nc0 - # dl>0 Round 1 + # dl>0 Round 1 movl 4(%esi),%ecx subl %eax,%ecx movl %ecx,4(%ebx) jnc L039pw_nc1 - # dl>0 Round 2 + # dl>0 Round 2 movl 8(%esi),%ecx subl %eax,%ecx movl %ecx,8(%ebx) jnc L040pw_nc2 - # dl>0 Round 3 + # dl>0 Round 3 movl 12(%esi),%ecx subl %eax,%ecx movl %ecx,12(%ebx) jnc L041pw_nc3 - # dl>0 Round 4 + # dl>0 Round 4 movl 16(%esi),%ecx subl %eax,%ecx movl %ecx,16(%ebx) jnc L042pw_nc4 - # dl>0 Round 5 + # dl>0 Round 5 movl 20(%esi),%ecx subl %eax,%ecx movl %ecx,20(%ebx) jnc L043pw_nc5 - # dl>0 Round 6 + # dl>0 Round 6 movl 24(%esi),%ecx subl %eax,%ecx movl %ecx,24(%ebx) jnc L044pw_nc6 - # dl>0 Round 7 + # dl>0 Round 7 movl 28(%esi),%ecx subl %eax,%ecx movl %ecx,28(%ebx) @@ -1390,49 +1390,49 @@ L036pw_pos_finish: movl 36(%esp),%ebp andl $7,%ebp jz L032pw_end - # dl>0 Tail Round 0 + # dl>0 Tail Round 0 movl (%esi),%ecx subl %eax,%ecx movl %ecx,(%ebx) jnc L046pw_tail_nc0 decl %ebp jz L032pw_end - # dl>0 Tail Round 1 + # dl>0 Tail Round 1 movl 4(%esi),%ecx subl %eax,%ecx movl %ecx,4(%ebx) jnc L047pw_tail_nc1 decl %ebp jz L032pw_end - # dl>0 Tail Round 2 + # dl>0 Tail Round 2 movl 8(%esi),%ecx subl %eax,%ecx movl %ecx,8(%ebx) jnc L048pw_tail_nc2 decl %ebp jz L032pw_end - # dl>0 Tail Round 3 + # dl>0 Tail Round 3 movl 12(%esi),%ecx subl %eax,%ecx movl %ecx,12(%ebx) jnc L049pw_tail_nc3 decl %ebp jz L032pw_end - # dl>0 Tail Round 4 + # dl>0 Tail Round 4 movl 16(%esi),%ecx subl %eax,%ecx movl %ecx,16(%ebx) jnc L050pw_tail_nc4 decl %ebp jz L032pw_end - # dl>0 Tail Round 5 + # dl>0 Tail Round 5 movl 20(%esi),%ecx subl %eax,%ecx movl %ecx,20(%ebx) jnc L051pw_tail_nc5 decl %ebp jz L032pw_end - # dl>0 Tail Round 6 + # dl>0 Tail Round 6 movl 24(%esi),%ecx subl %eax,%ecx movl %ecx,24(%ebx) diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/co-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/co-586.s index 3e49f0a8674490..d82fdcbc7d6bbb 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/co-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/co-586.s @@ -14,9 +14,9 @@ L_bn_mul_comba8_begin: movl (%esi),%eax xorl %ecx,%ecx movl (%edi),%edx - # ################## Calculate word 0 + # ################## Calculate word 0 xorl %ebp,%ebp - # mul a[0]*b[0] + # mul a[0]*b[0] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -25,17 +25,17 @@ L_bn_mul_comba8_begin: adcl $0,%ebp movl %ebx,(%eax) movl 4(%esi),%eax - # saved r[0] - # ################## Calculate word 1 + # saved r[0] + # ################## Calculate word 1 xorl %ebx,%ebx - # mul a[1]*b[0] + # mul a[1]*b[0] mull %edx addl %eax,%ecx movl (%esi),%eax adcl %edx,%ebp movl 4(%edi),%edx adcl $0,%ebx - # mul a[0]*b[1] + # mul a[0]*b[1] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -44,24 +44,24 @@ L_bn_mul_comba8_begin: adcl $0,%ebx movl %ecx,4(%eax) movl 8(%esi),%eax - # saved r[1] - # ################## Calculate word 2 + # saved r[1] + # ################## Calculate word 2 xorl %ecx,%ecx - # mul a[2]*b[0] + # mul a[2]*b[0] mull %edx addl %eax,%ebp movl 4(%esi),%eax adcl %edx,%ebx movl 4(%edi),%edx adcl $0,%ecx - # mul a[1]*b[1] + # mul a[1]*b[1] mull %edx addl %eax,%ebp movl (%esi),%eax adcl %edx,%ebx movl 8(%edi),%edx adcl $0,%ecx - # mul a[0]*b[2] + # mul a[0]*b[2] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -70,31 +70,31 @@ L_bn_mul_comba8_begin: adcl $0,%ecx movl %ebp,8(%eax) movl 12(%esi),%eax - # saved r[2] - # ################## Calculate word 3 + # saved r[2] + # ################## Calculate word 3 xorl %ebp,%ebp - # mul a[3]*b[0] + # mul a[3]*b[0] mull %edx addl %eax,%ebx movl 8(%esi),%eax adcl %edx,%ecx movl 4(%edi),%edx adcl $0,%ebp - # mul a[2]*b[1] + # mul a[2]*b[1] mull %edx addl %eax,%ebx movl 4(%esi),%eax adcl %edx,%ecx movl 8(%edi),%edx adcl $0,%ebp - # mul a[1]*b[2] + # mul a[1]*b[2] mull %edx addl %eax,%ebx movl (%esi),%eax adcl %edx,%ecx movl 12(%edi),%edx adcl $0,%ebp - # mul a[0]*b[3] + # mul a[0]*b[3] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -103,38 +103,38 @@ L_bn_mul_comba8_begin: adcl $0,%ebp movl %ebx,12(%eax) movl 16(%esi),%eax - # saved r[3] - # ################## Calculate word 4 + # saved r[3] + # ################## Calculate word 4 xorl %ebx,%ebx - # mul a[4]*b[0] + # mul a[4]*b[0] mull %edx addl %eax,%ecx movl 12(%esi),%eax adcl %edx,%ebp movl 4(%edi),%edx adcl $0,%ebx - # mul a[3]*b[1] + # mul a[3]*b[1] mull %edx addl %eax,%ecx movl 8(%esi),%eax adcl %edx,%ebp movl 8(%edi),%edx adcl $0,%ebx - # mul a[2]*b[2] + # mul a[2]*b[2] mull %edx addl %eax,%ecx movl 4(%esi),%eax adcl %edx,%ebp movl 12(%edi),%edx adcl $0,%ebx - # mul a[1]*b[3] + # mul a[1]*b[3] mull %edx addl %eax,%ecx movl (%esi),%eax adcl %edx,%ebp movl 16(%edi),%edx adcl $0,%ebx - # mul a[0]*b[4] + # mul a[0]*b[4] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -143,45 +143,45 @@ L_bn_mul_comba8_begin: adcl $0,%ebx movl %ecx,16(%eax) movl 20(%esi),%eax - # saved r[4] - # ################## Calculate word 5 + # saved r[4] + # ################## Calculate word 5 xorl %ecx,%ecx - # mul a[5]*b[0] + # mul a[5]*b[0] mull %edx addl %eax,%ebp movl 16(%esi),%eax adcl %edx,%ebx movl 4(%edi),%edx adcl $0,%ecx - # mul a[4]*b[1] + # mul a[4]*b[1] mull %edx addl %eax,%ebp movl 12(%esi),%eax adcl %edx,%ebx movl 8(%edi),%edx adcl $0,%ecx - # mul a[3]*b[2] + # mul a[3]*b[2] mull %edx addl %eax,%ebp movl 8(%esi),%eax adcl %edx,%ebx movl 12(%edi),%edx adcl $0,%ecx - # mul a[2]*b[3] + # mul a[2]*b[3] mull %edx addl %eax,%ebp movl 4(%esi),%eax adcl %edx,%ebx movl 16(%edi),%edx adcl $0,%ecx - # mul a[1]*b[4] + # mul a[1]*b[4] mull %edx addl %eax,%ebp movl (%esi),%eax adcl %edx,%ebx movl 20(%edi),%edx adcl $0,%ecx - # mul a[0]*b[5] + # mul a[0]*b[5] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -190,52 +190,52 @@ L_bn_mul_comba8_begin: adcl $0,%ecx movl %ebp,20(%eax) movl 24(%esi),%eax - # saved r[5] - # ################## Calculate word 6 + # saved r[5] + # ################## Calculate word 6 xorl %ebp,%ebp - # mul a[6]*b[0] + # mul a[6]*b[0] mull %edx addl %eax,%ebx movl 20(%esi),%eax adcl %edx,%ecx movl 4(%edi),%edx adcl $0,%ebp - # mul a[5]*b[1] + # mul a[5]*b[1] mull %edx addl %eax,%ebx movl 16(%esi),%eax adcl %edx,%ecx movl 8(%edi),%edx adcl $0,%ebp - # mul a[4]*b[2] + # mul a[4]*b[2] mull %edx addl %eax,%ebx movl 12(%esi),%eax adcl %edx,%ecx movl 12(%edi),%edx adcl $0,%ebp - # mul a[3]*b[3] + # mul a[3]*b[3] mull %edx addl %eax,%ebx movl 8(%esi),%eax adcl %edx,%ecx movl 16(%edi),%edx adcl $0,%ebp - # mul a[2]*b[4] + # mul a[2]*b[4] mull %edx addl %eax,%ebx movl 4(%esi),%eax adcl %edx,%ecx movl 20(%edi),%edx adcl $0,%ebp - # mul a[1]*b[5] + # mul a[1]*b[5] mull %edx addl %eax,%ebx movl (%esi),%eax adcl %edx,%ecx movl 24(%edi),%edx adcl $0,%ebp - # mul a[0]*b[6] + # mul a[0]*b[6] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -244,59 +244,59 @@ L_bn_mul_comba8_begin: adcl $0,%ebp movl %ebx,24(%eax) movl 28(%esi),%eax - # saved r[6] - # ################## Calculate word 7 + # saved r[6] + # ################## Calculate word 7 xorl %ebx,%ebx - # mul a[7]*b[0] + # mul a[7]*b[0] mull %edx addl %eax,%ecx movl 24(%esi),%eax adcl %edx,%ebp movl 4(%edi),%edx adcl $0,%ebx - # mul a[6]*b[1] + # mul a[6]*b[1] mull %edx addl %eax,%ecx movl 20(%esi),%eax adcl %edx,%ebp movl 8(%edi),%edx adcl $0,%ebx - # mul a[5]*b[2] + # mul a[5]*b[2] mull %edx addl %eax,%ecx movl 16(%esi),%eax adcl %edx,%ebp movl 12(%edi),%edx adcl $0,%ebx - # mul a[4]*b[3] + # mul a[4]*b[3] mull %edx addl %eax,%ecx movl 12(%esi),%eax adcl %edx,%ebp movl 16(%edi),%edx adcl $0,%ebx - # mul a[3]*b[4] + # mul a[3]*b[4] mull %edx addl %eax,%ecx movl 8(%esi),%eax adcl %edx,%ebp movl 20(%edi),%edx adcl $0,%ebx - # mul a[2]*b[5] + # mul a[2]*b[5] mull %edx addl %eax,%ecx movl 4(%esi),%eax adcl %edx,%ebp movl 24(%edi),%edx adcl $0,%ebx - # mul a[1]*b[6] + # mul a[1]*b[6] mull %edx addl %eax,%ecx movl (%esi),%eax adcl %edx,%ebp movl 28(%edi),%edx adcl $0,%ebx - # mul a[0]*b[7] + # mul a[0]*b[7] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -305,52 +305,52 @@ L_bn_mul_comba8_begin: adcl $0,%ebx movl %ecx,28(%eax) movl 28(%esi),%eax - # saved r[7] - # ################## Calculate word 8 + # saved r[7] + # ################## Calculate word 8 xorl %ecx,%ecx - # mul a[7]*b[1] + # mul a[7]*b[1] mull %edx addl %eax,%ebp movl 24(%esi),%eax adcl %edx,%ebx movl 8(%edi),%edx adcl $0,%ecx - # mul a[6]*b[2] + # mul a[6]*b[2] mull %edx addl %eax,%ebp movl 20(%esi),%eax adcl %edx,%ebx movl 12(%edi),%edx adcl $0,%ecx - # mul a[5]*b[3] + # mul a[5]*b[3] mull %edx addl %eax,%ebp movl 16(%esi),%eax adcl %edx,%ebx movl 16(%edi),%edx adcl $0,%ecx - # mul a[4]*b[4] + # mul a[4]*b[4] mull %edx addl %eax,%ebp movl 12(%esi),%eax adcl %edx,%ebx movl 20(%edi),%edx adcl $0,%ecx - # mul a[3]*b[5] + # mul a[3]*b[5] mull %edx addl %eax,%ebp movl 8(%esi),%eax adcl %edx,%ebx movl 24(%edi),%edx adcl $0,%ecx - # mul a[2]*b[6] + # mul a[2]*b[6] mull %edx addl %eax,%ebp movl 4(%esi),%eax adcl %edx,%ebx movl 28(%edi),%edx adcl $0,%ecx - # mul a[1]*b[7] + # mul a[1]*b[7] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -359,45 +359,45 @@ L_bn_mul_comba8_begin: adcl $0,%ecx movl %ebp,32(%eax) movl 28(%esi),%eax - # saved r[8] - # ################## Calculate word 9 + # saved r[8] + # ################## Calculate word 9 xorl %ebp,%ebp - # mul a[7]*b[2] + # mul a[7]*b[2] mull %edx addl %eax,%ebx movl 24(%esi),%eax adcl %edx,%ecx movl 12(%edi),%edx adcl $0,%ebp - # mul a[6]*b[3] + # mul a[6]*b[3] mull %edx addl %eax,%ebx movl 20(%esi),%eax adcl %edx,%ecx movl 16(%edi),%edx adcl $0,%ebp - # mul a[5]*b[4] + # mul a[5]*b[4] mull %edx addl %eax,%ebx movl 16(%esi),%eax adcl %edx,%ecx movl 20(%edi),%edx adcl $0,%ebp - # mul a[4]*b[5] + # mul a[4]*b[5] mull %edx addl %eax,%ebx movl 12(%esi),%eax adcl %edx,%ecx movl 24(%edi),%edx adcl $0,%ebp - # mul a[3]*b[6] + # mul a[3]*b[6] mull %edx addl %eax,%ebx movl 8(%esi),%eax adcl %edx,%ecx movl 28(%edi),%edx adcl $0,%ebp - # mul a[2]*b[7] + # mul a[2]*b[7] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -406,38 +406,38 @@ L_bn_mul_comba8_begin: adcl $0,%ebp movl %ebx,36(%eax) movl 28(%esi),%eax - # saved r[9] - # ################## Calculate word 10 + # saved r[9] + # ################## Calculate word 10 xorl %ebx,%ebx - # mul a[7]*b[3] + # mul a[7]*b[3] mull %edx addl %eax,%ecx movl 24(%esi),%eax adcl %edx,%ebp movl 16(%edi),%edx adcl $0,%ebx - # mul a[6]*b[4] + # mul a[6]*b[4] mull %edx addl %eax,%ecx movl 20(%esi),%eax adcl %edx,%ebp movl 20(%edi),%edx adcl $0,%ebx - # mul a[5]*b[5] + # mul a[5]*b[5] mull %edx addl %eax,%ecx movl 16(%esi),%eax adcl %edx,%ebp movl 24(%edi),%edx adcl $0,%ebx - # mul a[4]*b[6] + # mul a[4]*b[6] mull %edx addl %eax,%ecx movl 12(%esi),%eax adcl %edx,%ebp movl 28(%edi),%edx adcl $0,%ebx - # mul a[3]*b[7] + # mul a[3]*b[7] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -446,31 +446,31 @@ L_bn_mul_comba8_begin: adcl $0,%ebx movl %ecx,40(%eax) movl 28(%esi),%eax - # saved r[10] - # ################## Calculate word 11 + # saved r[10] + # ################## Calculate word 11 xorl %ecx,%ecx - # mul a[7]*b[4] + # mul a[7]*b[4] mull %edx addl %eax,%ebp movl 24(%esi),%eax adcl %edx,%ebx movl 20(%edi),%edx adcl $0,%ecx - # mul a[6]*b[5] + # mul a[6]*b[5] mull %edx addl %eax,%ebp movl 20(%esi),%eax adcl %edx,%ebx movl 24(%edi),%edx adcl $0,%ecx - # mul a[5]*b[6] + # mul a[5]*b[6] mull %edx addl %eax,%ebp movl 16(%esi),%eax adcl %edx,%ebx movl 28(%edi),%edx adcl $0,%ecx - # mul a[4]*b[7] + # mul a[4]*b[7] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -479,24 +479,24 @@ L_bn_mul_comba8_begin: adcl $0,%ecx movl %ebp,44(%eax) movl 28(%esi),%eax - # saved r[11] - # ################## Calculate word 12 + # saved r[11] + # ################## Calculate word 12 xorl %ebp,%ebp - # mul a[7]*b[5] + # mul a[7]*b[5] mull %edx addl %eax,%ebx movl 24(%esi),%eax adcl %edx,%ecx movl 24(%edi),%edx adcl $0,%ebp - # mul a[6]*b[6] + # mul a[6]*b[6] mull %edx addl %eax,%ebx movl 20(%esi),%eax adcl %edx,%ecx movl 28(%edi),%edx adcl $0,%ebp - # mul a[5]*b[7] + # mul a[5]*b[7] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -505,17 +505,17 @@ L_bn_mul_comba8_begin: adcl $0,%ebp movl %ebx,48(%eax) movl 28(%esi),%eax - # saved r[12] - # ################## Calculate word 13 + # saved r[12] + # ################## Calculate word 13 xorl %ebx,%ebx - # mul a[7]*b[6] + # mul a[7]*b[6] mull %edx addl %eax,%ecx movl 24(%esi),%eax adcl %edx,%ebp movl 28(%edi),%edx adcl $0,%ebx - # mul a[6]*b[7] + # mul a[6]*b[7] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -524,18 +524,18 @@ L_bn_mul_comba8_begin: adcl $0,%ebx movl %ecx,52(%eax) movl 28(%esi),%eax - # saved r[13] - # ################## Calculate word 14 + # saved r[13] + # ################## Calculate word 14 xorl %ecx,%ecx - # mul a[7]*b[7] + # mul a[7]*b[7] mull %edx addl %eax,%ebp movl 20(%esp),%eax adcl %edx,%ebx adcl $0,%ecx movl %ebp,56(%eax) - # saved r[14] - # save r[15] + # saved r[14] + # save r[15] movl %ebx,60(%eax) popl %ebx popl %ebp @@ -556,9 +556,9 @@ L_bn_mul_comba4_begin: movl (%esi),%eax xorl %ecx,%ecx movl (%edi),%edx - # ################## Calculate word 0 + # ################## Calculate word 0 xorl %ebp,%ebp - # mul a[0]*b[0] + # mul a[0]*b[0] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -567,17 +567,17 @@ L_bn_mul_comba4_begin: adcl $0,%ebp movl %ebx,(%eax) movl 4(%esi),%eax - # saved r[0] - # ################## Calculate word 1 + # saved r[0] + # ################## Calculate word 1 xorl %ebx,%ebx - # mul a[1]*b[0] + # mul a[1]*b[0] mull %edx addl %eax,%ecx movl (%esi),%eax adcl %edx,%ebp movl 4(%edi),%edx adcl $0,%ebx - # mul a[0]*b[1] + # mul a[0]*b[1] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -586,24 +586,24 @@ L_bn_mul_comba4_begin: adcl $0,%ebx movl %ecx,4(%eax) movl 8(%esi),%eax - # saved r[1] - # ################## Calculate word 2 + # saved r[1] + # ################## Calculate word 2 xorl %ecx,%ecx - # mul a[2]*b[0] + # mul a[2]*b[0] mull %edx addl %eax,%ebp movl 4(%esi),%eax adcl %edx,%ebx movl 4(%edi),%edx adcl $0,%ecx - # mul a[1]*b[1] + # mul a[1]*b[1] mull %edx addl %eax,%ebp movl (%esi),%eax adcl %edx,%ebx movl 8(%edi),%edx adcl $0,%ecx - # mul a[0]*b[2] + # mul a[0]*b[2] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -612,31 +612,31 @@ L_bn_mul_comba4_begin: adcl $0,%ecx movl %ebp,8(%eax) movl 12(%esi),%eax - # saved r[2] - # ################## Calculate word 3 + # saved r[2] + # ################## Calculate word 3 xorl %ebp,%ebp - # mul a[3]*b[0] + # mul a[3]*b[0] mull %edx addl %eax,%ebx movl 8(%esi),%eax adcl %edx,%ecx movl 4(%edi),%edx adcl $0,%ebp - # mul a[2]*b[1] + # mul a[2]*b[1] mull %edx addl %eax,%ebx movl 4(%esi),%eax adcl %edx,%ecx movl 8(%edi),%edx adcl $0,%ebp - # mul a[1]*b[2] + # mul a[1]*b[2] mull %edx addl %eax,%ebx movl (%esi),%eax adcl %edx,%ecx movl 12(%edi),%edx adcl $0,%ebp - # mul a[0]*b[3] + # mul a[0]*b[3] mull %edx addl %eax,%ebx movl 20(%esp),%eax @@ -645,24 +645,24 @@ L_bn_mul_comba4_begin: adcl $0,%ebp movl %ebx,12(%eax) movl 12(%esi),%eax - # saved r[3] - # ################## Calculate word 4 + # saved r[3] + # ################## Calculate word 4 xorl %ebx,%ebx - # mul a[3]*b[1] + # mul a[3]*b[1] mull %edx addl %eax,%ecx movl 8(%esi),%eax adcl %edx,%ebp movl 8(%edi),%edx adcl $0,%ebx - # mul a[2]*b[2] + # mul a[2]*b[2] mull %edx addl %eax,%ecx movl 4(%esi),%eax adcl %edx,%ebp movl 12(%edi),%edx adcl $0,%ebx - # mul a[1]*b[3] + # mul a[1]*b[3] mull %edx addl %eax,%ecx movl 20(%esp),%eax @@ -671,17 +671,17 @@ L_bn_mul_comba4_begin: adcl $0,%ebx movl %ecx,16(%eax) movl 12(%esi),%eax - # saved r[4] - # ################## Calculate word 5 + # saved r[4] + # ################## Calculate word 5 xorl %ecx,%ecx - # mul a[3]*b[2] + # mul a[3]*b[2] mull %edx addl %eax,%ebp movl 8(%esi),%eax adcl %edx,%ebx movl 12(%edi),%edx adcl $0,%ecx - # mul a[2]*b[3] + # mul a[2]*b[3] mull %edx addl %eax,%ebp movl 20(%esp),%eax @@ -690,18 +690,18 @@ L_bn_mul_comba4_begin: adcl $0,%ecx movl %ebp,20(%eax) movl 12(%esi),%eax - # saved r[5] - # ################## Calculate word 6 + # saved r[5] + # ################## Calculate word 6 xorl %ebp,%ebp - # mul a[3]*b[3] + # mul a[3]*b[3] mull %edx addl %eax,%ebx movl 20(%esp),%eax adcl %edx,%ecx adcl $0,%ebp movl %ebx,24(%eax) - # saved r[6] - # save r[7] + # saved r[6] + # save r[7] movl %ecx,28(%eax) popl %ebx popl %ebp @@ -721,9 +721,9 @@ L_bn_sqr_comba8_begin: xorl %ebx,%ebx xorl %ecx,%ecx movl (%esi),%eax - # ############### Calculate word 0 + # ############### Calculate word 0 xorl %ebp,%ebp - # sqr a[0]*a[0] + # sqr a[0]*a[0] mull %eax addl %eax,%ebx adcl %edx,%ecx @@ -731,10 +731,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebp movl %ebx,(%edi) movl 4(%esi),%eax - # saved r[0] - # ############### Calculate word 1 + # saved r[0] + # ############### Calculate word 1 xorl %ebx,%ebx - # sqr a[1]*a[0] + # sqr a[1]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -745,10 +745,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebx movl %ecx,4(%edi) movl (%esi),%edx - # saved r[1] - # ############### Calculate word 2 + # saved r[1] + # ############### Calculate word 2 xorl %ecx,%ecx - # sqr a[2]*a[0] + # sqr a[2]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -757,7 +757,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ebx movl 4(%esi),%eax adcl $0,%ecx - # sqr a[1]*a[1] + # sqr a[1]*a[1] mull %eax addl %eax,%ebp adcl %edx,%ebx @@ -765,10 +765,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ecx movl %ebp,8(%edi) movl 12(%esi),%eax - # saved r[2] - # ############### Calculate word 3 + # saved r[2] + # ############### Calculate word 3 xorl %ebp,%ebp - # sqr a[3]*a[0] + # sqr a[3]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -778,7 +778,7 @@ L_bn_sqr_comba8_begin: movl 8(%esi),%eax adcl $0,%ebp movl 4(%esi),%edx - # sqr a[2]*a[1] + # sqr a[2]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -789,10 +789,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebp movl %ebx,12(%edi) movl (%esi),%edx - # saved r[3] - # ############### Calculate word 4 + # saved r[3] + # ############### Calculate word 4 xorl %ebx,%ebx - # sqr a[4]*a[0] + # sqr a[4]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -802,7 +802,7 @@ L_bn_sqr_comba8_begin: movl 12(%esi),%eax adcl $0,%ebx movl 4(%esi),%edx - # sqr a[3]*a[1] + # sqr a[3]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -811,7 +811,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ebp movl 8(%esi),%eax adcl $0,%ebx - # sqr a[2]*a[2] + # sqr a[2]*a[2] mull %eax addl %eax,%ecx adcl %edx,%ebp @@ -819,10 +819,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebx movl %ecx,16(%edi) movl 20(%esi),%eax - # saved r[4] - # ############### Calculate word 5 + # saved r[4] + # ############### Calculate word 5 xorl %ecx,%ecx - # sqr a[5]*a[0] + # sqr a[5]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -832,7 +832,7 @@ L_bn_sqr_comba8_begin: movl 16(%esi),%eax adcl $0,%ecx movl 4(%esi),%edx - # sqr a[4]*a[1] + # sqr a[4]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -842,7 +842,7 @@ L_bn_sqr_comba8_begin: movl 12(%esi),%eax adcl $0,%ecx movl 8(%esi),%edx - # sqr a[3]*a[2] + # sqr a[3]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -853,10 +853,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ecx movl %ebp,20(%edi) movl (%esi),%edx - # saved r[5] - # ############### Calculate word 6 + # saved r[5] + # ############### Calculate word 6 xorl %ebp,%ebp - # sqr a[6]*a[0] + # sqr a[6]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -866,7 +866,7 @@ L_bn_sqr_comba8_begin: movl 20(%esi),%eax adcl $0,%ebp movl 4(%esi),%edx - # sqr a[5]*a[1] + # sqr a[5]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -876,7 +876,7 @@ L_bn_sqr_comba8_begin: movl 16(%esi),%eax adcl $0,%ebp movl 8(%esi),%edx - # sqr a[4]*a[2] + # sqr a[4]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -885,7 +885,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ecx movl 12(%esi),%eax adcl $0,%ebp - # sqr a[3]*a[3] + # sqr a[3]*a[3] mull %eax addl %eax,%ebx adcl %edx,%ecx @@ -893,10 +893,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebp movl %ebx,24(%edi) movl 28(%esi),%eax - # saved r[6] - # ############### Calculate word 7 + # saved r[6] + # ############### Calculate word 7 xorl %ebx,%ebx - # sqr a[7]*a[0] + # sqr a[7]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -906,7 +906,7 @@ L_bn_sqr_comba8_begin: movl 24(%esi),%eax adcl $0,%ebx movl 4(%esi),%edx - # sqr a[6]*a[1] + # sqr a[6]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -916,7 +916,7 @@ L_bn_sqr_comba8_begin: movl 20(%esi),%eax adcl $0,%ebx movl 8(%esi),%edx - # sqr a[5]*a[2] + # sqr a[5]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -926,7 +926,7 @@ L_bn_sqr_comba8_begin: movl 16(%esi),%eax adcl $0,%ebx movl 12(%esi),%edx - # sqr a[4]*a[3] + # sqr a[4]*a[3] mull %edx addl %eax,%eax adcl %edx,%edx @@ -937,10 +937,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebx movl %ecx,28(%edi) movl 4(%esi),%edx - # saved r[7] - # ############### Calculate word 8 + # saved r[7] + # ############### Calculate word 8 xorl %ecx,%ecx - # sqr a[7]*a[1] + # sqr a[7]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -950,7 +950,7 @@ L_bn_sqr_comba8_begin: movl 24(%esi),%eax adcl $0,%ecx movl 8(%esi),%edx - # sqr a[6]*a[2] + # sqr a[6]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -960,7 +960,7 @@ L_bn_sqr_comba8_begin: movl 20(%esi),%eax adcl $0,%ecx movl 12(%esi),%edx - # sqr a[5]*a[3] + # sqr a[5]*a[3] mull %edx addl %eax,%eax adcl %edx,%edx @@ -969,7 +969,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ebx movl 16(%esi),%eax adcl $0,%ecx - # sqr a[4]*a[4] + # sqr a[4]*a[4] mull %eax addl %eax,%ebp adcl %edx,%ebx @@ -977,10 +977,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ecx movl %ebp,32(%edi) movl 28(%esi),%eax - # saved r[8] - # ############### Calculate word 9 + # saved r[8] + # ############### Calculate word 9 xorl %ebp,%ebp - # sqr a[7]*a[2] + # sqr a[7]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -990,7 +990,7 @@ L_bn_sqr_comba8_begin: movl 24(%esi),%eax adcl $0,%ebp movl 12(%esi),%edx - # sqr a[6]*a[3] + # sqr a[6]*a[3] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1000,7 +1000,7 @@ L_bn_sqr_comba8_begin: movl 20(%esi),%eax adcl $0,%ebp movl 16(%esi),%edx - # sqr a[5]*a[4] + # sqr a[5]*a[4] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1011,10 +1011,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebp movl %ebx,36(%edi) movl 12(%esi),%edx - # saved r[9] - # ############### Calculate word 10 + # saved r[9] + # ############### Calculate word 10 xorl %ebx,%ebx - # sqr a[7]*a[3] + # sqr a[7]*a[3] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1024,7 +1024,7 @@ L_bn_sqr_comba8_begin: movl 24(%esi),%eax adcl $0,%ebx movl 16(%esi),%edx - # sqr a[6]*a[4] + # sqr a[6]*a[4] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1033,7 +1033,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ebp movl 20(%esi),%eax adcl $0,%ebx - # sqr a[5]*a[5] + # sqr a[5]*a[5] mull %eax addl %eax,%ecx adcl %edx,%ebp @@ -1041,10 +1041,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebx movl %ecx,40(%edi) movl 28(%esi),%eax - # saved r[10] - # ############### Calculate word 11 + # saved r[10] + # ############### Calculate word 11 xorl %ecx,%ecx - # sqr a[7]*a[4] + # sqr a[7]*a[4] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1054,7 +1054,7 @@ L_bn_sqr_comba8_begin: movl 24(%esi),%eax adcl $0,%ecx movl 20(%esi),%edx - # sqr a[6]*a[5] + # sqr a[6]*a[5] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1065,10 +1065,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ecx movl %ebp,44(%edi) movl 20(%esi),%edx - # saved r[11] - # ############### Calculate word 12 + # saved r[11] + # ############### Calculate word 12 xorl %ebp,%ebp - # sqr a[7]*a[5] + # sqr a[7]*a[5] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1077,7 +1077,7 @@ L_bn_sqr_comba8_begin: adcl %edx,%ecx movl 24(%esi),%eax adcl $0,%ebp - # sqr a[6]*a[6] + # sqr a[6]*a[6] mull %eax addl %eax,%ebx adcl %edx,%ecx @@ -1085,10 +1085,10 @@ L_bn_sqr_comba8_begin: adcl $0,%ebp movl %ebx,48(%edi) movl 28(%esi),%eax - # saved r[12] - # ############### Calculate word 13 + # saved r[12] + # ############### Calculate word 13 xorl %ebx,%ebx - # sqr a[7]*a[6] + # sqr a[7]*a[6] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1098,16 +1098,16 @@ L_bn_sqr_comba8_begin: movl 28(%esi),%eax adcl $0,%ebx movl %ecx,52(%edi) - # saved r[13] - # ############### Calculate word 14 + # saved r[13] + # ############### Calculate word 14 xorl %ecx,%ecx - # sqr a[7]*a[7] + # sqr a[7]*a[7] mull %eax addl %eax,%ebp adcl %edx,%ebx adcl $0,%ecx movl %ebp,56(%edi) - # saved r[14] + # saved r[14] movl %ebx,60(%edi) popl %ebx popl %ebp @@ -1127,9 +1127,9 @@ L_bn_sqr_comba4_begin: xorl %ebx,%ebx xorl %ecx,%ecx movl (%esi),%eax - # ############### Calculate word 0 + # ############### Calculate word 0 xorl %ebp,%ebp - # sqr a[0]*a[0] + # sqr a[0]*a[0] mull %eax addl %eax,%ebx adcl %edx,%ecx @@ -1137,10 +1137,10 @@ L_bn_sqr_comba4_begin: adcl $0,%ebp movl %ebx,(%edi) movl 4(%esi),%eax - # saved r[0] - # ############### Calculate word 1 + # saved r[0] + # ############### Calculate word 1 xorl %ebx,%ebx - # sqr a[1]*a[0] + # sqr a[1]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1151,10 +1151,10 @@ L_bn_sqr_comba4_begin: adcl $0,%ebx movl %ecx,4(%edi) movl (%esi),%edx - # saved r[1] - # ############### Calculate word 2 + # saved r[1] + # ############### Calculate word 2 xorl %ecx,%ecx - # sqr a[2]*a[0] + # sqr a[2]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1163,7 +1163,7 @@ L_bn_sqr_comba4_begin: adcl %edx,%ebx movl 4(%esi),%eax adcl $0,%ecx - # sqr a[1]*a[1] + # sqr a[1]*a[1] mull %eax addl %eax,%ebp adcl %edx,%ebx @@ -1171,10 +1171,10 @@ L_bn_sqr_comba4_begin: adcl $0,%ecx movl %ebp,8(%edi) movl 12(%esi),%eax - # saved r[2] - # ############### Calculate word 3 + # saved r[2] + # ############### Calculate word 3 xorl %ebp,%ebp - # sqr a[3]*a[0] + # sqr a[3]*a[0] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1184,7 +1184,7 @@ L_bn_sqr_comba4_begin: movl 8(%esi),%eax adcl $0,%ebp movl 4(%esi),%edx - # sqr a[2]*a[1] + # sqr a[2]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1195,10 +1195,10 @@ L_bn_sqr_comba4_begin: adcl $0,%ebp movl %ebx,12(%edi) movl 4(%esi),%edx - # saved r[3] - # ############### Calculate word 4 + # saved r[3] + # ############### Calculate word 4 xorl %ebx,%ebx - # sqr a[3]*a[1] + # sqr a[3]*a[1] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1207,7 +1207,7 @@ L_bn_sqr_comba4_begin: adcl %edx,%ebp movl 8(%esi),%eax adcl $0,%ebx - # sqr a[2]*a[2] + # sqr a[2]*a[2] mull %eax addl %eax,%ecx adcl %edx,%ebp @@ -1215,10 +1215,10 @@ L_bn_sqr_comba4_begin: adcl $0,%ebx movl %ecx,16(%edi) movl 12(%esi),%eax - # saved r[4] - # ############### Calculate word 5 + # saved r[4] + # ############### Calculate word 5 xorl %ecx,%ecx - # sqr a[3]*a[2] + # sqr a[3]*a[2] mull %edx addl %eax,%eax adcl %edx,%edx @@ -1228,16 +1228,16 @@ L_bn_sqr_comba4_begin: movl 12(%esi),%eax adcl $0,%ecx movl %ebp,20(%edi) - # saved r[5] - # ############### Calculate word 6 + # saved r[5] + # ############### Calculate word 6 xorl %ebp,%ebp - # sqr a[3]*a[3] + # sqr a[3]*a[3] mull %eax addl %eax,%ebx adcl %edx,%ecx adcl $0,%ebp movl %ebx,24(%edi) - # saved r[6] + # saved r[6] movl %ecx,28(%edi) popl %ebx popl %ebp diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.s index 35db106f8c1fbe..3183bbb65704e4 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/bn/x86-mont.s @@ -444,16 +444,18 @@ L017sub: leal 1(%edx),%edx jge L017sub sbbl $0,%eax - andl %eax,%esi - notl %eax - movl %edi,%ebp - andl %eax,%ebp - orl %ebp,%esi + movl $-1,%edx + xorl %eax,%edx + jmp L018copy .align 4,0x90 L018copy: - movl (%esi,%ebx,4),%eax - movl %eax,(%edi,%ebx,4) + movl 32(%esp,%ebx,4),%esi + movl (%edi,%ebx,4),%ebp movl %ecx,32(%esp,%ebx,4) + andl %eax,%esi + andl %edx,%ebp + orl %esi,%ebp + movl %ebp,(%edi,%ebx,4) decl %ebx jge L018copy movl 24(%esp),%esp diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h index 005ca0b70459f6..b89e43e6d57694 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h @@ -37,4 +37,4 @@ static const char cflags[] = { ' ','\0' }; #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Tue Apr 3 00:38:21 2018" +#define DATE "built on: Tue Aug 14 23:13:09 2018" diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/crypt586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/crypt586.s index 1731c53faac06e..9156a65a1e67b5 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/crypt586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/crypt586.s @@ -9,7 +9,7 @@ L_fcrypt_body_begin: pushl %esi pushl %edi - # Load the 2 words + # Load the 2 words xorl %edi,%edi xorl %esi,%esi call L000PIC_me_up @@ -21,7 +21,7 @@ L000PIC_me_up: pushl $25 L001start: - # Round 0 + # Round 0 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -71,7 +71,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 1 + # Round 1 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -121,7 +121,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 2 + # Round 2 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -171,7 +171,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 3 + # Round 3 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -221,7 +221,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 4 + # Round 4 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -271,7 +271,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 5 + # Round 5 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -321,7 +321,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 6 + # Round 6 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -371,7 +371,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 7 + # Round 7 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -421,7 +421,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 8 + # Round 8 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -471,7 +471,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 9 + # Round 9 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -521,7 +521,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 10 + # Round 10 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -571,7 +571,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 11 + # Round 11 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -621,7 +621,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 12 + # Round 12 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -671,7 +671,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 13 + # Round 13 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -721,7 +721,7 @@ L001start: xorl %ebx,%esi movl 32(%esp),%ebp - # Round 14 + # Round 14 movl 36(%esp),%eax movl %esi,%edx shrl $16,%edx @@ -771,7 +771,7 @@ L001start: xorl %ebx,%edi movl 32(%esp),%ebp - # Round 15 + # Round 15 movl 36(%esp),%eax movl %edi,%edx shrl $16,%edx @@ -828,7 +828,7 @@ L001start: movl %ebx,(%esp) jnz L001start - # FP + # FP movl 28(%esp),%edx rorl $1,%edi movl %esi,%eax diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/des-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/des-586.s index 43354871fcd4fa..d0c1a2e4866e09 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/des-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/des/des-586.s @@ -4,7 +4,7 @@ .align 4 __x86_DES_encrypt: pushl %ecx - # Round 0 + # Round 0 movl (%ecx),%eax xorl %ebx,%ebx movl 4(%ecx),%edx @@ -33,7 +33,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 1 + # Round 1 movl 8(%ecx),%eax xorl %ebx,%ebx movl 12(%ecx),%edx @@ -62,7 +62,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 2 + # Round 2 movl 16(%ecx),%eax xorl %ebx,%ebx movl 20(%ecx),%edx @@ -91,7 +91,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 3 + # Round 3 movl 24(%ecx),%eax xorl %ebx,%ebx movl 28(%ecx),%edx @@ -120,7 +120,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 4 + # Round 4 movl 32(%ecx),%eax xorl %ebx,%ebx movl 36(%ecx),%edx @@ -149,7 +149,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 5 + # Round 5 movl 40(%ecx),%eax xorl %ebx,%ebx movl 44(%ecx),%edx @@ -178,7 +178,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 6 + # Round 6 movl 48(%ecx),%eax xorl %ebx,%ebx movl 52(%ecx),%edx @@ -207,7 +207,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 7 + # Round 7 movl 56(%ecx),%eax xorl %ebx,%ebx movl 60(%ecx),%edx @@ -236,7 +236,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 8 + # Round 8 movl 64(%ecx),%eax xorl %ebx,%ebx movl 68(%ecx),%edx @@ -265,7 +265,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 9 + # Round 9 movl 72(%ecx),%eax xorl %ebx,%ebx movl 76(%ecx),%edx @@ -294,7 +294,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 10 + # Round 10 movl 80(%ecx),%eax xorl %ebx,%ebx movl 84(%ecx),%edx @@ -323,7 +323,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 11 + # Round 11 movl 88(%ecx),%eax xorl %ebx,%ebx movl 92(%ecx),%edx @@ -352,7 +352,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 12 + # Round 12 movl 96(%ecx),%eax xorl %ebx,%ebx movl 100(%ecx),%edx @@ -381,7 +381,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 13 + # Round 13 movl 104(%ecx),%eax xorl %ebx,%ebx movl 108(%ecx),%edx @@ -410,7 +410,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 14 + # Round 14 movl 112(%ecx),%eax xorl %ebx,%ebx movl 116(%ecx),%edx @@ -439,7 +439,7 @@ __x86_DES_encrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 15 + # Round 15 movl 120(%ecx),%eax xorl %ebx,%ebx movl 124(%ecx),%edx @@ -473,7 +473,7 @@ __x86_DES_encrypt: .align 4 __x86_DES_decrypt: pushl %ecx - # Round 15 + # Round 15 movl 120(%ecx),%eax xorl %ebx,%ebx movl 124(%ecx),%edx @@ -502,7 +502,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 14 + # Round 14 movl 112(%ecx),%eax xorl %ebx,%ebx movl 116(%ecx),%edx @@ -531,7 +531,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 13 + # Round 13 movl 104(%ecx),%eax xorl %ebx,%ebx movl 108(%ecx),%edx @@ -560,7 +560,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 12 + # Round 12 movl 96(%ecx),%eax xorl %ebx,%ebx movl 100(%ecx),%edx @@ -589,7 +589,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 11 + # Round 11 movl 88(%ecx),%eax xorl %ebx,%ebx movl 92(%ecx),%edx @@ -618,7 +618,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 10 + # Round 10 movl 80(%ecx),%eax xorl %ebx,%ebx movl 84(%ecx),%edx @@ -647,7 +647,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 9 + # Round 9 movl 72(%ecx),%eax xorl %ebx,%ebx movl 76(%ecx),%edx @@ -676,7 +676,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 8 + # Round 8 movl 64(%ecx),%eax xorl %ebx,%ebx movl 68(%ecx),%edx @@ -705,7 +705,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 7 + # Round 7 movl 56(%ecx),%eax xorl %ebx,%ebx movl 60(%ecx),%edx @@ -734,7 +734,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 6 + # Round 6 movl 48(%ecx),%eax xorl %ebx,%ebx movl 52(%ecx),%edx @@ -763,7 +763,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 5 + # Round 5 movl 40(%ecx),%eax xorl %ebx,%ebx movl 44(%ecx),%edx @@ -792,7 +792,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 4 + # Round 4 movl 32(%ecx),%eax xorl %ebx,%ebx movl 36(%ecx),%edx @@ -821,7 +821,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 3 + # Round 3 movl 24(%ecx),%eax xorl %ebx,%ebx movl 28(%ecx),%edx @@ -850,7 +850,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 2 + # Round 2 movl 16(%ecx),%eax xorl %ebx,%ebx movl 20(%ecx),%edx @@ -879,7 +879,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%esi xorl 0x500(%ebp,%edx,1),%esi - # Round 1 + # Round 1 movl 8(%ecx),%eax xorl %ebx,%ebx movl 12(%ecx),%edx @@ -908,7 +908,7 @@ __x86_DES_decrypt: movl (%esp),%ecx xorl 0x400(%ebp,%eax,1),%edi xorl 0x500(%ebp,%edx,1),%edi - # Round 0 + # Round 0 movl (%ecx),%eax xorl %ebx,%ebx movl 4(%ecx),%edx @@ -946,7 +946,7 @@ L_DES_encrypt1_begin: pushl %esi pushl %edi - # Load the 2 words + # Load the 2 words movl 12(%esp),%esi xorl %ecx,%ecx pushl %ebx @@ -955,7 +955,7 @@ L_DES_encrypt1_begin: movl 28(%esp),%ebx movl 4(%esi),%edi - # IP + # IP roll $4,%eax movl %eax,%esi xorl %edi,%eax @@ -1005,7 +1005,7 @@ L001decrypt: call __x86_DES_decrypt L002done: - # FP + # FP movl 20(%esp),%edx rorl $1,%esi movl %edi,%eax @@ -1057,7 +1057,7 @@ L_DES_encrypt2_begin: pushl %esi pushl %edi - # Load the 2 words + # Load the 2 words movl 12(%esp),%eax xorl %ecx,%ecx pushl %ebx @@ -1080,7 +1080,7 @@ L004decrypt: call __x86_DES_decrypt L005done: - # Fixup + # Fixup rorl $3,%edi movl 20(%esp),%eax rorl $3,%esi @@ -1101,12 +1101,12 @@ L_DES_encrypt3_begin: pushl %esi pushl %edi - # Load the data words + # Load the data words movl (%ebx),%edi movl 4(%ebx),%esi subl $12,%esp - # IP + # IP roll $4,%edi movl %edi,%edx xorl %esi,%edi @@ -1165,7 +1165,7 @@ L_DES_encrypt3_begin: movl (%ebx),%edi movl 4(%ebx),%esi - # FP + # FP roll $2,%esi roll $3,%edi movl %edi,%eax @@ -1220,12 +1220,12 @@ L_DES_decrypt3_begin: pushl %esi pushl %edi - # Load the data words + # Load the data words movl (%ebx),%edi movl 4(%ebx),%esi subl $12,%esp - # IP + # IP roll $4,%edi movl %edi,%edx xorl %esi,%edi @@ -1284,7 +1284,7 @@ L_DES_decrypt3_begin: movl (%ebx),%edi movl 4(%ebx),%esi - # FP + # FP roll $2,%esi roll $3,%edi movl %edi,%eax @@ -1339,7 +1339,7 @@ L_DES_ncbc_encrypt_begin: pushl %esi pushl %edi movl 28(%esp),%ebp - # getting iv ptr from parameter 4 + # getting iv ptr from parameter 4 movl 36(%esp),%ebx movl (%ebx),%esi movl 4(%ebx),%edi @@ -1350,11 +1350,11 @@ L_DES_ncbc_encrypt_begin: movl %esp,%ebx movl 36(%esp),%esi movl 40(%esp),%edi - # getting encrypt flag from parameter 5 + # getting encrypt flag from parameter 5 movl 56(%esp),%ecx - # get and push parameter 5 + # get and push parameter 5 pushl %ecx - # get and push parameter 3 + # get and push parameter 3 movl 52(%esp),%eax pushl %eax pushl %ebx @@ -1517,7 +1517,7 @@ L_DES_ede3_cbc_encrypt_begin: pushl %esi pushl %edi movl 28(%esp),%ebp - # getting iv ptr from parameter 6 + # getting iv ptr from parameter 6 movl 44(%esp),%ebx movl (%ebx),%esi movl 4(%ebx),%edi @@ -1528,15 +1528,15 @@ L_DES_ede3_cbc_encrypt_begin: movl %esp,%ebx movl 36(%esp),%esi movl 40(%esp),%edi - # getting encrypt flag from parameter 7 + # getting encrypt flag from parameter 7 movl 64(%esp),%ecx - # get and push parameter 5 + # get and push parameter 5 movl 56(%esp),%eax pushl %eax - # get and push parameter 4 + # get and push parameter 4 movl 56(%esp),%eax pushl %eax - # get and push parameter 3 + # get and push parameter 3 movl 56(%esp),%eax pushl %eax pushl %ebx diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.s index f2163103ef611d..fe6e89a4dba02e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ec/ecp_nistz256-x86.s @@ -3822,7 +3822,7 @@ L_ecp_nistz256_scatter_w7_begin: movl 20(%esp),%edi movl 24(%esp),%esi movl 28(%esp),%ebp - leal -1(%edi,%ebp,1),%edi + leal (%edi,%ebp,1),%edi movl $16,%ebp L007scatter_w7_loop: movl (%esi),%eax diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.s index 4e703510412dae..93c6693b5a654e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/md5/md5-586.s @@ -21,10 +21,10 @@ L_md5_block_asm_data_order_begin: movl 12(%edi),%edx L000start: - # R0 section + # R0 section movl %ecx,%edi movl (%esi),%ebp - # R0 0 + # R0 0 xorl %edx,%edi andl %ebx,%edi leal 3614090360(%eax,%ebp,1),%eax @@ -34,7 +34,7 @@ L000start: roll $7,%eax movl %ebx,%edi addl %ebx,%eax - # R0 1 + # R0 1 xorl %ecx,%edi andl %eax,%edi leal 3905402710(%edx,%ebp,1),%edx @@ -44,7 +44,7 @@ L000start: roll $12,%edx movl %eax,%edi addl %eax,%edx - # R0 2 + # R0 2 xorl %ebx,%edi andl %edx,%edi leal 606105819(%ecx,%ebp,1),%ecx @@ -54,7 +54,7 @@ L000start: roll $17,%ecx movl %edx,%edi addl %edx,%ecx - # R0 3 + # R0 3 xorl %eax,%edi andl %ecx,%edi leal 3250441966(%ebx,%ebp,1),%ebx @@ -64,7 +64,7 @@ L000start: roll $22,%ebx movl %ecx,%edi addl %ecx,%ebx - # R0 4 + # R0 4 xorl %edx,%edi andl %ebx,%edi leal 4118548399(%eax,%ebp,1),%eax @@ -74,7 +74,7 @@ L000start: roll $7,%eax movl %ebx,%edi addl %ebx,%eax - # R0 5 + # R0 5 xorl %ecx,%edi andl %eax,%edi leal 1200080426(%edx,%ebp,1),%edx @@ -84,7 +84,7 @@ L000start: roll $12,%edx movl %eax,%edi addl %eax,%edx - # R0 6 + # R0 6 xorl %ebx,%edi andl %edx,%edi leal 2821735955(%ecx,%ebp,1),%ecx @@ -94,7 +94,7 @@ L000start: roll $17,%ecx movl %edx,%edi addl %edx,%ecx - # R0 7 + # R0 7 xorl %eax,%edi andl %ecx,%edi leal 4249261313(%ebx,%ebp,1),%ebx @@ -104,7 +104,7 @@ L000start: roll $22,%ebx movl %ecx,%edi addl %ecx,%ebx - # R0 8 + # R0 8 xorl %edx,%edi andl %ebx,%edi leal 1770035416(%eax,%ebp,1),%eax @@ -114,7 +114,7 @@ L000start: roll $7,%eax movl %ebx,%edi addl %ebx,%eax - # R0 9 + # R0 9 xorl %ecx,%edi andl %eax,%edi leal 2336552879(%edx,%ebp,1),%edx @@ -124,7 +124,7 @@ L000start: roll $12,%edx movl %eax,%edi addl %eax,%edx - # R0 10 + # R0 10 xorl %ebx,%edi andl %edx,%edi leal 4294925233(%ecx,%ebp,1),%ecx @@ -134,7 +134,7 @@ L000start: roll $17,%ecx movl %edx,%edi addl %edx,%ecx - # R0 11 + # R0 11 xorl %eax,%edi andl %ecx,%edi leal 2304563134(%ebx,%ebp,1),%ebx @@ -144,7 +144,7 @@ L000start: roll $22,%ebx movl %ecx,%edi addl %ecx,%ebx - # R0 12 + # R0 12 xorl %edx,%edi andl %ebx,%edi leal 1804603682(%eax,%ebp,1),%eax @@ -154,7 +154,7 @@ L000start: roll $7,%eax movl %ebx,%edi addl %ebx,%eax - # R0 13 + # R0 13 xorl %ecx,%edi andl %eax,%edi leal 4254626195(%edx,%ebp,1),%edx @@ -164,7 +164,7 @@ L000start: roll $12,%edx movl %eax,%edi addl %eax,%edx - # R0 14 + # R0 14 xorl %ebx,%edi andl %edx,%edi leal 2792965006(%ecx,%ebp,1),%ecx @@ -174,7 +174,7 @@ L000start: roll $17,%ecx movl %edx,%edi addl %edx,%ecx - # R0 15 + # R0 15 xorl %eax,%edi andl %ecx,%edi leal 1236535329(%ebx,%ebp,1),%ebx @@ -185,8 +185,8 @@ L000start: movl %ecx,%edi addl %ecx,%ebx - # R1 section - # R1 16 + # R1 section + # R1 16 xorl %ebx,%edi andl %edx,%edi leal 4129170786(%eax,%ebp,1),%eax @@ -196,7 +196,7 @@ L000start: movl %ebx,%edi roll $5,%eax addl %ebx,%eax - # R1 17 + # R1 17 xorl %eax,%edi andl %ecx,%edi leal 3225465664(%edx,%ebp,1),%edx @@ -206,7 +206,7 @@ L000start: movl %eax,%edi roll $9,%edx addl %eax,%edx - # R1 18 + # R1 18 xorl %edx,%edi andl %ebx,%edi leal 643717713(%ecx,%ebp,1),%ecx @@ -216,7 +216,7 @@ L000start: movl %edx,%edi roll $14,%ecx addl %edx,%ecx - # R1 19 + # R1 19 xorl %ecx,%edi andl %eax,%edi leal 3921069994(%ebx,%ebp,1),%ebx @@ -226,7 +226,7 @@ L000start: movl %ecx,%edi roll $20,%ebx addl %ecx,%ebx - # R1 20 + # R1 20 xorl %ebx,%edi andl %edx,%edi leal 3593408605(%eax,%ebp,1),%eax @@ -236,7 +236,7 @@ L000start: movl %ebx,%edi roll $5,%eax addl %ebx,%eax - # R1 21 + # R1 21 xorl %eax,%edi andl %ecx,%edi leal 38016083(%edx,%ebp,1),%edx @@ -246,7 +246,7 @@ L000start: movl %eax,%edi roll $9,%edx addl %eax,%edx - # R1 22 + # R1 22 xorl %edx,%edi andl %ebx,%edi leal 3634488961(%ecx,%ebp,1),%ecx @@ -256,7 +256,7 @@ L000start: movl %edx,%edi roll $14,%ecx addl %edx,%ecx - # R1 23 + # R1 23 xorl %ecx,%edi andl %eax,%edi leal 3889429448(%ebx,%ebp,1),%ebx @@ -266,7 +266,7 @@ L000start: movl %ecx,%edi roll $20,%ebx addl %ecx,%ebx - # R1 24 + # R1 24 xorl %ebx,%edi andl %edx,%edi leal 568446438(%eax,%ebp,1),%eax @@ -276,7 +276,7 @@ L000start: movl %ebx,%edi roll $5,%eax addl %ebx,%eax - # R1 25 + # R1 25 xorl %eax,%edi andl %ecx,%edi leal 3275163606(%edx,%ebp,1),%edx @@ -286,7 +286,7 @@ L000start: movl %eax,%edi roll $9,%edx addl %eax,%edx - # R1 26 + # R1 26 xorl %edx,%edi andl %ebx,%edi leal 4107603335(%ecx,%ebp,1),%ecx @@ -296,7 +296,7 @@ L000start: movl %edx,%edi roll $14,%ecx addl %edx,%ecx - # R1 27 + # R1 27 xorl %ecx,%edi andl %eax,%edi leal 1163531501(%ebx,%ebp,1),%ebx @@ -306,7 +306,7 @@ L000start: movl %ecx,%edi roll $20,%ebx addl %ecx,%ebx - # R1 28 + # R1 28 xorl %ebx,%edi andl %edx,%edi leal 2850285829(%eax,%ebp,1),%eax @@ -316,7 +316,7 @@ L000start: movl %ebx,%edi roll $5,%eax addl %ebx,%eax - # R1 29 + # R1 29 xorl %eax,%edi andl %ecx,%edi leal 4243563512(%edx,%ebp,1),%edx @@ -326,7 +326,7 @@ L000start: movl %eax,%edi roll $9,%edx addl %eax,%edx - # R1 30 + # R1 30 xorl %edx,%edi andl %ebx,%edi leal 1735328473(%ecx,%ebp,1),%ecx @@ -336,7 +336,7 @@ L000start: movl %edx,%edi roll $14,%ecx addl %edx,%ecx - # R1 31 + # R1 31 xorl %ecx,%edi andl %eax,%edi leal 2368359562(%ebx,%ebp,1),%ebx @@ -347,8 +347,8 @@ L000start: roll $20,%ebx addl %ecx,%ebx - # R2 section - # R2 32 + # R2 section + # R2 32 xorl %edx,%edi xorl %ebx,%edi leal 4294588738(%eax,%ebp,1),%eax @@ -356,7 +356,7 @@ L000start: movl 32(%esi),%ebp roll $4,%eax movl %ebx,%edi - # R2 33 + # R2 33 addl %ebx,%eax xorl %ecx,%edi leal 2272392833(%edx,%ebp,1),%edx @@ -366,7 +366,7 @@ L000start: movl %eax,%edi roll $11,%edx addl %eax,%edx - # R2 34 + # R2 34 xorl %ebx,%edi xorl %edx,%edi leal 1839030562(%ecx,%ebp,1),%ecx @@ -374,7 +374,7 @@ L000start: movl 56(%esi),%ebp roll $16,%ecx movl %edx,%edi - # R2 35 + # R2 35 addl %edx,%ecx xorl %eax,%edi leal 4259657740(%ebx,%ebp,1),%ebx @@ -384,7 +384,7 @@ L000start: movl %ecx,%edi roll $23,%ebx addl %ecx,%ebx - # R2 36 + # R2 36 xorl %edx,%edi xorl %ebx,%edi leal 2763975236(%eax,%ebp,1),%eax @@ -392,7 +392,7 @@ L000start: movl 16(%esi),%ebp roll $4,%eax movl %ebx,%edi - # R2 37 + # R2 37 addl %ebx,%eax xorl %ecx,%edi leal 1272893353(%edx,%ebp,1),%edx @@ -402,7 +402,7 @@ L000start: movl %eax,%edi roll $11,%edx addl %eax,%edx - # R2 38 + # R2 38 xorl %ebx,%edi xorl %edx,%edi leal 4139469664(%ecx,%ebp,1),%ecx @@ -410,7 +410,7 @@ L000start: movl 40(%esi),%ebp roll $16,%ecx movl %edx,%edi - # R2 39 + # R2 39 addl %edx,%ecx xorl %eax,%edi leal 3200236656(%ebx,%ebp,1),%ebx @@ -420,7 +420,7 @@ L000start: movl %ecx,%edi roll $23,%ebx addl %ecx,%ebx - # R2 40 + # R2 40 xorl %edx,%edi xorl %ebx,%edi leal 681279174(%eax,%ebp,1),%eax @@ -428,7 +428,7 @@ L000start: movl (%esi),%ebp roll $4,%eax movl %ebx,%edi - # R2 41 + # R2 41 addl %ebx,%eax xorl %ecx,%edi leal 3936430074(%edx,%ebp,1),%edx @@ -438,7 +438,7 @@ L000start: movl %eax,%edi roll $11,%edx addl %eax,%edx - # R2 42 + # R2 42 xorl %ebx,%edi xorl %edx,%edi leal 3572445317(%ecx,%ebp,1),%ecx @@ -446,7 +446,7 @@ L000start: movl 24(%esi),%ebp roll $16,%ecx movl %edx,%edi - # R2 43 + # R2 43 addl %edx,%ecx xorl %eax,%edi leal 76029189(%ebx,%ebp,1),%ebx @@ -456,7 +456,7 @@ L000start: movl %ecx,%edi roll $23,%ebx addl %ecx,%ebx - # R2 44 + # R2 44 xorl %edx,%edi xorl %ebx,%edi leal 3654602809(%eax,%ebp,1),%eax @@ -464,7 +464,7 @@ L000start: movl 48(%esi),%ebp roll $4,%eax movl %ebx,%edi - # R2 45 + # R2 45 addl %ebx,%eax xorl %ecx,%edi leal 3873151461(%edx,%ebp,1),%edx @@ -474,7 +474,7 @@ L000start: movl %eax,%edi roll $11,%edx addl %eax,%edx - # R2 46 + # R2 46 xorl %ebx,%edi xorl %edx,%edi leal 530742520(%ecx,%ebp,1),%ecx @@ -482,7 +482,7 @@ L000start: movl 8(%esi),%ebp roll $16,%ecx movl %edx,%edi - # R2 47 + # R2 47 addl %edx,%ecx xorl %eax,%edi leal 3299628645(%ebx,%ebp,1),%ebx @@ -493,8 +493,8 @@ L000start: roll $23,%ebx addl %ecx,%ebx - # R3 section - # R3 48 + # R3 section + # R3 48 xorl %edx,%edi orl %ebx,%edi leal 4096336452(%eax,%ebp,1),%eax @@ -505,7 +505,7 @@ L000start: roll $6,%eax xorl %ecx,%edi addl %ebx,%eax - # R3 49 + # R3 49 orl %eax,%edi leal 1126891415(%edx,%ebp,1),%edx xorl %ebx,%edi @@ -515,7 +515,7 @@ L000start: roll $10,%edx xorl %ebx,%edi addl %eax,%edx - # R3 50 + # R3 50 orl %edx,%edi leal 2878612391(%ecx,%ebp,1),%ecx xorl %eax,%edi @@ -525,7 +525,7 @@ L000start: roll $15,%ecx xorl %eax,%edi addl %edx,%ecx - # R3 51 + # R3 51 orl %ecx,%edi leal 4237533241(%ebx,%ebp,1),%ebx xorl %edx,%edi @@ -535,7 +535,7 @@ L000start: roll $21,%ebx xorl %edx,%edi addl %ecx,%ebx - # R3 52 + # R3 52 orl %ebx,%edi leal 1700485571(%eax,%ebp,1),%eax xorl %ecx,%edi @@ -545,7 +545,7 @@ L000start: roll $6,%eax xorl %ecx,%edi addl %ebx,%eax - # R3 53 + # R3 53 orl %eax,%edi leal 2399980690(%edx,%ebp,1),%edx xorl %ebx,%edi @@ -555,7 +555,7 @@ L000start: roll $10,%edx xorl %ebx,%edi addl %eax,%edx - # R3 54 + # R3 54 orl %edx,%edi leal 4293915773(%ecx,%ebp,1),%ecx xorl %eax,%edi @@ -565,7 +565,7 @@ L000start: roll $15,%ecx xorl %eax,%edi addl %edx,%ecx - # R3 55 + # R3 55 orl %ecx,%edi leal 2240044497(%ebx,%ebp,1),%ebx xorl %edx,%edi @@ -575,7 +575,7 @@ L000start: roll $21,%ebx xorl %edx,%edi addl %ecx,%ebx - # R3 56 + # R3 56 orl %ebx,%edi leal 1873313359(%eax,%ebp,1),%eax xorl %ecx,%edi @@ -585,7 +585,7 @@ L000start: roll $6,%eax xorl %ecx,%edi addl %ebx,%eax - # R3 57 + # R3 57 orl %eax,%edi leal 4264355552(%edx,%ebp,1),%edx xorl %ebx,%edi @@ -595,7 +595,7 @@ L000start: roll $10,%edx xorl %ebx,%edi addl %eax,%edx - # R3 58 + # R3 58 orl %edx,%edi leal 2734768916(%ecx,%ebp,1),%ecx xorl %eax,%edi @@ -605,7 +605,7 @@ L000start: roll $15,%ecx xorl %eax,%edi addl %edx,%ecx - # R3 59 + # R3 59 orl %ecx,%edi leal 1309151649(%ebx,%ebp,1),%ebx xorl %edx,%edi @@ -615,7 +615,7 @@ L000start: roll $21,%ebx xorl %edx,%edi addl %ecx,%ebx - # R3 60 + # R3 60 orl %ebx,%edi leal 4149444226(%eax,%ebp,1),%eax xorl %ecx,%edi @@ -625,7 +625,7 @@ L000start: roll $6,%eax xorl %ecx,%edi addl %ebx,%eax - # R3 61 + # R3 61 orl %eax,%edi leal 3174756917(%edx,%ebp,1),%edx xorl %ebx,%edi @@ -635,7 +635,7 @@ L000start: roll $10,%edx xorl %ebx,%edi addl %eax,%edx - # R3 62 + # R3 62 orl %edx,%edi leal 718787259(%ecx,%ebp,1),%ecx xorl %eax,%edi @@ -645,7 +645,7 @@ L000start: roll $15,%ecx xorl %eax,%edi addl %edx,%ecx - # R3 63 + # R3 63 orl %ecx,%edi leal 3951481745(%ebx,%ebp,1),%ebx xorl %edx,%edi diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ripemd/rmd-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ripemd/rmd-586.s index 15dd76c69a540d..0a19b1429bd253 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ripemd/rmd-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/ripemd/rmd-586.s @@ -51,7 +51,7 @@ L000start: movl %edi,%eax movl 12(%edx),%ebx movl 16(%edx),%ebp - # 0 + # 0 xorl %ebx,%eax movl (%esp),%edx xorl %esi,%eax @@ -61,7 +61,7 @@ L000start: movl %esi,%eax roll $11,%ecx addl %ebp,%ecx - # 1 + # 1 xorl %edi,%eax movl 4(%esp),%edx xorl %ecx,%eax @@ -72,7 +72,7 @@ L000start: xorl %esi,%eax roll $14,%ebp addl %ebx,%ebp - # 2 + # 2 movl 8(%esp),%edx xorl %ebp,%eax addl %edx,%ebx @@ -81,7 +81,7 @@ L000start: movl %ebp,%eax roll $15,%ebx addl %edi,%ebx - # 3 + # 3 xorl %ecx,%eax movl 12(%esp),%edx xorl %ebx,%eax @@ -92,7 +92,7 @@ L000start: xorl %ebp,%eax roll $12,%edi addl %esi,%edi - # 4 + # 4 movl 16(%esp),%edx xorl %edi,%eax addl %edx,%esi @@ -101,7 +101,7 @@ L000start: movl %edi,%eax roll $5,%esi addl %ecx,%esi - # 5 + # 5 xorl %ebx,%eax movl 20(%esp),%edx xorl %esi,%eax @@ -112,7 +112,7 @@ L000start: xorl %edi,%eax roll $8,%ecx addl %ebp,%ecx - # 6 + # 6 movl 24(%esp),%edx xorl %ecx,%eax addl %edx,%ebp @@ -121,7 +121,7 @@ L000start: movl %ecx,%eax roll $7,%ebp addl %ebx,%ebp - # 7 + # 7 xorl %esi,%eax movl 28(%esp),%edx xorl %ebp,%eax @@ -132,7 +132,7 @@ L000start: xorl %ecx,%eax roll $9,%ebx addl %edi,%ebx - # 8 + # 8 movl 32(%esp),%edx xorl %ebx,%eax addl %edx,%edi @@ -141,7 +141,7 @@ L000start: movl %ebx,%eax roll $11,%edi addl %esi,%edi - # 9 + # 9 xorl %ebp,%eax movl 36(%esp),%edx xorl %edi,%eax @@ -152,7 +152,7 @@ L000start: xorl %ebx,%eax roll $13,%esi addl %ecx,%esi - # 10 + # 10 movl 40(%esp),%edx xorl %esi,%eax addl %edx,%ecx @@ -161,7 +161,7 @@ L000start: movl %esi,%eax roll $14,%ecx addl %ebp,%ecx - # 11 + # 11 xorl %edi,%eax movl 44(%esp),%edx xorl %ecx,%eax @@ -172,7 +172,7 @@ L000start: xorl %esi,%eax roll $15,%ebp addl %ebx,%ebp - # 12 + # 12 movl 48(%esp),%edx xorl %ebp,%eax addl %edx,%ebx @@ -181,7 +181,7 @@ L000start: movl %ebp,%eax roll $6,%ebx addl %edi,%ebx - # 13 + # 13 xorl %ecx,%eax movl 52(%esp),%edx xorl %ebx,%eax @@ -192,7 +192,7 @@ L000start: xorl %ebp,%eax roll $7,%edi addl %esi,%edi - # 14 + # 14 movl 56(%esp),%edx xorl %edi,%eax addl %edx,%esi @@ -201,7 +201,7 @@ L000start: movl %edi,%eax roll $9,%esi addl %ecx,%esi - # 15 + # 15 xorl %ebx,%eax movl 60(%esp),%edx xorl %esi,%eax @@ -212,7 +212,7 @@ L000start: movl 28(%esp),%edx roll $8,%ecx addl %ebp,%ecx - # 16 + # 16 addl %edx,%ebp movl %esi,%edx subl %ecx,%eax @@ -225,7 +225,7 @@ L000start: movl $-1,%edx roll $7,%ebp addl %ebx,%ebp - # 17 + # 17 addl %eax,%ebx movl %ecx,%eax subl %ebp,%edx @@ -238,7 +238,7 @@ L000start: movl $-1,%eax roll $6,%ebx addl %edi,%ebx - # 18 + # 18 addl %edx,%edi movl %ebp,%edx subl %ebx,%eax @@ -251,7 +251,7 @@ L000start: movl $-1,%edx roll $8,%edi addl %esi,%edi - # 19 + # 19 addl %eax,%esi movl %ebx,%eax subl %edi,%edx @@ -264,7 +264,7 @@ L000start: movl $-1,%eax roll $13,%esi addl %ecx,%esi - # 20 + # 20 addl %edx,%ecx movl %edi,%edx subl %esi,%eax @@ -277,7 +277,7 @@ L000start: movl $-1,%edx roll $11,%ecx addl %ebp,%ecx - # 21 + # 21 addl %eax,%ebp movl %esi,%eax subl %ecx,%edx @@ -290,7 +290,7 @@ L000start: movl $-1,%eax roll $9,%ebp addl %ebx,%ebp - # 22 + # 22 addl %edx,%ebx movl %ecx,%edx subl %ebp,%eax @@ -303,7 +303,7 @@ L000start: movl $-1,%edx roll $7,%ebx addl %edi,%ebx - # 23 + # 23 addl %eax,%edi movl %ebp,%eax subl %ebx,%edx @@ -316,7 +316,7 @@ L000start: movl $-1,%eax roll $15,%edi addl %esi,%edi - # 24 + # 24 addl %edx,%esi movl %ebx,%edx subl %edi,%eax @@ -329,7 +329,7 @@ L000start: movl $-1,%edx roll $7,%esi addl %ecx,%esi - # 25 + # 25 addl %eax,%ecx movl %edi,%eax subl %esi,%edx @@ -342,7 +342,7 @@ L000start: movl $-1,%eax roll $12,%ecx addl %ebp,%ecx - # 26 + # 26 addl %edx,%ebp movl %esi,%edx subl %ecx,%eax @@ -355,7 +355,7 @@ L000start: movl $-1,%edx roll $15,%ebp addl %ebx,%ebp - # 27 + # 27 addl %eax,%ebx movl %ecx,%eax subl %ebp,%edx @@ -368,7 +368,7 @@ L000start: movl $-1,%eax roll $9,%ebx addl %edi,%ebx - # 28 + # 28 addl %edx,%edi movl %ebp,%edx subl %ebx,%eax @@ -381,7 +381,7 @@ L000start: movl $-1,%edx roll $11,%edi addl %esi,%edi - # 29 + # 29 addl %eax,%esi movl %ebx,%eax subl %edi,%edx @@ -394,7 +394,7 @@ L000start: movl $-1,%eax roll $7,%esi addl %ecx,%esi - # 30 + # 30 addl %edx,%ecx movl %edi,%edx subl %esi,%eax @@ -407,7 +407,7 @@ L000start: movl $-1,%edx roll $13,%ecx addl %ebp,%ecx - # 31 + # 31 addl %eax,%ebp movl %esi,%eax subl %ecx,%edx @@ -420,7 +420,7 @@ L000start: subl %ecx,%edx roll $12,%ebp addl %ebx,%ebp - # 32 + # 32 movl 12(%esp),%eax orl %ebp,%edx addl %eax,%ebx @@ -431,7 +431,7 @@ L000start: subl %ebp,%eax roll $11,%ebx addl %edi,%ebx - # 33 + # 33 movl 40(%esp),%edx orl %ebx,%eax addl %edx,%edi @@ -442,7 +442,7 @@ L000start: subl %ebx,%edx roll $13,%edi addl %esi,%edi - # 34 + # 34 movl 56(%esp),%eax orl %edi,%edx addl %eax,%esi @@ -453,7 +453,7 @@ L000start: subl %edi,%eax roll $6,%esi addl %ecx,%esi - # 35 + # 35 movl 16(%esp),%edx orl %esi,%eax addl %edx,%ecx @@ -464,7 +464,7 @@ L000start: subl %esi,%edx roll $7,%ecx addl %ebp,%ecx - # 36 + # 36 movl 36(%esp),%eax orl %ecx,%edx addl %eax,%ebp @@ -475,7 +475,7 @@ L000start: subl %ecx,%eax roll $14,%ebp addl %ebx,%ebp - # 37 + # 37 movl 60(%esp),%edx orl %ebp,%eax addl %edx,%ebx @@ -486,7 +486,7 @@ L000start: subl %ebp,%edx roll $9,%ebx addl %edi,%ebx - # 38 + # 38 movl 32(%esp),%eax orl %ebx,%edx addl %eax,%edi @@ -497,7 +497,7 @@ L000start: subl %ebx,%eax roll $13,%edi addl %esi,%edi - # 39 + # 39 movl 4(%esp),%edx orl %edi,%eax addl %edx,%esi @@ -508,7 +508,7 @@ L000start: subl %edi,%edx roll $15,%esi addl %ecx,%esi - # 40 + # 40 movl 8(%esp),%eax orl %esi,%edx addl %eax,%ecx @@ -519,7 +519,7 @@ L000start: subl %esi,%eax roll $14,%ecx addl %ebp,%ecx - # 41 + # 41 movl 28(%esp),%edx orl %ecx,%eax addl %edx,%ebp @@ -530,7 +530,7 @@ L000start: subl %ecx,%edx roll $8,%ebp addl %ebx,%ebp - # 42 + # 42 movl (%esp),%eax orl %ebp,%edx addl %eax,%ebx @@ -541,7 +541,7 @@ L000start: subl %ebp,%eax roll $13,%ebx addl %edi,%ebx - # 43 + # 43 movl 24(%esp),%edx orl %ebx,%eax addl %edx,%edi @@ -552,7 +552,7 @@ L000start: subl %ebx,%edx roll $6,%edi addl %esi,%edi - # 44 + # 44 movl 52(%esp),%eax orl %edi,%edx addl %eax,%esi @@ -563,7 +563,7 @@ L000start: subl %edi,%eax roll $5,%esi addl %ecx,%esi - # 45 + # 45 movl 44(%esp),%edx orl %esi,%eax addl %edx,%ecx @@ -574,7 +574,7 @@ L000start: subl %esi,%edx roll $12,%ecx addl %ebp,%ecx - # 46 + # 46 movl 20(%esp),%eax orl %ecx,%edx addl %eax,%ebp @@ -585,7 +585,7 @@ L000start: subl %ecx,%eax roll $7,%ebp addl %ebx,%ebp - # 47 + # 47 movl 48(%esp),%edx orl %ebp,%eax addl %edx,%ebx @@ -596,7 +596,7 @@ L000start: movl %ecx,%eax roll $5,%ebx addl %edi,%ebx - # 48 + # 48 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -609,7 +609,7 @@ L000start: movl %ebp,%eax roll $11,%edi addl %esi,%edi - # 49 + # 49 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -622,7 +622,7 @@ L000start: movl %ebx,%eax roll $12,%esi addl %ecx,%esi - # 50 + # 50 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -635,7 +635,7 @@ L000start: movl %edi,%eax roll $14,%ecx addl %ebp,%ecx - # 51 + # 51 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -648,7 +648,7 @@ L000start: movl %esi,%eax roll $15,%ebp addl %ebx,%ebp - # 52 + # 52 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -661,7 +661,7 @@ L000start: movl %ecx,%eax roll $14,%ebx addl %edi,%ebx - # 53 + # 53 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -674,7 +674,7 @@ L000start: movl %ebp,%eax roll $15,%edi addl %esi,%edi - # 54 + # 54 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -687,7 +687,7 @@ L000start: movl %ebx,%eax roll $9,%esi addl %ecx,%esi - # 55 + # 55 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -700,7 +700,7 @@ L000start: movl %edi,%eax roll $8,%ecx addl %ebp,%ecx - # 56 + # 56 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -713,7 +713,7 @@ L000start: movl %esi,%eax roll $9,%ebp addl %ebx,%ebp - # 57 + # 57 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -726,7 +726,7 @@ L000start: movl %ecx,%eax roll $14,%ebx addl %edi,%ebx - # 58 + # 58 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -739,7 +739,7 @@ L000start: movl %ebp,%eax roll $5,%edi addl %esi,%edi - # 59 + # 59 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -752,7 +752,7 @@ L000start: movl %ebx,%eax roll $6,%esi addl %ecx,%esi - # 60 + # 60 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -765,7 +765,7 @@ L000start: movl %edi,%eax roll $8,%ecx addl %ebp,%ecx - # 61 + # 61 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -778,7 +778,7 @@ L000start: movl %esi,%eax roll $6,%ebp addl %ebx,%ebp - # 62 + # 62 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -791,7 +791,7 @@ L000start: movl %ecx,%eax roll $5,%ebx addl %edi,%ebx - # 63 + # 63 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -804,7 +804,7 @@ L000start: subl %ebp,%edx roll $12,%edi addl %esi,%edi - # 64 + # 64 movl 16(%esp),%eax orl %ebx,%edx addl %eax,%esi @@ -815,7 +815,7 @@ L000start: subl %ebx,%eax roll $9,%esi addl %ecx,%esi - # 65 + # 65 movl (%esp),%edx orl %edi,%eax addl %edx,%ecx @@ -826,7 +826,7 @@ L000start: subl %edi,%edx roll $15,%ecx addl %ebp,%ecx - # 66 + # 66 movl 20(%esp),%eax orl %esi,%edx addl %eax,%ebp @@ -837,7 +837,7 @@ L000start: subl %esi,%eax roll $5,%ebp addl %ebx,%ebp - # 67 + # 67 movl 36(%esp),%edx orl %ecx,%eax addl %edx,%ebx @@ -848,7 +848,7 @@ L000start: subl %ecx,%edx roll $11,%ebx addl %edi,%ebx - # 68 + # 68 movl 28(%esp),%eax orl %ebp,%edx addl %eax,%edi @@ -859,7 +859,7 @@ L000start: subl %ebp,%eax roll $6,%edi addl %esi,%edi - # 69 + # 69 movl 48(%esp),%edx orl %ebx,%eax addl %edx,%esi @@ -870,7 +870,7 @@ L000start: subl %ebx,%edx roll $8,%esi addl %ecx,%esi - # 70 + # 70 movl 8(%esp),%eax orl %edi,%edx addl %eax,%ecx @@ -881,7 +881,7 @@ L000start: subl %edi,%eax roll $13,%ecx addl %ebp,%ecx - # 71 + # 71 movl 40(%esp),%edx orl %esi,%eax addl %edx,%ebp @@ -892,7 +892,7 @@ L000start: subl %esi,%edx roll $12,%ebp addl %ebx,%ebp - # 72 + # 72 movl 56(%esp),%eax orl %ecx,%edx addl %eax,%ebx @@ -903,7 +903,7 @@ L000start: subl %ecx,%eax roll $5,%ebx addl %edi,%ebx - # 73 + # 73 movl 4(%esp),%edx orl %ebp,%eax addl %edx,%edi @@ -914,7 +914,7 @@ L000start: subl %ebp,%edx roll $12,%edi addl %esi,%edi - # 74 + # 74 movl 12(%esp),%eax orl %ebx,%edx addl %eax,%esi @@ -925,7 +925,7 @@ L000start: subl %ebx,%eax roll $13,%esi addl %ecx,%esi - # 75 + # 75 movl 32(%esp),%edx orl %edi,%eax addl %edx,%ecx @@ -936,7 +936,7 @@ L000start: subl %edi,%edx roll $14,%ecx addl %ebp,%ecx - # 76 + # 76 movl 44(%esp),%eax orl %esi,%edx addl %eax,%ebp @@ -947,7 +947,7 @@ L000start: subl %esi,%eax roll $11,%ebp addl %ebx,%ebp - # 77 + # 77 movl 24(%esp),%edx orl %ecx,%eax addl %edx,%ebx @@ -958,7 +958,7 @@ L000start: subl %ecx,%edx roll $8,%ebx addl %edi,%ebx - # 78 + # 78 movl 60(%esp),%eax orl %ebp,%edx addl %eax,%edi @@ -969,7 +969,7 @@ L000start: subl %ebp,%eax roll $5,%edi addl %esi,%edi - # 79 + # 79 movl 52(%esp),%edx orl %ebx,%eax addl %edx,%esi @@ -989,7 +989,7 @@ L000start: movl %ebp,80(%esp) movl 12(%edx),%ebx movl 16(%edx),%ebp - # 80 + # 80 movl $-1,%edx subl %ebx,%edx movl 20(%esp),%eax @@ -1002,7 +1002,7 @@ L000start: subl %edi,%eax roll $8,%ecx addl %ebp,%ecx - # 81 + # 81 movl 56(%esp),%edx orl %esi,%eax addl %edx,%ebp @@ -1013,7 +1013,7 @@ L000start: subl %esi,%edx roll $9,%ebp addl %ebx,%ebp - # 82 + # 82 movl 28(%esp),%eax orl %ecx,%edx addl %eax,%ebx @@ -1024,7 +1024,7 @@ L000start: subl %ecx,%eax roll $9,%ebx addl %edi,%ebx - # 83 + # 83 movl (%esp),%edx orl %ebp,%eax addl %edx,%edi @@ -1035,7 +1035,7 @@ L000start: subl %ebp,%edx roll $11,%edi addl %esi,%edi - # 84 + # 84 movl 36(%esp),%eax orl %ebx,%edx addl %eax,%esi @@ -1046,7 +1046,7 @@ L000start: subl %ebx,%eax roll $13,%esi addl %ecx,%esi - # 85 + # 85 movl 8(%esp),%edx orl %edi,%eax addl %edx,%ecx @@ -1057,7 +1057,7 @@ L000start: subl %edi,%edx roll $15,%ecx addl %ebp,%ecx - # 86 + # 86 movl 44(%esp),%eax orl %esi,%edx addl %eax,%ebp @@ -1068,7 +1068,7 @@ L000start: subl %esi,%eax roll $15,%ebp addl %ebx,%ebp - # 87 + # 87 movl 16(%esp),%edx orl %ecx,%eax addl %edx,%ebx @@ -1079,7 +1079,7 @@ L000start: subl %ecx,%edx roll $5,%ebx addl %edi,%ebx - # 88 + # 88 movl 52(%esp),%eax orl %ebp,%edx addl %eax,%edi @@ -1090,7 +1090,7 @@ L000start: subl %ebp,%eax roll $7,%edi addl %esi,%edi - # 89 + # 89 movl 24(%esp),%edx orl %ebx,%eax addl %edx,%esi @@ -1101,7 +1101,7 @@ L000start: subl %ebx,%edx roll $7,%esi addl %ecx,%esi - # 90 + # 90 movl 60(%esp),%eax orl %edi,%edx addl %eax,%ecx @@ -1112,7 +1112,7 @@ L000start: subl %edi,%eax roll $8,%ecx addl %ebp,%ecx - # 91 + # 91 movl 32(%esp),%edx orl %esi,%eax addl %edx,%ebp @@ -1123,7 +1123,7 @@ L000start: subl %esi,%edx roll $11,%ebp addl %ebx,%ebp - # 92 + # 92 movl 4(%esp),%eax orl %ecx,%edx addl %eax,%ebx @@ -1134,7 +1134,7 @@ L000start: subl %ecx,%eax roll $14,%ebx addl %edi,%ebx - # 93 + # 93 movl 40(%esp),%edx orl %ebp,%eax addl %edx,%edi @@ -1145,7 +1145,7 @@ L000start: subl %ebp,%edx roll $14,%edi addl %esi,%edi - # 94 + # 94 movl 12(%esp),%eax orl %ebx,%edx addl %eax,%esi @@ -1156,7 +1156,7 @@ L000start: subl %ebx,%eax roll $12,%esi addl %ecx,%esi - # 95 + # 95 movl 48(%esp),%edx orl %edi,%eax addl %edx,%ecx @@ -1167,7 +1167,7 @@ L000start: movl %edi,%eax roll $6,%ecx addl %ebp,%ecx - # 96 + # 96 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -1180,7 +1180,7 @@ L000start: movl %esi,%eax roll $9,%ebp addl %ebx,%ebp - # 97 + # 97 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -1193,7 +1193,7 @@ L000start: movl %ecx,%eax roll $13,%ebx addl %edi,%ebx - # 98 + # 98 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -1206,7 +1206,7 @@ L000start: movl %ebp,%eax roll $15,%edi addl %esi,%edi - # 99 + # 99 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -1219,7 +1219,7 @@ L000start: movl %ebx,%eax roll $7,%esi addl %ecx,%esi - # 100 + # 100 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -1232,7 +1232,7 @@ L000start: movl %edi,%eax roll $12,%ecx addl %ebp,%ecx - # 101 + # 101 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -1245,7 +1245,7 @@ L000start: movl %esi,%eax roll $8,%ebp addl %ebx,%ebp - # 102 + # 102 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -1258,7 +1258,7 @@ L000start: movl %ecx,%eax roll $9,%ebx addl %edi,%ebx - # 103 + # 103 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -1271,7 +1271,7 @@ L000start: movl %ebp,%eax roll $11,%edi addl %esi,%edi - # 104 + # 104 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -1284,7 +1284,7 @@ L000start: movl %ebx,%eax roll $7,%esi addl %ecx,%esi - # 105 + # 105 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -1297,7 +1297,7 @@ L000start: movl %edi,%eax roll $7,%ecx addl %ebp,%ecx - # 106 + # 106 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -1310,7 +1310,7 @@ L000start: movl %esi,%eax roll $12,%ebp addl %ebx,%ebp - # 107 + # 107 subl %esi,%edx andl %ebp,%eax andl %ecx,%edx @@ -1323,7 +1323,7 @@ L000start: movl %ecx,%eax roll $7,%ebx addl %edi,%ebx - # 108 + # 108 subl %ecx,%edx andl %ebx,%eax andl %ebp,%edx @@ -1336,7 +1336,7 @@ L000start: movl %ebp,%eax roll $6,%edi addl %esi,%edi - # 109 + # 109 subl %ebp,%edx andl %edi,%eax andl %ebx,%edx @@ -1349,7 +1349,7 @@ L000start: movl %ebx,%eax roll $15,%esi addl %ecx,%esi - # 110 + # 110 subl %ebx,%edx andl %esi,%eax andl %edi,%edx @@ -1362,7 +1362,7 @@ L000start: movl %edi,%eax roll $13,%ecx addl %ebp,%ecx - # 111 + # 111 subl %edi,%edx andl %ecx,%eax andl %esi,%edx @@ -1375,7 +1375,7 @@ L000start: subl %ecx,%edx roll $11,%ebp addl %ebx,%ebp - # 112 + # 112 movl 60(%esp),%eax orl %ebp,%edx addl %eax,%ebx @@ -1386,7 +1386,7 @@ L000start: subl %ebp,%eax roll $9,%ebx addl %edi,%ebx - # 113 + # 113 movl 20(%esp),%edx orl %ebx,%eax addl %edx,%edi @@ -1397,7 +1397,7 @@ L000start: subl %ebx,%edx roll $7,%edi addl %esi,%edi - # 114 + # 114 movl 4(%esp),%eax orl %edi,%edx addl %eax,%esi @@ -1408,7 +1408,7 @@ L000start: subl %edi,%eax roll $15,%esi addl %ecx,%esi - # 115 + # 115 movl 12(%esp),%edx orl %esi,%eax addl %edx,%ecx @@ -1419,7 +1419,7 @@ L000start: subl %esi,%edx roll $11,%ecx addl %ebp,%ecx - # 116 + # 116 movl 28(%esp),%eax orl %ecx,%edx addl %eax,%ebp @@ -1430,7 +1430,7 @@ L000start: subl %ecx,%eax roll $8,%ebp addl %ebx,%ebp - # 117 + # 117 movl 56(%esp),%edx orl %ebp,%eax addl %edx,%ebx @@ -1441,7 +1441,7 @@ L000start: subl %ebp,%edx roll $6,%ebx addl %edi,%ebx - # 118 + # 118 movl 24(%esp),%eax orl %ebx,%edx addl %eax,%edi @@ -1452,7 +1452,7 @@ L000start: subl %ebx,%eax roll $6,%edi addl %esi,%edi - # 119 + # 119 movl 36(%esp),%edx orl %edi,%eax addl %edx,%esi @@ -1463,7 +1463,7 @@ L000start: subl %edi,%edx roll $14,%esi addl %ecx,%esi - # 120 + # 120 movl 44(%esp),%eax orl %esi,%edx addl %eax,%ecx @@ -1474,7 +1474,7 @@ L000start: subl %esi,%eax roll $12,%ecx addl %ebp,%ecx - # 121 + # 121 movl 32(%esp),%edx orl %ecx,%eax addl %edx,%ebp @@ -1485,7 +1485,7 @@ L000start: subl %ecx,%edx roll $13,%ebp addl %ebx,%ebp - # 122 + # 122 movl 48(%esp),%eax orl %ebp,%edx addl %eax,%ebx @@ -1496,7 +1496,7 @@ L000start: subl %ebp,%eax roll $5,%ebx addl %edi,%ebx - # 123 + # 123 movl 8(%esp),%edx orl %ebx,%eax addl %edx,%edi @@ -1507,7 +1507,7 @@ L000start: subl %ebx,%edx roll $14,%edi addl %esi,%edi - # 124 + # 124 movl 40(%esp),%eax orl %edi,%edx addl %eax,%esi @@ -1518,7 +1518,7 @@ L000start: subl %edi,%eax roll $13,%esi addl %ecx,%esi - # 125 + # 125 movl (%esp),%edx orl %esi,%eax addl %edx,%ecx @@ -1529,7 +1529,7 @@ L000start: subl %esi,%edx roll $13,%ecx addl %ebp,%ecx - # 126 + # 126 movl 16(%esp),%eax orl %ecx,%edx addl %eax,%ebp @@ -1540,7 +1540,7 @@ L000start: subl %ecx,%eax roll $7,%ebp addl %ebx,%ebp - # 127 + # 127 movl 52(%esp),%edx orl %ebp,%eax addl %edx,%ebx @@ -1551,7 +1551,7 @@ L000start: movl $-1,%eax roll $5,%ebx addl %edi,%ebx - # 128 + # 128 addl %edx,%edi movl %ebp,%edx subl %ebx,%eax @@ -1564,7 +1564,7 @@ L000start: movl $-1,%edx roll $15,%edi addl %esi,%edi - # 129 + # 129 addl %eax,%esi movl %ebx,%eax subl %edi,%edx @@ -1577,7 +1577,7 @@ L000start: movl $-1,%eax roll $5,%esi addl %ecx,%esi - # 130 + # 130 addl %edx,%ecx movl %edi,%edx subl %esi,%eax @@ -1590,7 +1590,7 @@ L000start: movl $-1,%edx roll $8,%ecx addl %ebp,%ecx - # 131 + # 131 addl %eax,%ebp movl %esi,%eax subl %ecx,%edx @@ -1603,7 +1603,7 @@ L000start: movl $-1,%eax roll $11,%ebp addl %ebx,%ebp - # 132 + # 132 addl %edx,%ebx movl %ecx,%edx subl %ebp,%eax @@ -1616,7 +1616,7 @@ L000start: movl $-1,%edx roll $14,%ebx addl %edi,%ebx - # 133 + # 133 addl %eax,%edi movl %ebp,%eax subl %ebx,%edx @@ -1629,7 +1629,7 @@ L000start: movl $-1,%eax roll $14,%edi addl %esi,%edi - # 134 + # 134 addl %edx,%esi movl %ebx,%edx subl %edi,%eax @@ -1642,7 +1642,7 @@ L000start: movl $-1,%edx roll $6,%esi addl %ecx,%esi - # 135 + # 135 addl %eax,%ecx movl %edi,%eax subl %esi,%edx @@ -1655,7 +1655,7 @@ L000start: movl $-1,%eax roll $14,%ecx addl %ebp,%ecx - # 136 + # 136 addl %edx,%ebp movl %esi,%edx subl %ecx,%eax @@ -1668,7 +1668,7 @@ L000start: movl $-1,%edx roll $6,%ebp addl %ebx,%ebp - # 137 + # 137 addl %eax,%ebx movl %ecx,%eax subl %ebp,%edx @@ -1681,7 +1681,7 @@ L000start: movl $-1,%eax roll $9,%ebx addl %edi,%ebx - # 138 + # 138 addl %edx,%edi movl %ebp,%edx subl %ebx,%eax @@ -1694,7 +1694,7 @@ L000start: movl $-1,%edx roll $12,%edi addl %esi,%edi - # 139 + # 139 addl %eax,%esi movl %ebx,%eax subl %edi,%edx @@ -1707,7 +1707,7 @@ L000start: movl $-1,%eax roll $9,%esi addl %ecx,%esi - # 140 + # 140 addl %edx,%ecx movl %edi,%edx subl %esi,%eax @@ -1720,7 +1720,7 @@ L000start: movl $-1,%edx roll $12,%ecx addl %ebp,%ecx - # 141 + # 141 addl %eax,%ebp movl %esi,%eax subl %ecx,%edx @@ -1733,7 +1733,7 @@ L000start: movl $-1,%eax roll $5,%ebp addl %ebx,%ebp - # 142 + # 142 addl %edx,%ebx movl %ecx,%edx subl %ebp,%eax @@ -1746,7 +1746,7 @@ L000start: movl $-1,%edx roll $15,%ebx addl %edi,%ebx - # 143 + # 143 addl %eax,%edi movl %ebp,%eax subl %ebx,%edx @@ -1759,7 +1759,7 @@ L000start: xorl %ebp,%eax roll $8,%edi addl %esi,%edi - # 144 + # 144 movl 48(%esp),%edx xorl %edi,%eax addl %edx,%esi @@ -1768,7 +1768,7 @@ L000start: movl %edi,%eax roll $8,%esi addl %ecx,%esi - # 145 + # 145 xorl %ebx,%eax movl 60(%esp),%edx xorl %esi,%eax @@ -1779,7 +1779,7 @@ L000start: xorl %edi,%eax roll $5,%ecx addl %ebp,%ecx - # 146 + # 146 movl 40(%esp),%edx xorl %ecx,%eax addl %edx,%ebp @@ -1788,7 +1788,7 @@ L000start: movl %ecx,%eax roll $12,%ebp addl %ebx,%ebp - # 147 + # 147 xorl %esi,%eax movl 16(%esp),%edx xorl %ebp,%eax @@ -1799,7 +1799,7 @@ L000start: xorl %ecx,%eax roll $9,%ebx addl %edi,%ebx - # 148 + # 148 movl 4(%esp),%edx xorl %ebx,%eax addl %edx,%edi @@ -1808,7 +1808,7 @@ L000start: movl %ebx,%eax roll $12,%edi addl %esi,%edi - # 149 + # 149 xorl %ebp,%eax movl 20(%esp),%edx xorl %edi,%eax @@ -1819,7 +1819,7 @@ L000start: xorl %ebx,%eax roll $5,%esi addl %ecx,%esi - # 150 + # 150 movl 32(%esp),%edx xorl %esi,%eax addl %edx,%ecx @@ -1828,7 +1828,7 @@ L000start: movl %esi,%eax roll $14,%ecx addl %ebp,%ecx - # 151 + # 151 xorl %edi,%eax movl 28(%esp),%edx xorl %ecx,%eax @@ -1839,7 +1839,7 @@ L000start: xorl %esi,%eax roll $6,%ebp addl %ebx,%ebp - # 152 + # 152 movl 24(%esp),%edx xorl %ebp,%eax addl %edx,%ebx @@ -1848,7 +1848,7 @@ L000start: movl %ebp,%eax roll $8,%ebx addl %edi,%ebx - # 153 + # 153 xorl %ecx,%eax movl 8(%esp),%edx xorl %ebx,%eax @@ -1859,7 +1859,7 @@ L000start: xorl %ebp,%eax roll $13,%edi addl %esi,%edi - # 154 + # 154 movl 52(%esp),%edx xorl %edi,%eax addl %edx,%esi @@ -1868,7 +1868,7 @@ L000start: movl %edi,%eax roll $6,%esi addl %ecx,%esi - # 155 + # 155 xorl %ebx,%eax movl 56(%esp),%edx xorl %esi,%eax @@ -1879,7 +1879,7 @@ L000start: xorl %edi,%eax roll $5,%ecx addl %ebp,%ecx - # 156 + # 156 movl (%esp),%edx xorl %ecx,%eax addl %edx,%ebp @@ -1888,7 +1888,7 @@ L000start: movl %ecx,%eax roll $15,%ebp addl %ebx,%ebp - # 157 + # 157 xorl %esi,%eax movl 12(%esp),%edx xorl %ebp,%eax @@ -1899,7 +1899,7 @@ L000start: xorl %ecx,%eax roll $13,%ebx addl %edi,%ebx - # 158 + # 158 movl 36(%esp),%edx xorl %ebx,%eax addl %edx,%edi @@ -1908,7 +1908,7 @@ L000start: movl %ebx,%eax roll $11,%edi addl %esi,%edi - # 159 + # 159 xorl %ebp,%eax movl 44(%esp),%edx xorl %edi,%eax diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.s b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.s index d75e61693d5de1..eea95f6cf2e081 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.s +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/sha/sha1-586.s @@ -94,7 +94,7 @@ L002loop: movl 4(%ebp),%ebx movl 8(%ebp),%ecx movl 12(%ebp),%edx - # 00_15 0 + # 00_15 0 movl %ecx,%esi movl %eax,%ebp roll $5,%ebp @@ -106,7 +106,7 @@ L002loop: xorl %edx,%esi leal 1518500249(%ebp,%edi,1),%ebp addl %esi,%ebp - # 00_15 1 + # 00_15 1 movl %ebx,%edi movl %ebp,%esi roll $5,%ebp @@ -118,7 +118,7 @@ L002loop: xorl %ecx,%edi leal 1518500249(%ebp,%edx,1),%ebp addl %edi,%ebp - # 00_15 2 + # 00_15 2 movl %eax,%edx movl %ebp,%edi roll $5,%ebp @@ -130,7 +130,7 @@ L002loop: xorl %ebx,%edx leal 1518500249(%ebp,%ecx,1),%ebp addl %edx,%ebp - # 00_15 3 + # 00_15 3 movl %esi,%ecx movl %ebp,%edx roll $5,%ebp @@ -142,7 +142,7 @@ L002loop: xorl %eax,%ecx leal 1518500249(%ebp,%ebx,1),%ebp addl %ecx,%ebp - # 00_15 4 + # 00_15 4 movl %edi,%ebx movl %ebp,%ecx roll $5,%ebp @@ -154,7 +154,7 @@ L002loop: xorl %esi,%ebx leal 1518500249(%ebp,%eax,1),%ebp addl %ebx,%ebp - # 00_15 5 + # 00_15 5 movl %edx,%eax movl %ebp,%ebx roll $5,%ebp @@ -166,7 +166,7 @@ L002loop: xorl %edi,%eax leal 1518500249(%ebp,%esi,1),%ebp addl %eax,%ebp - # 00_15 6 + # 00_15 6 movl %ecx,%esi movl %ebp,%eax roll $5,%ebp @@ -178,7 +178,7 @@ L002loop: xorl %edx,%esi leal 1518500249(%ebp,%edi,1),%ebp addl %esi,%ebp - # 00_15 7 + # 00_15 7 movl %ebx,%edi movl %ebp,%esi roll $5,%ebp @@ -190,7 +190,7 @@ L002loop: xorl %ecx,%edi leal 1518500249(%ebp,%edx,1),%ebp addl %edi,%ebp - # 00_15 8 + # 00_15 8 movl %eax,%edx movl %ebp,%edi roll $5,%ebp @@ -202,7 +202,7 @@ L002loop: xorl %ebx,%edx leal 1518500249(%ebp,%ecx,1),%ebp addl %edx,%ebp - # 00_15 9 + # 00_15 9 movl %esi,%ecx movl %ebp,%edx roll $5,%ebp @@ -214,7 +214,7 @@ L002loop: xorl %eax,%ecx leal 1518500249(%ebp,%ebx,1),%ebp addl %ecx,%ebp - # 00_15 10 + # 00_15 10 movl %edi,%ebx movl %ebp,%ecx roll $5,%ebp @@ -226,7 +226,7 @@ L002loop: xorl %esi,%ebx leal 1518500249(%ebp,%eax,1),%ebp addl %ebx,%ebp - # 00_15 11 + # 00_15 11 movl %edx,%eax movl %ebp,%ebx roll $5,%ebp @@ -238,7 +238,7 @@ L002loop: xorl %edi,%eax leal 1518500249(%ebp,%esi,1),%ebp addl %eax,%ebp - # 00_15 12 + # 00_15 12 movl %ecx,%esi movl %ebp,%eax roll $5,%ebp @@ -250,7 +250,7 @@ L002loop: xorl %edx,%esi leal 1518500249(%ebp,%edi,1),%ebp addl %esi,%ebp - # 00_15 13 + # 00_15 13 movl %ebx,%edi movl %ebp,%esi roll $5,%ebp @@ -262,7 +262,7 @@ L002loop: xorl %ecx,%edi leal 1518500249(%ebp,%edx,1),%ebp addl %edi,%ebp - # 00_15 14 + # 00_15 14 movl %eax,%edx movl %ebp,%edi roll $5,%ebp @@ -274,7 +274,7 @@ L002loop: xorl %ebx,%edx leal 1518500249(%ebp,%ecx,1),%ebp addl %edx,%ebp - # 00_15 15 + # 00_15 15 movl %esi,%ecx movl %ebp,%edx roll $5,%ebp @@ -287,7 +287,7 @@ L002loop: leal 1518500249(%ebp,%ebx,1),%ebp movl (%esp),%ebx addl %ebp,%ecx - # 16_19 16 + # 16_19 16 movl %edi,%ebp xorl 8(%esp),%ebx xorl %esi,%ebp @@ -304,7 +304,7 @@ L002loop: leal 1518500249(%ebx,%eax,1),%ebx movl 4(%esp),%eax addl %ebp,%ebx - # 16_19 17 + # 16_19 17 movl %edx,%ebp xorl 12(%esp),%eax xorl %edi,%ebp @@ -321,7 +321,7 @@ L002loop: leal 1518500249(%eax,%esi,1),%eax movl 8(%esp),%esi addl %ebp,%eax - # 16_19 18 + # 16_19 18 movl %ecx,%ebp xorl 16(%esp),%esi xorl %edx,%ebp @@ -338,7 +338,7 @@ L002loop: leal 1518500249(%esi,%edi,1),%esi movl 12(%esp),%edi addl %ebp,%esi - # 16_19 19 + # 16_19 19 movl %ebx,%ebp xorl 20(%esp),%edi xorl %ecx,%ebp @@ -355,7 +355,7 @@ L002loop: leal 1518500249(%edi,%edx,1),%edi movl 16(%esp),%edx addl %ebp,%edi - # 20_39 20 + # 20_39 20 movl %esi,%ebp xorl 24(%esp),%edx xorl %eax,%ebp @@ -371,7 +371,7 @@ L002loop: leal 1859775393(%edx,%ecx,1),%edx movl 20(%esp),%ecx addl %ebp,%edx - # 20_39 21 + # 20_39 21 movl %edi,%ebp xorl 28(%esp),%ecx xorl %esi,%ebp @@ -387,7 +387,7 @@ L002loop: leal 1859775393(%ecx,%ebx,1),%ecx movl 24(%esp),%ebx addl %ebp,%ecx - # 20_39 22 + # 20_39 22 movl %edx,%ebp xorl 32(%esp),%ebx xorl %edi,%ebp @@ -403,7 +403,7 @@ L002loop: leal 1859775393(%ebx,%eax,1),%ebx movl 28(%esp),%eax addl %ebp,%ebx - # 20_39 23 + # 20_39 23 movl %ecx,%ebp xorl 36(%esp),%eax xorl %edx,%ebp @@ -419,7 +419,7 @@ L002loop: leal 1859775393(%eax,%esi,1),%eax movl 32(%esp),%esi addl %ebp,%eax - # 20_39 24 + # 20_39 24 movl %ebx,%ebp xorl 40(%esp),%esi xorl %ecx,%ebp @@ -435,7 +435,7 @@ L002loop: leal 1859775393(%esi,%edi,1),%esi movl 36(%esp),%edi addl %ebp,%esi - # 20_39 25 + # 20_39 25 movl %eax,%ebp xorl 44(%esp),%edi xorl %ebx,%ebp @@ -451,7 +451,7 @@ L002loop: leal 1859775393(%edi,%edx,1),%edi movl 40(%esp),%edx addl %ebp,%edi - # 20_39 26 + # 20_39 26 movl %esi,%ebp xorl 48(%esp),%edx xorl %eax,%ebp @@ -467,7 +467,7 @@ L002loop: leal 1859775393(%edx,%ecx,1),%edx movl 44(%esp),%ecx addl %ebp,%edx - # 20_39 27 + # 20_39 27 movl %edi,%ebp xorl 52(%esp),%ecx xorl %esi,%ebp @@ -483,7 +483,7 @@ L002loop: leal 1859775393(%ecx,%ebx,1),%ecx movl 48(%esp),%ebx addl %ebp,%ecx - # 20_39 28 + # 20_39 28 movl %edx,%ebp xorl 56(%esp),%ebx xorl %edi,%ebp @@ -499,7 +499,7 @@ L002loop: leal 1859775393(%ebx,%eax,1),%ebx movl 52(%esp),%eax addl %ebp,%ebx - # 20_39 29 + # 20_39 29 movl %ecx,%ebp xorl 60(%esp),%eax xorl %edx,%ebp @@ -515,7 +515,7 @@ L002loop: leal 1859775393(%eax,%esi,1),%eax movl 56(%esp),%esi addl %ebp,%eax - # 20_39 30 + # 20_39 30 movl %ebx,%ebp xorl (%esp),%esi xorl %ecx,%ebp @@ -531,7 +531,7 @@ L002loop: leal 1859775393(%esi,%edi,1),%esi movl 60(%esp),%edi addl %ebp,%esi - # 20_39 31 + # 20_39 31 movl %eax,%ebp xorl 4(%esp),%edi xorl %ebx,%ebp @@ -547,7 +547,7 @@ L002loop: leal 1859775393(%edi,%edx,1),%edi movl (%esp),%edx addl %ebp,%edi - # 20_39 32 + # 20_39 32 movl %esi,%ebp xorl 8(%esp),%edx xorl %eax,%ebp @@ -563,7 +563,7 @@ L002loop: leal 1859775393(%edx,%ecx,1),%edx movl 4(%esp),%ecx addl %ebp,%edx - # 20_39 33 + # 20_39 33 movl %edi,%ebp xorl 12(%esp),%ecx xorl %esi,%ebp @@ -579,7 +579,7 @@ L002loop: leal 1859775393(%ecx,%ebx,1),%ecx movl 8(%esp),%ebx addl %ebp,%ecx - # 20_39 34 + # 20_39 34 movl %edx,%ebp xorl 16(%esp),%ebx xorl %edi,%ebp @@ -595,7 +595,7 @@ L002loop: leal 1859775393(%ebx,%eax,1),%ebx movl 12(%esp),%eax addl %ebp,%ebx - # 20_39 35 + # 20_39 35 movl %ecx,%ebp xorl 20(%esp),%eax xorl %edx,%ebp @@ -611,7 +611,7 @@ L002loop: leal 1859775393(%eax,%esi,1),%eax movl 16(%esp),%esi addl %ebp,%eax - # 20_39 36 + # 20_39 36 movl %ebx,%ebp xorl 24(%esp),%esi xorl %ecx,%ebp @@ -627,7 +627,7 @@ L002loop: leal 1859775393(%esi,%edi,1),%esi movl 20(%esp),%edi addl %ebp,%esi - # 20_39 37 + # 20_39 37 movl %eax,%ebp xorl 28(%esp),%edi xorl %ebx,%ebp @@ -643,7 +643,7 @@ L002loop: leal 1859775393(%edi,%edx,1),%edi movl 24(%esp),%edx addl %ebp,%edi - # 20_39 38 + # 20_39 38 movl %esi,%ebp xorl 32(%esp),%edx xorl %eax,%ebp @@ -659,7 +659,7 @@ L002loop: leal 1859775393(%edx,%ecx,1),%edx movl 28(%esp),%ecx addl %ebp,%edx - # 20_39 39 + # 20_39 39 movl %edi,%ebp xorl 36(%esp),%ecx xorl %esi,%ebp @@ -675,7 +675,7 @@ L002loop: leal 1859775393(%ecx,%ebx,1),%ecx movl 32(%esp),%ebx addl %ebp,%ecx - # 40_59 40 + # 40_59 40 movl %edi,%ebp xorl 40(%esp),%ebx xorl %esi,%ebp @@ -694,7 +694,7 @@ L002loop: andl %esi,%ebp movl 36(%esp),%eax addl %ebp,%ebx - # 40_59 41 + # 40_59 41 movl %edx,%ebp xorl 44(%esp),%eax xorl %edi,%ebp @@ -713,7 +713,7 @@ L002loop: andl %edi,%ebp movl 40(%esp),%esi addl %ebp,%eax - # 40_59 42 + # 40_59 42 movl %ecx,%ebp xorl 48(%esp),%esi xorl %edx,%ebp @@ -732,7 +732,7 @@ L002loop: andl %edx,%ebp movl 44(%esp),%edi addl %ebp,%esi - # 40_59 43 + # 40_59 43 movl %ebx,%ebp xorl 52(%esp),%edi xorl %ecx,%ebp @@ -751,7 +751,7 @@ L002loop: andl %ecx,%ebp movl 48(%esp),%edx addl %ebp,%edi - # 40_59 44 + # 40_59 44 movl %eax,%ebp xorl 56(%esp),%edx xorl %ebx,%ebp @@ -770,7 +770,7 @@ L002loop: andl %ebx,%ebp movl 52(%esp),%ecx addl %ebp,%edx - # 40_59 45 + # 40_59 45 movl %esi,%ebp xorl 60(%esp),%ecx xorl %eax,%ebp @@ -789,7 +789,7 @@ L002loop: andl %eax,%ebp movl 56(%esp),%ebx addl %ebp,%ecx - # 40_59 46 + # 40_59 46 movl %edi,%ebp xorl (%esp),%ebx xorl %esi,%ebp @@ -808,7 +808,7 @@ L002loop: andl %esi,%ebp movl 60(%esp),%eax addl %ebp,%ebx - # 40_59 47 + # 40_59 47 movl %edx,%ebp xorl 4(%esp),%eax xorl %edi,%ebp @@ -827,7 +827,7 @@ L002loop: andl %edi,%ebp movl (%esp),%esi addl %ebp,%eax - # 40_59 48 + # 40_59 48 movl %ecx,%ebp xorl 8(%esp),%esi xorl %edx,%ebp @@ -846,7 +846,7 @@ L002loop: andl %edx,%ebp movl 4(%esp),%edi addl %ebp,%esi - # 40_59 49 + # 40_59 49 movl %ebx,%ebp xorl 12(%esp),%edi xorl %ecx,%ebp @@ -865,7 +865,7 @@ L002loop: andl %ecx,%ebp movl 8(%esp),%edx addl %ebp,%edi - # 40_59 50 + # 40_59 50 movl %eax,%ebp xorl 16(%esp),%edx xorl %ebx,%ebp @@ -884,7 +884,7 @@ L002loop: andl %ebx,%ebp movl 12(%esp),%ecx addl %ebp,%edx - # 40_59 51 + # 40_59 51 movl %esi,%ebp xorl 20(%esp),%ecx xorl %eax,%ebp @@ -903,7 +903,7 @@ L002loop: andl %eax,%ebp movl 16(%esp),%ebx addl %ebp,%ecx - # 40_59 52 + # 40_59 52 movl %edi,%ebp xorl 24(%esp),%ebx xorl %esi,%ebp @@ -922,7 +922,7 @@ L002loop: andl %esi,%ebp movl 20(%esp),%eax addl %ebp,%ebx - # 40_59 53 + # 40_59 53 movl %edx,%ebp xorl 28(%esp),%eax xorl %edi,%ebp @@ -941,7 +941,7 @@ L002loop: andl %edi,%ebp movl 24(%esp),%esi addl %ebp,%eax - # 40_59 54 + # 40_59 54 movl %ecx,%ebp xorl 32(%esp),%esi xorl %edx,%ebp @@ -960,7 +960,7 @@ L002loop: andl %edx,%ebp movl 28(%esp),%edi addl %ebp,%esi - # 40_59 55 + # 40_59 55 movl %ebx,%ebp xorl 36(%esp),%edi xorl %ecx,%ebp @@ -979,7 +979,7 @@ L002loop: andl %ecx,%ebp movl 32(%esp),%edx addl %ebp,%edi - # 40_59 56 + # 40_59 56 movl %eax,%ebp xorl 40(%esp),%edx xorl %ebx,%ebp @@ -998,7 +998,7 @@ L002loop: andl %ebx,%ebp movl 36(%esp),%ecx addl %ebp,%edx - # 40_59 57 + # 40_59 57 movl %esi,%ebp xorl 44(%esp),%ecx xorl %eax,%ebp @@ -1017,7 +1017,7 @@ L002loop: andl %eax,%ebp movl 40(%esp),%ebx addl %ebp,%ecx - # 40_59 58 + # 40_59 58 movl %edi,%ebp xorl 48(%esp),%ebx xorl %esi,%ebp @@ -1036,7 +1036,7 @@ L002loop: andl %esi,%ebp movl 44(%esp),%eax addl %ebp,%ebx - # 40_59 59 + # 40_59 59 movl %edx,%ebp xorl 52(%esp),%eax xorl %edi,%ebp @@ -1055,7 +1055,7 @@ L002loop: andl %edi,%ebp movl 48(%esp),%esi addl %ebp,%eax - # 20_39 60 + # 20_39 60 movl %ebx,%ebp xorl 56(%esp),%esi xorl %ecx,%ebp @@ -1071,7 +1071,7 @@ L002loop: leal 3395469782(%esi,%edi,1),%esi movl 52(%esp),%edi addl %ebp,%esi - # 20_39 61 + # 20_39 61 movl %eax,%ebp xorl 60(%esp),%edi xorl %ebx,%ebp @@ -1087,7 +1087,7 @@ L002loop: leal 3395469782(%edi,%edx,1),%edi movl 56(%esp),%edx addl %ebp,%edi - # 20_39 62 + # 20_39 62 movl %esi,%ebp xorl (%esp),%edx xorl %eax,%ebp @@ -1103,7 +1103,7 @@ L002loop: leal 3395469782(%edx,%ecx,1),%edx movl 60(%esp),%ecx addl %ebp,%edx - # 20_39 63 + # 20_39 63 movl %edi,%ebp xorl 4(%esp),%ecx xorl %esi,%ebp @@ -1119,7 +1119,7 @@ L002loop: leal 3395469782(%ecx,%ebx,1),%ecx movl (%esp),%ebx addl %ebp,%ecx - # 20_39 64 + # 20_39 64 movl %edx,%ebp xorl 8(%esp),%ebx xorl %edi,%ebp @@ -1135,7 +1135,7 @@ L002loop: leal 3395469782(%ebx,%eax,1),%ebx movl 4(%esp),%eax addl %ebp,%ebx - # 20_39 65 + # 20_39 65 movl %ecx,%ebp xorl 12(%esp),%eax xorl %edx,%ebp @@ -1151,7 +1151,7 @@ L002loop: leal 3395469782(%eax,%esi,1),%eax movl 8(%esp),%esi addl %ebp,%eax - # 20_39 66 + # 20_39 66 movl %ebx,%ebp xorl 16(%esp),%esi xorl %ecx,%ebp @@ -1167,7 +1167,7 @@ L002loop: leal 3395469782(%esi,%edi,1),%esi movl 12(%esp),%edi addl %ebp,%esi - # 20_39 67 + # 20_39 67 movl %eax,%ebp xorl 20(%esp),%edi xorl %ebx,%ebp @@ -1183,7 +1183,7 @@ L002loop: leal 3395469782(%edi,%edx,1),%edi movl 16(%esp),%edx addl %ebp,%edi - # 20_39 68 + # 20_39 68 movl %esi,%ebp xorl 24(%esp),%edx xorl %eax,%ebp @@ -1199,7 +1199,7 @@ L002loop: leal 3395469782(%edx,%ecx,1),%edx movl 20(%esp),%ecx addl %ebp,%edx - # 20_39 69 + # 20_39 69 movl %edi,%ebp xorl 28(%esp),%ecx xorl %esi,%ebp @@ -1215,7 +1215,7 @@ L002loop: leal 3395469782(%ecx,%ebx,1),%ecx movl 24(%esp),%ebx addl %ebp,%ecx - # 20_39 70 + # 20_39 70 movl %edx,%ebp xorl 32(%esp),%ebx xorl %edi,%ebp @@ -1231,7 +1231,7 @@ L002loop: leal 3395469782(%ebx,%eax,1),%ebx movl 28(%esp),%eax addl %ebp,%ebx - # 20_39 71 + # 20_39 71 movl %ecx,%ebp xorl 36(%esp),%eax xorl %edx,%ebp @@ -1247,7 +1247,7 @@ L002loop: leal 3395469782(%eax,%esi,1),%eax movl 32(%esp),%esi addl %ebp,%eax - # 20_39 72 + # 20_39 72 movl %ebx,%ebp xorl 40(%esp),%esi xorl %ecx,%ebp @@ -1263,7 +1263,7 @@ L002loop: leal 3395469782(%esi,%edi,1),%esi movl 36(%esp),%edi addl %ebp,%esi - # 20_39 73 + # 20_39 73 movl %eax,%ebp xorl 44(%esp),%edi xorl %ebx,%ebp @@ -1279,7 +1279,7 @@ L002loop: leal 3395469782(%edi,%edx,1),%edi movl 40(%esp),%edx addl %ebp,%edi - # 20_39 74 + # 20_39 74 movl %esi,%ebp xorl 48(%esp),%edx xorl %eax,%ebp @@ -1295,7 +1295,7 @@ L002loop: leal 3395469782(%edx,%ecx,1),%edx movl 44(%esp),%ecx addl %ebp,%edx - # 20_39 75 + # 20_39 75 movl %edi,%ebp xorl 52(%esp),%ecx xorl %esi,%ebp @@ -1311,7 +1311,7 @@ L002loop: leal 3395469782(%ecx,%ebx,1),%ecx movl 48(%esp),%ebx addl %ebp,%ecx - # 20_39 76 + # 20_39 76 movl %edx,%ebp xorl 56(%esp),%ebx xorl %edi,%ebp @@ -1327,7 +1327,7 @@ L002loop: leal 3395469782(%ebx,%eax,1),%ebx movl 52(%esp),%eax addl %ebp,%ebx - # 20_39 77 + # 20_39 77 movl %ecx,%ebp xorl 60(%esp),%eax xorl %edx,%ebp @@ -1342,7 +1342,7 @@ L002loop: leal 3395469782(%eax,%esi,1),%eax movl 56(%esp),%esi addl %ebp,%eax - # 20_39 78 + # 20_39 78 movl %ebx,%ebp xorl (%esp),%esi xorl %ecx,%ebp @@ -1357,7 +1357,7 @@ L002loop: leal 3395469782(%esi,%edi,1),%esi movl 60(%esp),%edi addl %ebp,%esi - # 20_39 79 + # 20_39 79 movl %eax,%ebp xorl 4(%esp),%edi xorl %ebx,%ebp diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h index f53c3d3eb7c9c6..cd3e29a4f3b748 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi index 19ae424ab5cc11..ba938fab35cee2 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/openssl.gypi @@ -211,6 +211,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -567,6 +568,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm index 768c6baae01240..5f428f66c0a2c1 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "darwin-i386-cc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h index 3f09529c5bec08..6792fc6de47e55 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Tue Apr 3 00:38:22 2018" +#define DATE "built on: Tue Aug 14 23:13:11 2018" diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h index af8c1f66f8cab8..b2fe2bef12c9c5 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi index c1d26d10f5946d..f9886736de279f 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm index 9976ff77d5a5a3..ffeb14ad3376de 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "darwin64-x86_64-cc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3994,6 +4010,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6332,6 +6354,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7331,6 +7359,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7503,8 +7535,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7525,10 +7557,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7684,6 +7729,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7724,7 +7770,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8106,6 +8155,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8226,9 +8278,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9257,6 +9318,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10737,6 +10802,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11274,6 +11343,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11644,6 +11714,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12649,6 +12720,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12998,6 +13078,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13006,6 +13094,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s index f28903cd57ec9c..9a337fb8974365 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .p2align 4 _x86_64_AES_encrypt: diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-mb-x86_64.s index f127e013ea6b84..75ce16175c9394 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text @@ -1432,3 +1432,4 @@ L$dec8x_done: leaq (%rax),%rsp L$dec8x_epilogue: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s index cdce52cd0a2358..b14cf7691a695a 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _aesni_cbc_sha1_enc @@ -2982,3 +2982,4 @@ L$aesenclast14: movdqu %xmm8,(%r9) movd %xmm9,16(%r9) .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s index 40e75bfedb6d3a..08025a0baea20c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _aesni_cbc_sha256_enc @@ -4352,3 +4352,4 @@ L$aesenclast4: movdqu %xmm1,(%r9) movdqu %xmm2,16(%r9) .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s index 258ee335adbeac..2c741239ef664d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _aesni_encrypt diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s index 52ae782e9a2e48..da5d1b112257cf 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/bsaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text @@ -2495,3 +2495,4 @@ L$63: .quad 0x6363636363636363, 0x6363636363636363 .byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 .p2align 6 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s index 2ffd0bc1007578..bcd48656596124 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/vpaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text @@ -824,3 +824,4 @@ L$k_dsbo: .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 .p2align 6 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s index f2bc63be34eee2..785a35ac917671 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-avx2.s @@ -1,4 +1,4 @@ -.text +.text .globl _rsaz_1024_sqr_avx2 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s index 8a6e44932d99d3..7f4a01109e5ed2 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/rsaz-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s index c0f0b4bd6878b8..af1ffdd59b6b56 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-gf2m.s @@ -1,4 +1,4 @@ -.text +.text .p2align 4 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s index a8b7f998a14d01..dd43da0d8674a0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont.s @@ -1,4 +1,4 @@ -.text +.text @@ -197,30 +197,30 @@ L$inner_enter: xorq %r14,%r14 movq (%rsp),%rax - leaq (%rsp),%rsi movq %r9,%r15 - jmp L$sub + .p2align 4 L$sub: sbbq (%rcx,%r14,8),%rax movq %rax,(%rdi,%r14,8) - movq 8(%rsi,%r14,8),%rax + movq 8(%rsp,%r14,8),%rax leaq 1(%r14),%r14 decq %r15 jnz L$sub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.p2align 4 + L$copy: - movq (%rsi,%r14,8),%rax - movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz L$copy @@ -574,10 +574,10 @@ L$inner4x: cmpq %r9,%r14 jb L$outer4x movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 movq 0(%rsp),%rax - pxor %xmm0,%xmm0 movq 8(%rsp),%rdx - shrq $2,%r9 + shrq $2,%r15 leaq (%rsp),%rsi xorq %r14,%r14 @@ -585,9 +585,7 @@ L$inner4x: movq 16(%rsi),%rbx movq 24(%rsi),%rbp sbbq 8(%rcx),%rdx - leaq -1(%r9),%r15 - jmp L$sub4x -.p2align 4 + L$sub4x: movq %rax,0(%rdi,%r14,8) movq %rdx,8(%rdi,%r14,8) @@ -614,34 +612,35 @@ L$sub4x: sbbq $0,%rax movq %rbp,24(%rdi,%r14,8) - xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx - leaq -1(%r9),%r15 - orq %rcx,%rsi - - movdqu (%rsi),%xmm1 - movdqa %xmm0,(%rsp) - movdqu %xmm1,(%rdi) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + jmp L$copy4x .p2align 4 L$copy4x: - movdqu 16(%rsi,%r14,1),%xmm2 - movdqu 32(%rsi,%r14,1),%xmm1 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) - movdqa %xmm0,32(%rsp,%r14,1) - movdqu %xmm1,32(%rdi,%r14,1) - leaq 32(%r14),%r14 + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax decq %r15 jnz L$copy4x - - shlq $2,%r9 - movdqu 16(%rsi,%r14,1),%xmm2 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) movq 8(%rsp,%r9,8),%rsi movq $1,%rax movq -48(%rsi),%r15 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s index 2f6288947290f8..f415b8d80c796c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/bn/x86_64-mont5.s @@ -1,4 +1,4 @@ -.text +.text @@ -393,18 +393,19 @@ L$sub: sbbq (%rcx,%r14,8),%rax jnz L$sub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.p2align 4 + L$copy: - movq (%rsi,%r14,8),%rax + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz L$copy diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h index b72d49d68b5a86..eb762c8ee606c9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h @@ -35,4 +35,4 @@ static const char cflags[] = { 'n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Tue Apr 3 00:38:16 2018" +#define DATE "built on: Tue Aug 14 23:13:05 2018" diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s index 8025d088fdab4e..35a3ea550aa860 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/camellia/cmll-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _Camellia_EncryptBlock diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s index 58f4283a7962c1..afd47bdf68f22e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/chacha/chacha-x86_64.s @@ -1,4 +1,4 @@ -.text +.text @@ -1990,3 +1990,4 @@ L$done8x: vzeroall movq 640(%rsp),%rsp .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s index 37e6f155b63f89..77102c6a41a0dc 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _ecp_nistz256_precomputed .p2align 12 @@ -2372,7 +2372,7 @@ _ecp_nistz256_precomputed: .long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 .long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd -.text +.text @@ -5931,3 +5931,4 @@ L$point_add_affinex: popq %rbx popq %rbp .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s index 76a65a7ed8a75d..f385ea2a3f5387 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/md5/md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .p2align 4 .globl _md5_block_asm_data_order @@ -662,3 +662,4 @@ L$end: addq $40,%rsp L$epilogue: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s index af27718a59b1af..f01a002363dae0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .p2align 5 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s index 76f3b7cdfd1590..502af78349e2b7 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/modes/ghash-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _gcm_gmult_4bit diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s index e4769a669c8724..c68f5a6fbec11d 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/poly1305/poly1305-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-md5-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-md5-x86_64.s index a9c582fdbbae29..47dce361a6c1e3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-md5-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .p2align 4 .globl _rc4_md5_enc @@ -1256,3 +1256,4 @@ L$oop: L$epilogue: L$abort: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-x86_64.s index b842ec60de4ddc..86ef4866621ad6 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/rc4/rc4-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _RC4 @@ -612,3 +612,4 @@ L$opts: .byte 114,99,52,40,49,54,120,44,105,110,116,41,0 .byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s index ac6ad9bb8cbb31..7026de0e767687 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s index 1c52e05e399eb6..3e3633911f4d78 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _sha1_block_data_order diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s index 897dacd5b40847..95e0e774afd4cf 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s index 3cbe0a170c6f71..05e973612b315c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _sha256_block_data_order @@ -5355,3 +5355,4 @@ L$done_avx2: leaq 48(%rsi),%rsp L$epilogue_avx2: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s index 91821da1264e86..234616bc3bb8f0 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/sha/sha512-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _sha512_block_data_order @@ -5362,3 +5362,4 @@ L$done_avx2: leaq 48(%rsi),%rsp L$epilogue_avx2: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s index ad43b5a1b35149..4057ba32acfa06 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/whrlpool/wp-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _whirlpool_block diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s index f9987b733af674..8f16835f716e2a 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/x86_64cpuid.s @@ -7,7 +7,7 @@ .private_extern _OPENSSL_ia32cap_P .comm _OPENSSL_ia32cap_P,16,2 -.text +.text .globl _OPENSSL_atomic_add @@ -455,3 +455,4 @@ L$tail_rdseed_bytes: L$done_rdseed_bytes: .byte 0xf3,0xc3 + diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/engines/e_padlock-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/engines/e_padlock-x86_64.s index 5121b7a05c1d09..b2c06a99192322 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/engines/e_padlock-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/engines/e_padlock-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl _padlock_capability .p2align 4 @@ -1020,7 +1020,7 @@ L$ctr32_abort: .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 4 -.data +.data .p2align 3 L$padlock_saved_context: .quad 0 diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h index f7d6eb81141d68..dd9f0d18abf955 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi index 20d6fbba6aea4e..b624f31aa0b626 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm index 5c67787780e3df..c9c63f968020e1 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "darwin64-x86_64-cc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,8 +7402,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h index c390a3edf17d95..fd5748f7c9b0d3 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Tue Apr 3 00:38:20 2018" +#define DATE "built on: Tue Aug 14 23:13:08 2018" diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h index 8ebbf015477735..77321f72a65f7e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h @@ -108,12 +108,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi index 3ec9ac0dd0343a..3562eebf0b91dd 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm index 954f89a92d7a2b..cc18467d56d081 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-aarch64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3954,6 +3970,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6250,6 +6272,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7237,6 +7265,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7431,10 +7463,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7590,6 +7635,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7630,7 +7676,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8012,6 +8061,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8132,9 +8184,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9143,6 +9204,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10607,6 +10672,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11131,6 +11200,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11497,6 +11567,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12500,6 +12571,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12849,6 +12929,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12857,6 +12945,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h index 8eff4c899cd35a..1efa1d1710c031 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h @@ -27,4 +27,4 @@ static const char cflags[] = { '1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Tue Apr 3 00:38:23 2018" +#define DATE "built on: Tue Aug 14 23:13:11 2018" diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S index d5b15399508c75..85e76b8253422b 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/ec/ecp_nistz256-armv8.S @@ -2765,7 +2765,7 @@ __ecp_nistz256_sqr_mont: // *| | | | | | | | 2| // +|a3*a3|a2*a2|a1*a1|a0*a0| // |--+--+--+--+--+--+--+--| - // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow + // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow // // "can't overflow" below mark carrying into high part of // multiplication result, which can't overflow, because it @@ -3752,21 +3752,21 @@ ecp_nistz256_scatter_w7: prfm pstl1strm,[x0,#4096+64*5] prfm pstl1strm,[x0,#4096+64*6] prfm pstl1strm,[x0,#4096+64*7] - strb w3,[x0,#64*0-1] + strb w3,[x0,#64*0] lsr x3,x3,#8 - strb w3,[x0,#64*1-1] + strb w3,[x0,#64*1] lsr x3,x3,#8 - strb w3,[x0,#64*2-1] + strb w3,[x0,#64*2] lsr x3,x3,#8 - strb w3,[x0,#64*3-1] + strb w3,[x0,#64*3] lsr x3,x3,#8 - strb w3,[x0,#64*4-1] + strb w3,[x0,#64*4] lsr x3,x3,#8 - strb w3,[x0,#64*5-1] + strb w3,[x0,#64*5] lsr x3,x3,#8 - strb w3,[x0,#64*6-1] + strb w3,[x0,#64*6] lsr x3,x3,#8 - strb w3,[x0,#64*7-1] + strb w3,[x0,#64*7] add x0,x0,#64*8 b.ne .Loop_scatter_w7 diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S index 20d797bfa7c1a5..c3e7c97d09bed3 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S @@ -1,5 +1,6 @@ #include "arm_arch.h" +#if __ARM_MAX_ARCH__>=7 .text .arch armv8-a+crypto .globl gcm_init_v8 @@ -226,3 +227,4 @@ gcm_ghash_v8: .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 +#endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslconf.h index 3976dadb19ca17..8bd973e750d6fd 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi b/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi index e0a7b489709463..216df5ffe56b60 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm index 6c0451cfb7f14b..59482bab95e3f5 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-aarch64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1076,6 +1076,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1242,10 +1246,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3932,6 +3948,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6210,6 +6232,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7197,6 +7225,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7369,9 +7401,9 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", "include", + "test", ".", ], "test/threadstest.o" => @@ -7391,10 +7423,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7550,6 +7595,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7590,7 +7636,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7972,6 +8021,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8092,9 +8144,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9083,6 +9144,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10523,6 +10588,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11042,6 +11111,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11402,6 +11472,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12405,6 +12476,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12754,6 +12834,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12762,6 +12850,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h index fbcadcd5ff27fe..53176610a1a056 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Tue Apr 3 00:38:24 2018" +#define DATE "built on: Tue Aug 14 23:13:13 2018" diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h index af3a003d519389..08bf3d43940bb8 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi index 9d9b4c82f8dc63..f05778a2c40fbe 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm index cb318fa4a5d677..1b3e80fa901cc8 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-armv4", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3948,6 +3964,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6247,6 +6269,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7234,6 +7262,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7406,8 +7438,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7428,10 +7460,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7587,6 +7632,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7627,7 +7673,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8009,6 +8058,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8129,9 +8181,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9144,6 +9205,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10612,6 +10677,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11137,6 +11206,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11504,6 +11574,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12507,6 +12578,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12856,6 +12936,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12864,6 +12952,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S index deb60167371762..eae2d6ad259ee9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/armv4cpuid.S @@ -104,7 +104,7 @@ CRYPTO_memcmp: ldmia sp!,{r4,r5} .Lno_data: - neg r0,ip + rsb r0,ip,#0 mov r0,r0,lsr#31 #if __ARM_ARCH__>=5 bx lr diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S index bd5efa815645b4..9f6e7e0c7934bc 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/bn/armv4-mont.S @@ -165,14 +165,15 @@ bn_mul_mont: mov r4,sp @ "rewind" r4 sub r2,r2,r5 @ "rewind" r2 - and r1,r4,r14 - bic r3,r2,r14 - orr r1,r1,r3 @ ap=borrow?tp:rp - -.Lcopy: ldr r7,[r1],#4 @ copy or in-place refresh +.Lcopy: ldr r7,[r4] @ conditional copy + ldr r5,[r2] str sp,[r4],#4 @ zap tp - str r7,[r2],#4 - cmp r4,r0 +#ifdef __thumb2__ + it cc +#endif + movcc r5,r7 + str r5,[r2],#4 + teq r4,r0 @ preserve carry bne .Lcopy mov sp,r0 diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h index 6a7c2e2220c72a..d930fb3ea66456 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h @@ -30,4 +30,4 @@ static const char cflags[] = { '"','"',' ','\0' }; #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Tue Apr 3 00:38:25 2018" +#define DATE "built on: Tue Aug 14 23:13:13 2018" diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S index 625e9506de5aa6..ee64a0b30beeae 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/ec/ecp_nistz256-armv4.S @@ -3432,13 +3432,13 @@ ecp_nistz256_scatter_w7: .Loop_scatter_w7: ldr r3,[r1],#4 subs r2,r2,#1 - strb r3,[r0,#64*0-1] + strb r3,[r0,#64*0] mov r3,r3,lsr#8 - strb r3,[r0,#64*1-1] + strb r3,[r0,#64*1] mov r3,r3,lsr#8 - strb r3,[r0,#64*2-1] + strb r3,[r0,#64*2] mov r3,r3,lsr#8 - strb r3,[r0,#64*3-1] + strb r3,[r0,#64*3] add r0,r0,#64*4 bne .Loop_scatter_w7 @@ -4114,7 +4114,7 @@ ecp_nistz256_point_add: stmia r0!,{r4,r5} .Ladd_done: add sp,sp,#32*18+16+16 @ +16 means "skip even over saved r0-r3" -#if __ARM_ARCH__>=5 || defined(__thumb__) +#if __ARM_ARCH__>=5 || !defined(__thumb__) ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} #else ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S index 2134f9b647f42a..e654d9480f4df0 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghash-armv4.S @@ -3,6 +3,8 @@ .text #if defined(__thumb2__) || defined(__clang__) .syntax unified +#define ldrplb ldrbpl +#define ldrneb ldrbne #endif #if defined(__thumb2__) .thumb @@ -10,11 +12,6 @@ .code 32 #endif -#ifdef __clang__ -#define ldrplb ldrbpl -#define ldrneb ldrbne -#endif - .type rem_4bit,%object .align 5 rem_4bit: diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S index f6fb3f1f733685..ceceb743ece0db 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/modes/ghashv8-armx.S @@ -1,5 +1,6 @@ #include "arm_arch.h" +#if __ARM_MAX_ARCH__>=7 .text .fpu neon .code 32 @@ -230,3 +231,4 @@ gcm_ghash_v8: .byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2 +#endif diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S index 7484c33b84a00a..16b0eb0e9fd45b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/poly1305/poly1305-armv4.S @@ -132,6 +132,7 @@ poly1305_init: .type poly1305_blocks,%function .align 5 poly1305_blocks: +.Lpoly1305_blocks: stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,lr} ands r2,r2,#-16 @@ -606,7 +607,7 @@ poly1305_blocks_neon: cmp r2,#64 bhs .Lenter_neon tst ip,ip @ is_base2_26? - beq poly1305_blocks + beq .Lpoly1305_blocks .Lenter_neon: stmdb sp!,{r4,r5,r6,r7} diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S index 239e7504f1021c..3efcde6b6eb058 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha256-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2018 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the OpenSSL license (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -1831,7 +1831,7 @@ sha256_block_data_order: eor r12,r12,r6 @ Maj(a,b,c) add r4,r4,r0,ror#2 @ h+=Sigma0(a) @ add r4,r4,r12 @ h+=Maj(a,b,c) -#if __ARM_ARCH__>=7 +#ifdef __thumb2__ ite eq @ Thumb2 thing, sanity check in ARM #endif ldreq r3,[sp,#16*4] @ pull ctx diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S index 14eb87e0ce5c53..1e2fbf635016f9 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/sha/sha512-armv4.S @@ -1,4 +1,4 @@ -@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. +@ Copyright 2007-2018 The OpenSSL Project Authors. All Rights Reserved. @ @ Licensed under the OpenSSL license (the "License"). You may not use @ this file except in compliance with the License. You can obtain a copy @@ -265,7 +265,7 @@ sha512_block_data_order: teq r9,#148 ldr r12,[sp,#16+0] @ c.lo -#if __ARM_ARCH__>=7 +#ifdef __thumb2__ it eq @ Thumb2 thing, sanity check in ARM #endif orreq r14,r14,#1 @@ -405,7 +405,7 @@ sha512_block_data_order: teq r9,#23 ldr r12,[sp,#16+0] @ c.lo -#if __ARM_ARCH__>=7 +#ifdef __thumb2__ it eq @ Thumb2 thing, sanity check in ARM #endif orreq r14,r14,#1 @@ -442,7 +442,7 @@ sha512_block_data_order: adc r6,r6,r4 @ h += T tst r14,#1 add r14,r14,#8 -#if __ARM_ARCH__>=7 +#ifdef __thumb2__ ittt eq @ Thumb2 thing, sanity check in ARM #endif ldreq r9,[sp,#184+0] diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslconf.h index 2f9817e43b12ba..21dd8cc643b889 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi b/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi index fcb45489567030..7344b58fb907e2 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-armv4/asm/openssl.gypi @@ -218,6 +218,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -578,6 +579,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm index af91de539b248d..6eb5d78ae80fa3 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-armv4", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1076,6 +1076,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1242,10 +1246,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3932,6 +3948,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6210,6 +6232,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7197,6 +7225,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7369,8 +7401,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7391,10 +7423,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7550,6 +7595,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7590,7 +7636,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7972,6 +8021,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8092,9 +8144,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9083,6 +9144,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10523,6 +10588,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11042,6 +11111,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11402,6 +11472,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12405,6 +12476,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12754,6 +12834,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12762,6 +12850,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h index edce6b669b2d41..8bba39bbb83724 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Tue Apr 3 00:38:26 2018" +#define DATE "built on: Tue Aug 14 23:13:15 2018" diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslconf.h index 1f0c62b3c912a7..5ba3b88d4e5f4d 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi index 9a109fd8745de1..c20b80999fc4d4 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-armv4/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-elf/asm/configdata.pm b/deps/openssl/config/archs/linux-elf/asm/configdata.pm index e1c530bd874937..c2da301a2f4700 100644 --- a/deps/openssl/config/archs/linux-elf/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-elf", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3945,6 +3961,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6271,6 +6293,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7270,6 +7298,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7464,10 +7496,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7623,6 +7668,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7663,7 +7709,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8045,6 +8094,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8165,9 +8217,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9164,6 +9225,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10636,6 +10701,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11165,6 +11234,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11533,6 +11603,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12538,6 +12609,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12887,6 +12967,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12895,6 +12983,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.s b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.s index 945d9e58248a76..8212ff0825f576 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.s +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/bn/x86-mont.s @@ -445,16 +445,18 @@ bn_mul_mont: leal 1(%edx),%edx jge .L017sub sbbl $0,%eax - andl %eax,%esi - notl %eax - movl %edi,%ebp - andl %eax,%ebp - orl %ebp,%esi + movl $-1,%edx + xorl %eax,%edx + jmp .L018copy .align 16 .L018copy: - movl (%esi,%ebx,4),%eax - movl %eax,(%edi,%ebx,4) + movl 32(%esp,%ebx,4),%esi + movl (%edi,%ebx,4),%ebp movl %ecx,32(%esp,%ebx,4) + andl %eax,%esi + andl %edx,%ebp + orl %esi,%ebp + movl %ebp,(%edi,%ebx,4) decl %ebx jge .L018copy movl 24(%esp),%esp diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h index 8baf29639c3e68..865759ecc45e42 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h @@ -37,4 +37,4 @@ static const char cflags[] = { '"',' ','\0' }; #define PLATFORM "platform: linux-elf" -#define DATE "built on: Tue Apr 3 00:38:27 2018" +#define DATE "built on: Tue Aug 14 23:13:15 2018" diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.s b/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.s index cbccc5ebf7a2b7..9092d663215284 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.s +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/ec/ecp_nistz256-x86.s @@ -3857,7 +3857,7 @@ ecp_nistz256_scatter_w7: movl 20(%esp),%edi movl 24(%esp),%esi movl 28(%esp),%ebp - leal -1(%edi,%ebp,1),%edi + leal (%edi,%ebp,1),%edi movl $16,%ebp .L007scatter_w7_loop: movl (%esi),%eax diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslconf.h index e819a68f0b6ad4..b9d6509c0b950c 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi index bbc226b89b2522..d5cde454dde209 100644 --- a/deps/openssl/config/archs/linux-elf/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-elf/asm/openssl.gypi @@ -211,6 +211,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -567,6 +568,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm index 59021fb1d4538e..31d78b0b3c6d4f 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-elf", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1075,6 +1075,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1241,10 +1245,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3931,6 +3947,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6209,6 +6231,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7196,6 +7224,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7368,8 +7400,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7390,10 +7422,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7549,6 +7594,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7589,7 +7635,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7971,6 +8020,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8091,9 +8143,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9082,6 +9143,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10522,6 +10587,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11041,6 +11110,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11401,6 +11471,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12404,6 +12475,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12753,6 +12833,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12761,6 +12849,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h index 606ace102eafc8..23fa5b79945ba5 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-elf" -#define DATE "built on: Tue Apr 3 00:38:29 2018" +#define DATE "built on: Tue Aug 14 23:13:17 2018" diff --git a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslconf.h index b20dbd02123e34..d0fb48f465fe8e 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi index b869b1a864cf82..e4ce5e3b927602 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc/asm/configdata.pm index 5e487cc374448d..63186d5ce0d10f 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3963,6 +3979,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6295,6 +6317,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7282,6 +7310,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7454,8 +7486,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7476,10 +7508,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7635,6 +7680,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7675,7 +7721,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8057,6 +8106,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8177,9 +8229,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9188,6 +9249,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10664,6 +10729,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11188,6 +11257,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11557,6 +11627,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12560,6 +12631,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12909,6 +12989,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12917,6 +13005,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aes-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aes-ppc.s index d59a397c0d5b09..7a2b6fce832203 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aes-ppc.s @@ -8,7 +8,7 @@ mflr 3 addi 3,3,120 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -18,7 +18,7 @@ mflr 3 addi 3,3,2360 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -740,7 +740,7 @@ AES_encrypt: lwz 31,124(1) mtlr 0 addi 1,1,128 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -820,7 +820,7 @@ AES_encrypt: bdnz .Lenc_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -885,7 +885,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1030,7 +1030,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_encrypt,.-AES_encrypt @@ -1175,7 +1175,7 @@ AES_decrypt: lwz 31,124(1) mtlr 0 addi 1,1,128 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1255,7 +1255,7 @@ AES_decrypt: bdnz .Ldec_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -1320,7 +1320,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1550,7 +1550,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_decrypt,.-AES_decrypt diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aesp8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aesp8-ppc.s index 5eb788907d0197..16ddeda3783287 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aesp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/aesp8-ppc.s @@ -14,7 +14,7 @@ rcon: mflr 6 addi 6,6,-0x48 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -278,7 +278,7 @@ aes_p8_set_encrypt_key: .Lenc_key_abort: mr 3,6 - blr + blr .long 0 .byte 0,12,0x14,1,0,0,3,0 .long 0 @@ -327,7 +327,7 @@ aes_p8_set_decrypt_key: xor 3,3,3 .Ldec_key_abort: addi 1,1,32 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,3,0 .long 0 @@ -395,7 +395,7 @@ aes_p8_encrypt: stvx 0,7,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -463,7 +463,7 @@ aes_p8_decrypt: stvx 0,7,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -625,7 +625,7 @@ aes_p8_cbc_encrypt: stvx 2,10,7 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -915,8 +915,8 @@ _aesp8_cbc_decrypt8x: addic. 5,5,128 beq .Lcbc_dec8x_done - nop - nop + nop + nop .Loop_cbc_dec8x_tail: .long 0x11EFC548 @@ -1004,15 +1004,15 @@ _aesp8_cbc_decrypt8x: cmplwi 5,32 blt .Lcbc_dec8x_one - nop + nop beq .Lcbc_dec8x_two cmplwi 5,64 blt .Lcbc_dec8x_three - nop + nop beq .Lcbc_dec8x_four cmplwi 5,96 blt .Lcbc_dec8x_five - nop + nop beq .Lcbc_dec8x_six .Lcbc_dec8x_seven: @@ -1199,7 +1199,7 @@ _aesp8_cbc_decrypt8x: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1307,7 +1307,7 @@ aes_p8_ctr32_encrypt_blocks: stvx 2,0,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -1610,15 +1610,15 @@ _aesp8_ctr32_encrypt8x: .Lctr32_enc8x_break: cmpwi 5,-0x60 blt .Lctr32_enc8x_one - nop + nop beq .Lctr32_enc8x_two cmpwi 5,-0x40 blt .Lctr32_enc8x_three - nop + nop beq .Lctr32_enc8x_four cmpwi 5,-0x20 blt .Lctr32_enc8x_five - nop + nop beq .Lctr32_enc8x_six cmpwi 5,0x00 blt .Lctr32_enc8x_seven @@ -1827,7 +1827,7 @@ _aesp8_ctr32_encrypt8x: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1965,7 +1965,7 @@ aes_p8_xts_encrypt: .long 0x10620509 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2038,7 +2038,7 @@ aes_p8_xts_encrypt: .Lxts_enc_ret: mtspr 256,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2179,7 +2179,7 @@ aes_p8_xts_decrypt: .long 0x10620549 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2244,7 +2244,7 @@ aes_p8_xts_decrypt: .long 0x10620549 - nop + nop .long 0x7C602799 @@ -2295,7 +2295,7 @@ aes_p8_xts_decrypt: .Lxts_dec_ret: mtspr 256,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2626,11 +2626,11 @@ _aesp8_xts_encrypt6x: beq .Lxts_enc6x_zero cmpwi 5,0x20 blt .Lxts_enc6x_one - nop + nop beq .Lxts_enc6x_two cmpwi 5,0x40 blt .Lxts_enc6x_three - nop + nop beq .Lxts_enc6x_four .Lxts_enc6x_five: @@ -2727,7 +2727,7 @@ _aesp8_xts_encrypt6x: .align 4 .Lxts_enc6x_one: vxor 7,5,17 - nop + nop .Loop_xts_enc1x: .long 0x10E7C508 lvx 24,26,7 @@ -2863,7 +2863,7 @@ _aesp8_xts_encrypt6x: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -2948,7 +2948,7 @@ _aesp8_xts_enc5x: .long 0x11AD1509 .long 0x11CE1D09 .long 0x11EF2509 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -3276,11 +3276,11 @@ _aesp8_xts_decrypt6x: beq .Lxts_dec6x_zero cmpwi 5,0x20 blt .Lxts_dec6x_one - nop + nop beq .Lxts_dec6x_two cmpwi 5,0x40 blt .Lxts_dec6x_three - nop + nop beq .Lxts_dec6x_four .Lxts_dec6x_five: @@ -3381,7 +3381,7 @@ _aesp8_xts_decrypt6x: .align 4 .Lxts_dec6x_one: vxor 7,5,17 - nop + nop .Loop_xts_dec1x: .long 0x10E7C548 lvx 24,26,7 @@ -3551,7 +3551,7 @@ _aesp8_xts_decrypt6x: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3636,6 +3636,6 @@ _aesp8_xts_dec5x: .long 0x11CE1D49 .long 0x11EF2549 mtctr 9 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/vpaes-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/vpaes-ppc.s index babd699bf79f78..12bc03a58838f6 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/vpaes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/aes/vpaes-ppc.s @@ -95,7 +95,7 @@ _vpaes_consts: mflr 12 addi 12,12,-0x308 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 @@ -135,7 +135,7 @@ _vpaes_encrypt_preheat: lvx 17, 12, 8 lvx 18, 12, 11 lvx 19, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -223,7 +223,7 @@ _vpaes_encrypt_core: vxor 4, 4, 5 vxor 0, 0, 4 vperm 0, 0, 7, 1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -319,7 +319,7 @@ vpaes_encrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -361,7 +361,7 @@ _vpaes_decrypt_preheat: lvx 21, 12, 8 lvx 22, 12, 11 lvx 23, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -456,7 +456,7 @@ _vpaes_decrypt_core: vxor 4, 4, 5 vxor 0, 1, 4 vperm 0, 0, 7, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -552,7 +552,7 @@ vpaes_decrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -780,7 +780,7 @@ vpaes_cbc_encrypt: lwz 31,236(1) mtlr 0 addi 1,1,240 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,2,6,0 .long 0 @@ -834,7 +834,7 @@ _vpaes_key_preheat: lvx 24, 12, 9 lvx 25, 0, 12 lvx 26, 12, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1080,7 +1080,7 @@ _vpaes_schedule_core: vxor 6, 6, 6 vxor 7, 7, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1108,7 +1108,7 @@ _vpaes_schedule_192_smear: vor 0, 6, 6 vsldoi 6, 6, 9, 8 vsldoi 6, 9, 6, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1174,7 +1174,7 @@ _vpaes_schedule_low_round: vxor 0, 1, 7 vxor 7, 1, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1196,7 +1196,7 @@ _vpaes_schedule_transform: vperm 2, 13, 13, 2 vxor 0, 0, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1248,7 +1248,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .align 4 .Lschedule_mangle_dec: @@ -1299,7 +1299,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1376,7 +1376,7 @@ vpaes_set_encrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -1460,7 +1460,7 @@ vpaes_set_decrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/bn-ppc.s index 4745306e54ab94..b029cc94b09f32 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/bn-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/bn-ppc.s @@ -237,7 +237,7 @@ bn_sqr_comba4: stw 9,24(3) stw 10,28(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -665,7 +665,7 @@ bn_sqr_comba8: stw 9, 60(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -819,7 +819,7 @@ bn_mul_comba4: stw 10,24(3) stw 11,28(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1358,7 +1358,7 @@ bn_mul_comba8: adde 10,10,9 stw 12,56(3) stw 10,60(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1409,7 +1409,7 @@ bn_sub_words: .Lppcasm_sub_adios: subfze 3,0 andi. 3,3,1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1455,7 +1455,7 @@ bn_add_words: bdnz .Lppcasm_add_mainloop .Lppcasm_add_adios: addze 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1484,7 +1484,7 @@ bn_div_words: cmplwi 0,5,0 bne .Lppcasm_div1 li 3,-1 - blr + blr .Lppcasm_div1: xor 0,0,0 li 8,32 @@ -1571,7 +1571,7 @@ bn_div_words: b .Lppcasm_divouterloop .Lppcasm_div9: or 3,8,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1613,7 +1613,7 @@ bn_sqr_words: stwu 8,4(3) bdnz .Lppcasm_sqr_mainloop .Lppcasm_sqr_adios: - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1719,7 +1719,7 @@ bn_mul_words: .Lppcasm_mw_OVER: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1845,7 +1845,7 @@ bn_mul_add_words: .Lppcasm_maw_adios: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s index aefd29c9d87425..5bba1e47acc4e2 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s @@ -10,7 +10,7 @@ bn_mul_mont_int: li 3,0 .long 0x4d800020 cmpwi 8,32 - bgelr + bgelr slwi 8,8,2 li 12,-4096 addi 3,8,256 @@ -183,15 +183,16 @@ bn_mul_mont_int: li 21,0 mtctr 8 subfe 3,21,3 - and 4,22,3 - andc 6,9,3 - or 4,4,6 .align 4 .Lcopy: - lwzx 12,4,21 - stwx 12,9,21 + lwzx 12,22,21 + lwzx 10,9,21 + and 12,12,3 + andc 10,10,3 stwx 21,22,21 + or 10,10,12 + stwx 10,9,21 addi 21,21,4 bdnz .Lcopy @@ -210,7 +211,7 @@ bn_mul_mont_int: lwz 30,-8(12) lwz 31,-4(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x80,12,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc64-mont.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc64-mont.s index 49c6e9c741aad1..774b4c4dea1cd5 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc64-mont.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc64-mont.s @@ -889,11 +889,8 @@ bn_mul_mont_fpu64: li 12,0 subfe 3,12,3 - addi 10,1,196 + addi 4,1,196 subf 9,8,9 - and 4,10,3 - andc 6,9,3 - or 4,4,6 addi 10,1,192 mtctr 11 @@ -903,6 +900,10 @@ bn_mul_mont_fpu64: lwz 25,8(4) lwz 26,12(4) lwzu 27,16(4) + lwz 28,4(9) + lwz 29,8(9) + lwz 30,12(9) + lwz 31,16(9) std 12,8(22) std 12,16(22) std 12,24(22) @@ -911,6 +912,18 @@ bn_mul_mont_fpu64: std 12,48(22) std 12,56(22) stdu 12,64(22) + and 24,24,3 + and 25,25,3 + and 26,26,3 + and 27,27,3 + andc 28,28,3 + andc 29,29,3 + andc 30,30,3 + andc 31,31,3 + or 24,24,28 + or 25,25,29 + or 26,26,30 + or 27,27,31 stw 24,4(9) stw 25,8(9) stw 26,12(9) @@ -946,7 +959,7 @@ bn_mul_mont_fpu64: lfd 30,-16(12) lfd 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x8c,13,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h index 1a32730b388bf5..c0355572c41ded 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/buildinf.h @@ -26,4 +26,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc" -#define DATE "built on: Tue Apr 3 00:38:38 2018" +#define DATE "built on: Tue Aug 14 23:13:27 2018" diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/chacha/chacha-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/chacha/chacha-ppc.s index e07f5837a02ab5..02f53619e50840 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/chacha/chacha-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/chacha/chacha-ppc.s @@ -60,7 +60,7 @@ __ChaCha20_ctr32_int: lwz 31,156(1) mtlr 0 addi 1,1,160 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,5,0 .long 0 @@ -346,7 +346,7 @@ __ChaCha20_1x: bne .Loop_outer - blr + blr .align 4 .Ltail: @@ -397,7 +397,7 @@ __ChaCha20_1x: stw 1,80(1) stw 1,84(1) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -556,7 +556,7 @@ ChaCha20_ctr32_vmx: vspltisw 27,7 mtctr 0 - nop + nop .Loop_vmx: vadduwm 0,0,1 add 16,16,20 @@ -1049,7 +1049,7 @@ ChaCha20_ctr32_vmx: cmplwi 5,255 bgt .Loop_outer_vmx - nop + nop .Ldone_vmx: cmplwi 5,0 @@ -1102,7 +1102,7 @@ ChaCha20_ctr32_vmx: lwz 31,364(1) mtlr 0 addi 1,1,368 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,18,5,0 .long 0 @@ -1115,7 +1115,7 @@ ChaCha20_ctr32_vmx: mflr 12 addi 12,12,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/modes/ghashp8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/modes/ghashp8-ppc.s index 28cbe1956ff067..a0e364910f1593 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/modes/ghashp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/modes/ghashp8-ppc.s @@ -123,7 +123,7 @@ gcm_init_p8: .long 0x7E4A1F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -173,7 +173,7 @@ gcm_gmult_p8: .long 0x7C001F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -290,7 +290,7 @@ gcm_ghash_p8: .long 0x7C001F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -557,7 +557,7 @@ gcm_ghash_p8: lvx 30,10,1 lvx 31,11,1 addi 1,1,232 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppc.s index a03a08d66c6911..940d4fa853406b 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppc.s @@ -36,7 +36,7 @@ poly1305_init_int: .Lno_key: xor 3,3,3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .size poly1305_init_int,.-poly1305_init_int @@ -238,7 +238,7 @@ poly1305_blocks: lwz 31,92(1) addi 1,1,96 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,18,4,0 .size poly1305_blocks,.-poly1305_blocks @@ -303,7 +303,7 @@ poly1305_emit: lwz 30,88(1) lwz 31,92(1) addi 1,1,96 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 .size poly1305_emit,.-poly1305_emit diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppcfp.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppcfp.s index 519158eefd8ebb..ee69ce054ce5a6 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppcfp.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/poly1305/poly1305-ppcfp.s @@ -146,7 +146,7 @@ poly1305_init_fpu: .Lno_key: xor 3,3,3 addi 1,1,24 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,2,0 .size poly1305_init_fpu,.-poly1305_init_fpu @@ -462,7 +462,7 @@ poly1305_blocks_fpu: lfd 31,208(1) addi 1,1,216 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,0,4,0 .size poly1305_blocks_fpu,.-poly1305_blocks_fpu @@ -547,7 +547,7 @@ poly1305_emit_fpu: lwz 30,32(1) lwz 31,36(1) addi 1,1,40 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 .size poly1305_emit_fpu,.-poly1305_emit_fpu @@ -558,7 +558,7 @@ poly1305_emit_fpu: mflr 5 addi 5,5,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/ppccpuid.s index 59359e7919acca..19fac1f319cffa 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/ppccpuid.s @@ -6,7 +6,7 @@ .align 4 OPENSSL_fpu_probe: fmr 0,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_fpu_probe,.-OPENSSL_fpu_probe @@ -16,7 +16,7 @@ OPENSSL_fpu_probe: OPENSSL_ppc64_probe: fcfid 1,1 rldicl 0,0,32,32 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe @@ -26,7 +26,7 @@ OPENSSL_ppc64_probe: .align 4 OPENSSL_altivec_probe: .long 0x10000484 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_altivec_probe,.-OPENSSL_altivec_probe @@ -37,7 +37,7 @@ OPENSSL_altivec_probe: OPENSSL_crypto207_probe: .long 0x7C000E99 .long 0x10000508 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe @@ -49,7 +49,7 @@ OPENSSL_madd300_probe: xor 0,0,0 .long 0x10600033 .long 0x10600031 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -82,7 +82,7 @@ OPENSSL_wipe_cpu: xor 12,12,12 fmr 12,31 fmr 13,31 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu @@ -96,7 +96,7 @@ OPENSSL_atomic_add: stwcx. 0,0,3 bne- .Ladd mr 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -112,7 +112,7 @@ OPENSSL_rdtsc: mftbu 4 .long 0x7c042840 bne .Loop_rdtsc - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_rdtsc,.-OPENSSL_rdtsc @@ -130,7 +130,7 @@ OPENSSL_cleanse: stb 0,0(3) addi 3,3,1 bdnz $-8 - blr + blr .Lot: andi. 5,3,3 beq .Laligned stb 0,0(3) @@ -145,7 +145,7 @@ OPENSSL_cleanse: bdnz $-8 andi. 4,4,3 bne .Little - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -172,7 +172,7 @@ CRYPTO_memcmp: li 3,0 sub 3,3,0 extrwi 3,3,1,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -204,7 +204,7 @@ OPENSSL_instrument_bus: bdnz .Loop mr 3,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -257,7 +257,7 @@ OPENSSL_instrument_bus2: .Ldone2: srwi 4,4,2 sub 3,0,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha1-ppc.s index 5f577714e5a63c..ca8c279a2c441a 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha1-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha1-ppc.s @@ -101,7 +101,7 @@ sha1_block_data_order: lwz 31,156(1) mtlr 0 addi 1,1,160 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1109,7 +1109,7 @@ sha1_block_data_order: mr 11,20 addi 4,4,64 bdnz .Lsha1_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha1_block_data_order,.-sha1_block_data_order diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256-ppc.s index 1e92cd5884da15..83c86c17fa213f 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256-ppc.s @@ -121,7 +121,7 @@ sha256_block_ppc: lwz 31,188(1) mtlr 0 addi 1,1,192 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1287,7 +1287,7 @@ sha256_block_ppc: .long 0x7c1f2840 stw 15,28(3) bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha256_block_ppc,.-sha256_block_ppc @@ -1298,7 +1298,7 @@ sha256_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256p8-ppc.s index 888cef888efc46..7c06a0bc05bec4 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha256p8-ppc.s @@ -773,7 +773,7 @@ sha256_block_p8: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -785,7 +785,7 @@ sha256_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512-ppc.s index 582aee7682c499..2ae1bd579f3dfa 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512-ppc.s @@ -128,7 +128,7 @@ sha512_block_ppc: lwz 31,252(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -2973,7 +2973,7 @@ sha512_block_ppc: stw 4,164(1) .long 0x7c042840 bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha512_block_ppc,.-sha512_block_ppc @@ -2984,7 +2984,7 @@ sha512_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512p8-ppc.s index 00b9f36b42c5d6..fc14a5e50f8dcc 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/sha/sha512p8-ppc.s @@ -774,7 +774,7 @@ sha512_block_p8: lwz 30,384(1) lwz 31,388(1) addi 1,1,392 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -786,7 +786,7 @@ sha512_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc/asm/include/openssl/opensslconf.h index 2f9817e43b12ba..21dd8cc643b889 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc/asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc/asm/openssl.gypi index 046400b5d29266..49a49d892d662b 100644 --- a/deps/openssl/config/archs/linux-ppc/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc/asm/openssl.gypi @@ -217,6 +217,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -577,6 +578,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm index 2a36895668acc2..e75bdf4223e439 100644 --- a/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1076,6 +1076,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1242,10 +1246,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3932,6 +3948,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6210,6 +6232,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7197,6 +7225,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7391,10 +7423,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7550,6 +7595,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7590,7 +7636,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7972,6 +8021,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8092,9 +8144,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9083,6 +9144,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10523,6 +10588,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11042,6 +11111,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11402,6 +11472,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12405,6 +12476,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12754,6 +12834,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12762,6 +12850,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h index fcfb67646e7329..2e6e10b752c327 100644 --- a/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc" -#define DATE "built on: Tue Apr 3 00:38:40 2018" +#define DATE "built on: Tue Aug 14 23:13:28 2018" diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc/no-asm/include/openssl/opensslconf.h index 1f0c62b3c912a7..5ba3b88d4e5f4d 100644 --- a/deps/openssl/config/archs/linux-ppc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc/no-asm/openssl.gypi index 08a06ab1d947de..8d5be916d451bc 100644 --- a/deps/openssl/config/archs/linux-ppc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm index 09ca2343e7bd8a..37f6baf4c662f6 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3964,6 +3980,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6296,6 +6318,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7283,6 +7311,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7455,8 +7487,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7477,10 +7509,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7636,6 +7681,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7676,7 +7722,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8058,6 +8107,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8178,9 +8230,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9189,6 +9250,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10665,6 +10730,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11189,6 +11258,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11558,6 +11628,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12561,6 +12632,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12910,6 +12990,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12918,6 +13006,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aes-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aes-ppc.s index b46c8c82a29876..95c8377dc1fa37 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aes-ppc.s @@ -8,7 +8,7 @@ mflr 3 addi 3,3,120 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -18,7 +18,7 @@ mflr 3 addi 3,3,2360 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -746,7 +746,7 @@ AES_encrypt: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -826,7 +826,7 @@ AES_encrypt: bdnz .Lenc_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -891,7 +891,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1036,7 +1036,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_encrypt,.-.AES_encrypt @@ -1188,7 +1188,7 @@ AES_decrypt: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1268,7 +1268,7 @@ AES_decrypt: bdnz .Ldec_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -1333,7 +1333,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1530,7 +1530,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_decrypt,.-.AES_decrypt diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aesp8-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aesp8-ppc.s index 36fa7e356d6903..52a195558d2bc7 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aesp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/aesp8-ppc.s @@ -14,7 +14,7 @@ rcon: mflr 6 addi 6,6,-0x48 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -284,7 +284,7 @@ aes_p8_set_encrypt_key: .Lenc_key_abort: mr 3,6 - blr + blr .long 0 .byte 0,12,0x14,1,0,0,3,0 .long 0 @@ -340,7 +340,7 @@ aes_p8_set_decrypt_key: xor 3,3,3 .Ldec_key_abort: addi 1,1,64 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,3,0 .long 0 @@ -415,7 +415,7 @@ aes_p8_encrypt: stvx 0,7,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -490,7 +490,7 @@ aes_p8_decrypt: stvx 0,7,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -659,7 +659,7 @@ aes_p8_cbc_encrypt: stvx 2,10,7 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -949,8 +949,8 @@ _aesp8_cbc_decrypt8x: addic. 5,5,128 beq .Lcbc_dec8x_done - nop - nop + nop + nop .Loop_cbc_dec8x_tail: .long 0x11EFC548 @@ -1038,15 +1038,15 @@ _aesp8_cbc_decrypt8x: cmplwi 5,32 blt .Lcbc_dec8x_one - nop + nop beq .Lcbc_dec8x_two cmplwi 5,64 blt .Lcbc_dec8x_three - nop + nop beq .Lcbc_dec8x_four cmplwi 5,96 blt .Lcbc_dec8x_five - nop + nop beq .Lcbc_dec8x_six .Lcbc_dec8x_seven: @@ -1233,7 +1233,7 @@ _aesp8_cbc_decrypt8x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1348,7 +1348,7 @@ aes_p8_ctr32_encrypt_blocks: stvx 2,0,4 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -1651,15 +1651,15 @@ _aesp8_ctr32_encrypt8x: .Lctr32_enc8x_break: cmpwi 5,-0x60 blt .Lctr32_enc8x_one - nop + nop beq .Lctr32_enc8x_two cmpwi 5,-0x40 blt .Lctr32_enc8x_three - nop + nop beq .Lctr32_enc8x_four cmpwi 5,-0x20 blt .Lctr32_enc8x_five - nop + nop beq .Lctr32_enc8x_six cmpwi 5,0x00 blt .Lctr32_enc8x_seven @@ -1868,7 +1868,7 @@ _aesp8_ctr32_encrypt8x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2013,7 +2013,7 @@ aes_p8_xts_encrypt: .long 0x10620509 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2086,7 +2086,7 @@ aes_p8_xts_encrypt: .Lxts_enc_ret: mtspr 256,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2234,7 +2234,7 @@ aes_p8_xts_decrypt: .long 0x10620549 - nop + nop .long 0x7C602799 addi 4,4,16 @@ -2299,7 +2299,7 @@ aes_p8_xts_decrypt: .long 0x10620549 - nop + nop .long 0x7C602799 @@ -2350,7 +2350,7 @@ aes_p8_xts_decrypt: .Lxts_dec_ret: mtspr 256,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2682,11 +2682,11 @@ _aesp8_xts_encrypt6x: beq .Lxts_enc6x_zero cmpwi 5,0x20 blt .Lxts_enc6x_one - nop + nop beq .Lxts_enc6x_two cmpwi 5,0x40 blt .Lxts_enc6x_three - nop + nop beq .Lxts_enc6x_four .Lxts_enc6x_five: @@ -2783,7 +2783,7 @@ _aesp8_xts_encrypt6x: .align 4 .Lxts_enc6x_one: vxor 7,5,17 - nop + nop .Loop_xts_enc1x: .long 0x10E7C508 lvx 24,26,7 @@ -2919,7 +2919,7 @@ _aesp8_xts_encrypt6x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3004,7 +3004,7 @@ _aesp8_xts_enc5x: .long 0x11AD1509 .long 0x11CE1D09 .long 0x11EF2509 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -3332,11 +3332,11 @@ _aesp8_xts_decrypt6x: beq .Lxts_dec6x_zero cmpwi 5,0x20 blt .Lxts_dec6x_one - nop + nop beq .Lxts_dec6x_two cmpwi 5,0x40 blt .Lxts_dec6x_three - nop + nop beq .Lxts_dec6x_four .Lxts_dec6x_five: @@ -3437,7 +3437,7 @@ _aesp8_xts_decrypt6x: .align 4 .Lxts_dec6x_one: vxor 7,5,17 - nop + nop .Loop_xts_dec1x: .long 0x10E7C548 lvx 24,26,7 @@ -3607,7 +3607,7 @@ _aesp8_xts_decrypt6x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3692,6 +3692,6 @@ _aesp8_xts_dec5x: .long 0x11CE1D49 .long 0x11EF2549 mtctr 9 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/vpaes-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/vpaes-ppc.s index 1168f546f08fe6..c5f074f37f7426 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/vpaes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/aes/vpaes-ppc.s @@ -95,7 +95,7 @@ _vpaes_consts: mflr 12 addi 12,12,-0x308 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 @@ -135,7 +135,7 @@ _vpaes_encrypt_preheat: lvx 17, 12, 8 lvx 18, 12, 11 lvx 19, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -223,7 +223,7 @@ _vpaes_encrypt_core: vxor 4, 4, 5 vxor 0, 0, 4 vperm 0, 0, 7, 1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -325,7 +325,7 @@ vpaes_encrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -368,7 +368,7 @@ _vpaes_decrypt_preheat: lvx 21, 12, 8 lvx 22, 12, 11 lvx 23, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -463,7 +463,7 @@ _vpaes_decrypt_core: vxor 4, 4, 5 vxor 0, 1, 4 vperm 0, 0, 7, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -565,7 +565,7 @@ vpaes_decrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -800,7 +800,7 @@ vpaes_cbc_encrypt: ld 31,264(1) mtlr 0 addi 1,1,272 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,2,6,0 .long 0 @@ -855,7 +855,7 @@ _vpaes_key_preheat: lvx 24, 12, 9 lvx 25, 0, 12 lvx 26, 12, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1101,7 +1101,7 @@ _vpaes_schedule_core: vxor 6, 6, 6 vxor 7, 7, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1129,7 +1129,7 @@ _vpaes_schedule_192_smear: vor 0, 6, 6 vsldoi 6, 6, 9, 8 vsldoi 6, 9, 6, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1195,7 +1195,7 @@ _vpaes_schedule_low_round: vxor 0, 1, 7 vxor 7, 1, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1217,7 +1217,7 @@ _vpaes_schedule_transform: vperm 2, 13, 13, 2 vxor 0, 0, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1269,7 +1269,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .align 4 .Lschedule_mangle_dec: @@ -1320,7 +1320,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1403,7 +1403,7 @@ vpaes_set_encrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -1494,7 +1494,7 @@ vpaes_set_decrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/bn-ppc.s index 0a3a2a76f51d4c..60dd49f8635e03 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/bn-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/bn-ppc.s @@ -297,7 +297,7 @@ bn_mul_add_words: std 9,48(3) std 10,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -726,7 +726,7 @@ bn_mul_add_words: std 9, 120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -881,7 +881,7 @@ bn_mul_add_words: std 10,48(3) std 11,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1421,7 +1421,7 @@ bn_mul_add_words: adde 10,10,9 std 12,112(3) std 10,120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1473,7 +1473,7 @@ bn_mul_add_words: .Lppcasm_sub_adios: subfze 3,0 andi. 3,3,1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1520,7 +1520,7 @@ bn_mul_add_words: bdnz .Lppcasm_add_mainloop .Lppcasm_add_adios: addze 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1550,7 +1550,7 @@ bn_mul_add_words: cmpldi 0,5,0 bne .Lppcasm_div1 li 3,-1 - blr + blr .Lppcasm_div1: xor 0,0,0 li 8,64 @@ -1637,7 +1637,7 @@ bn_mul_add_words: b .Lppcasm_divouterloop .Lppcasm_div9: or 3,8,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1680,7 +1680,7 @@ bn_mul_add_words: stdu 8,8(3) bdnz .Lppcasm_sqr_mainloop .Lppcasm_sqr_adios: - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1787,7 +1787,7 @@ bn_mul_add_words: .Lppcasm_mw_OVER: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1914,7 +1914,7 @@ bn_mul_add_words: .Lppcasm_maw_adios: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc-mont.s index ac8653f240decf..353c4492446be0 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc-mont.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc-mont.s @@ -187,15 +187,16 @@ bn_mul_mont_int: li 21,0 mtctr 8 subfe 3,21,3 - and 4,22,3 - andc 6,9,3 - or 4,4,6 .align 4 .Lcopy: - ldx 12,4,21 - stdx 12,9,21 + ldx 12,22,21 + ldx 10,9,21 + and 12,12,3 + andc 10,10,3 stdx 21,22,21 + or 10,10,12 + stdx 10,9,21 addi 21,21,8 bdnz .Lcopy @@ -214,7 +215,7 @@ bn_mul_mont_int: ld 30,-16(12) ld 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x80,12,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc64-mont.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc64-mont.s index 8450d9a93923ea..c8a045698b28f7 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc64-mont.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/bn/ppc64-mont.s @@ -686,16 +686,14 @@ bn_mul_mont_fpu64: li 12,0 subfe 3,12,3 - and 4,10,3 - andc 6,9,3 - or 4,4,6 - addi 31,4,8 mtctr 11 .align 4 .Lcopy: - ldx 24,4,12 - ldx 25,31,12 + ldx 24,10,12 + ldx 25,28,12 + ldx 26,9,12 + ldx 27,30,12 std 12,8(22) std 12,16(22) std 12,24(22) @@ -704,6 +702,12 @@ bn_mul_mont_fpu64: std 12,48(22) std 12,56(22) stdu 12,64(22) + and 24,24,3 + and 25,25,3 + andc 26,26,3 + andc 27,27,3 + or 24,24,26 + or 25,25,27 stdx 24,9,12 stdx 25,30,12 stdx 12,10,12 @@ -738,7 +742,7 @@ bn_mul_mont_fpu64: lfd 30,-16(12) lfd 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x8c,13,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h index 12830ce399ecdc..6c21f2f5e7aa42 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/buildinf.h @@ -26,4 +26,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc64" -#define DATE "built on: Tue Apr 3 00:38:40 2018" +#define DATE "built on: Tue Aug 14 23:13:29 2018" diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/chacha/chacha-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/chacha/chacha-ppc.s index 93efe4d9b575ad..b69868c41f7722 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/chacha/chacha-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/chacha/chacha-ppc.s @@ -66,7 +66,7 @@ __ChaCha20_ctr32_int: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,5,0 .long 0 @@ -353,7 +353,7 @@ __ChaCha20_1x: bne .Loop_outer - blr + blr .align 4 .Ltail: @@ -404,7 +404,7 @@ __ChaCha20_1x: stw 1,104(1) stw 1,108(1) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -569,7 +569,7 @@ ChaCha20_ctr32_vmx: vspltisw 27,7 mtctr 0 - nop + nop .Loop_vmx: vadduwm 0,0,1 add 16,16,20 @@ -1062,7 +1062,7 @@ ChaCha20_ctr32_vmx: cmpldi 5,255 bgt .Loop_outer_vmx - nop + nop .Ldone_vmx: cmpldi 5,0 @@ -1115,7 +1115,7 @@ ChaCha20_ctr32_vmx: ld 31,456(1) mtlr 0 addi 1,1,464 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,18,5,0 .long 0 @@ -1129,7 +1129,7 @@ ChaCha20_ctr32_vmx: mflr 12 addi 12,12,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/modes/ghashp8-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/modes/ghashp8-ppc.s index 5ca8640eda06e0..8294ab9b9585ea 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/modes/ghashp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/modes/ghashp8-ppc.s @@ -129,7 +129,7 @@ gcm_init_p8: .long 0x7E4A1F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -186,7 +186,7 @@ gcm_gmult_p8: .long 0x7C001F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -310,7 +310,7 @@ gcm_ghash_p8: .long 0x7C001F99 mtspr 256,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -577,7 +577,7 @@ gcm_ghash_p8: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppc.s index 0907f4ae20321f..4006308ab2476d 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppc.s @@ -39,7 +39,7 @@ poly1305_init_int: .Lno_key: xor 3,3,3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .size poly1305_init_int,.-.poly1305_init_int @@ -141,7 +141,7 @@ poly1305_blocks: ld 31,184(1) addi 1,1,192 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,5,4,0 .size poly1305_blocks,.-.poly1305_blocks @@ -189,7 +189,7 @@ poly1305_emit: li 12,12 stwbrx 8,11,4 stwbrx 7,12,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .size poly1305_emit,.-.poly1305_emit diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppcfp.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppcfp.s index a26ff5adba7982..a5a6dfd505bc2e 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppcfp.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/poly1305/poly1305-ppcfp.s @@ -152,7 +152,7 @@ poly1305_init_fpu: .Lno_key: xor 3,3,3 addi 1,1,48 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,2,0 .size poly1305_init_fpu,.-.poly1305_init_fpu @@ -475,7 +475,7 @@ poly1305_blocks_fpu: lfd 31,232(1) addi 1,1,240 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,0,4,0 .size poly1305_blocks_fpu,.-.poly1305_blocks_fpu @@ -570,7 +570,7 @@ poly1305_emit_fpu: ld 30,64(1) ld 31,72(1) addi 1,1,80 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 .size poly1305_emit_fpu,.-.poly1305_emit_fpu @@ -582,7 +582,7 @@ poly1305_emit_fpu: mflr 5 addi 5,5,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/ppccpuid.s index adc9731bb69e1c..55fa667f641bbd 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/ppccpuid.s @@ -12,7 +12,7 @@ OPENSSL_fpu_probe: .align 4 .OPENSSL_fpu_probe: fmr 0,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_fpu_probe,.-.OPENSSL_fpu_probe @@ -29,7 +29,7 @@ OPENSSL_ppc64_probe: .OPENSSL_ppc64_probe: fcfid 1,1 rldicl 0,0,32,32 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_ppc64_probe,.-.OPENSSL_ppc64_probe @@ -46,7 +46,7 @@ OPENSSL_altivec_probe: .align 4 .OPENSSL_altivec_probe: .long 0x10000484 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_altivec_probe,.-.OPENSSL_altivec_probe @@ -64,7 +64,7 @@ OPENSSL_crypto207_probe: .OPENSSL_crypto207_probe: .long 0x7C000E99 .long 0x10000508 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_crypto207_probe,.-.OPENSSL_crypto207_probe @@ -83,7 +83,7 @@ OPENSSL_madd300_probe: xor 0,0,0 .long 0x10600033 .long 0x10600031 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -122,7 +122,7 @@ OPENSSL_wipe_cpu: xor 12,12,12 fmr 12,31 fmr 13,31 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_wipe_cpu,.-.OPENSSL_wipe_cpu @@ -143,7 +143,7 @@ OPENSSL_atomic_add: stwcx. 0,0,3 bne- .Ladd extsw 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -161,7 +161,7 @@ OPENSSL_rdtsc: .align 4 .OPENSSL_rdtsc: mftb 3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_rdtsc,.-.OPENSSL_rdtsc @@ -186,7 +186,7 @@ OPENSSL_cleanse: stb 0,0(3) addi 3,3,1 bdnz $-8 - blr + blr .Lot: andi. 5,3,3 beq .Laligned stb 0,0(3) @@ -201,7 +201,7 @@ OPENSSL_cleanse: bdnz $-8 andi. 4,4,3 bne .Little - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -235,7 +235,7 @@ CRYPTO_memcmp: li 3,0 sub 3,3,0 extrwi 3,3,1,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -274,7 +274,7 @@ OPENSSL_instrument_bus: bdnz .Loop mr 3,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -334,7 +334,7 @@ OPENSSL_instrument_bus2: .Ldone2: srwi 4,4,2 sub 3,0,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha1-ppc.s index aa47944d37082d..e332225e3bc2f0 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha1-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha1-ppc.s @@ -107,7 +107,7 @@ sha1_block_data_order: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1115,7 +1115,7 @@ sha1_block_data_order: mr 11,20 addi 4,4,64 bdnz .Lsha1_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha1_block_data_order,.-.sha1_block_data_order diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256-ppc.s index 8bc52879f48bb4..8a55a49ed37de0 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256-ppc.s @@ -127,7 +127,7 @@ sha256_block_ppc: ld 31,312(1) mtlr 0 addi 1,1,320 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1293,7 +1293,7 @@ sha256_block_ppc: cmpld 31,5 stw 15,28(3) bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha256_block_ppc,.-.sha256_block_ppc @@ -1305,7 +1305,7 @@ sha256_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256p8-ppc.s index cfa6282d6d6b4a..23db0265f5304b 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha256p8-ppc.s @@ -779,7 +779,7 @@ sha256_block_p8: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -792,7 +792,7 @@ sha256_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512-ppc.s index 9c699a4f32e842..775b64d0fbb7b3 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512-ppc.s @@ -127,7 +127,7 @@ sha512_block_ppc: ld 31,376(1) mtlr 0 addi 1,1,384 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1325,7 +1325,7 @@ sha512_block_ppc: cmpld 31,5 std 15,56(3) bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha512_block_ppc,.-.sha512_block_ppc @@ -1337,7 +1337,7 @@ sha512_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512p8-ppc.s index 03c09abfe1737b..6526b53ff09c14 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64/asm/crypto/sha/sha512p8-ppc.s @@ -780,7 +780,7 @@ sha512_block_p8: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -793,7 +793,7 @@ sha512_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc64/asm/include/openssl/opensslconf.h index 3976dadb19ca17..8bd973e750d6fd 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc64/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc64/asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc64/asm/openssl.gypi index b99768aed035d5..840000dcbea14b 100644 --- a/deps/openssl/config/archs/linux-ppc64/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc64/asm/openssl.gypi @@ -217,6 +217,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -577,6 +578,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm index 3385fae2274e9e..1cd6924b6d248d 100644 --- a/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,8 +7402,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h index e00115c55c073e..94576dcc4d271d 100644 --- a/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc64" -#define DATE "built on: Tue Apr 3 00:38:41 2018" +#define DATE "built on: Tue Aug 14 23:13:30 2018" diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h index af3a003d519389..08bf3d43940bb8 100644 --- a/deps/openssl/config/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc64/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc64/no-asm/openssl.gypi index e45227748ee5a0..5b40384e3d6b0a 100644 --- a/deps/openssl/config/archs/linux-ppc64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc64/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm index f83a155f663210..bf4ab72fd1c41d 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc64le", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3963,6 +3979,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6295,6 +6317,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7282,6 +7310,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7454,8 +7486,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7476,10 +7508,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7635,6 +7680,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7675,7 +7721,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8057,6 +8106,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8177,9 +8229,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9188,6 +9249,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10664,6 +10729,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11188,6 +11257,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11557,6 +11627,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12560,6 +12631,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12909,6 +12989,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12917,6 +13005,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aes-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aes-ppc.s index bbc4e95d544823..2aa99e753a9770 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aes-ppc.s @@ -9,7 +9,7 @@ mflr 3 addi 3,3,120 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -19,7 +19,7 @@ mflr 3 addi 3,3,2360 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 @@ -766,7 +766,7 @@ AES_encrypt: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -846,7 +846,7 @@ AES_encrypt: bdnz .Lenc_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -911,7 +911,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1056,7 +1056,7 @@ AES_encrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_encrypt,.-AES_encrypt @@ -1226,7 +1226,7 @@ AES_decrypt: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1306,7 +1306,7 @@ AES_decrypt: bdnz .Ldec_loop addi 7,3,2048 - nop + nop lwz 12,0(5) rlwinm 16,8,8,24,31 lwz 0,4(5) @@ -1371,7 +1371,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1568,7 +1568,7 @@ AES_decrypt: xor 9,9,0 xor 10,10,14 xor 11,11,15 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size AES_decrypt,.-AES_decrypt diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aesp8-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aesp8-ppc.s index 54f61290bdd8e2..581d16e664af2d 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aesp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/aesp8-ppc.s @@ -15,7 +15,7 @@ rcon: mflr 6 addi 6,6,-0x48 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -280,7 +280,7 @@ aes_p8_set_encrypt_key: .Lenc_key_abort: mr 3,6 - blr + blr .long 0 .byte 0,12,0x14,1,0,0,3,0 .long 0 @@ -330,7 +330,7 @@ aes_p8_set_decrypt_key: xor 3,3,3 .Ldec_key_abort: addi 1,1,64 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,3,0 .long 0 @@ -399,7 +399,7 @@ aes_p8_encrypt: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -468,7 +468,7 @@ aes_p8_decrypt: stvx 0,7,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -631,7 +631,7 @@ aes_p8_cbc_encrypt: stvx 2,10,7 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -921,8 +921,8 @@ _aesp8_cbc_decrypt8x: addic. 5,5,128 beq .Lcbc_dec8x_done - nop - nop + nop + nop .Loop_cbc_dec8x_tail: .long 0x11EFC548 @@ -1010,15 +1010,15 @@ _aesp8_cbc_decrypt8x: cmplwi 5,32 blt .Lcbc_dec8x_one - nop + nop beq .Lcbc_dec8x_two cmplwi 5,64 blt .Lcbc_dec8x_three - nop + nop beq .Lcbc_dec8x_four cmplwi 5,96 blt .Lcbc_dec8x_five - nop + nop beq .Lcbc_dec8x_six .Lcbc_dec8x_seven: @@ -1205,7 +1205,7 @@ _aesp8_cbc_decrypt8x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -1314,7 +1314,7 @@ aes_p8_ctr32_encrypt_blocks: stvx 2,0,4 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,6,0 .long 0 @@ -1617,15 +1617,15 @@ _aesp8_ctr32_encrypt8x: .Lctr32_enc8x_break: cmpwi 5,-0x60 blt .Lctr32_enc8x_one - nop + nop beq .Lctr32_enc8x_two cmpwi 5,-0x40 blt .Lctr32_enc8x_three - nop + nop beq .Lctr32_enc8x_four cmpwi 5,-0x20 blt .Lctr32_enc8x_five - nop + nop beq .Lctr32_enc8x_six cmpwi 5,0x00 blt .Lctr32_enc8x_seven @@ -1834,7 +1834,7 @@ _aesp8_ctr32_encrypt8x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2046,7 +2046,7 @@ aes_p8_xts_encrypt: .Lxts_enc_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2304,7 +2304,7 @@ aes_p8_xts_decrypt: .Lxts_dec_ret: or 12,12,12 li 3,0 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,6,6,0 .long 0 @@ -2635,11 +2635,11 @@ _aesp8_xts_encrypt6x: beq .Lxts_enc6x_zero cmpwi 5,0x20 blt .Lxts_enc6x_one - nop + nop beq .Lxts_enc6x_two cmpwi 5,0x40 blt .Lxts_enc6x_three - nop + nop beq .Lxts_enc6x_four .Lxts_enc6x_five: @@ -2736,7 +2736,7 @@ _aesp8_xts_encrypt6x: .align 4 .Lxts_enc6x_one: vxor 7,5,17 - nop + nop .Loop_xts_enc1x: .long 0x10E7C508 lvx 24,26,7 @@ -2872,7 +2872,7 @@ _aesp8_xts_encrypt6x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -2957,7 +2957,7 @@ _aesp8_xts_enc5x: .long 0x11AD1509 .long 0x11CE1D09 .long 0x11EF2509 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -3285,11 +3285,11 @@ _aesp8_xts_decrypt6x: beq .Lxts_dec6x_zero cmpwi 5,0x20 blt .Lxts_dec6x_one - nop + nop beq .Lxts_dec6x_two cmpwi 5,0x40 blt .Lxts_dec6x_three - nop + nop beq .Lxts_dec6x_four .Lxts_dec6x_five: @@ -3390,7 +3390,7 @@ _aesp8_xts_decrypt6x: .align 4 .Lxts_dec6x_one: vxor 7,5,17 - nop + nop .Loop_xts_dec1x: .long 0x10E7C548 lvx 24,26,7 @@ -3560,7 +3560,7 @@ _aesp8_xts_decrypt6x: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,6,6,0 .long 0 @@ -3645,6 +3645,6 @@ _aesp8_xts_dec5x: .long 0x11CE1D49 .long 0x11EF2549 mtctr 9 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/vpaes-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/vpaes-ppc.s index abd30163841cbe..74d9d5f5cebca1 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/vpaes-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/aes/vpaes-ppc.s @@ -96,7 +96,7 @@ _vpaes_consts: mflr 12 addi 12,12,-0x308 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 @@ -136,7 +136,7 @@ _vpaes_encrypt_preheat: lvx 17, 12, 8 lvx 18, 12, 11 lvx 19, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -224,7 +224,7 @@ _vpaes_encrypt_core: vxor 4, 4, 5 vxor 0, 0, 4 vperm 0, 0, 7, 1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -321,7 +321,7 @@ vpaes_encrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -363,7 +363,7 @@ _vpaes_decrypt_preheat: lvx 21, 12, 8 lvx 22, 12, 11 lvx 23, 12, 10 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -458,7 +458,7 @@ _vpaes_decrypt_core: vxor 4, 4, 5 vxor 0, 1, 4 vperm 0, 0, 7, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -555,7 +555,7 @@ vpaes_decrypt: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -784,7 +784,7 @@ vpaes_cbc_encrypt: ld 31,264(1) mtlr 0 addi 1,1,272 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,2,6,0 .long 0 @@ -838,7 +838,7 @@ _vpaes_key_preheat: lvx 24, 12, 9 lvx 25, 0, 12 lvx 26, 12, 8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1084,7 +1084,7 @@ _vpaes_schedule_core: vxor 6, 6, 6 vxor 7, 7, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1112,7 +1112,7 @@ _vpaes_schedule_192_smear: vor 0, 6, 6 vsldoi 6, 9, 6, 16-8 vsldoi 6, 6, 9, 16-8 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1178,7 +1178,7 @@ _vpaes_schedule_low_round: vxor 0, 1, 7 vxor 7, 1, 7 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1200,7 +1200,7 @@ _vpaes_schedule_transform: vperm 2, 13, 13, 2 vxor 0, 0, 2 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1252,7 +1252,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .align 4 .Lschedule_mangle_dec: @@ -1303,7 +1303,7 @@ _vpaes_schedule_mangle: vsel 2, 28, 1, 30 vor 28, 1, 1 stvx 2, 0, 5 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -1381,7 +1381,7 @@ vpaes_set_encrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 @@ -1466,7 +1466,7 @@ vpaes_set_decrypt_key: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/bn-ppc.s index 146f9af69d6675..c846a555af9464 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/bn-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/bn-ppc.s @@ -238,7 +238,7 @@ bn_sqr_comba4: std 9,48(3) std 10,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -667,7 +667,7 @@ bn_sqr_comba8: std 9, 120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -822,7 +822,7 @@ bn_mul_comba4: std 10,48(3) std 11,56(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1362,7 +1362,7 @@ bn_mul_comba8: adde 10,10,9 std 12,112(3) std 10,120(3) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1414,7 +1414,7 @@ bn_sub_words: .Lppcasm_sub_adios: subfze 3,0 andi. 3,3,1 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1461,7 +1461,7 @@ bn_add_words: bdnz .Lppcasm_add_mainloop .Lppcasm_add_adios: addze 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1491,7 +1491,7 @@ bn_div_words: cmpldi 0,5,0 bne .Lppcasm_div1 li 3,-1 - blr + blr .Lppcasm_div1: xor 0,0,0 li 8,64 @@ -1578,7 +1578,7 @@ bn_div_words: b .Lppcasm_divouterloop .Lppcasm_div9: or 3,8,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1621,7 +1621,7 @@ bn_sqr_words: stdu 8,8(3) bdnz .Lppcasm_sqr_mainloop .Lppcasm_sqr_adios: - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -1728,7 +1728,7 @@ bn_mul_words: .Lppcasm_mw_OVER: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -1855,7 +1855,7 @@ bn_mul_add_words: .Lppcasm_maw_adios: addi 3,12,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc-mont.s index 83b5f96f136a0d..763ad1a55b678d 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc-mont.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc-mont.s @@ -183,15 +183,16 @@ bn_mul_mont_int: li 21,0 mtctr 8 subfe 3,21,3 - and 4,22,3 - andc 6,9,3 - or 4,4,6 .align 4 .Lcopy: - ldx 12,4,21 - stdx 12,9,21 + ldx 12,22,21 + ldx 10,9,21 + and 12,12,3 + andc 10,10,3 stdx 21,22,21 + or 10,10,12 + stdx 10,9,21 addi 21,21,8 bdnz .Lcopy @@ -210,7 +211,7 @@ bn_mul_mont_int: ld 30,-16(12) ld 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x80,12,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc64-mont.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc64-mont.s index 520b8559912db0..5bafae2b278d41 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc64-mont.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/bn/ppc64-mont.s @@ -682,16 +682,14 @@ bn_mul_mont_fpu64: li 12,0 subfe 3,12,3 - and 4,10,3 - andc 6,9,3 - or 4,4,6 - addi 31,4,8 mtctr 11 .align 4 .Lcopy: - ldx 24,4,12 - ldx 25,31,12 + ldx 24,10,12 + ldx 25,28,12 + ldx 26,9,12 + ldx 27,30,12 std 12,8(22) std 12,16(22) std 12,24(22) @@ -700,6 +698,12 @@ bn_mul_mont_fpu64: std 12,48(22) std 12,56(22) stdu 12,64(22) + and 24,24,3 + and 25,25,3 + andc 26,26,3 + andc 27,27,3 + or 24,24,26 + or 25,25,27 stdx 24,9,12 stdx 25,30,12 stdx 12,10,12 @@ -734,7 +738,7 @@ bn_mul_mont_fpu64: lfd 30,-16(12) lfd 31,-8(12) mr 1,12 - blr + blr .long 0 .byte 0,12,4,0,0x8c,13,6,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h index db18e0e13696ae..9d82ff0db62ffe 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h @@ -26,4 +26,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Tue Apr 3 00:38:42 2018" +#define DATE "built on: Tue Aug 14 23:13:30 2018" diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/chacha/chacha-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/chacha/chacha-ppc.s index d5173a6b2be6ce..dafa6a1eb5dfc5 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/chacha/chacha-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/chacha/chacha-ppc.s @@ -62,7 +62,7 @@ __ChaCha20_ctr32_int: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,5,0 .long 0 @@ -284,7 +284,7 @@ __ChaCha20_1x: bne .Loop_outer - blr + blr .align 4 .Ltail: @@ -335,7 +335,7 @@ __ChaCha20_1x: stw 1,104(1) stw 1,108(1) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -495,7 +495,7 @@ ChaCha20_ctr32_vmx: vspltisw 27,7 mtctr 0 - nop + nop .Loop_vmx: vadduwm 0,0,1 add 16,16,20 @@ -924,7 +924,7 @@ ChaCha20_ctr32_vmx: cmpldi 5,255 bgt .Loop_outer_vmx - nop + nop .Ldone_vmx: cmpldi 5,0 @@ -977,7 +977,7 @@ ChaCha20_ctr32_vmx: ld 31,456(1) mtlr 0 addi 1,1,464 - blr + blr .long 0 .byte 0,12,0x04,1,0x80,18,5,0 .long 0 @@ -990,7 +990,7 @@ ChaCha20_ctr32_vmx: mflr 12 addi 12,12,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/modes/ghashp8-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/modes/ghashp8-ppc.s index ec8ae8c05f181a..c5ace016e1db6e 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/modes/ghashp8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/modes/ghashp8-ppc.s @@ -125,7 +125,7 @@ gcm_init_p8: .long 0x7E4A1F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -176,7 +176,7 @@ gcm_gmult_p8: .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -294,7 +294,7 @@ gcm_ghash_p8: .long 0x7C001F99 or 12,12,12 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,4,0 .long 0 @@ -561,7 +561,7 @@ gcm_ghash_p8: lvx 30,10,1 lvx 31,11,1 addi 1,1,256 - blr + blr .long 0 .byte 0,12,0x04,0,0x80,0,4,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppc.s index 247885f6310271..de5c728fe1c472 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppc.s @@ -28,7 +28,7 @@ poly1305_init_int: .Lno_key: xor 3,3,3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .size poly1305_init_int,.-poly1305_init_int @@ -117,7 +117,7 @@ poly1305_blocks: ld 31,184(1) addi 1,1,192 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,5,4,0 .size poly1305_blocks,.-poly1305_blocks @@ -150,7 +150,7 @@ poly1305_emit: adde 8,8,5 std 7,0(4) std 8,8(4) - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .size poly1305_emit,.-poly1305_emit diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppcfp.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppcfp.s index 0ddf681308b3dd..bf94546c85e1c8 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppcfp.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/poly1305/poly1305-ppcfp.s @@ -148,7 +148,7 @@ poly1305_init_fpu: .Lno_key: xor 3,3,3 addi 1,1,48 - blr + blr .long 0 .byte 0,12,4,1,0x80,0,2,0 .size poly1305_init_fpu,.-poly1305_init_fpu @@ -465,7 +465,7 @@ poly1305_blocks_fpu: lfd 31,232(1) addi 1,1,240 .Labort: - blr + blr .long 0 .byte 0,12,4,1,0x80,0,4,0 .size poly1305_blocks_fpu,.-poly1305_blocks_fpu @@ -549,7 +549,7 @@ poly1305_emit_fpu: ld 30,64(1) ld 31,72(1) addi 1,1,80 - blr + blr .long 0 .byte 0,12,4,1,0x80,4,3,0 .size poly1305_emit_fpu,.-poly1305_emit_fpu @@ -560,7 +560,7 @@ poly1305_emit_fpu: mflr 5 addi 5,5,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/ppccpuid.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/ppccpuid.s index a2b975fbe2dd82..6a859efc093b79 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/ppccpuid.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/ppccpuid.s @@ -8,7 +8,7 @@ OPENSSL_fpu_probe: .localentry OPENSSL_fpu_probe,0 fmr 0,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_fpu_probe,.-OPENSSL_fpu_probe @@ -19,7 +19,7 @@ OPENSSL_ppc64_probe: .localentry OPENSSL_ppc64_probe,0 fcfid 1,1 rldicl 0,0,32,32 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe @@ -30,7 +30,7 @@ OPENSSL_ppc64_probe: OPENSSL_altivec_probe: .localentry OPENSSL_altivec_probe,0 .long 0x10000484 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_altivec_probe,.-OPENSSL_altivec_probe @@ -42,7 +42,7 @@ OPENSSL_crypto207_probe: .localentry OPENSSL_crypto207_probe,0 .long 0x7C000E99 .long 0x10000508 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe @@ -55,7 +55,7 @@ OPENSSL_madd300_probe: xor 0,0,0 .long 0x10600033 .long 0x10600031 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 @@ -89,7 +89,7 @@ OPENSSL_wipe_cpu: xor 12,12,12 fmr 12,31 fmr 13,31 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu @@ -104,7 +104,7 @@ OPENSSL_atomic_add: stwcx. 0,0,3 bne- .Ladd extsw 3,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -116,7 +116,7 @@ OPENSSL_atomic_add: OPENSSL_rdtsc: .localentry OPENSSL_rdtsc,0 mftb 3 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size OPENSSL_rdtsc,.-OPENSSL_rdtsc @@ -135,7 +135,7 @@ OPENSSL_cleanse: stb 0,0(3) addi 3,3,1 bdnz $-8 - blr + blr .Lot: andi. 5,3,3 beq .Laligned stb 0,0(3) @@ -150,7 +150,7 @@ OPENSSL_cleanse: bdnz $-8 andi. 4,4,3 bne .Little - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -178,7 +178,7 @@ CRYPTO_memcmp: li 3,0 sub 3,3,0 extrwi 3,3,1,0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 @@ -211,7 +211,7 @@ OPENSSL_instrument_bus: bdnz .Loop mr 3,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 @@ -265,7 +265,7 @@ OPENSSL_instrument_bus2: .Ldone2: srwi 4,4,2 sub 3,0,4 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha1-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha1-ppc.s index 3b6f4a492c6d1e..ca4da783957c53 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha1-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha1-ppc.s @@ -103,7 +103,7 @@ sha1_block_data_order: ld 31,248(1) mtlr 0 addi 1,1,256 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1159,7 +1159,7 @@ sha1_block_data_order: mr 11,20 addi 4,4,64 bdnz .Lsha1_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha1_block_data_order,.-sha1_block_data_order diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256-ppc.s index 0c1539013d96c3..2e0c25a0c72da3 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256-ppc.s @@ -123,7 +123,7 @@ sha256_block_ppc: ld 31,312(1) mtlr 0 addi 1,1,320 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1337,7 +1337,7 @@ sha256_block_ppc: cmpld 31,5 stw 15,28(3) bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha256_block_ppc,.-sha256_block_ppc @@ -1348,7 +1348,7 @@ sha256_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256p8-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256p8-ppc.s index 8536cf5e997746..80d4942b942d59 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha256p8-ppc.s @@ -783,7 +783,7 @@ sha256_block_p8: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -795,7 +795,7 @@ sha256_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512-ppc.s index 89d26735a525f2..9c40d44b0bdca3 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512-ppc.s @@ -123,7 +123,7 @@ sha512_block_ppc: ld 31,376(1) mtlr 0 addi 1,1,384 - blr + blr .long 0 .byte 0,12,4,1,0x80,18,3,0 .long 0 @@ -1417,7 +1417,7 @@ sha512_block_ppc: cmpld 31,5 std 15,56(3) bne .Lsha2_block_private - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .size sha512_block_ppc,.-sha512_block_ppc @@ -1428,7 +1428,7 @@ sha512_block_ppc: mflr 7 addi 7,7,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512p8-ppc.s b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512p8-ppc.s index 2214209e7d75fe..408e974ea5dd0f 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512p8-ppc.s +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/sha/sha512p8-ppc.s @@ -788,7 +788,7 @@ sha512_block_p8: ld 30,432(1) ld 31,440(1) addi 1,1,448 - blr + blr .long 0 .byte 0,12,4,1,0x80,6,3,0 .long 0 @@ -800,7 +800,7 @@ sha512_block_p8: mflr 6 addi 6,6,56 mtlr 0 - blr + blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslconf.h index 3976dadb19ca17..8bd973e750d6fd 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc64le/asm/openssl.gypi index c8d2c69df224b1..8cec102e4fbb32 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc64le/asm/openssl.gypi @@ -217,6 +217,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -577,6 +578,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm index 00ea347e495d01..8a3abfbc3972bb 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-ppc64le", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1076,6 +1076,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1242,10 +1246,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3932,6 +3948,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6210,6 +6232,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7197,6 +7225,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,8 +7402,8 @@ our %unified_info = ( "test/testutil.o" => [ "crypto/include", - "test", "include", + "test", ".", ], "test/threadstest.o" => @@ -7391,10 +7423,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7550,6 +7595,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7590,7 +7636,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7972,6 +8021,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8092,9 +8144,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9083,6 +9144,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10523,6 +10588,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11042,6 +11111,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11402,6 +11472,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12405,6 +12476,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12754,6 +12834,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12762,6 +12850,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h index 1a4d84b065adee..74db60cb552f4d 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Tue Apr 3 00:38:43 2018" +#define DATE "built on: Tue Aug 14 23:13:32 2018" diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h index af3a003d519389..08bf3d43940bb8 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-ppc64le/no-asm/openssl.gypi index 4f068803a3a21d..ed5097611c13bd 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-x32/asm/configdata.pm b/deps/openssl/config/archs/linux-x32/asm/configdata.pm index 31589f2288543a..9b72950dfe6d64 100644 --- a/deps/openssl/config/archs/linux-x32/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x32/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-x32", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3994,6 +4010,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6332,6 +6354,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7331,6 +7359,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7503,8 +7535,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7525,10 +7557,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7684,6 +7729,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7724,7 +7770,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8106,6 +8155,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8226,9 +8278,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9257,6 +9318,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10737,6 +10802,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11274,6 +11343,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11644,6 +11714,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12649,6 +12720,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12998,6 +13078,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13006,6 +13094,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aes-x86_64.s index aa7a1ea1cf9b99..488ae6d781acb0 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _x86_64_AES_encrypt,@function .align 16 _x86_64_AES_encrypt: diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-mb-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-mb-x86_64.s index d493797832987c..3dcd55d3f59a7b 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha1-x86_64.s index c7c53e8771e132..ca193ddb9ea491 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha1_enc diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha256-x86_64.s index 70eed05b00c136..427a1c7d123253 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha256_enc diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-x86_64.s index cd8b00f25983b2..e18f87c4e60cf0 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/aesni-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_encrypt .type aesni_encrypt,@function diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/bsaes-x86_64.s index 0fd201167f647a..c76c5a8afb4788 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/bsaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/vpaes-x86_64.s index bf7c2b0b6f6b04..d19329894079d7 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/aes/vpaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-avx2.s index a2cccde63604f4..ee619092c9b7c7 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-avx2.s @@ -1,4 +1,4 @@ -.text +.text .globl rsaz_1024_sqr_avx2 .type rsaz_1024_sqr_avx2,@function diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-x86_64.s index b6797a68498e49..795cebe1d743cc 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/rsaz-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-gf2m.s b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-gf2m.s index f4e5337565bbc7..a0b78a0565f75d 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-gf2m.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-gf2m.s @@ -1,4 +1,4 @@ -.text +.text .type _mul_1x1,@function .align 16 diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont.s b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont.s index d19d4662b4921b..3a78cd844090ec 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont.s @@ -1,4 +1,4 @@ -.text +.text @@ -197,30 +197,30 @@ bn_mul_mont: xorq %r14,%r14 movq (%rsp),%rax - leaq (%rsp),%rsi movq %r9,%r15 - jmp .Lsub + .align 16 .Lsub: sbbq (%rcx,%r14,8),%rax movq %rax,(%rdi,%r14,8) - movq 8(%rsi,%r14,8),%rax + movq 8(%rsp,%r14,8),%rax leaq 1(%r14),%r14 decq %r15 jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax - movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy @@ -574,10 +574,10 @@ bn_mul4x_mont: cmpq %r9,%r14 jb .Louter4x movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 movq 0(%rsp),%rax - pxor %xmm0,%xmm0 movq 8(%rsp),%rdx - shrq $2,%r9 + shrq $2,%r15 leaq (%rsp),%rsi xorq %r14,%r14 @@ -585,9 +585,7 @@ bn_mul4x_mont: movq 16(%rsi),%rbx movq 24(%rsi),%rbp sbbq 8(%rcx),%rdx - leaq -1(%r9),%r15 - jmp .Lsub4x -.align 16 + .Lsub4x: movq %rax,0(%rdi,%r14,8) movq %rdx,8(%rdi,%r14,8) @@ -614,34 +612,35 @@ bn_mul4x_mont: sbbq $0,%rax movq %rbp,24(%rdi,%r14,8) - xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx - leaq -1(%r9),%r15 - orq %rcx,%rsi - - movdqu (%rsi),%xmm1 - movdqa %xmm0,(%rsp) - movdqu %xmm1,(%rdi) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + jmp .Lcopy4x .align 16 .Lcopy4x: - movdqu 16(%rsi,%r14,1),%xmm2 - movdqu 32(%rsi,%r14,1),%xmm1 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) - movdqa %xmm0,32(%rsp,%r14,1) - movdqu %xmm1,32(%rdi,%r14,1) - leaq 32(%r14),%r14 + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax decq %r15 jnz .Lcopy4x - - shlq $2,%r9 - movdqu 16(%rsi,%r14,1),%xmm2 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) movq 8(%rsp,%r9,8),%rsi movq $1,%rax movq -48(%rsi),%r15 diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont5.s index a2fccf088e752f..0dd53512f9c95f 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/bn/x86_64-mont5.s @@ -1,4 +1,4 @@ -.text +.text @@ -393,18 +393,19 @@ bn_mul_mont_gather5: jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h index 373b56f423507f..96db051a9b7bf0 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/buildinf.h @@ -35,4 +35,4 @@ static const char cflags[] = { 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-x32" -#define DATE "built on: Tue Apr 3 00:38:29 2018" +#define DATE "built on: Tue Aug 14 23:13:18 2018" diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/camellia/cmll-x86_64.s index 1117381f316d9e..1dead91b1752f4 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/camellia/cmll-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl Camellia_EncryptBlock diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/chacha/chacha-x86_64.s index 044b8f031efa06..a9fed05fd7e327 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/chacha/chacha-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/ec/ecp_nistz256-x86_64.s index ce86d5d969f76b..62a7ac611f3733 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2372,7 +2372,7 @@ ecp_nistz256_precomputed: .long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 .long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd .size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/md5/md5-x86_64.s index 0aa90515d6c91a..0defe666bb75dd 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/md5/md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl md5_block_asm_data_order diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/modes/aesni-gcm-x86_64.s index d1a1c895a39bd0..21e49925f1ae5d 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/modes/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _aesni_ctr32_ghash_6x,@function .align 32 diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/modes/ghash-x86_64.s index 10f5987415a1be..0116ef1c94c454 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/modes/ghash-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl gcm_gmult_4bit diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/poly1305/poly1305-x86_64.s index 0d401b7e47b43e..5a05965c8092da 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/poly1305/poly1305-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-md5-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-md5-x86_64.s index 9c7110f4ef09c3..aab3c6db13d930 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-md5-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl rc4_md5_enc diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-x86_64.s index bdd0da3bd1389e..781b48b9eb4408 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/rc4/rc4-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl RC4 diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-mb-x86_64.s index d2857f3288bf07..d266d776ec6681 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-x86_64.s index 195a148bb9b2a3..dbeebed9a0a8dd 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha1_block_data_order diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-mb-x86_64.s index bd72a459ab249d..f2896b4d6e3367 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-x86_64.s index 23b932e1de4a74..8264a7dbdf1044 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha256_block_data_order diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha512-x86_64.s index a1021c17a966b8..6f8488a38a9b23 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/sha/sha512-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha512_block_data_order diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/crypto/whrlpool/wp-x86_64.s index f83130ea68634b..a4d55b6afc3427 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/whrlpool/wp-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl whirlpool_block .type whirlpool_block,@function diff --git a/deps/openssl/config/archs/linux-x32/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/linux-x32/asm/crypto/x86_64cpuid.s index 5a109c6fd915d9..7e1f5e27408c52 100644 --- a/deps/openssl/config/archs/linux-x32/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/linux-x32/asm/crypto/x86_64cpuid.s @@ -6,7 +6,7 @@ .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,16,4 -.text +.text .globl OPENSSL_atomic_add .type OPENSSL_atomic_add,@function diff --git a/deps/openssl/config/archs/linux-x32/asm/engines/e_padlock-x86_64.s b/deps/openssl/config/archs/linux-x32/asm/engines/e_padlock-x86_64.s index 3e5ab736fd86ba..38c02c188ee110 100644 --- a/deps/openssl/config/archs/linux-x32/asm/engines/e_padlock-x86_64.s +++ b/deps/openssl/config/archs/linux-x32/asm/engines/e_padlock-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl padlock_capability .type padlock_capability,@function .align 16 @@ -1020,7 +1020,7 @@ padlock_ctr32_encrypt: .size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 -.data +.data .align 8 .Lpadlock_saved_context: .quad 0 diff --git a/deps/openssl/config/archs/linux-x32/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-x32/asm/include/openssl/opensslconf.h index 510bac93aeb748..546f077108ba75 100644 --- a/deps/openssl/config/archs/linux-x32/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-x32/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-x32/asm/openssl.gypi b/deps/openssl/config/archs/linux-x32/asm/openssl.gypi index 99963ad8f42704..0f877e845856fd 100644 --- a/deps/openssl/config/archs/linux-x32/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-x32/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm b/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm index e6503fe62cfce5..2e6370ba083f85 100644 --- a/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x32/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-x32", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,8 +7402,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h index c45d8db17e99b4..ebbfd1af5d3ec5 100644 --- a/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x32/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-x32" -#define DATE "built on: Tue Apr 3 00:38:33 2018" +#define DATE "built on: Tue Aug 14 23:13:21 2018" diff --git a/deps/openssl/config/archs/linux-x32/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-x32/no-asm/include/openssl/opensslconf.h index cbe32f64d863ce..954003278886e5 100644 --- a/deps/openssl/config/archs/linux-x32/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-x32/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-x32/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-x32/no-asm/openssl.gypi index 014e893b9503e1..cf044b5b7feea8 100644 --- a/deps/openssl/config/archs/linux-x32/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-x32/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm index 9e9bd8b7871000..d28e588e85b612 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-x86_64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3994,6 +4010,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6332,6 +6354,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7331,6 +7359,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7503,8 +7535,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7525,10 +7557,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7684,6 +7729,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7724,7 +7770,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8106,6 +8155,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8226,9 +8278,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9257,6 +9318,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10737,6 +10802,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11274,6 +11343,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11644,6 +11714,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12649,6 +12720,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12998,6 +13078,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13006,6 +13094,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aes-x86_64.s index aa7a1ea1cf9b99..488ae6d781acb0 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _x86_64_AES_encrypt,@function .align 16 _x86_64_AES_encrypt: diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s index d493797832987c..3dcd55d3f59a7b 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s index c7c53e8771e132..ca193ddb9ea491 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha1_enc diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s index 70eed05b00c136..427a1c7d123253 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha256_enc diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-x86_64.s index cd8b00f25983b2..e18f87c4e60cf0 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_encrypt .type aesni_encrypt,@function diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/bsaes-x86_64.s index 0fd201167f647a..c76c5a8afb4788 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/bsaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/vpaes-x86_64.s index bf7c2b0b6f6b04..d19329894079d7 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/vpaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-avx2.s index a2cccde63604f4..ee619092c9b7c7 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-avx2.s @@ -1,4 +1,4 @@ -.text +.text .globl rsaz_1024_sqr_avx2 .type rsaz_1024_sqr_avx2,@function diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-x86_64.s index b6797a68498e49..795cebe1d743cc 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/rsaz-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-gf2m.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-gf2m.s index f4e5337565bbc7..a0b78a0565f75d 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-gf2m.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-gf2m.s @@ -1,4 +1,4 @@ -.text +.text .type _mul_1x1,@function .align 16 diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont.s index d19d4662b4921b..3a78cd844090ec 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont.s @@ -1,4 +1,4 @@ -.text +.text @@ -197,30 +197,30 @@ bn_mul_mont: xorq %r14,%r14 movq (%rsp),%rax - leaq (%rsp),%rsi movq %r9,%r15 - jmp .Lsub + .align 16 .Lsub: sbbq (%rcx,%r14,8),%rax movq %rax,(%rdi,%r14,8) - movq 8(%rsi,%r14,8),%rax + movq 8(%rsp,%r14,8),%rax leaq 1(%r14),%r14 decq %r15 jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax - movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy @@ -574,10 +574,10 @@ bn_mul4x_mont: cmpq %r9,%r14 jb .Louter4x movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 movq 0(%rsp),%rax - pxor %xmm0,%xmm0 movq 8(%rsp),%rdx - shrq $2,%r9 + shrq $2,%r15 leaq (%rsp),%rsi xorq %r14,%r14 @@ -585,9 +585,7 @@ bn_mul4x_mont: movq 16(%rsi),%rbx movq 24(%rsi),%rbp sbbq 8(%rcx),%rdx - leaq -1(%r9),%r15 - jmp .Lsub4x -.align 16 + .Lsub4x: movq %rax,0(%rdi,%r14,8) movq %rdx,8(%rdi,%r14,8) @@ -614,34 +612,35 @@ bn_mul4x_mont: sbbq $0,%rax movq %rbp,24(%rdi,%r14,8) - xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx - leaq -1(%r9),%r15 - orq %rcx,%rsi - - movdqu (%rsi),%xmm1 - movdqa %xmm0,(%rsp) - movdqu %xmm1,(%rdi) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + jmp .Lcopy4x .align 16 .Lcopy4x: - movdqu 16(%rsi,%r14,1),%xmm2 - movdqu 32(%rsi,%r14,1),%xmm1 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) - movdqa %xmm0,32(%rsp,%r14,1) - movdqu %xmm1,32(%rdi,%r14,1) - leaq 32(%r14),%r14 + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax decq %r15 jnz .Lcopy4x - - shlq $2,%r9 - movdqu 16(%rsi,%r14,1),%xmm2 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) movq 8(%rsp,%r9,8),%rsi movq $1,%rax movq -48(%rsi),%r15 diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont5.s index a2fccf088e752f..0dd53512f9c95f 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/bn/x86_64-mont5.s @@ -1,4 +1,4 @@ -.text +.text @@ -393,18 +393,19 @@ bn_mul_mont_gather5: jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h index 4e13db139d16e6..3adfc6b90d7212 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h @@ -35,4 +35,4 @@ static const char cflags[] = { 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Tue Apr 3 00:38:34 2018" +#define DATE "built on: Tue Aug 14 23:13:22 2018" diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/camellia/cmll-x86_64.s index 1117381f316d9e..1dead91b1752f4 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/camellia/cmll-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl Camellia_EncryptBlock diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/chacha/chacha-x86_64.s index 044b8f031efa06..a9fed05fd7e327 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/chacha/chacha-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s index ce86d5d969f76b..62a7ac611f3733 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2372,7 +2372,7 @@ ecp_nistz256_precomputed: .long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 .long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd .size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/md5/md5-x86_64.s index 0aa90515d6c91a..0defe666bb75dd 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/md5/md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl md5_block_asm_data_order diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s index d1a1c895a39bd0..21e49925f1ae5d 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _aesni_ctr32_ghash_6x,@function .align 32 diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/ghash-x86_64.s index 10f5987415a1be..0116ef1c94c454 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/modes/ghash-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl gcm_gmult_4bit diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/poly1305/poly1305-x86_64.s index 5662696481edf6..8b2e361ea1cd1d 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/poly1305/poly1305-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s index 9c7110f4ef09c3..aab3c6db13d930 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl rc4_md5_enc diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-x86_64.s index bdd0da3bd1389e..781b48b9eb4408 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/rc4/rc4-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl RC4 diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-mb-x86_64.s index d2857f3288bf07..d266d776ec6681 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-x86_64.s index 195a148bb9b2a3..dbeebed9a0a8dd 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha1_block_data_order diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-mb-x86_64.s index bd72a459ab249d..f2896b4d6e3367 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-x86_64.s index 23b932e1de4a74..8264a7dbdf1044 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha256_block_data_order diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha512-x86_64.s index a1021c17a966b8..6f8488a38a9b23 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/sha/sha512-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha512_block_data_order diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/whrlpool/wp-x86_64.s index f83130ea68634b..a4d55b6afc3427 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/whrlpool/wp-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl whirlpool_block .type whirlpool_block,@function diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/linux-x86_64/asm/crypto/x86_64cpuid.s index 5a109c6fd915d9..7e1f5e27408c52 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/x86_64cpuid.s @@ -6,7 +6,7 @@ .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,16,4 -.text +.text .globl OPENSSL_atomic_add .type OPENSSL_atomic_add,@function diff --git a/deps/openssl/config/archs/linux-x86_64/asm/engines/e_padlock-x86_64.s b/deps/openssl/config/archs/linux-x86_64/asm/engines/e_padlock-x86_64.s index 3e5ab736fd86ba..38c02c188ee110 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/engines/e_padlock-x86_64.s +++ b/deps/openssl/config/archs/linux-x86_64/asm/engines/e_padlock-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl padlock_capability .type padlock_capability,@function .align 16 @@ -1020,7 +1020,7 @@ padlock_ctr32_encrypt: .size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 -.data +.data .align 8 .Lpadlock_saved_context: .quad 0 diff --git a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslconf.h index 9df0f86ed6edef..7dd2101053aa2e 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi b/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi index 69169eaaeeff22..25ff25754fe5d5 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-x86_64/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm index 2e79f043b3a264..769b53bc82cb44 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux-x86_64", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,8 +7402,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h index 131636a6415110..d3c92d276d206c 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Tue Apr 3 00:38:38 2018" +#define DATE "built on: Tue Aug 14 23:13:26 2018" diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h index e20916814d7003..7b122bd86ee597 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi index 7232d4e55eab0a..62a7e2ade24db1 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm index 47d017c24af853..24b9835113f359 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm +++ b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux32-s390x", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3934,6 +3950,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6227,6 +6249,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7214,6 +7242,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7408,10 +7440,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7567,6 +7612,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7607,7 +7653,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7989,6 +8038,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8109,9 +8161,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9104,6 +9165,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10564,6 +10629,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11084,6 +11153,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11449,6 +11519,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12452,6 +12523,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12801,6 +12881,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12809,6 +12897,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/aes/aes-s390x.S b/deps/openssl/config/archs/linux32-s390x/asm/crypto/aes/aes-s390x.S index 71138f81760090..541636080ca358 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/aes/aes-s390x.S +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/aes/aes-s390x.S @@ -458,7 +458,7 @@ _s390x_AES_encrypt: or %r9,%r1 or %r2,%r6 or %r3,%r7 - + srlg %r5,%r10,5 # i0 srlg %r6,%r10,13 # i1 nr %r5,%r0 @@ -511,7 +511,7 @@ _s390x_AES_encrypt: x %r10,24(%r4) x %r11,28(%r4) - br %r14 + br %r14 .size _s390x_AES_encrypt,.-_s390x_AES_encrypt .type AES_Td,@object .align 256 @@ -1015,7 +1015,7 @@ _s390x_AES_decrypt: x %r10,24(%r4) x %r11,28(%r4) - br %r14 + br %r14 .size _s390x_AES_decrypt,.-_s390x_AES_decrypt # void AES_set_encrypt_key(const unsigned char *in, int bits, # AES_KEY *key) { @@ -1496,7 +1496,7 @@ AES_cbc_encrypt: .Lcbc_enc_done: l %r6,6*4(%r15) st %r8,0(%r6) - st %r9,4(%r6) + st %r9,4(%r6) st %r10,8(%r6) st %r11,12(%r6) @@ -1744,7 +1744,7 @@ _s390x_xts_km: llgc %r3,2*4-1(%r15) nill %r3,0x0f # %r3%=16 br %r14 - + .align 16 .Lxts_km_vanilla: # prepare and allocate stack frame at the top of 4K page @@ -1961,7 +1961,7 @@ AES_xts_encrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,80+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 @@ -2012,7 +2012,7 @@ AES_xts_encrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,80+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 @@ -2190,7 +2190,7 @@ AES_xts_decrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,80+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/bn/s390x-mont.S b/deps/openssl/config/archs/linux32-s390x/asm/crypto/bn/s390x-mont.S index cb7743cfea473d..0a6c67545a6e51 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/bn/s390x-mont.S +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/bn/s390x-mont.S @@ -152,16 +152,16 @@ bn_mul_mont: brct %r14,.Lsub lghi %r8,0 slbgr %r12,%r8 # handle upmost carry - - ngr %r3,%r12 - lghi %r5,-1 - xgr %r5,%r12 - ngr %r5,%r2 - ogr %r3,%r5 # ap=borrow?tp:rp + lghi %r13,-1 + xgr %r13,%r12 la %r7,0(%r0) lgr %r14,%r1 -.Lcopy: lg %r9,0(%r7,%r3) # copy or in-place refresh +.Lcopy: lg %r8,96(%r7,%r15) # conditional copy + lg %r9,0(%r7,%r2) + ngr %r8,%r12 + ngr %r9,%r13 + ogr %r9,%r8 rllg %r9,%r9,32 stg %r7,96(%r7,%r15) # zap tp stg %r9,0(%r7,%r2) diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h index 64e7f072a3b295..a9705431d26603 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h @@ -30,4 +30,4 @@ static const char cflags[] = { 'e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Tue Apr 3 00:38:44 2018" +#define DATE "built on: Tue Aug 14 23:13:32 2018" diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/modes/ghash-s390x.S b/deps/openssl/config/archs/linux32-s390x/asm/crypto/modes/ghash-s390x.S index 88c26122ccabe3..4a006d9c5d23b9 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/modes/ghash-s390x.S +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/modes/ghash-s390x.S @@ -41,7 +41,7 @@ gcm_ghash_4bit: lg %r0,0+1(%r2) lghi %r12,0 .Louter: - xg %r0,0(%r4) # Xi ^= inp + xg %r0,0(%r4) # Xi ^= inp xg %r1,8(%r4) xgr %r0,%r12 stg %r1,8+1(%r2) diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha256-s390x.S b/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha256-s390x.S index cf1b7819a1fed5..f02c83663390f6 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha256-s390x.S +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha256-s390x.S @@ -1234,7 +1234,7 @@ sha256_block_data_order: cl %r3,176(%r15) jne .Lloop - lm %r6,%r15,184(%r15) + lm %r6,%r15,184(%r15) br %r14 .size sha256_block_data_order,.-sha256_block_data_order .string "SHA256 block transform for s390x, CRYPTOGAMS by " diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha512-s390x.S b/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha512-s390x.S index 6900891667c125..3d682e8658bc83 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha512-s390x.S +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/sha/sha512-s390x.S @@ -1258,7 +1258,7 @@ sha512_block_data_order: cl %r3,240(%r15) jne .Lloop - lm %r6,%r15,248(%r15) + lm %r6,%r15,248(%r15) br %r14 .size sha512_block_data_order,.-sha512_block_data_order .string "SHA512 block transform for s390x, CRYPTOGAMS by " diff --git a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslconf.h index 2f9817e43b12ba..21dd8cc643b889 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux32-s390x/asm/openssl.gypi b/deps/openssl/config/archs/linux32-s390x/asm/openssl.gypi index ffff267d09d06e..4aa5f86c81d6c4 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux32-s390x/asm/openssl.gypi @@ -216,6 +216,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -575,6 +576,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm index 5d1929317bf820..9e1c171d287fa4 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux32-s390x", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3927,6 +3943,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6205,6 +6227,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7192,6 +7220,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7365,8 +7397,8 @@ our %unified_info = ( "test/testutil.o" => [ "crypto/include", - "test", "include", + "test", ".", ], "test/threadstest.o" => @@ -7386,10 +7418,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7545,6 +7590,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7585,7 +7631,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7967,6 +8016,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8087,9 +8139,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9074,6 +9135,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10514,6 +10579,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11032,6 +11101,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11392,6 +11462,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12395,6 +12466,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12744,6 +12824,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12752,6 +12840,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h index d79eb3ca2ac6c7..a54f163367850f 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Tue Apr 3 00:38:45 2018" +#define DATE "built on: Tue Aug 14 23:13:33 2018" diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h index 1f0c62b3c912a7..5ba3b88d4e5f4d 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/openssl.gypi b/deps/openssl/config/archs/linux32-s390x/no-asm/openssl.gypi index d3be0776df61f7..606925668af0d6 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/openssl.gypi @@ -218,6 +218,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -578,6 +579,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm index ebdafeb184a679..3541bdd5726876 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux64-s390x", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3934,6 +3950,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6227,6 +6249,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7214,6 +7242,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7386,8 +7418,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", + "test", "include", ".", ], @@ -7408,10 +7440,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7567,6 +7612,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7607,7 +7653,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7989,6 +8038,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8109,9 +8161,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9104,6 +9165,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10564,6 +10629,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11084,6 +11153,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11449,6 +11519,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12452,6 +12523,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12801,6 +12881,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12809,6 +12897,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/aes/aes-s390x.S b/deps/openssl/config/archs/linux64-s390x/asm/crypto/aes/aes-s390x.S index 1a1e4c224d13d9..a44e72d0475ebc 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/aes/aes-s390x.S +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/aes/aes-s390x.S @@ -458,7 +458,7 @@ _s390x_AES_encrypt: or %r9,%r1 or %r2,%r6 or %r3,%r7 - + srlg %r5,%r10,5 # i0 srlg %r6,%r10,13 # i1 nr %r5,%r0 @@ -511,7 +511,7 @@ _s390x_AES_encrypt: x %r10,24(%r4) x %r11,28(%r4) - br %r14 + br %r14 .size _s390x_AES_encrypt,.-_s390x_AES_encrypt .type AES_Td,@object .align 256 @@ -1015,7 +1015,7 @@ _s390x_AES_decrypt: x %r10,24(%r4) x %r11,28(%r4) - br %r14 + br %r14 .size _s390x_AES_decrypt,.-_s390x_AES_decrypt # void AES_set_encrypt_key(const unsigned char *in, int bits, # AES_KEY *key) { @@ -1496,7 +1496,7 @@ AES_cbc_encrypt: .Lcbc_enc_done: lg %r6,6*8(%r15) st %r8,0(%r6) - st %r9,4(%r6) + st %r9,4(%r6) st %r10,8(%r6) st %r11,12(%r6) @@ -1744,7 +1744,7 @@ _s390x_xts_km: llgc %r3,2*8-1(%r15) nill %r3,0x0f # %r3%=16 br %r14 - + .align 16 .Lxts_km_vanilla: # prepare and allocate stack frame at the top of 4K page @@ -1960,7 +1960,7 @@ AES_xts_encrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,144+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 @@ -2011,7 +2011,7 @@ AES_xts_encrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,144+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 @@ -2188,7 +2188,7 @@ AES_xts_decrypt: xgr %r9,%r1 lrvgr %r9,%r9 # flip byte order lrvgr %r11,%r11 - srlg %r8,%r9,32 # smash the tweak to 4x32-bits + srlg %r8,%r9,32 # smash the tweak to 4x32-bits stg %r9,144+0(%r15) # save the tweak llgfr %r9,%r9 srlg %r10,%r11,32 diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-gf2m.s b/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-gf2m.s index e0b0822cae594b..1b9042665957e1 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-gf2m.s +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-gf2m.s @@ -206,7 +206,7 @@ bn_GF2m_mul_2x2: xgr %r4,%r7 xgr %r3,%r6 xgr %r4,%r8 - xgr %r3,%r9 + xgr %r3,%r9 xgr %r4,%r9 xgr %r3,%r4 stg %r4,16(%r2) diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-mont.S b/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-mont.S index c4ee541906f9f4..b8dea0a66f382f 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-mont.S +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/bn/s390x-mont.S @@ -26,12 +26,12 @@ bn_mul_mont: la %r4,0(%r7,%r4) # restore %r4 ahi %r1,-1 # adjust %r1 for inner loop lg %r6,0(%r6) # pull n0 - + lg %r2,0(%r4) - + lg %r9,0(%r3) - + mlgr %r8,%r2 # ap[0]*bp[0] lgr %r12,%r8 @@ -39,7 +39,7 @@ bn_mul_mont: msgr %r0,%r6 lg %r11,0(%r5) # - + mlgr %r10,%r0 # np[0]*m1 algr %r11,%r9 # +="tp[0]" lghi %r13,0 @@ -51,14 +51,14 @@ bn_mul_mont: .align 16 .L1st: lg %r9,0(%r7,%r3) - + mlgr %r8,%r2 # ap[j]*bp[0] algr %r9,%r12 lghi %r12,0 alcgr %r12,%r8 lg %r11,0(%r7,%r5) - + mlgr %r10,%r0 # np[j]*m1 algr %r11,%r13 lghi %r13,0 @@ -79,9 +79,9 @@ bn_mul_mont: .Louter: lg %r2,0(%r4) # bp[i] - + lg %r9,0(%r3) - + mlgr %r8,%r2 # ap[0]*bp[i] alg %r9,160(%r15) # +=tp[0] lghi %r12,0 @@ -91,7 +91,7 @@ bn_mul_mont: msgr %r0,%r6 # tp[0]*n0 lg %r11,0(%r5) # np[0] - + mlgr %r10,%r0 # np[0]*m1 algr %r11,%r9 # +="tp[0]" lghi %r13,0 @@ -103,7 +103,7 @@ bn_mul_mont: .align 16 .Linner: lg %r9,0(%r7,%r3) - + mlgr %r8,%r2 # ap[j]*bp[i] algr %r9,%r12 lghi %r12,0 @@ -112,7 +112,7 @@ bn_mul_mont: alcgr %r12,%r8 lg %r11,0(%r7,%r5) - + mlgr %r10,%r0 # np[j]*m1 algr %r11,%r13 lghi %r13,0 @@ -145,24 +145,24 @@ bn_mul_mont: lr %r14,%r1 .Lsub: lg %r9,0(%r7,%r3) lg %r11,0(%r7,%r5) - + slbgr %r9,%r11 stg %r9,0(%r7,%r2) la %r7,8(%r7) brct %r14,.Lsub lghi %r8,0 slbgr %r12,%r8 # handle upmost carry - - ngr %r3,%r12 - lghi %r5,-1 - xgr %r5,%r12 - ngr %r5,%r2 - ogr %r3,%r5 # ap=borrow?tp:rp + lghi %r13,-1 + xgr %r13,%r12 la %r7,0(%r0) lgr %r14,%r1 -.Lcopy: lg %r9,0(%r7,%r3) # copy or in-place refresh - +.Lcopy: lg %r8,160(%r7,%r15) # conditional copy + lg %r9,0(%r7,%r2) + ngr %r8,%r12 + ngr %r9,%r13 + ogr %r9,%r8 + stg %r7,160(%r7,%r15) # zap tp stg %r9,0(%r7,%r2) la %r7,8(%r7) diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h index 0539055a2cbcce..6358018f989bce 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h @@ -30,4 +30,4 @@ static const char cflags[] = { 'e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Tue Apr 3 00:38:46 2018" +#define DATE "built on: Tue Aug 14 23:13:34 2018" diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/modes/ghash-s390x.S b/deps/openssl/config/archs/linux64-s390x/asm/crypto/modes/ghash-s390x.S index a1c02175906069..6dfaa76c353026 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/modes/ghash-s390x.S +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/modes/ghash-s390x.S @@ -40,7 +40,7 @@ gcm_ghash_4bit: lg %r0,0+1(%r2) lghi %r12,0 .Louter: - xg %r0,0(%r4) # Xi ^= inp + xg %r0,0(%r4) # Xi ^= inp xg %r1,8(%r4) xgr %r0,%r12 stg %r1,8+1(%r2) diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha256-s390x.S b/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha256-s390x.S index 28cbb63752cf29..e66c672764f651 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha256-s390x.S +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha256-s390x.S @@ -1234,7 +1234,7 @@ sha256_block_data_order: clg %r3,256(%r15) jne .Lloop - lmg %r6,%r15,272(%r15) + lmg %r6,%r15,272(%r15) br %r14 .size sha256_block_data_order,.-sha256_block_data_order .string "SHA256 block transform for s390x, CRYPTOGAMS by " diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha512-s390x.S b/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha512-s390x.S index 77c99e416b16c6..5ff5c6bf9f0094 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha512-s390x.S +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/sha/sha512-s390x.S @@ -1258,7 +1258,7 @@ sha512_block_data_order: clg %r3,320(%r15) jne .Lloop - lmg %r6,%r15,336(%r15) + lmg %r6,%r15,336(%r15) br %r14 .size sha512_block_data_order,.-sha512_block_data_order .string "SHA512 block transform for s390x, CRYPTOGAMS by " diff --git a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslconf.h index 3976dadb19ca17..8bd973e750d6fd 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux64-s390x/asm/openssl.gypi b/deps/openssl/config/archs/linux64-s390x/asm/openssl.gypi index 30272e9dbcf768..2841831fe7c69d 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/openssl.gypi +++ b/deps/openssl/config/archs/linux64-s390x/asm/openssl.gypi @@ -216,6 +216,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -575,6 +576,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm index 5c9cbdcf00c626..c62c43c1dea004 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "linux64-s390x", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h index a52b3fe333d7a5..3295c8aa2b8102 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Tue Apr 3 00:38:47 2018" +#define DATE "built on: Tue Aug 14 23:13:35 2018" diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h index af3a003d519389..08bf3d43940bb8 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/openssl.gypi b/deps/openssl/config/archs/linux64-s390x/no-asm/openssl.gypi index 37430ef795ae71..aa52ca679b4358 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm index bebfecbdced6c9..ae2f6b4ec751b5 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "solaris-x86-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3945,6 +3961,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6271,6 +6293,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7270,6 +7298,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7442,9 +7474,9 @@ our %unified_info = ( ], "test/testutil.o" => [ - "test", "crypto/include", "include", + "test", ".", ], "test/threadstest.o" => @@ -7464,10 +7496,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7623,6 +7668,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7663,7 +7709,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8045,6 +8094,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8165,9 +8217,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9164,6 +9225,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10636,6 +10701,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11165,6 +11234,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11533,6 +11603,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12538,6 +12609,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12887,6 +12967,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12895,6 +12983,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/bn/x86-mont.s b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/bn/x86-mont.s index 945d9e58248a76..8212ff0825f576 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/bn/x86-mont.s +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/bn/x86-mont.s @@ -445,16 +445,18 @@ bn_mul_mont: leal 1(%edx),%edx jge .L017sub sbbl $0,%eax - andl %eax,%esi - notl %eax - movl %edi,%ebp - andl %eax,%ebp - orl %ebp,%esi + movl $-1,%edx + xorl %eax,%edx + jmp .L018copy .align 16 .L018copy: - movl (%esi,%ebx,4),%eax - movl %eax,(%edi,%ebx,4) + movl 32(%esp,%ebx,4),%esi + movl (%edi,%ebx,4),%ebp movl %ecx,32(%esp,%ebx,4) + andl %eax,%esi + andl %edx,%ebp + orl %esi,%ebp + movl %ebp,(%edi,%ebx,4) decl %ebx jge .L018copy movl 24(%esp),%esp diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h index 864103a8dc6d34..f3e98cfc6cbc81 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h @@ -37,4 +37,4 @@ static const char cflags[] = { '"',' ','\0' }; #define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Tue Apr 3 00:38:47 2018" +#define DATE "built on: Tue Aug 14 23:13:35 2018" diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/ec/ecp_nistz256-x86.s b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/ec/ecp_nistz256-x86.s index cbccc5ebf7a2b7..9092d663215284 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/ec/ecp_nistz256-x86.s +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/ec/ecp_nistz256-x86.s @@ -3857,7 +3857,7 @@ ecp_nistz256_scatter_w7: movl 20(%esp),%edi movl 24(%esp),%esi movl 28(%esp),%ebp - leal -1(%edi,%ebp,1),%edi + leal (%edi,%ebp,1),%edi movl $16,%ebp .L007scatter_w7_loop: movl (%esi),%eax diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h index e819a68f0b6ad4..b9d6509c0b950c 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi index af1d87642d0659..7fb2ba08cdf9cb 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/openssl.gypi @@ -211,6 +211,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -567,6 +568,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm index f6f187ac6d24f7..85b7ff65f20a80 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "solaris-x86-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1075,6 +1075,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1241,10 +1245,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3931,6 +3947,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6209,6 +6231,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7196,6 +7224,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7390,10 +7422,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7549,6 +7594,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7589,7 +7635,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7971,6 +8020,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8091,9 +8143,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9082,6 +9143,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10522,6 +10587,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11041,6 +11110,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11401,6 +11471,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12404,6 +12475,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12753,6 +12833,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12761,6 +12849,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h index e3ba51d54c11e0..7b32dc7d3eae7e 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Tue Apr 3 00:38:49 2018" +#define DATE "built on: Tue Aug 14 23:13:37 2018" diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h index b20dbd02123e34..d0fb48f465fe8e 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/openssl.gypi b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/openssl.gypi index 4d880dad4e249f..3c8ab88f627b2f 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm index 4f080d801314be..ed79783b33d2b3 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "solaris64-x86_64-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1078,6 +1078,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1244,10 +1248,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3994,6 +4010,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6332,6 +6354,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7331,6 +7359,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7503,8 +7535,8 @@ our %unified_info = ( ], "test/testutil.o" => [ - "crypto/include", "test", + "crypto/include", "include", ".", ], @@ -7525,10 +7557,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7684,6 +7729,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7724,7 +7770,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -8106,6 +8155,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8226,9 +8278,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9257,6 +9318,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10737,6 +10802,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11274,6 +11343,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11644,6 +11714,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12649,6 +12720,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12998,6 +13078,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -13006,6 +13094,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aes-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aes-x86_64.s index aa7a1ea1cf9b99..488ae6d781acb0 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aes-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _x86_64_AES_encrypt,@function .align 16 _x86_64_AES_encrypt: diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-mb-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-mb-x86_64.s index d493797832987c..3dcd55d3f59a7b 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-mb-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha1-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha1-x86_64.s index c7c53e8771e132..ca193ddb9ea491 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha1-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha1_enc diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha256-x86_64.s index 70eed05b00c136..427a1c7d123253 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_cbc_sha256_enc diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-x86_64.s index cd8b00f25983b2..e18f87c4e60cf0 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/aesni-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl aesni_encrypt .type aesni_encrypt,@function diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/bsaes-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/bsaes-x86_64.s index 0fd201167f647a..c76c5a8afb4788 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/bsaes-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/bsaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/vpaes-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/vpaes-x86_64.s index bf7c2b0b6f6b04..d19329894079d7 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/vpaes-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/aes/vpaes-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-avx2.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-avx2.s index a2cccde63604f4..ee619092c9b7c7 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-avx2.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-avx2.s @@ -1,4 +1,4 @@ -.text +.text .globl rsaz_1024_sqr_avx2 .type rsaz_1024_sqr_avx2,@function diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-x86_64.s index b6797a68498e49..795cebe1d743cc 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/rsaz-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-gf2m.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-gf2m.s index f4e5337565bbc7..a0b78a0565f75d 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-gf2m.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-gf2m.s @@ -1,4 +1,4 @@ -.text +.text .type _mul_1x1,@function .align 16 diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont.s index d19d4662b4921b..3a78cd844090ec 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont.s @@ -1,4 +1,4 @@ -.text +.text @@ -197,30 +197,30 @@ bn_mul_mont: xorq %r14,%r14 movq (%rsp),%rax - leaq (%rsp),%rsi movq %r9,%r15 - jmp .Lsub + .align 16 .Lsub: sbbq (%rcx,%r14,8),%rax movq %rax,(%rdi,%r14,8) - movq 8(%rsi,%r14,8),%rax + movq 8(%rsp,%r14,8),%rax leaq 1(%r14),%r14 decq %r15 jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax - movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy @@ -574,10 +574,10 @@ bn_mul4x_mont: cmpq %r9,%r14 jb .Louter4x movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 movq 0(%rsp),%rax - pxor %xmm0,%xmm0 movq 8(%rsp),%rdx - shrq $2,%r9 + shrq $2,%r15 leaq (%rsp),%rsi xorq %r14,%r14 @@ -585,9 +585,7 @@ bn_mul4x_mont: movq 16(%rsi),%rbx movq 24(%rsi),%rbp sbbq 8(%rcx),%rdx - leaq -1(%r9),%r15 - jmp .Lsub4x -.align 16 + .Lsub4x: movq %rax,0(%rdi,%r14,8) movq %rdx,8(%rdi,%r14,8) @@ -614,34 +612,35 @@ bn_mul4x_mont: sbbq $0,%rax movq %rbp,24(%rdi,%r14,8) - xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx - leaq -1(%r9),%r15 - orq %rcx,%rsi - - movdqu (%rsi),%xmm1 - movdqa %xmm0,(%rsp) - movdqu %xmm1,(%rdi) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + jmp .Lcopy4x .align 16 .Lcopy4x: - movdqu 16(%rsi,%r14,1),%xmm2 - movdqu 32(%rsi,%r14,1),%xmm1 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) - movdqa %xmm0,32(%rsp,%r14,1) - movdqu %xmm1,32(%rdi,%r14,1) - leaq 32(%r14),%r14 + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax decq %r15 jnz .Lcopy4x - - shlq $2,%r9 - movdqu 16(%rsi,%r14,1),%xmm2 - movdqa %xmm0,16(%rsp,%r14,1) - movdqu %xmm2,16(%rdi,%r14,1) movq 8(%rsp,%r9,8),%rsi movq $1,%rax movq -48(%rsi),%r15 diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont5.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont5.s index a2fccf088e752f..0dd53512f9c95f 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont5.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/bn/x86_64-mont5.s @@ -1,4 +1,4 @@ -.text +.text @@ -393,18 +393,19 @@ bn_mul_mont_gather5: jnz .Lsub sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx xorq %r14,%r14 - andq %rax,%rsi - notq %rax - movq %rdi,%rcx - andq %rax,%rcx movq %r9,%r15 - orq %rcx,%rsi -.align 16 + .Lcopy: - movq (%rsi,%r14,8),%rax + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx movq %r14,(%rsp,%r14,8) - movq %rax,(%rdi,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) leaq 1(%r14),%r14 subq $1,%r15 jnz .Lcopy diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h index e1b87d9f50a3aa..357c109a63d2ea 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h @@ -35,4 +35,4 @@ static const char cflags[] = { 'i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Tue Apr 3 00:38:50 2018" +#define DATE "built on: Tue Aug 14 23:13:38 2018" diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/camellia/cmll-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/camellia/cmll-x86_64.s index 1117381f316d9e..1dead91b1752f4 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/camellia/cmll-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/camellia/cmll-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl Camellia_EncryptBlock diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/chacha/chacha-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/chacha/chacha-x86_64.s index 044b8f031efa06..a9fed05fd7e327 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/chacha/chacha-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/chacha/chacha-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/ec/ecp_nistz256-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/ec/ecp_nistz256-x86_64.s index ce86d5d969f76b..62a7ac611f3733 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/ec/ecp_nistz256-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/ec/ecp_nistz256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl ecp_nistz256_precomputed .type ecp_nistz256_precomputed,@object .align 4096 @@ -2372,7 +2372,7 @@ ecp_nistz256_precomputed: .long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 .long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd .size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/md5/md5-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/md5/md5-x86_64.s index 0aa90515d6c91a..0defe666bb75dd 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/md5/md5-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/md5/md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl md5_block_asm_data_order diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/aesni-gcm-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/aesni-gcm-x86_64.s index d1a1c895a39bd0..21e49925f1ae5d 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/aesni-gcm-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .type _aesni_ctr32_ghash_6x,@function .align 32 diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/ghash-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/ghash-x86_64.s index 10f5987415a1be..0116ef1c94c454 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/ghash-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/modes/ghash-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl gcm_gmult_4bit diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/poly1305/poly1305-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/poly1305/poly1305-x86_64.s index 5662696481edf6..8b2e361ea1cd1d 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/poly1305/poly1305-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/poly1305/poly1305-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-md5-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-md5-x86_64.s index 9c7110f4ef09c3..aab3c6db13d930 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-md5-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-md5-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .align 16 .globl rc4_md5_enc diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-x86_64.s index bdd0da3bd1389e..781b48b9eb4408 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/rc4/rc4-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl RC4 diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-mb-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-mb-x86_64.s index d2857f3288bf07..d266d776ec6681 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-mb-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-x86_64.s index 195a148bb9b2a3..dbeebed9a0a8dd 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha1-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha1_block_data_order diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-mb-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-mb-x86_64.s index bd72a459ab249d..f2896b4d6e3367 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-mb-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-mb-x86_64.s @@ -1,4 +1,4 @@ -.text +.text diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-x86_64.s index 23b932e1de4a74..8264a7dbdf1044 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha256-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha256_block_data_order diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha512-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha512-x86_64.s index a1021c17a966b8..6f8488a38a9b23 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha512-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/sha/sha512-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl sha512_block_data_order diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/whrlpool/wp-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/whrlpool/wp-x86_64.s index f83130ea68634b..a4d55b6afc3427 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/whrlpool/wp-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/whrlpool/wp-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl whirlpool_block .type whirlpool_block,@function diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/x86_64cpuid.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/x86_64cpuid.s index 5a109c6fd915d9..7e1f5e27408c52 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/x86_64cpuid.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/x86_64cpuid.s @@ -6,7 +6,7 @@ .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,16,4 -.text +.text .globl OPENSSL_atomic_add .type OPENSSL_atomic_add,@function diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/engines/e_padlock-x86_64.s b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/engines/e_padlock-x86_64.s index 3e5ab736fd86ba..38c02c188ee110 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/engines/e_padlock-x86_64.s +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/engines/e_padlock-x86_64.s @@ -1,4 +1,4 @@ -.text +.text .globl padlock_capability .type padlock_capability,@function .align 16 @@ -1020,7 +1020,7 @@ padlock_ctr32_encrypt: .size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt .byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 -.data +.data .align 8 .Lpadlock_saved_context: .quad 0 diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h index 9df0f86ed6edef..7dd2101053aa2e 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h @@ -102,12 +102,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi index 46a2ed34cff84e..2557943ad5cd97 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/openssl.gypi @@ -215,6 +215,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -572,6 +573,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm index f0d822aa7d0fff..3c550047ab3942 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm @@ -56,8 +56,8 @@ our %config = ( shlib_version_number => "1.1", sourcedir => ".", target => "solaris64-x86_64-gcc", - version => "1.1.0h", - version_num => "0x1010008fL", + version => "1.1.0i", + version_num => "0x1010009fL", ); our %target = ( @@ -1077,6 +1077,10 @@ our %unified_info = ( [ "libcrypto", ], + "test/errtest" => + [ + "libcrypto", + ], "test/evp_extra_test" => [ "libcrypto", @@ -1243,10 +1247,22 @@ our %unified_info = ( [ "libcrypto", ], + "test/versions" => + [ + "libcrypto", + ], "test/wp_test" => [ "libcrypto", ], + "test/x509_dup_cert_test" => + [ + "libcrypto", + ], + "test/x509_time_test" => + [ + "libcrypto", + ], "test/x509aux" => [ "libcrypto", @@ -3933,6 +3949,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/conf/conf_ssl.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/cpt_err.o" => [ ".", @@ -6211,6 +6233,12 @@ our %unified_info = ( "crypto/include", "include", ], + "crypto/x509/x509_meth.o" => + [ + ".", + "crypto/include", + "include", + ], "crypto/x509/x509_obj.o" => [ ".", @@ -7198,6 +7226,10 @@ our %unified_info = ( [ "include", ], + "test/errtest.o" => + [ + "include", + ], "test/evp_extra_test.o" => [ "include", @@ -7370,9 +7402,9 @@ our %unified_info = ( ], "test/testutil.o" => [ + "test", "crypto/include", "include", - "test", ".", ], "test/threadstest.o" => @@ -7392,10 +7424,23 @@ our %unified_info = ( [ "include", ], + "test/versions.o" => + [ + "include", + ], "test/wp_test.o" => [ "include", ], + "test/x509_dup_cert_test.o" => + [ + "include", + ], + "test/x509_time_test.o" => + [ + ".", + "include", + ], "test/x509aux.o" => [ "include", @@ -7551,6 +7596,7 @@ our %unified_info = ( "test/ecdsatest", "test/ectest", "test/enginetest", + "test/errtest", "test/evp_extra_test", "test/evp_test", "test/exdatatest", @@ -7591,7 +7637,10 @@ our %unified_info = ( "test/v3ext", "test/v3nametest", "test/verify_extra_test", + "test/versions", "test/wp_test", + "test/x509_dup_cert_test", + "test/x509_time_test", "test/x509aux", ], "rawlines" => @@ -7973,6 +8022,9 @@ our %unified_info = ( "test/enginetest" => [ ], + "test/errtest" => + [ + ], "test/evp_extra_test" => [ ], @@ -8093,9 +8145,18 @@ our %unified_info = ( "test/verify_extra_test" => [ ], + "test/versions" => + [ + ], "test/wp_test" => [ ], + "test/x509_dup_cert_test" => + [ + ], + "test/x509_time_test" => + [ + ], "test/x509aux" => [ ], @@ -9084,6 +9145,10 @@ our %unified_info = ( [ "crypto/conf/conf_sap.c", ], + "crypto/conf/conf_ssl.o" => + [ + "crypto/conf/conf_ssl.c", + ], "crypto/cpt_err.o" => [ "crypto/cpt_err.c", @@ -10524,6 +10589,10 @@ our %unified_info = ( [ "crypto/x509/x509_lu.c", ], + "crypto/x509/x509_meth.o" => + [ + "crypto/x509/x509_meth.c", + ], "crypto/x509/x509_obj.o" => [ "crypto/x509/x509_obj.c", @@ -11043,6 +11112,7 @@ our %unified_info = ( "crypto/conf/conf_mall.o", "crypto/conf/conf_mod.o", "crypto/conf/conf_sap.o", + "crypto/conf/conf_ssl.o", "crypto/cpt_err.o", "crypto/cryptlib.o", "crypto/ct/ct_b64.o", @@ -11403,6 +11473,7 @@ our %unified_info = ( "crypto/x509/x509_err.o", "crypto/x509/x509_ext.o", "crypto/x509/x509_lu.o", + "crypto/x509/x509_meth.o", "crypto/x509/x509_obj.o", "crypto/x509/x509_r2x.o", "crypto/x509/x509_req.o", @@ -12406,6 +12477,15 @@ our %unified_info = ( [ "test/enginetest.c", ], + "test/errtest" => + [ + "test/errtest.o", + "test/testutil.o", + ], + "test/errtest.o" => + [ + "test/errtest.c", + ], "test/evp_extra_test" => [ "test/evp_extra_test.o", @@ -12755,6 +12835,14 @@ our %unified_info = ( [ "test/verify_extra_test.c", ], + "test/versions" => + [ + "test/versions.o", + ], + "test/versions.o" => + [ + "test/versions.c", + ], "test/wp_test" => [ "test/wp_test.o", @@ -12763,6 +12851,23 @@ our %unified_info = ( [ "test/wp_test.c", ], + "test/x509_dup_cert_test" => + [ + "test/x509_dup_cert_test.o", + ], + "test/x509_dup_cert_test.o" => + [ + "test/x509_dup_cert_test.c", + ], + "test/x509_time_test" => + [ + "test/testutil.o", + "test/x509_time_test.o", + ], + "test/x509_time_test.o" => + [ + "test/x509_time_test.c", + ], "test/x509aux" => [ "test/x509aux.o", diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h index 506757d551ffb9..118391ea1d5e59 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h @@ -20,4 +20,4 @@ static const char cflags[] = { 'n','g','i','n','e','s','-','1','.','1','\\','"','"',' ','\0' }; #define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Tue Apr 3 00:38:53 2018" +#define DATE "built on: Tue Aug 14 23:13:42 2018" diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h index e20916814d7003..7b122bd86ee597 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h @@ -105,12 +105,18 @@ extern "C" { * still won't see them if the library has been built to disable deprecated * functions. */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; +#ifndef DECLARE_DEPRECATED +# if defined(OPENSSL_NO_DEPRECATED) +# define DECLARE_DEPRECATED(f) +# else +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +# endif #endif #ifndef OPENSSL_FILE diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/openssl.gypi b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/openssl.gypi index 55006d7fe982a4..1d596c5b21781e 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/openssl.gypi +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/openssl.gypi @@ -219,6 +219,7 @@ 'openssl/crypto/conf/conf_mall.c', 'openssl/crypto/conf/conf_mod.c', 'openssl/crypto/conf/conf_sap.c', + 'openssl/crypto/conf/conf_ssl.c', 'openssl/crypto/cpt_err.c', 'openssl/crypto/cryptlib.c', 'openssl/crypto/ct/ct_b64.c', @@ -579,6 +580,7 @@ 'openssl/crypto/x509/x509_err.c', 'openssl/crypto/x509/x509_ext.c', 'openssl/crypto/x509/x509_lu.c', + 'openssl/crypto/x509/x509_meth.c', 'openssl/crypto/x509/x509_obj.c', 'openssl/crypto/x509/x509_r2x.c', 'openssl/crypto/x509/x509_req.c', diff --git a/deps/openssl/openssl/.gitignore b/deps/openssl/openssl/.gitignore deleted file mode 100644 index 3dee3922a74ef3..00000000000000 --- a/deps/openssl/openssl/.gitignore +++ /dev/null @@ -1,175 +0,0 @@ -# Ignore editor artefacts -/.dir-locals.el - -# Top level excludes -/Makefile.orig -/MINFO -/TABLE -/*.a -/*.pc -/rehash.time -/inc.* -/makefile.* -/out.* -/tmp.* -/configdata.pm - -# *all* Makefiles -Makefile -# ... except in demos -!/demos/*/Makefile - -# Links under apps -/apps/CA.pl -/apps/tsget -/apps/tsget.pl -/apps/md4.c - -# Auto generated headers -/crypto/buildinf.h -/apps/progs.h -/crypto/include/internal/*_conf.h -/openssl/include/opensslconf.h -/util/domd - -# Executables -/apps/openssl -/test/sha256t -/test/sha512t -/test/gost2814789t -/test/ssltest_old -/test/*test -/test/fips_aesavs -/test/fips_desmovs -/test/fips_dhvs -/test/fips_drbgvs -/test/fips_dssvs -/test/fips_ecdhvs -/test/fips_ecdsavs -/test/fips_rngvs -/test/fips_test_suite -/test/ssltest_old -/test/x509aux -/test/v3ext -/test/versions - -# Certain files that get created by tests on the fly -/test/test-runs -/test/buildtest_* - -# Fuzz stuff. -# Anything without an extension is an executable on Unix, so we keep files -# with extensions. And we keep the corpora subddir versioned as well. -# Anything more generic with extensions that should be ignored will be taken -# care of by general ignores for those extensions (*.o, *.obj, *.exe, ...) -/fuzz/* -!/fuzz/README* -!/fuzz/corpora -!/fuzz/*.* - -# Misc auto generated files -/include/openssl/opensslconf.h -/tools/c_rehash -/tools/c_rehash.pl -/util/shlib_wrap.sh -/tags -/TAGS -/crypto.map -/ssl.map - -# Windows (legacy) -/tmp32 -/tmp32.dbg -/tmp32dll -/tmp32dll.dbg -/out32 -/out32.dbg -/out32dll -/out32dll.dbg -/inc32 -/MINFO -/ms/.rnd -/ms/bcb.mak -/ms/libeay32.def -/ms/nt.mak -/ms/ntdll.mak -/ms/ssleay32.def -/ms/version32.rc - -# Files created on other branches that are not held in git, and are not -# needed on this branch -/include/openssl/asn1_mac.h -/include/openssl/des_old.h -/include/openssl/fips.h -/include/openssl/fips_rand.h -/include/openssl/krb5_asn.h -/include/openssl/kssl.h -/include/openssl/pq_compat.h -/include/openssl/ssl23.h -/include/openssl/tmdiff.h -/include/openssl/ui_compat.h -/test/fips_aesavs.c -/test/fips_desmovs.c -/test/fips_dsatest.c -/test/fips_dssvs.c -/test/fips_hmactest.c -/test/fips_randtest.c -/test/fips_rngvs.c -/test/fips_rsagtest.c -/test/fips_rsastest.c -/test/fips_rsavtest.c -/test/fips_shatest.c -/test/fips_test_suite.c -/test/shatest.c - -##### Generic patterns -# Auto generated assembly language source files -*.s -!/crypto/*/asm/*.s -/crypto/arm*.S -/crypto/*/*.S -*.asm -!/crypto/*/asm/*.asm - -# Object files -*.o -*.obj - -# editor artefacts -*.swp -.#* -\#*# -*~ - -# Certificate symbolic links -*.0 - -# All kinds of executables -*.so -*.so.* -*.dylib -*.dylib.* -*.dll -*.dll.* -*.exe -*.pyc -*.exp -*.lib -*.pdb -*.ilk -*.def -*.rc -*.res - -# Misc generated stuff -Makefile.save -/crypto/**/lib -/engines/**/lib -/ssl/**/lib -*.bak -cscope.* -*.d -pod2htmd.tmp - -# Windows manifest files -*.manifest diff --git a/deps/openssl/openssl/crypto/include/internal/bn_conf.h b/deps/openssl/openssl/crypto/include/internal/bn_conf.h new file mode 100644 index 00000000000000..79400c6472a49c --- /dev/null +++ b/deps/openssl/openssl/crypto/include/internal/bn_conf.h @@ -0,0 +1 @@ +#include "../../../config/bn_conf.h" diff --git a/deps/openssl/openssl/crypto/include/internal/dso_conf.h b/deps/openssl/openssl/crypto/include/internal/dso_conf.h new file mode 100644 index 00000000000000..e7f2afa9872320 --- /dev/null +++ b/deps/openssl/openssl/crypto/include/internal/dso_conf.h @@ -0,0 +1 @@ +#include "../../../config/dso_conf.h" diff --git a/deps/openssl/openssl/include/openssl/opensslconf.h b/deps/openssl/openssl/include/openssl/opensslconf.h new file mode 100644 index 00000000000000..76c99d433ab886 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/opensslconf.h @@ -0,0 +1 @@ +#include "../../config/opensslconf.h" From 01fe2cee5b0d8d2914681a52425e730cfac1508d Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Wed, 15 Aug 2018 00:03:03 +0900 Subject: [PATCH 135/159] test: fix error messages for OpenSSL-1.1.0i After upgradeing OpenSSL-1.1.0i, two tests are failed due to changes of error messages. Ref: https://github.com/openssl/openssl/commit/45ae18b38401a027f231f1408e71b13ff3111021 Ref: https://github.com/openssl/openssl/commit/36d2517a97f6020049116492b4d5491d177e629c PR-URL: https://github.com/nodejs/node/pull/22318 Reviewed-By: James M Snell Reviewed-By: Rod Vagg --- test/parallel/test-crypto-scrypt.js | 4 ++-- test/parallel/test-tls-passphrase.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js index a99bff9255f97a..982b0ac6d5b640 100644 --- a/test/parallel/test-crypto-scrypt.js +++ b/test/parallel/test-crypto-scrypt.js @@ -95,8 +95,6 @@ const good = [ const bad = [ { N: 1, p: 1, r: 1 }, // N < 2 { N: 3, p: 1, r: 1 }, // Not power of 2. - { N: 2 ** 16, p: 1, r: 1 }, // N >= 2**(r*16) - { N: 2, p: 2 ** 30, r: 1 }, // p > (2**30-1)/r { N: 1, cost: 1 }, // both N and cost { p: 1, parallelization: 1 }, // both p and parallelization { r: 1, blockSize: 1 } // both r and blocksize @@ -104,6 +102,8 @@ const bad = [ // Test vectors where 128*N*r exceeds maxmem. const toobig = [ + { N: 2 ** 16, p: 1, r: 1 }, // N >= 2**(r*16) + { N: 2, p: 2 ** 30, r: 1 }, // p > (2**30-1)/r { N: 2 ** 20, p: 1, r: 8 }, { N: 2 ** 10, p: 1, r: 8, maxmem: 2 ** 20 }, ]; diff --git a/test/parallel/test-tls-passphrase.js b/test/parallel/test-tls-passphrase.js index b183309af71457..6ed19c74d22f73 100644 --- a/test/parallel/test-tls-passphrase.js +++ b/test/parallel/test-tls-passphrase.js @@ -221,7 +221,7 @@ server.listen(0, common.mustCall(function() { }, common.mustCall()); })).unref(); -const errMessagePassword = /bad password read/; +const errMessagePassword = /bad decrypt/; // Missing passphrase assert.throws(function() { From fcf422e921700abfdb2d91c5d510c3a069ee8c75 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 8 Aug 2018 03:43:20 +0200 Subject: [PATCH 136/159] deps: backport c608122b from upstream Original commit message: [api][keys] Allow skipping indices for Proxies with GetPropertyNames Bug: v8:7942 Change-Id: I7b3740b04cbcaa56dc809150900ab8d821b054ce Reviewed-on: https://chromium-review.googlesource.com/1156544 Reviewed-by: Toon Verwaest Commit-Queue: Camillo Bruni Cr-Commit-Position: refs/heads/master@{#54821} PR-URL: https://github.com/nodejs/node/pull/22210 Reviewed-By: Matteo Collina Reviewed-By: Gus Caplan --- common.gypi | 2 +- deps/v8/src/keys.cc | 46 ++++++++----- deps/v8/src/keys.h | 14 ++-- deps/v8/src/runtime/runtime-forin.cc | 3 +- deps/v8/test/cctest/test-api.cc | 97 +++++++++++++++++++++++++++- 5 files changed, 136 insertions(+), 26 deletions(-) diff --git a/common.gypi b/common.gypi index 1cc96a31d5d078..f2c474e6524286 100644 --- a/common.gypi +++ b/common.gypi @@ -29,7 +29,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.13', + 'v8_embedder_string': '-node.14', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, diff --git a/deps/v8/src/keys.cc b/deps/v8/src/keys.cc index 98226ae8b74009..0213ae0619a066 100644 --- a/deps/v8/src/keys.cc +++ b/deps/v8/src/keys.cc @@ -37,10 +37,10 @@ static bool ContainsOnlyValidKeys(Handle array) { // static MaybeHandle KeyAccumulator::GetKeys( Handle object, KeyCollectionMode mode, PropertyFilter filter, - GetKeysConversion keys_conversion, bool is_for_in) { + GetKeysConversion keys_conversion, bool is_for_in, bool skip_indices) { Isolate* isolate = object->GetIsolate(); - FastKeyAccumulator accumulator(isolate, object, mode, filter); - accumulator.set_is_for_in(is_for_in); + FastKeyAccumulator accumulator(isolate, object, mode, filter, is_for_in, + skip_indices); return accumulator.GetKeys(keys_conversion); } @@ -356,7 +356,8 @@ Handle GetFastEnumPropertyKeys(Isolate* isolate, template MaybeHandle GetOwnKeysWithElements(Isolate* isolate, Handle object, - GetKeysConversion convert) { + GetKeysConversion convert, + bool skip_indices) { Handle keys; ElementsAccessor* accessor = object->GetElementsAccessor(); if (fast_properties) { @@ -365,8 +366,13 @@ MaybeHandle GetOwnKeysWithElements(Isolate* isolate, // TODO(cbruni): preallocate big enough array to also hold elements. keys = KeyAccumulator::GetOwnEnumPropertyKeys(isolate, object); } - MaybeHandle result = - accessor->PrependElementIndices(object, keys, convert, ONLY_ENUMERABLE); + MaybeHandle result; + if (skip_indices) { + result = keys; + } else { + result = + accessor->PrependElementIndices(object, keys, convert, ONLY_ENUMERABLE); + } if (FLAG_trace_for_in_enumerate) { PrintF("| strings=%d symbols=0 elements=%u || prototypes>=1 ||\n", @@ -404,7 +410,8 @@ MaybeHandle FastKeyAccumulator::GetKeysFast( // Do not try to use the enum-cache for dict-mode objects. if (map->is_dictionary_map()) { - return GetOwnKeysWithElements(isolate_, object, keys_conversion); + return GetOwnKeysWithElements(isolate_, object, keys_conversion, + skip_indices_); } int enum_length = receiver_->map()->EnumLength(); if (enum_length == kInvalidEnumCacheSentinel) { @@ -422,7 +429,8 @@ MaybeHandle FastKeyAccumulator::GetKeysFast( } // The properties-only case failed because there were probably elements on the // receiver. - return GetOwnKeysWithElements(isolate_, object, keys_conversion); + return GetOwnKeysWithElements(isolate_, object, keys_conversion, + skip_indices_); } MaybeHandle @@ -451,6 +459,7 @@ MaybeHandle FastKeyAccumulator::GetKeysSlow( GetKeysConversion keys_conversion) { KeyAccumulator accumulator(isolate_, mode_, filter_); accumulator.set_is_for_in(is_for_in_); + accumulator.set_skip_indices(skip_indices_); accumulator.set_last_non_empty_prototype(last_non_empty_prototype_); MAYBE_RETURN(accumulator.CollectKeys(receiver_, receiver_), @@ -698,13 +707,15 @@ Maybe KeyAccumulator::CollectOwnPropertyNames(Handle receiver, Maybe KeyAccumulator::CollectAccessCheckInterceptorKeys( Handle access_check_info, Handle receiver, Handle object) { - MAYBE_RETURN((CollectInterceptorKeysInternal( - receiver, object, - handle(InterceptorInfo::cast( - access_check_info->indexed_interceptor()), - isolate_), - this, kIndexed)), - Nothing()); + if (!skip_indices_) { + MAYBE_RETURN((CollectInterceptorKeysInternal( + receiver, object, + handle(InterceptorInfo::cast( + access_check_info->indexed_interceptor()), + isolate_), + this, kIndexed)), + Nothing()); + } MAYBE_RETURN( (CollectInterceptorKeysInternal( receiver, object, @@ -935,8 +946,9 @@ Maybe KeyAccumulator::CollectOwnJSProxyTargetKeys( Handle keys; ASSIGN_RETURN_ON_EXCEPTION_VALUE( isolate_, keys, - KeyAccumulator::GetKeys(target, KeyCollectionMode::kOwnOnly, filter_, - GetKeysConversion::kConvertToString, is_for_in_), + KeyAccumulator::GetKeys( + target, KeyCollectionMode::kOwnOnly, filter_, + GetKeysConversion::kConvertToString, is_for_in_, skip_indices_), Nothing()); Maybe result = AddKeysFromJSProxy(proxy, keys); return result; diff --git a/deps/v8/src/keys.h b/deps/v8/src/keys.h index 649d6a95999fc7..5abbaac5cd0e5a 100644 --- a/deps/v8/src/keys.h +++ b/deps/v8/src/keys.h @@ -40,7 +40,7 @@ class KeyAccumulator final BASE_EMBEDDED { static MaybeHandle GetKeys( Handle object, KeyCollectionMode mode, PropertyFilter filter, GetKeysConversion keys_conversion = GetKeysConversion::kKeepNumbers, - bool is_for_in = false); + bool is_for_in = false, bool skip_indices = false); Handle GetKeys( GetKeysConversion convert = GetKeysConversion::kKeepNumbers); @@ -128,14 +128,19 @@ class KeyAccumulator final BASE_EMBEDDED { class FastKeyAccumulator { public: FastKeyAccumulator(Isolate* isolate, Handle receiver, - KeyCollectionMode mode, PropertyFilter filter) - : isolate_(isolate), receiver_(receiver), mode_(mode), filter_(filter) { + KeyCollectionMode mode, PropertyFilter filter, + bool is_for_in = false, bool skip_indices = false) + : isolate_(isolate), + receiver_(receiver), + mode_(mode), + filter_(filter), + is_for_in_(is_for_in), + skip_indices_(skip_indices) { Prepare(); } bool is_receiver_simple_enum() { return is_receiver_simple_enum_; } bool has_empty_prototype() { return has_empty_prototype_; } - void set_is_for_in(bool value) { is_for_in_ = value; } MaybeHandle GetKeys( GetKeysConversion convert = GetKeysConversion::kKeepNumbers); @@ -153,6 +158,7 @@ class FastKeyAccumulator { KeyCollectionMode mode_; PropertyFilter filter_; bool is_for_in_ = false; + bool skip_indices_ = false; bool is_receiver_simple_enum_ = false; bool has_empty_prototype_ = false; diff --git a/deps/v8/src/runtime/runtime-forin.cc b/deps/v8/src/runtime/runtime-forin.cc index 9193daf9dbd9e3..58e47f621e8eee 100644 --- a/deps/v8/src/runtime/runtime-forin.cc +++ b/deps/v8/src/runtime/runtime-forin.cc @@ -25,8 +25,7 @@ MaybeHandle Enumerate(Handle receiver) { JSObject::MakePrototypesFast(receiver, kStartAtReceiver, isolate); FastKeyAccumulator accumulator(isolate, receiver, KeyCollectionMode::kIncludePrototypes, - ENUMERABLE_STRINGS); - accumulator.set_is_for_in(true); + ENUMERABLE_STRINGS, true); // Test if we have an enum cache for {receiver}. if (!accumulator.is_receiver_simple_enum()) { Handle keys; diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index 366b940d61eef3..5bea5b14d06ee1 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -15356,14 +15356,107 @@ THREADED_TEST(PropertyEnumeration2) { } } -THREADED_TEST(PropertyNames) { +THREADED_TEST(GetPropertyNames) { LocalContext context; v8::Isolate* isolate = context->GetIsolate(); v8::HandleScope scope(isolate); v8::Local result = CompileRun( "var result = {0: 0, 1: 1, a: 2, b: 3};" "result[Symbol('symbol')] = true;" - "result.__proto__ = {2: 4, 3: 5, c: 6, d: 7};" + "result.__proto__ = {__proto__:null, 2: 4, 3: 5, c: 6, d: 7};" + "result;"); + v8::Local object = result.As(); + v8::PropertyFilter default_filter = + static_cast(v8::ONLY_ENUMERABLE | v8::SKIP_SYMBOLS); + v8::PropertyFilter include_symbols_filter = v8::ONLY_ENUMERABLE; + + v8::Local properties = + object->GetPropertyNames(context.local()).ToLocalChecked(); + const char* expected_properties1[] = {"0", "1", "a", "b", "2", "3", "c", "d"}; + CheckStringArray(isolate, properties, 8, expected_properties1); + + properties = + object + ->GetPropertyNames(context.local(), + v8::KeyCollectionMode::kIncludePrototypes, + default_filter, v8::IndexFilter::kIncludeIndices) + .ToLocalChecked(); + CheckStringArray(isolate, properties, 8, expected_properties1); + + properties = object + ->GetPropertyNames(context.local(), + v8::KeyCollectionMode::kIncludePrototypes, + include_symbols_filter, + v8::IndexFilter::kIncludeIndices) + .ToLocalChecked(); + const char* expected_properties1_1[] = {"0", "1", "a", "b", nullptr, + "2", "3", "c", "d"}; + CheckStringArray(isolate, properties, 9, expected_properties1_1); + CheckIsSymbolAt(isolate, properties, 4, "symbol"); + + properties = + object + ->GetPropertyNames(context.local(), + v8::KeyCollectionMode::kIncludePrototypes, + default_filter, v8::IndexFilter::kSkipIndices) + .ToLocalChecked(); + const char* expected_properties2[] = {"a", "b", "c", "d"}; + CheckStringArray(isolate, properties, 4, expected_properties2); + + properties = object + ->GetPropertyNames(context.local(), + v8::KeyCollectionMode::kIncludePrototypes, + include_symbols_filter, + v8::IndexFilter::kSkipIndices) + .ToLocalChecked(); + const char* expected_properties2_1[] = {"a", "b", nullptr, "c", "d"}; + CheckStringArray(isolate, properties, 5, expected_properties2_1); + CheckIsSymbolAt(isolate, properties, 2, "symbol"); + + properties = + object + ->GetPropertyNames(context.local(), v8::KeyCollectionMode::kOwnOnly, + default_filter, v8::IndexFilter::kIncludeIndices) + .ToLocalChecked(); + const char* expected_properties3[] = {"0", "1", "a", "b"}; + CheckStringArray(isolate, properties, 4, expected_properties3); + + properties = object + ->GetPropertyNames( + context.local(), v8::KeyCollectionMode::kOwnOnly, + include_symbols_filter, v8::IndexFilter::kIncludeIndices) + .ToLocalChecked(); + const char* expected_properties3_1[] = {"0", "1", "a", "b", nullptr}; + CheckStringArray(isolate, properties, 5, expected_properties3_1); + CheckIsSymbolAt(isolate, properties, 4, "symbol"); + + properties = + object + ->GetPropertyNames(context.local(), v8::KeyCollectionMode::kOwnOnly, + default_filter, v8::IndexFilter::kSkipIndices) + .ToLocalChecked(); + const char* expected_properties4[] = {"a", "b"}; + CheckStringArray(isolate, properties, 2, expected_properties4); + + properties = object + ->GetPropertyNames( + context.local(), v8::KeyCollectionMode::kOwnOnly, + include_symbols_filter, v8::IndexFilter::kSkipIndices) + .ToLocalChecked(); + const char* expected_properties4_1[] = {"a", "b", nullptr}; + CheckStringArray(isolate, properties, 3, expected_properties4_1); + CheckIsSymbolAt(isolate, properties, 2, "symbol"); +} + +THREADED_TEST(ProxyGetPropertyNames) { + LocalContext context; + v8::Isolate* isolate = context->GetIsolate(); + v8::HandleScope scope(isolate); + v8::Local result = CompileRun( + "var target = {0: 0, 1: 1, a: 2, b: 3};" + "target[Symbol('symbol')] = true;" + "target.__proto__ = {__proto__:null, 2: 4, 3: 5, c: 6, d: 7};" + "var result = new Proxy(target, {});" "result;"); v8::Local object = result.As(); v8::PropertyFilter default_filter = From cee78bf7a2c04517318aa52f5f49929fba691f34 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 10 Aug 2018 15:07:51 -0700 Subject: [PATCH 137/159] http2: avoid race condition in OnHeaderCallback Fixes: https://github.com/nodejs/node/issues/21416 PR-URL: https://github.com/nodejs/node/pull/22256 Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina Reviewed-By: Trivikram Kamat Reviewed-By: George Adams --- src/node_http2.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/node_http2.cc b/src/node_http2.cc index d1319c9d82fd97..e741120f5034d5 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -881,7 +881,12 @@ int Http2Session::OnHeaderCallback(nghttp2_session* handle, Http2Session* session = static_cast(user_data); int32_t id = GetFrameID(frame); Http2Stream* stream = session->FindStream(id); - CHECK_NOT_NULL(stream); + // If stream is null at this point, either something odd has happened + // or the stream was closed locally while header processing was occurring. + // either way, do not proceed and close the stream. + if (stream == nullptr) + return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE; + // If the stream has already been destroyed, ignore. if (!stream->IsDestroyed() && !stream->AddHeader(name, value, flags)) { // This will only happen if the connected peer sends us more From a414b0757af3b3475a3adfaae9feaf1a6090947b Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 10 Aug 2018 14:28:26 -0700 Subject: [PATCH 138/159] test: add test-http2-large-file sequential test Refs: https://github.com/nodejs/node/issues/19141 PR-URL: https://github.com/nodejs/node/pull/22254 Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina Reviewed-By: Trivikram Kamat Reviewed-By: George Adams Reviewed-By: Luigi Pinca --- test/sequential/test-http2-large-file.js | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/sequential/test-http2-large-file.js diff --git a/test/sequential/test-http2-large-file.js b/test/sequential/test-http2-large-file.js new file mode 100644 index 00000000000000..d1a44e8d6be53c --- /dev/null +++ b/test/sequential/test-http2-large-file.js @@ -0,0 +1,39 @@ +'use strict'; + +// Test to ensure sending a large stream with a large initial window size works +// See: https://github.com/nodejs/node/issues/19141 + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const http2 = require('http2'); + +const server = http2.createServer({ settings: { initialWindowSize: 6553500 } }); +server.on('stream', (stream) => { + stream.resume(); + stream.respond(); + stream.end('ok'); +}); + +server.listen(0, common.mustCall(() => { + let remaining = 1e8; + const chunk = 1e6; + const client = http2.connect(`http://localhost:${server.address().port}`, + { settings: { initialWindowSize: 6553500 } }); + const request = client.request({ ':method': 'POST' }); + function writeChunk() { + if (remaining > 0) { + remaining -= chunk; + request.write(Buffer.alloc(chunk, 'a'), writeChunk); + } else { + request.end(); + } + } + writeChunk(); + request.on('close', common.mustCall(() => { + client.close(); + server.close(); + })); + request.resume(); +})); From 1c577016b84dc075682737791343ab1b5aeaf7bd Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Fri, 3 Aug 2018 15:30:22 +0200 Subject: [PATCH 139/159] benchmark: improve assert benchmarks This reduces the runtime and makes sure the strict and loose options can be tested individually. Besides that a couple of redundant cases were removed. PR-URL: https://github.com/nodejs/node/pull/22211 Reviewed-By: Anatoli Papirovski Reviewed-By: Benjamin Gruenbaum Reviewed-By: Matteo Collina Reviewed-By: Trivikram Kamat Reviewed-By: James M Snell --- benchmark/assert/deepequal-buffer.js | 14 ++-- benchmark/assert/deepequal-map.js | 66 +++-------------- benchmark/assert/deepequal-object.js | 20 +++--- .../deepequal-prims-and-objs-big-array-set.js | 38 +++------- .../deepequal-prims-and-objs-big-loop.js | 16 ++--- benchmark/assert/deepequal-set.js | 70 +++---------------- benchmark/assert/deepequal-typedarrays.js | 20 +++--- benchmark/assert/ok.js | 2 +- benchmark/assert/throws.js | 10 +-- test/parallel/test-benchmark-assert.js | 1 + 10 files changed, 68 insertions(+), 189 deletions(-) diff --git a/benchmark/assert/deepequal-buffer.js b/benchmark/assert/deepequal-buffer.js index fe3f6f9754c3a0..baf3e1766c15f5 100644 --- a/benchmark/assert/deepequal-buffer.js +++ b/benchmark/assert/deepequal-buffer.js @@ -3,17 +3,16 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [1e5], - len: [1e2, 1e4], + n: [2e4], + len: [1e2, 1e3], + strict: [0, 1], method: [ 'deepEqual', - 'deepStrictEqual', - 'notDeepEqual', - 'notDeepStrictEqual' + 'notDeepEqual' ] }); -function main({ len, n, method }) { +function main({ len, n, method, strict }) { if (!method) method = 'deepEqual'; const data = Buffer.allocUnsafe(len + 1); @@ -24,6 +23,9 @@ function main({ len, n, method }) { data.copy(expected); data.copy(expectedWrong); + if (strict) { + method = method.replace('eep', 'eepStrict'); + } const fn = assert[method]; const value2 = method.includes('not') ? expectedWrong : expected; diff --git a/benchmark/assert/deepequal-map.js b/benchmark/assert/deepequal-map.js index c6c7173fe8ed6d..c15e1c9a360c3b 100644 --- a/benchmark/assert/deepequal-map.js +++ b/benchmark/assert/deepequal-map.js @@ -7,21 +7,14 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = const bench = common.createBenchmark(main, { n: [5e2], len: [5e2], + strict: [0, 1], method: [ 'deepEqual_primitiveOnly', - 'deepStrictEqual_primitiveOnly', 'deepEqual_objectOnly', - 'deepStrictEqual_objectOnly', 'deepEqual_mixed', - 'deepStrictEqual_mixed', - 'deepEqual_looseMatches', 'notDeepEqual_primitiveOnly', - 'notDeepStrictEqual_primitiveOnly', 'notDeepEqual_objectOnly', - 'notDeepStrictEqual_objectOnly', - 'notDeepEqual_mixed', - 'notDeepStrictEqual_mixed', - 'notDeepEqual_looseMatches', + 'notDeepEqual_mixed' ] }); @@ -37,7 +30,7 @@ function benchmark(method, n, values, values2) { bench.end(n); } -function main({ n, len, method }) { +function main({ n, len, method, strict }) { const array = Array(len).fill(1); var values, values2; @@ -46,74 +39,33 @@ function main({ n, len, method }) { // Empty string falls through to next line as default, mostly for tests. case 'deepEqual_primitiveOnly': values = array.map((_, i) => [`str_${i}`, 123]); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_primitiveOnly': - values = array.map((_, i) => [`str_${i}`, 123]); - benchmark(deepStrictEqual, n, values); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'deepEqual_objectOnly': values = array.map((_, i) => [[`str_${i}`, 1], 123]); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_objectOnly': - values = array.map((_, i) => [[`str_${i}`, 1], 123]); - benchmark(deepStrictEqual, n, values); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'deepEqual_mixed': values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_mixed': - values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]); - benchmark(deepStrictEqual, n, values); - break; - case 'deepEqual_looseMatches': - values = array.map((_, i) => [i, i]); - values2 = values.slice().map((v) => [String(v[0]), String(v[1])]); - benchmark(deepEqual, n, values, values2); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'notDeepEqual_primitiveOnly': values = array.map((_, i) => [`str_${i}`, 123]); values2 = values.slice(0); values2[Math.floor(len / 2)] = ['w00t', 123]; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_primitiveOnly': - values = array.map((_, i) => [`str_${i}`, 123]); - values2 = values.slice(0); - values2[Math.floor(len / 2)] = ['w00t', 123]; - benchmark(notDeepStrictEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; case 'notDeepEqual_objectOnly': values = array.map((_, i) => [[`str_${i}`, 1], 123]); values2 = values.slice(0); values2[Math.floor(len / 2)] = [['w00t'], 123]; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_objectOnly': - values = array.map((_, i) => [[`str_${i}`, 1], 123]); - values2 = values.slice(0); - values2[Math.floor(len / 2)] = [['w00t'], 123]; - benchmark(notDeepStrictEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; case 'notDeepEqual_mixed': values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]); values2 = values.slice(0); values2[0] = ['w00t', 123]; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_mixed': - values = array.map((_, i) => [i % 2 ? [`str_${i}`, 1] : `str_${i}`, 123]); - values2 = values.slice(0); - values2[0] = ['w00t', 123]; - benchmark(notDeepStrictEqual, n, values, values2); - break; - case 'notDeepEqual_looseMatches': - values = array.map((_, i) => [i, i]); - values2 = values.slice().map((v) => [String(v[0]), String(v[1])]); - values2[len - 1] = [String(len + 1), String(len + 1)]; - benchmark(notDeepEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; default: throw new Error(`Unsupported method ${method}`); diff --git a/benchmark/assert/deepequal-object.js b/benchmark/assert/deepequal-object.js index 124943b19ec761..1a9c826a00d4c1 100644 --- a/benchmark/assert/deepequal-object.js +++ b/benchmark/assert/deepequal-object.js @@ -4,13 +4,12 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [1e6], - size: [1e2, 1e3, 1e4], + n: [5e3], + size: [1e2, 1e3, 5e4], + strict: [0, 1], method: [ 'deepEqual', - 'deepStrictEqual', - 'notDeepEqual', - 'notDeepStrictEqual' + 'notDeepEqual' ] }); @@ -20,14 +19,16 @@ function createObj(source, add = '') { nope: { bar: `123${add}`, a: [1, 2, 3], - baz: n + baz: n, + c: {}, + b: [] } })); } -function main({ size, n, method }) { +function main({ size, n, method, strict }) { // TODO: Fix this "hack". `n` should not be manipulated. - n = n / size; + n = Math.min(Math.ceil(n / size), 20); if (!method) method = 'deepEqual'; @@ -37,6 +38,9 @@ function main({ size, n, method }) { const expected = createObj(source); const expectedWrong = createObj(source, '4'); + if (strict) { + method = method.replace('eep', 'eepStrict'); + } const fn = assert[method]; const value2 = method.includes('not') ? expectedWrong : expected; diff --git a/benchmark/assert/deepequal-prims-and-objs-big-array-set.js b/benchmark/assert/deepequal-prims-and-objs-big-array-set.js index 4578e5a250f392..71637c28cea999 100644 --- a/benchmark/assert/deepequal-prims-and-objs-big-array-set.js +++ b/benchmark/assert/deepequal-prims-and-objs-big-array-set.js @@ -5,29 +5,22 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = require('assert'); const primValues = { - 'null': null, - 'undefined': undefined, 'string': 'a', 'number': 1, - 'boolean': true, 'object': { 0: 'a' }, - 'array': [1, 2, 3], - 'new-array': new Array([1, 2, 3]) + 'array': [1, 2, 3] }; const bench = common.createBenchmark(main, { primitive: Object.keys(primValues), n: [25], - len: [1e5], + len: [2e4], + strict: [0, 1], method: [ 'deepEqual_Array', - 'deepStrictEqual_Array', 'notDeepEqual_Array', - 'notDeepStrictEqual_Array', 'deepEqual_Set', - 'deepStrictEqual_Set', - 'notDeepEqual_Set', - 'notDeepStrictEqual_Set' + 'notDeepEqual_Set' ] }); @@ -39,7 +32,7 @@ function run(fn, n, actual, expected) { bench.end(n); } -function main({ n, len, primitive, method }) { +function main({ n, len, primitive, method, strict }) { const prim = primValues[primitive]; const actual = []; const expected = []; @@ -62,28 +55,17 @@ function main({ n, len, primitive, method }) { // Empty string falls through to next line as default, mostly for tests. case '': case 'deepEqual_Array': - run(deepEqual, n, actual, expected); - break; - case 'deepStrictEqual_Array': - run(deepStrictEqual, n, actual, expected); + run(strict ? deepStrictEqual : deepEqual, n, actual, expected); break; case 'notDeepEqual_Array': - run(notDeepEqual, n, actual, expectedWrong); - break; - case 'notDeepStrictEqual_Array': - run(notDeepStrictEqual, n, actual, expectedWrong); + run(strict ? notDeepStrictEqual : notDeepEqual, n, actual, expectedWrong); break; case 'deepEqual_Set': - run(deepEqual, n, actualSet, expectedSet); - break; - case 'deepStrictEqual_Set': - run(deepStrictEqual, n, actualSet, expectedSet); + run(strict ? deepStrictEqual : deepEqual, n, actualSet, expectedSet); break; case 'notDeepEqual_Set': - run(notDeepEqual, n, actualSet, expectedWrongSet); - break; - case 'notDeepStrictEqual_Set': - run(notDeepStrictEqual, n, actualSet, expectedWrongSet); + run(strict ? notDeepStrictEqual : notDeepEqual, + n, actualSet, expectedWrongSet); break; default: throw new Error(`Unsupported method "${method}"`); diff --git a/benchmark/assert/deepequal-prims-and-objs-big-loop.js b/benchmark/assert/deepequal-prims-and-objs-big-loop.js index f1183dab32a3fb..13abaf107fdfb9 100644 --- a/benchmark/assert/deepequal-prims-and-objs-big-loop.js +++ b/benchmark/assert/deepequal-prims-and-objs-big-loop.js @@ -3,28 +3,23 @@ const common = require('../common.js'); const assert = require('assert'); const primValues = { - 'null': null, - 'undefined': undefined, 'string': 'a', 'number': 1, - 'boolean': true, 'object': { 0: 'a' }, - 'array': [1, 2, 3], - 'new-array': new Array([1, 2, 3]) + 'array': [1, 2, 3] }; const bench = common.createBenchmark(main, { primitive: Object.keys(primValues), - n: [1e6], + n: [2e4], + strict: [0, 1], method: [ 'deepEqual', - 'deepStrictEqual', 'notDeepEqual', - 'notDeepStrictEqual' ] }); -function main({ n, primitive, method }) { +function main({ n, primitive, method, strict }) { if (!method) method = 'deepEqual'; const prim = primValues[primitive]; @@ -32,6 +27,9 @@ function main({ n, primitive, method }) { const expected = prim; const expectedWrong = 'b'; + if (strict) { + method = method.replace('eep', 'eepStrict'); + } const fn = assert[method]; const value2 = method.includes('not') ? expectedWrong : expected; diff --git a/benchmark/assert/deepequal-set.js b/benchmark/assert/deepequal-set.js index 6769e5e37fafb7..1f4061afb2a300 100644 --- a/benchmark/assert/deepequal-set.js +++ b/benchmark/assert/deepequal-set.js @@ -7,21 +7,14 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } = const bench = common.createBenchmark(main, { n: [5e2], len: [5e2], + strict: [0, 1], method: [ 'deepEqual_primitiveOnly', - 'deepStrictEqual_primitiveOnly', 'deepEqual_objectOnly', - 'deepStrictEqual_objectOnly', 'deepEqual_mixed', - 'deepStrictEqual_mixed', - 'deepEqual_looseMatches', 'notDeepEqual_primitiveOnly', - 'notDeepStrictEqual_primitiveOnly', 'notDeepEqual_objectOnly', - 'notDeepStrictEqual_objectOnly', - 'notDeepEqual_mixed', - 'notDeepStrictEqual_mixed', - 'notDeepEqual_looseMatches', + 'notDeepEqual_mixed' ] }); @@ -37,7 +30,7 @@ function benchmark(method, n, values, values2) { bench.end(n); } -function main({ n, len, method }) { +function main({ n, len, method, strict }) { const array = Array(len).fill(1); var values, values2; @@ -47,60 +40,29 @@ function main({ n, len, method }) { // Empty string falls through to next line as default, mostly for tests. case 'deepEqual_primitiveOnly': values = array.map((_, i) => `str_${i}`); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_primitiveOnly': - values = array.map((_, i) => `str_${i}`); - benchmark(deepStrictEqual, n, values); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'deepEqual_objectOnly': values = array.map((_, i) => [`str_${i}`, null]); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_objectOnly': - values = array.map((_, i) => [`str_${i}`, null]); - benchmark(deepStrictEqual, n, values); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'deepEqual_mixed': values = array.map((_, i) => { return i % 2 ? [`str_${i}`, null] : `str_${i}`; }); - benchmark(deepEqual, n, values); - break; - case 'deepStrictEqual_mixed': - values = array.map((_, i) => { - return i % 2 ? [`str_${i}`, null] : `str_${i}`; - }); - benchmark(deepStrictEqual, n, values); - break; - case 'deepEqual_looseMatches': - values = array.map((_, i) => i); - values2 = values.slice().map((v) => String(v)); - benchmark(deepEqual, n, values, values2); + benchmark(strict ? deepStrictEqual : deepEqual, n, values); break; case 'notDeepEqual_primitiveOnly': values = array.map((_, i) => `str_${i}`); values2 = values.slice(0); values2[Math.floor(len / 2)] = 'w00t'; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_primitiveOnly': - values = array.map((_, i) => `str_${i}`); - values2 = values.slice(0); - values2[Math.floor(len / 2)] = 'w00t'; - benchmark(notDeepStrictEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; case 'notDeepEqual_objectOnly': values = array.map((_, i) => [`str_${i}`, null]); values2 = values.slice(0); values2[Math.floor(len / 2)] = ['w00t']; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_objectOnly': - values = array.map((_, i) => [`str_${i}`, null]); - values2 = values.slice(0); - values2[Math.floor(len / 2)] = ['w00t']; - benchmark(notDeepStrictEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; case 'notDeepEqual_mixed': values = array.map((_, i) => { @@ -108,21 +70,7 @@ function main({ n, len, method }) { }); values2 = values.slice(); values2[0] = 'w00t'; - benchmark(notDeepEqual, n, values, values2); - break; - case 'notDeepStrictEqual_mixed': - values = array.map((_, i) => { - return i % 2 ? [`str_${i}`, null] : `str_${i}`; - }); - values2 = values.slice(); - values2[0] = 'w00t'; - benchmark(notDeepStrictEqual, n, values, values2); - break; - case 'notDeepEqual_looseMatches': - values = array.map((_, i) => i); - values2 = values.slice().map((v) => String(v)); - values2[len - 1] = String(len + 1); - benchmark(notDeepEqual, n, values, values2); + benchmark(strict ? notDeepStrictEqual : notDeepEqual, n, values, values2); break; default: throw new Error(`Unsupported method "${method}"`); diff --git a/benchmark/assert/deepequal-typedarrays.js b/benchmark/assert/deepequal-typedarrays.js index c4d8f434bf4e8a..9f9c68a6731254 100644 --- a/benchmark/assert/deepequal-typedarrays.js +++ b/benchmark/assert/deepequal-typedarrays.js @@ -6,39 +6,39 @@ const bench = common.createBenchmark(main, { type: [ 'Int8Array', 'Uint8Array', - 'Int16Array', - 'Uint16Array', - 'Int32Array', - 'Uint32Array', 'Float32Array', 'Float64Array', 'Uint8ClampedArray', ], - n: [1], + n: [5e2], + strict: [0, 1], method: [ 'deepEqual', - 'deepStrictEqual', 'notDeepEqual', - 'notDeepStrictEqual' ], - len: [1e6] + len: [1e2, 5e3] }); -function main({ type, n, len, method }) { +function main({ type, n, len, method, strict }) { if (!method) method = 'deepEqual'; const clazz = global[type]; const actual = new clazz(len); const expected = new clazz(len); - const expectedWrong = Buffer.alloc(len); + const expectedWrong = new clazz(len); const wrongIndex = Math.floor(len / 2); expectedWrong[wrongIndex] = 123; + if (strict) { + method = method.replace('eep', 'eepStrict'); + } const fn = assert[method]; const value2 = method.includes('not') ? expectedWrong : expected; bench.start(); for (var i = 0; i < n; ++i) { + actual[0] = i; + value2[0] = i; fn(actual, value2); } bench.end(n); diff --git a/benchmark/assert/ok.js b/benchmark/assert/ok.js index 849be65539aef7..4869a9de69c319 100644 --- a/benchmark/assert/ok.js +++ b/benchmark/assert/ok.js @@ -4,7 +4,7 @@ const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { - n: [1e9] + n: [1e5] }); function main({ n }) { diff --git a/benchmark/assert/throws.js b/benchmark/assert/throws.js index a8a7bd4509e1ca..1788630cb2f992 100644 --- a/benchmark/assert/throws.js +++ b/benchmark/assert/throws.js @@ -4,10 +4,9 @@ const common = require('../common.js'); const { throws, doesNotThrow } = require('assert'); const bench = common.createBenchmark(main, { - n: [1e6], + n: [1e4], method: [ 'doesNotThrow', - 'throws', 'throws_TypeError', 'throws_RegExp' ] @@ -30,13 +29,6 @@ function main({ n, method }) { } bench.end(n); break; - case 'throws': - bench.start(); - for (i = 0; i < n; ++i) { - throws(throwError); - } - bench.end(n); - break; case 'throws_TypeError': bench.start(); for (i = 0; i < n; ++i) { diff --git a/test/parallel/test-benchmark-assert.js b/test/parallel/test-benchmark-assert.js index 3ca72df718cd64..8a8ba0244489e5 100644 --- a/test/parallel/test-benchmark-assert.js +++ b/test/parallel/test-benchmark-assert.js @@ -10,6 +10,7 @@ const runBenchmark = require('../common/benchmark'); runBenchmark( 'assert', [ + 'strict=1', 'len=1', 'method=', 'n=1', From a7dad4565b04bc1b03ab1b93bd9b8cd3cba27571 Mon Sep 17 00:00:00 2001 From: Ouyang Yadong Date: Thu, 2 Aug 2018 15:40:54 +0800 Subject: [PATCH 140/159] test: move test-http-client-timeout-option-with-agent to sequential The timeout event cannot be precisely timed and the actual timeout may be longer in some situations. Here we move this test into the sequential folder to make it happens less likely. PR-URL: https://github.com/nodejs/node/pull/22083 Fixes: https://github.com/nodejs/node/issues/22041 Reviewed-By: Luigi Pinca Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater Reviewed-By: George Adams --- .../test-http-client-timeout-option-with-agent.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{parallel => sequential}/test-http-client-timeout-option-with-agent.js (100%) diff --git a/test/parallel/test-http-client-timeout-option-with-agent.js b/test/sequential/test-http-client-timeout-option-with-agent.js similarity index 100% rename from test/parallel/test-http-client-timeout-option-with-agent.js rename to test/sequential/test-http-client-timeout-option-with-agent.js From 6cd2d1dddcc9533342fc35d4d9c616e0a164687a Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Thu, 2 Aug 2018 06:54:30 -0400 Subject: [PATCH 141/159] tools: fix header escaping regression quick fix for #22065 Preferred long term fix can be found at: https://github.com/nodejs/node/pull/22140 PR-URL: https://github.com/nodejs/node/pull/22084 Fixes: https://github.com/nodejs/node/issues/22065 Reviewed-By: Vse Mozhet Byt Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat --- tools/doc/generate.js | 2 +- tools/doc/html.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/doc/generate.js b/tools/doc/generate.js index 99dce4122a0733..f2e3e8a1649985 100644 --- a/tools/doc/generate.js +++ b/tools/doc/generate.js @@ -67,9 +67,9 @@ fs.readFile(filename, 'utf8', (er, input) => { const content = unified() .use(markdown) + .use(html.preprocessText) .use(json.jsonAPI, { filename }) .use(html.firstHeader) - .use(html.preprocessText) .use(html.preprocessElements, { filename }) .use(html.buildToc, { filename }) .use(remark2rehype, { allowDangerousHTML: true }) diff --git a/tools/doc/html.js b/tools/doc/html.js index f2be43a38b5d91..d65a4b323aef36 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -198,7 +198,10 @@ function preprocessElements({ filename }) { heading.children = [{ type: 'text', value: file.contents.slice( - position.start.offset, position.end.offset), + position.start.offset, position.end.offset) + .replace('<', '<') + .replace('>', '>') + .replace(/\\(.{1})/g, '$1'), position }]; } From 1afcea107ebe23a5aee401e3d2c9d689fc763c21 Mon Sep 17 00:00:00 2001 From: Eugene Ostroukhov Date: Fri, 10 Aug 2018 11:35:04 -0700 Subject: [PATCH 142/159] inspector: unmark tests as flaky PR-URL: https://github.com/nodejs/node/pull/22253 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Aleksei Koziatinskii Reviewed-By: Jon Moss Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Trivikram Kamat Reviewed-By: Luigi Pinca --- test/sequential/sequential.status | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index c5873b9060f8fe..ab94c7dbec5039 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -10,10 +10,6 @@ prefix sequential test-fs-readfile-tostring-fail: PASS, FLAKY [$system==win32] -test-inspector-async-call-stack : PASS, FLAKY -test-inspector-async-hook-setup-at-signal: PASS, FLAKY -test-inspector-bindings : PASS, FLAKY -test-inspector-debug-end : PASS, FLAKY [$system==linux] From f570c19c89710cd33455714ce9110ff4e838867e Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 10 Aug 2018 09:58:20 -0700 Subject: [PATCH 143/159] perf_hooks: avoid memory leak on gc observer Fixes: https://github.com/nodejs/node/issues/22229 PR-URL: https://github.com/nodejs/node/pull/22241 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Yang Guo Reviewed-By: George Adams --- src/node_perf.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/node_perf.cc b/src/node_perf.cc index a1ca57e2d5c100..5d94bb4c8a4a56 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -272,6 +272,9 @@ void MarkGarbageCollectionEnd(Isolate* isolate, v8::GCCallbackFlags flags, void* data) { Environment* env = static_cast(data); + // If no one is listening to gc performance entries, do not create them. + if (!env->performance_state()->observers[NODE_PERFORMANCE_ENTRY_TYPE_GC]) + return; GCPerformanceEntry* entry = new GCPerformanceEntry(env, static_cast(type), From 7223a91a50800588b8dcc81af662f36cbb482816 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 10 Aug 2018 11:05:57 -0700 Subject: [PATCH 144/159] http2: explicitly disallow nested push streams Fixes: https://github.com/nodejs/node/issues/19095 PR-URL: https://github.com/nodejs/node/pull/22245 Reviewed-By: Matteo Collina Reviewed-By: Trivikram Kamat --- doc/api/errors.md | 6 ++++++ doc/api/http2.md | 3 +++ lib/internal/errors.js | 2 ++ lib/internal/http2/core.js | 3 +++ test/parallel/test-http2-server-push-stream.js | 8 ++++++++ 5 files changed, 22 insertions(+) diff --git a/doc/api/errors.md b/doc/api/errors.md index 3fefce6e0ff300..036754afc132e9 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -956,6 +956,12 @@ required to send an acknowledgment that it has received and applied the new be sent at any given time. This error code is used when that limit has been reached. + +### ERR_HTTP2_NESTED_PUSH + +An attempt was made to initiate a new push stream from within a push stream. +Nested push streams are not permitted. + ### ERR_HTTP2_NO_SOCKET_MANIPULATION diff --git a/doc/api/http2.md b/doc/api/http2.md index 4d56b61839c227..05b5ff7718d4aa 100644 --- a/doc/api/http2.md +++ b/doc/api/http2.md @@ -1256,6 +1256,9 @@ Setting the weight of a push stream is not allowed in the `HEADERS` frame. Pass a `weight` value to `http2stream.priority` with the `silent` option set to `true` to enable server-side bandwidth balancing between concurrent streams. +Calling `http2stream.pushStream()` from within a pushed stream is not permitted +and will throw an error. + #### http2stream.respond([headers[, options]]) @@ -2208,8 +2208,8 @@ crypto.scrypt('secret', 'salt', 64, { N: 1024 }, (err, derivedKey) => { diff --git a/doc/api/http.md b/doc/api/http.md index 90a19a7888ab1a..8b1274f06d296e 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1798,7 +1798,7 @@ added to the [`'request'`][] event.