diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0001-Patch-on-Flush-function-for-CPU-ARM-added.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0001-Patch-on-Flush-function-for-CPU-ARM-added.patch index 75532d062..535243bff 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0001-Patch-on-Flush-function-for-CPU-ARM-added.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0001-Patch-on-Flush-function-for-CPU-ARM-added.patch @@ -1,4 +1,4 @@ -From 11a3e08008899b7fe61c38610416cf52be23948d Mon Sep 17 00:00:00 2001 +From fcc7df4a1c862d18f9f4db9f216bec07ae397fe0 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivanov Date: Thu, 24 Aug 2017 13:24:35 -0700 Subject: [PATCH] Patch on Flush function for CPU ARM added diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0002-implement-function-chroot-in-process-module.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0002-implement-function-chroot-in-process-module.patch index e5673c994..437330488 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0002-implement-function-chroot-in-process-module.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0002-implement-function-chroot-in-process-module.patch @@ -1,4 +1,4 @@ -From c9da8f0c0fc91389ff832c54ca8f77296a8468cc Mon Sep 17 00:00:00 2001 +From ef1c7df2b181903a9ab70a738567980fe2be21fd Mon Sep 17 00:00:00 2001 From: Lokesh Kumar Goel Date: Mon, 28 Aug 2017 14:01:48 -0700 Subject: [PATCH] implement function chroot in process module @@ -39,10 +39,10 @@ Reviewed-by: Sergiy Kryvonos 7 files changed, 51 insertions(+), 1 deletion(-) diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h -index 9794d99..1028363 100644 +index 717c2e5..ca138e4 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h -@@ -1451,6 +1451,8 @@ UV_EXTERN int uv_cwd(char* buffer, size_t* size); +@@ -1492,6 +1492,8 @@ UV_EXTERN int uv_cwd(char* buffer, size_t* size); UV_EXTERN int uv_chdir(const char* dir); @@ -52,10 +52,10 @@ index 9794d99..1028363 100644 UV_EXTERN uint64_t uv_get_total_memory(void); diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c -index 3741c1d..96d1937 100644 +index f92446f..c5e3399 100644 --- a/deps/uv/src/unix/core.c +++ b/deps/uv/src/unix/core.c -@@ -717,6 +717,12 @@ int uv_chdir(const char* dir) { +@@ -719,6 +719,12 @@ int uv_chdir(const char* dir) { return 0; } @@ -69,10 +69,10 @@ index 3741c1d..96d1937 100644 void uv_disable_stdio_inheritance(void) { int fd; diff --git a/deps/v8/src/d8-posix.cc b/deps/v8/src/d8-posix.cc -index 18040c8..b6cef96 100644 +index 1172bf8..f0c1d86 100644 --- a/deps/v8/src/d8-posix.cc +++ b/deps/v8/src/d8-posix.cc -@@ -569,6 +569,30 @@ void Shell::ChangeDirectory(const v8::FunctionCallbackInfo& args) { +@@ -566,6 +566,30 @@ void Shell::ChangeDirectory(const v8::FunctionCallbackInfo& args) { } } @@ -103,7 +103,7 @@ index 18040c8..b6cef96 100644 void Shell::SetUMask(const v8::FunctionCallbackInfo& args) { if (args.Length() != 1) { -@@ -860,6 +884,9 @@ void Shell::AddOSMethods(Isolate* isolate, Local os_templ) { +@@ -857,6 +881,9 @@ void Shell::AddOSMethods(Isolate* isolate, Local os_templ) { os_templ->Set(String::NewFromUtf8(isolate, "chdir", NewStringType::kNormal) .ToLocalChecked(), FunctionTemplate::New(isolate, ChangeDirectory)); @@ -114,10 +114,10 @@ index 18040c8..b6cef96 100644 .ToLocalChecked(), FunctionTemplate::New(isolate, SetEnvironment)); diff --git a/deps/v8/src/d8.h b/deps/v8/src/d8.h -index c0922bc..cf5edbf 100644 +index e4a5870..bd0e111 100644 --- a/deps/v8/src/d8.h +++ b/deps/v8/src/d8.h -@@ -441,6 +441,7 @@ class Shell : public i::AllStatic { +@@ -445,6 +445,7 @@ class Shell : public i::AllStatic { // the "mkdir -p" command. static void System(const v8::FunctionCallbackInfo& args); static void ChangeDirectory(const v8::FunctionCallbackInfo& args); @@ -126,35 +126,35 @@ index c0922bc..cf5edbf 100644 static void UnsetEnvironment(const v8::FunctionCallbackInfo& args); static void SetUMask(const v8::FunctionCallbackInfo& args); diff --git a/src/node.cc b/src/node.cc -index f4d2709..a6403d5 100644 +index 9fb5ab3..9327f5e 100644 --- a/src/node.cc +++ b/src/node.cc -@@ -2967,6 +2967,7 @@ void SetupProcessObject(Environment* env, +@@ -2008,6 +2008,7 @@ void SetupProcessObject(Environment* env, + + env->SetMethodNoSideEffect(process, "cwd", Cwd); env->SetMethod(process, "dlopen", DLOpen); - env->SetMethod(process, "abort", Abort); - env->SetMethod(process, "chdir", Chdir); + env->SetMethod(process, "chroot", Chroot); - env->SetMethod(process, "cwd", Cwd); env->SetMethod(process, "reallyExit", Exit); - env->SetMethod(process, "umask", Umask); + env->SetMethodNoSideEffect(process, "uptime", Uptime); + diff --git a/src/node_internals.h b/src/node_internals.h -index a891b1b..778205e 100644 +index 12089bc..4f6ef254 100644 --- a/src/node_internals.h +++ b/src/node_internals.h -@@ -422,6 +422,7 @@ void PrintErrorString(const char* format, ...); +@@ -883,6 +883,7 @@ void PrintErrorString(const char* format, ...); void Abort(const v8::FunctionCallbackInfo& args); void Chdir(const v8::FunctionCallbackInfo& args); +void Chroot(const v8::FunctionCallbackInfo& args); void CPUUsage(const v8::FunctionCallbackInfo& args); void Cwd(const v8::FunctionCallbackInfo& args); - void Hrtime(const v8::FunctionCallbackInfo& args); + void GetActiveHandles(const v8::FunctionCallbackInfo& args); diff --git a/src/node_process.cc b/src/node_process.cc -index f953f5f..6355148 100644 +index 58f446a..2e973e9 100644 --- a/src/node_process.cc +++ b/src/node_process.cc -@@ -64,9 +64,21 @@ void Chdir(const FunctionCallbackInfo& args) { - return env->ThrowUVException(err, "uv_chdir"); +@@ -85,6 +85,18 @@ void Chdir(const FunctionCallbackInfo& args) { + return env->ThrowUVException(err, "chdir", nullptr, *path, nullptr); } +void Chroot(const FunctionCallbackInfo& args) { diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0003-Adds-noexec-option-for-fork-and-spawn-APIs-of-nodejs.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0003-Adds-noexec-option-for-fork-and-spawn-APIs-of-nodejs.patch index 2c500dc3d..bba99b1a3 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0003-Adds-noexec-option-for-fork-and-spawn-APIs-of-nodejs.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0003-Adds-noexec-option-for-fork-and-spawn-APIs-of-nodejs.patch @@ -1,4 +1,4 @@ -From 98c86af4f282c57b254d956a1b8bcceba25fdf2c Mon Sep 17 00:00:00 2001 +From 74c81994b5f895a195c0cae58d70645dfbb9ecdb Mon Sep 17 00:00:00 2001 From: Sergii Nikolaiev Date: Thu, 28 May 2015 21:12:34 +0300 Subject: [PATCH] Adds noexec option for fork and spawn APIs of nodejs @@ -42,15 +42,15 @@ Reviewed-by: Sergiy Kryvonos deps/uv/src/unix/process.c | 47 +++++++++++++++++++++++++++++++++++++------ lib/child_process.js | 3 ++- lib/internal/child_process.js | 4 ++++ - src/env.h | 3 ++- + src/env.h | 1 + src/process_wrap.cc | 6 ++++++ - 6 files changed, 61 insertions(+), 9 deletions(-) + 6 files changed, 60 insertions(+), 8 deletions(-) diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h -index 1028363..f731acd 100644 +index ca138e4..c22ec08 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h -@@ -958,7 +958,12 @@ enum uv_process_flags { +@@ -967,7 +967,12 @@ enum uv_process_flags { * option is only meaningful on Windows systems. On Unix it is silently * ignored. */ @@ -65,10 +65,10 @@ index 1028363..f731acd 100644 /* diff --git a/deps/uv/src/unix/process.c b/deps/uv/src/unix/process.c -index 74113e3..1591a75 100644 +index 101c9c5..34a01d6 100644 --- a/deps/uv/src/unix/process.c +++ b/deps/uv/src/unix/process.c -@@ -376,7 +376,29 @@ static void uv__process_child_init(const uv_process_options_t* options, +@@ -373,7 +373,29 @@ static void uv__process_child_init(const uv_process_options_t* options, } if (options->env != NULL) { @@ -99,7 +99,7 @@ index 74113e3..1591a75 100644 } /* Reset signal disposition. Use a hard-coded limit because NSIG -@@ -404,9 +426,11 @@ static void uv__process_child_init(const uv_process_options_t* options, +@@ -401,9 +423,11 @@ static void uv__process_child_init(const uv_process_options_t* options, _exit(127); } @@ -114,7 +114,7 @@ index 74113e3..1591a75 100644 } #endif -@@ -434,8 +458,8 @@ int uv_spawn(uv_loop_t* loop, +@@ -431,8 +455,8 @@ int uv_spawn(uv_loop_t* loop, UV_PROCESS_SETGID | UV_PROCESS_SETUID | UV_PROCESS_WINDOWS_HIDE | @@ -125,7 +125,7 @@ index 74113e3..1591a75 100644 uv__handle_init(loop, (uv_handle_t*)process, UV_PROCESS); QUEUE_INIT(&process->queue); -@@ -502,6 +526,17 @@ int uv_spawn(uv_loop_t* loop, +@@ -499,6 +523,17 @@ int uv_spawn(uv_loop_t* loop, if (pid == 0) { uv__process_child_init(options, stdio_count, pipes, signal_pipe[1]); @@ -144,10 +144,10 @@ index 74113e3..1591a75 100644 } diff --git a/lib/child_process.js b/lib/child_process.js -index aa24c9f..ab641c1 100644 +index f08acd7..360f974 100644 --- a/lib/child_process.js +++ b/lib/child_process.js -@@ -510,7 +510,8 @@ var spawn = exports.spawn = function(/*file, args, options*/) { +@@ -545,7 +545,8 @@ var spawn = exports.spawn = function spawn(/* file, args, options */) { envPairs: opts.envPairs, stdio: options.stdio, uid: options.uid, @@ -158,10 +158,10 @@ index aa24c9f..ab641c1 100644 return child; diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js -index a2d2012..2b77195 100644 +index b142237..738dca8 100644 --- a/lib/internal/child_process.js +++ b/lib/internal/child_process.js -@@ -315,6 +315,10 @@ ChildProcess.prototype.spawn = function(options) { +@@ -368,6 +368,10 @@ ChildProcess.prototype.spawn = function(options) { this.pid = this._handle.pid; @@ -173,24 +173,22 @@ index a2d2012..2b77195 100644 const stream = stdio[i]; if (stream.type === 'ignore') continue; diff --git a/src/env.h b/src/env.h -index 7b4a699..99431e5 100644 +index 66c69e8..968c7ed 100644 --- a/src/env.h +++ b/src/env.h -@@ -300,7 +300,8 @@ class ModuleWrap; - V(write_host_object_string, "_writeHostObject") \ +@@ -314,6 +314,7 @@ struct PackageConfig { V(write_queue_size_string, "writeQueueSize") \ V(x_forwarded_string, "x-forwarded-for") \ -- V(zero_return_string, "ZERO_RETURN") -+ V(zero_return_string, "ZERO_RETURN") \ + V(zero_return_string, "ZERO_RETURN") \ + V(noexec_string, "noexec") \ #define ENVIRONMENT_STRONG_PERSISTENT_PROPERTIES(V) \ V(as_external, v8::External) \ diff --git a/src/process_wrap.cc b/src/process_wrap.cc -index 3667b04..d7b5906 100644 +index cd443b3..32e2410 100644 --- a/src/process_wrap.cc +++ b/src/process_wrap.cc -@@ -179,6 +179,12 @@ class ProcessWrap : public HandleWrap { +@@ -180,6 +180,12 @@ class ProcessWrap : public HandleWrap { node::Utf8Value file(env->isolate(), file_v); options.file = *file; diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0004-Fixes-process-pid-getter-to-always-get-actual-pid.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0004-Fixes-process-pid-getter-to-always-get-actual-pid.patch index 23413b863..f0e9ffdeb 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0004-Fixes-process-pid-getter-to-always-get-actual-pid.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0004-Fixes-process-pid-getter-to-always-get-actual-pid.patch @@ -1,4 +1,4 @@ -From 4bfe9cbd28c154a447e995c6a861c38b6d610a86 Mon Sep 17 00:00:00 2001 +From b023b9c86d65a9b1163081e1a9d149726f70c2eb Mon Sep 17 00:00:00 2001 From: Sergii Nikolaiev Date: Thu, 28 May 2015 21:31:07 +0300 Subject: [PATCH] Fixes process pid getter to always get actual pid @@ -30,15 +30,15 @@ Reviewed-by: Ievgen Sherstobitov Reviewed-by: Andrii Koval Reviewed-by: Sergiy Kryvonos --- - src/node.cc | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) + src/node.cc | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/node.cc b/src/node.cc -index a6403d5..fcad018 100644 +index 9327f5e..0b29a44 100644 --- a/src/node.cc +++ b/src/node.cc -@@ -2389,6 +2389,12 @@ static void EnvSetter(Local property, - info.GetReturnValue().Set(value); +@@ -1631,6 +1631,13 @@ static void GetLinkedBinding(const FunctionCallbackInfo& args) { + args.GetReturnValue().Set(effective_exports); } +static void ProcessPidGetter(Local property, @@ -47,10 +47,11 @@ index a6403d5..fcad018 100644 + HandleScope scope(env->isolate()); + info.GetReturnValue().Set(getpid()); +} ++ + static Local GetFeatures(Environment* env) { + EscapableHandleScope scope(env->isolate()); - static void EnvQuery(Local property, - const PropertyCallbackInfo& info) { -@@ -2807,8 +2813,7 @@ void SetupProcessObject(Environment* env, +@@ -1843,8 +1850,7 @@ void SetupProcessObject(Environment* env, process_env_template->NewInstance(env->context()).ToLocalChecked(); process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "env"), process_env); diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0005-Flush-processor-instruction-cash.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0005-Flush-processor-instruction-cash.patch index c7c2e840b..b6f69ed59 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0005-Flush-processor-instruction-cash.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0005-Flush-processor-instruction-cash.patch @@ -1,4 +1,4 @@ -From 16fe2ba69f603c4892ac5f8211396a191c4e29f2 Mon Sep 17 00:00:00 2001 +From a55f1bf398ee20905aa115eca00456d6f93e15c9 Mon Sep 17 00:00:00 2001 From: Alexander Pryadka Date: Thu, 9 Jul 2015 12:46:14 +0300 Subject: [PATCH] Flush processor instruction cash diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0006-Implement-initial-test-suit-for-forked-node.js.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0006-Implement-initial-test-suit-for-forked-node.js.patch index bae683024..1a956da2b 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0006-Implement-initial-test-suit-for-forked-node.js.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0006-Implement-initial-test-suit-for-forked-node.js.patch @@ -1,4 +1,4 @@ -From 7d5b5265004d2fd21eac9c53bbe592f00654f509 Mon Sep 17 00:00:00 2001 +From e62756ea1ec0908f02c6ef312de0471229fb7a57 Mon Sep 17 00:00:00 2001 From: Ievgen Sherstobitov Date: Fri, 24 Jul 2015 16:04:29 +0300 Subject: [PATCH] Implement initial test suit for forked node.js diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0007-Optimize-V8-s-JSON-parser.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0007-Optimize-V8-s-JSON-parser.patch index 09b87f482..39964e56c 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0007-Optimize-V8-s-JSON-parser.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0007-Optimize-V8-s-JSON-parser.patch @@ -1,4 +1,4 @@ -From c0565f841050a80ccdf897d536b5e6be5dbbfc90 Mon Sep 17 00:00:00 2001 +From 4ec46cad02673bd27ddafd6c1666bea277133880 Mon Sep 17 00:00:00 2001 From: Andrii Koval Date: Wed, 29 Jul 2015 11:15:52 +0300 Subject: [PATCH] Optimize V8's JSON parser @@ -35,10 +35,10 @@ Reviewed-by: Tigran Avanesov 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/deps/v8/src/json-parser.cc b/deps/v8/src/json-parser.cc -index 32e4187..75003d3 100644 +index 7323b71..efba265 100644 --- a/deps/v8/src/json-parser.cc +++ b/deps/v8/src/json-parser.cc -@@ -687,7 +687,9 @@ Handle JsonParser::SlowScanJsonString( +@@ -723,7 +723,9 @@ Handle JsonParser::SlowScanJsonString( Handle prefix, int start, int end) { int count = end - start; int max_length = count + source_length_ - position_; @@ -50,10 +50,10 @@ index 32e4187..75003d3 100644 NewRawString(factory(), length, pretenure_); // Copy prefix into seq_str. diff --git a/deps/v8/src/json-parser.h b/deps/v8/src/json-parser.h -index 2d08fef..1565dca 100644 +index fc60e29..27d33a3 100644 --- a/deps/v8/src/json-parser.h +++ b/deps/v8/src/json-parser.h -@@ -58,6 +58,37 @@ class JsonParser BASE_EMBEDDED { +@@ -60,6 +60,37 @@ class JsonParser BASE_EMBEDDED { INLINE(void Advance()); diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0008-Optimize-V8-s-JSON-parser-second-part.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0008-Optimize-V8-s-JSON-parser-second-part.patch index 8ffe13357..ae75b7f6b 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0008-Optimize-V8-s-JSON-parser-second-part.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0008-Optimize-V8-s-JSON-parser-second-part.patch @@ -1,4 +1,4 @@ -From 43a32975bd6f8ecb7ed516c30302661351298d68 Mon Sep 17 00:00:00 2001 +From 8a4eb886c659da78bc88432dbce93c6b0cc8ff1b Mon Sep 17 00:00:00 2001 From: Andrii Koval Date: Wed, 29 Jul 2015 11:26:34 +0300 Subject: [PATCH] Optimize V8's JSON parser (second part) @@ -35,24 +35,24 @@ Reviewed-by: Sergii Nikolaiev Reviewed-by: Tigran Avanesov --- deps/v8/src/json-parser.cc | 14 ++++--- - deps/v8/src/json-parser.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 102 insertions(+), 6 deletions(-) + deps/v8/src/json-parser.h | 95 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 103 insertions(+), 6 deletions(-) diff --git a/deps/v8/src/json-parser.cc b/deps/v8/src/json-parser.cc -index 75003d3..ebd23ad 100644 +index efba265..65410db 100644 --- a/deps/v8/src/json-parser.cc +++ b/deps/v8/src/json-parser.cc -@@ -110,7 +110,8 @@ JsonParser::JsonParser(Isolate* isolate, Handle source) - zone_(isolate_->allocator(), ZONE_NAME), +@@ -142,7 +142,8 @@ JsonParser::JsonParser(Isolate* isolate, Handle source) object_constructor_(isolate_->native_context()->object_function(), isolate_), -- position_(-1) { -+ position_(-1), + position_(-1), +- properties_(&zone_) { ++ properties_(&zone_), + buf_manager_(isolate_) { source_ = String::Flatten(source_); pretenure_ = (source_length_ >= kPretenureTreshold) ? TENURED : NOT_TENURED; -@@ -690,8 +691,7 @@ Handle JsonParser::SlowScanJsonString( +@@ -726,8 +727,7 @@ Handle JsonParser::SlowScanJsonString( int string_end_position = FindEndOfStr(position_); int itput_str_length = string_end_position - position_ + count; int length = Min(max_length, itput_str_length); @@ -62,7 +62,7 @@ index 75003d3..ebd23ad 100644 // Copy prefix into seq_str. SinkChar* dest = seq_string->GetChars(); String::WriteToFlat(*prefix, dest, start, end); -@@ -701,7 +701,8 @@ Handle JsonParser::SlowScanJsonString( +@@ -737,7 +737,8 @@ Handle JsonParser::SlowScanJsonString( if (c0_ < 0x20) return Handle::null(); if (count >= length) { // We need to create a longer sequential string for the result. @@ -72,7 +72,7 @@ index 75003d3..ebd23ad 100644 } if (c0_ != '\\') { // If the sink can contain UC16 characters, or source_ contains only -@@ -758,7 +759,8 @@ Handle JsonParser::SlowScanJsonString( +@@ -794,7 +795,8 @@ Handle JsonParser::SlowScanJsonString( // char. position_ -= 6; // Rewind position_ to \ in \uxxxx. Advance(); @@ -82,7 +82,7 @@ index 75003d3..ebd23ad 100644 count); } } -@@ -774,7 +776,7 @@ Handle JsonParser::SlowScanJsonString( +@@ -810,7 +812,7 @@ Handle JsonParser::SlowScanJsonString( AdvanceSkipWhitespace(); // Shrink seq_string length to count and return. @@ -92,12 +92,12 @@ index 75003d3..ebd23ad 100644 template diff --git a/deps/v8/src/json-parser.h b/deps/v8/src/json-parser.h -index 1565dca..42c6b6e 100644 +index 27d33a3..39f9d92 100644 --- a/deps/v8/src/json-parser.h +++ b/deps/v8/src/json-parser.h -@@ -8,9 +8,102 @@ - #include "src/factory.h" +@@ -10,9 +10,102 @@ #include "src/objects.h" + #include "src/zone/zone-containers.h" +#include + @@ -198,10 +198,11 @@ index 1565dca..42c6b6e 100644 enum ParseElementResult { kElementFound, kElementNotFound, kNullHandle }; class JsonParseInternalizer BASE_EMBEDDED { -@@ -188,6 +281,7 @@ class JsonParser BASE_EMBEDDED { - Handle object_constructor_; - uc32 c0_; - int position_; +@@ -187,6 +280,8 @@ class JsonParser BASE_EMBEDDED { + + // Property handles are stored here inside ParseJsonObject. + ZoneVector> properties_; ++ + SlowScanBufManager buf_manager_; }; diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0009-Provide-option-compile-js-to-node-for-.js-compilatio.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0009-Provide-option-compile-js-to-node-for-.js-compilatio.patch index fa5dd61d6..1d6776bb5 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0009-Provide-option-compile-js-to-node-for-.js-compilatio.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0009-Provide-option-compile-js-to-node-for-.js-compilatio.patch @@ -1,4 +1,4 @@ -From 6033eababbf722e473c341335ea4a9907df9f830 Mon Sep 17 00:00:00 2001 +From efb078b3604fad0ea5d47cc8e1d1e307d8bbde4b Mon Sep 17 00:00:00 2001 From: Andrii Koval Date: Fri, 31 Jul 2015 11:48:20 +0300 Subject: [PATCH] Provide option "--compile-js" to node for .js compilation @@ -32,19 +32,21 @@ Tested-by: Andrii Koval Reviewed-by: Denys Romanchuk Reviewed-by: Tigran Avanesov --- - node.gyp | 1 + - src/node.cc | 23 ++++++++++++++- - src/precompile.cc | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/precompile.h | 28 ++++++++++++++++++ - 4 files changed, 137 insertions(+), 1 deletion(-) + node.gyp | 1 + + src/node.cc | 18 +++++++++++ + src/node_options.cc | 2 ++ + src/node_options.h | 1 + + src/precompile.cc | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/precompile.h | 28 +++++++++++++++++ + 6 files changed, 136 insertions(+) create mode 100644 src/precompile.cc create mode 100644 src/precompile.h diff --git a/node.gyp b/node.gyp -index 1f9d34b..0f5a513 100644 +index a8de196..85d537f 100644 --- a/node.gyp +++ b/node.gyp -@@ -324,6 +324,7 @@ +@@ -392,6 +392,7 @@ 'src/udp_wrap.cc', 'src/util.cc', 'src/uv.cc', @@ -53,45 +55,26 @@ index 1f9d34b..0f5a513 100644 'src/aliased_buffer.h', 'src/async_wrap.h', diff --git a/src/node.cc b/src/node.cc -index fcad018..ab9b36e 100644 +index 0b29a44..4dd8092 100644 --- a/src/node.cc +++ b/src/node.cc -@@ -28,6 +28,7 @@ - #include "node_revert.h" - #include "node_debug_options.h" +@@ -30,6 +30,7 @@ #include "node_perf.h" + #include "node_context_data.h" + #include "tracing/traced_value.h" +#include "precompile.h" #if defined HAVE_PERFCTR #include "node_counters.h" -@@ -182,6 +183,7 @@ static int v8_thread_pool_size = v8_default_thread_pool_size; - static bool prof_process = false; - static bool v8_is_profiling = false; +@@ -176,6 +177,7 @@ static bool v8_is_profiling = false; static bool node_is_initialized = false; + static uv_once_t init_modpending_once = UV_ONCE_INIT; + static uv_key_t thread_local_modpending; +static bool compile_mode = false; - static node_module* modpending; static node_module* modlist_builtin; static node_module* modlist_internal; -@@ -3190,7 +3192,8 @@ static void PrintHelp() { - " --experimental-modules experimental ES Module support\n" - " and caching modules\n" - #endif -- "\n" -+ " --compile-js compile JS to binary file\n" -+ "\n" - "Environment variables:\n" - "NODE_DEBUG ','-separated list of core modules\n" - " that should print debug information\n" -@@ -3501,6 +3504,8 @@ static void ParseArgs(int* argc, - config_expose_internals = true; - } else if (strcmp(arg, "--expose-http2") == 0 || - strcmp(arg, "--expose_http2") == 0) { -+ } else if (strcmp(arg, "--compile-js") == 0) { -+ compile_mode = true; - // Intentional non-op - } else if (strcmp(arg, "-") == 0) { - break; -@@ -4059,6 +4064,19 @@ Environment* CreateEnvironment(IsolateData* isolate_data, + static node_module* modlist_linked; +@@ -2797,6 +2799,19 @@ Environment* CreateEnvironment(IsolateData* isolate_data, return env; } @@ -111,16 +94,41 @@ index fcad018..ab9b36e 100644 void FreeEnvironment(Environment* env) { env->RunCleanup(); -@@ -4169,6 +4187,9 @@ inline int Start(uv_loop_t* event_loop, - isolate->SetAutorunMicrotasks(false); - isolate->SetFatalErrorHandler(OnFatalError); +@@ -2950,6 +2965,9 @@ inline int Start(uv_loop_t* event_loop, + if (isolate == nullptr) + return 12; // Signal internal error. + if (compile_mode) + CompileFile(argc, argv); + - if (track_heap_objects) { - isolate->GetHeapProfiler()->StartTrackingHeapObjects(true); - } + { + Mutex::ScopedLock scoped_lock(node_isolate_mutex); + CHECK_NULL(node_isolate); +diff --git a/src/node_options.cc b/src/node_options.cc +index 79dff7a..6950da5 100644 +--- a/src/node_options.cc ++++ b/src/node_options.cc +@@ -102,6 +102,8 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { + &EnvironmentOptions::experimental_worker, + kAllowedInEnvironment); + AddOption("--expose-internals", "", &EnvironmentOptions::expose_internals); ++ AddOption("--compile-js", "", &EnvironmentOptions::compile_js); ++ + AddOption("--loader", + "(with --experimental-modules) use the specified file as a " + "custom loader", +diff --git a/src/node_options.h b/src/node_options.h +index 4edec11..6058706 100644 +--- a/src/node_options.h ++++ b/src/node_options.h +@@ -72,6 +72,7 @@ class EnvironmentOptions : public Options { + bool experimental_vm_modules = false; + bool experimental_worker = false; + bool expose_internals = false; ++ bool compile_js = false; + bool no_deprecation = false; + bool no_force_async_hooks_checks = false; + bool no_warnings = false; diff --git a/src/precompile.cc b/src/precompile.cc new file mode 100644 index 0000000..149a0d0 diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0010-Add-instanceof-check-for-all-Timeout-methods.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0010-Add-instanceof-check-for-all-Timeout-methods.patch index b083df106..3a1ecf543 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0010-Add-instanceof-check-for-all-Timeout-methods.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0010-Add-instanceof-check-for-all-Timeout-methods.patch @@ -1,4 +1,4 @@ -From d1f90b41d25ae64815aa0d04bf75241c6a28c1c9 Mon Sep 17 00:00:00 2001 +From 6b26eb7290313d3d5e7dcbb2d5d9c46df9871e06 Mon Sep 17 00:00:00 2001 From: Sergii Babych Date: Thu, 20 Aug 2015 17:24:07 +0300 Subject: [PATCH] Add instanceof check for all 'Timeout' methods @@ -37,10 +37,10 @@ Reviewed-by: Tigran Avanesov 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/timers.js b/lib/timers.js -index e6655c2..da14c4b 100644 +index 784a005..f073329 100644 --- a/lib/timers.js +++ b/lib/timers.js -@@ -621,6 +621,15 @@ function unrefdHandle() { +@@ -532,6 +532,15 @@ function unrefdHandle(timer, now) { Timeout.prototype.unref = function() { @@ -56,7 +56,7 @@ index e6655c2..da14c4b 100644 if (this._handle) { this._handle.unref(); } else if (typeof this._onTimeout === 'function') { -@@ -648,12 +657,16 @@ Timeout.prototype.unref = function() { +@@ -560,12 +569,16 @@ Timeout.prototype.unref = function() { }; Timeout.prototype.ref = function() { @@ -72,12 +72,12 @@ index e6655c2..da14c4b 100644 + throw new Error(Timeout_call_context_error); this._onTimeout = null; if (this._handle) { - // Fewer checks may be possible, but these cover everything. + if (destroyHooksExist() && diff --git a/test/parallel/test-timers-unref.js b/test/parallel/test-timers-unref.js -index 9e5a422..160e768 100644 +index 8c4891f..454aad2 100644 --- a/test/parallel/test-timers-unref.js +++ b/test/parallel/test-timers-unref.js -@@ -75,6 +75,15 @@ const check_unref = setInterval(() => { +@@ -70,6 +70,15 @@ const check_unref = setInterval(() => { // See https://github.com/nodejs/node-v0.x-archive/issues/4261. { const t = setInterval(() => {}, 1); diff --git a/meta-webos/recipes-devtools/nodejs/nodejs/0012-Prevent-creating-usr-etc-in-native-sysroot.patch b/meta-webos/recipes-devtools/nodejs/nodejs/0011-Prevent-creating-usr-etc-in-native-sysroot.patch similarity index 97% rename from meta-webos/recipes-devtools/nodejs/nodejs/0012-Prevent-creating-usr-etc-in-native-sysroot.patch rename to meta-webos/recipes-devtools/nodejs/nodejs/0011-Prevent-creating-usr-etc-in-native-sysroot.patch index 20047d33b..9dac38bfb 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs/0012-Prevent-creating-usr-etc-in-native-sysroot.patch +++ b/meta-webos/recipes-devtools/nodejs/nodejs/0011-Prevent-creating-usr-etc-in-native-sysroot.patch @@ -1,4 +1,4 @@ -From 26b2697ee38aca6953a899caf78ae012587525e1 Mon Sep 17 00:00:00 2001 +From da7681cf53cbb854f4136e24029bc3bd6169ef5a Mon Sep 17 00:00:00 2001 From: Ievgen Sherstobitov Date: Wed, 23 Dec 2015 13:21:31 +0200 Subject: [PATCH] Prevent creating /usr/etc in native sysroot diff --git a/meta-webos/recipes-devtools/nodejs/nodejs_%.bbappend b/meta-webos/recipes-devtools/nodejs/nodejs_%.bbappend index 548e7124b..efd9fcfe9 100644 --- a/meta-webos/recipes-devtools/nodejs/nodejs_%.bbappend +++ b/meta-webos/recipes-devtools/nodejs/nodejs_%.bbappend @@ -5,20 +5,3 @@ EXTENDPRAUTO_append = "webos4" VIRTUAL-RUNTIME_bash ?= "bash" RDEPENDS_${PN}-npm_append_class-target = " ${VIRTUAL-RUNTIME_bash}" RDEPENDS_${PN}-npm_remove_class-target = "${@oe.utils.conditional('WEBOS_PREFERRED_PROVIDER_FOR_BASH', 'busybox', 'bash', '', d)}" - -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" - -SRC_URI_append = "\ - file://0001-Patch-on-Flush-function-for-CPU-ARM-added.patch \ - file://0002-implement-function-chroot-in-process-module.patch \ - file://0003-Adds-noexec-option-for-fork-and-spawn-APIs-of-nodejs.patch \ - file://0004-Fixes-process-pid-getter-to-always-get-actual-pid.patch \ - file://0005-Flush-processor-instruction-cash.patch \ - file://0006-Implement-initial-test-suit-for-forked-node.js.patch \ - file://0007-Optimize-V8-s-JSON-parser.patch \ - file://0008-Optimize-V8-s-JSON-parser-second-part.patch \ - file://0009-Provide-option-compile-js-to-node-for-.js-compilatio.patch \ - file://0010-Add-instanceof-check-for-all-Timeout-methods.patch \ - file://0012-Prevent-creating-usr-etc-in-native-sysroot.patch \ - file://0013-Use-human-readable-process-name-for-chrome-inspector.patch \ -"