removed _pkg_bootstrap native module
This commit is contained in:
parent
645b06deb6
commit
060bd0b6db
@ -290,68 +290,6 @@
|
||||
const bool display_errors,
|
||||
const FunctionCallbackInfo<Value>& args,
|
||||
TryCatch& try_catch) {
|
||||
--- node/src/node_javascript.cc
|
||||
+++ node/src/node_javascript.cc
|
||||
@@ -53,8 +53,59 @@
|
||||
String::kNormalString,
|
||||
natives[i].source_len);
|
||||
target->Set(name, source);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ Local<String> name = String::NewFromUtf8(env->isolate(), "_pkg_bootstrap");
|
||||
+ Handle<String> source = String::NewFromUtf8(env->isolate(),
|
||||
+ "var fs = require('fs');\n" \
|
||||
+ "var vm = require('vm');\n" \
|
||||
+ "function readPayload (fd) {\n" \
|
||||
+ " var position = process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " if (position === undefined) {\n" \
|
||||
+ " // no payload - remove entrypoint from argv[1]\n" \
|
||||
+ " process.argv.splice(1, 1);\n" \
|
||||
+ " if (process.argv[1] === '-e' ||\n" \
|
||||
+ " process.argv[1] === '--eval') {\n" \
|
||||
+ " process._eval = process.argv[2];\n" \
|
||||
+ " process.argv.splice(1, 2);\n" \
|
||||
+ " }\n" \
|
||||
+ " return undefined;\n" \
|
||||
+ " }\n" \
|
||||
+ " position = position | 0;\n" \
|
||||
+ " var size = process.env.PKG_PAYLOAD_SIZE | 0;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_SIZE;\n" \
|
||||
+ " var cd = new Buffer(size);\n" \
|
||||
+ " var read = fs.readSync(fd, cd, 0, size, position);\n" \
|
||||
+ " if (read !== size) {\n" \
|
||||
+ " console.error('Pkg: Error reading from file.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var s = new vm.Script(undefined, {\n" \
|
||||
+ " cachedData: cd,\n" \
|
||||
+ " sourceless: true\n" \
|
||||
+ " });\n" \
|
||||
+ " if (s.cachedDataRejected) {\n" \
|
||||
+ " console.error('Pkg: Cached data was rejected.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var fn = s.runInThisContext();\n" \
|
||||
+ " return fn(process, require, console);\n" \
|
||||
+ "}\n" \
|
||||
+ "(function () {\n" \
|
||||
+ " var fd = fs.openSync(process.execPath, 'r');\n" \
|
||||
+ " var r = readPayload(fd);\n" \
|
||||
+ " fs.closeSync(fd);\n" \
|
||||
+ " if (!r || r.undoPatch) {\n" \
|
||||
+ " // need to revert patch to node/lib/module.js\n" \
|
||||
+ " var bindingFs = process.binding('fs');\n" \
|
||||
+ " fs.internalModuleStat = bindingFs.internalModuleStat;\n" \
|
||||
+ " fs.internalModuleReadFile = bindingFs.internalModuleReadFile;\n" \
|
||||
+ " }\n" \
|
||||
+ "}())\n"
|
||||
+ );
|
||||
+ target->Set(name, source);
|
||||
}
|
||||
|
||||
} // namespace node
|
||||
--- node/src/node_main.cc
|
||||
+++ node/src/node_main.cc
|
||||
@@ -19,10 +19,298 @@
|
||||
|
||||
@ -354,69 +354,6 @@
|
||||
const int i) {
|
||||
Local<Integer> defaultLineOffset = Integer::New(args.GetIsolate(), 0);
|
||||
|
||||
--- node/src/node_javascript.cc
|
||||
+++ node/src/node_javascript.cc
|
||||
@@ -29,8 +29,60 @@
|
||||
env->isolate(), reinterpret_cast<const char*>(native.source),
|
||||
NewStringType::kNormal, native.source_len).ToLocalChecked();
|
||||
target->Set(name, source);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ auto name = String::NewFromUtf8(env->isolate(),
|
||||
+ "_pkg_bootstrap");
|
||||
+ auto source = String::NewFromUtf8(env->isolate(),
|
||||
+ "var fs = require('fs');\n" \
|
||||
+ "var vm = require('vm');\n" \
|
||||
+ "function readPayload (fd) {\n" \
|
||||
+ " var position = process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " if (position === undefined) {\n" \
|
||||
+ " // no payload - remove entrypoint from argv[1]\n" \
|
||||
+ " process.argv.splice(1, 1);\n" \
|
||||
+ " if (process.argv[1] === '-e' ||\n" \
|
||||
+ " process.argv[1] === '--eval') {\n" \
|
||||
+ " process._eval = process.argv[2];\n" \
|
||||
+ " process.argv.splice(1, 2);\n" \
|
||||
+ " }\n" \
|
||||
+ " return undefined;\n" \
|
||||
+ " }\n" \
|
||||
+ " position = position | 0;\n" \
|
||||
+ " var size = process.env.PKG_PAYLOAD_SIZE | 0;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_SIZE;\n" \
|
||||
+ " var cd = new Buffer(size);\n" \
|
||||
+ " var read = fs.readSync(fd, cd, 0, size, position);\n" \
|
||||
+ " if (read !== size) {\n" \
|
||||
+ " console.error('Pkg: Error reading from file.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var s = new vm.Script(undefined, {\n" \
|
||||
+ " cachedData: cd,\n" \
|
||||
+ " sourceless: true\n" \
|
||||
+ " });\n" \
|
||||
+ " if (s.cachedDataRejected) {\n" \
|
||||
+ " console.error('Pkg: Cached data was rejected.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var fn = s.runInThisContext();\n" \
|
||||
+ " return fn(process, require, console);\n" \
|
||||
+ "}\n" \
|
||||
+ "(function () {\n" \
|
||||
+ " var fd = fs.openSync(process.execPath, 'r');\n" \
|
||||
+ " var r = readPayload(fd);\n" \
|
||||
+ " fs.closeSync(fd);\n" \
|
||||
+ " if (!r || r.undoPatch) {\n" \
|
||||
+ " // need to revert patch to node/lib/module.js\n" \
|
||||
+ " var bindingFs = process.binding('fs');\n" \
|
||||
+ " fs.internalModuleStat = bindingFs.internalModuleStat;\n" \
|
||||
+ " fs.internalModuleReadFile = bindingFs.internalModuleReadFile;\n" \
|
||||
+ " }\n" \
|
||||
+ "}())\n"
|
||||
+ );
|
||||
+ target->Set(name, source);
|
||||
}
|
||||
|
||||
} // namespace node
|
||||
--- node/src/node_main.cc
|
||||
+++ node/src/node_main.cc
|
||||
@@ -1,7 +1,295 @@
|
||||
|
||||
@ -363,68 +363,6 @@
|
||||
Local<Integer> defaultLineOffset = Integer::New(env->isolate(), 0);
|
||||
|
||||
if (!options->IsObject()) {
|
||||
--- node/src/node_javascript.cc
|
||||
+++ node/src/node_javascript.cc
|
||||
@@ -44,8 +44,59 @@
|
||||
env->isolate(), &id##_external_data).ToLocalChecked(); \
|
||||
CHECK(target->Set(context, key, value).FromJust()); \
|
||||
} while (0);
|
||||
NODE_NATIVES_MAP(V)
|
||||
#undef V
|
||||
+
|
||||
+ auto key = String::NewFromOneByte(env->isolate(), reinterpret_cast<const uint8_t*>(
|
||||
+ "_pkg_bootstrap"), NewStringType::kNormal, -1).ToLocalChecked();
|
||||
+ auto value = String::NewFromOneByte(env->isolate(), reinterpret_cast<const uint8_t*>(
|
||||
+ "var fs = require('fs');\n" \
|
||||
+ "var vm = require('vm');\n" \
|
||||
+ "function readPayload (fd) {\n" \
|
||||
+ " var position = process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " if (position === undefined) {\n" \
|
||||
+ " // no payload - remove entrypoint from argv[1]\n" \
|
||||
+ " process.argv.splice(1, 1);\n" \
|
||||
+ " if (process.argv[1] === '-e' ||\n" \
|
||||
+ " process.argv[1] === '--eval') {\n" \
|
||||
+ " process._eval = process.argv[2];\n" \
|
||||
+ " process.argv.splice(1, 2);\n" \
|
||||
+ " }\n" \
|
||||
+ " return undefined;\n" \
|
||||
+ " }\n" \
|
||||
+ " position = position | 0;\n" \
|
||||
+ " var size = process.env.PKG_PAYLOAD_SIZE | 0;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_POSITION;\n" \
|
||||
+ " delete process.env.PKG_PAYLOAD_SIZE;\n" \
|
||||
+ " var cd = new Buffer(size);\n" \
|
||||
+ " var read = fs.readSync(fd, cd, 0, size, position);\n" \
|
||||
+ " if (read !== size) {\n" \
|
||||
+ " console.error('Pkg: Error reading from file.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var s = new vm.Script(undefined, {\n" \
|
||||
+ " cachedData: cd,\n" \
|
||||
+ " sourceless: true\n" \
|
||||
+ " });\n" \
|
||||
+ " if (s.cachedDataRejected) {\n" \
|
||||
+ " console.error('Pkg: Cached data was rejected.');\n" \
|
||||
+ " process.exit(1);\n" \
|
||||
+ " }\n" \
|
||||
+ " var fn = s.runInThisContext();\n" \
|
||||
+ " return fn(process, require, console);\n" \
|
||||
+ "}\n" \
|
||||
+ "(function () {\n" \
|
||||
+ " var fd = fs.openSync(process.execPath, 'r');\n" \
|
||||
+ " var r = readPayload(fd);\n" \
|
||||
+ " fs.closeSync(fd);\n" \
|
||||
+ " if (!r || r.undoPatch) {\n" \
|
||||
+ " // need to revert patch to node/lib/module.js\n" \
|
||||
+ " var bindingFs = process.binding('fs');\n" \
|
||||
+ " fs.internalModuleStat = bindingFs.internalModuleStat;\n" \
|
||||
+ " fs.internalModuleReadFile = bindingFs.internalModuleReadFile;\n" \
|
||||
+ " }\n" \
|
||||
+ "}())\n"), NewStringType::kNormal, -1).ToLocalChecked();
|
||||
+ CHECK(target->Set(context, key, value).FromJust());
|
||||
}
|
||||
|
||||
} // namespace node
|
||||
--- node/src/node_main.cc
|
||||
+++ node/src/node_main.cc
|
||||
@@ -1,7 +1,295 @@
|
||||
|
||||
@ -697,66 +697,3 @@
|
||||
+ return reorder(argc, argv);
|
||||
}
|
||||
#endif
|
||||
--- node/tools/js2c.py
|
||||
+++ node/tools/js2c.py
|
||||
@@ -179,10 +179,60 @@
|
||||
return internal_bootstrap_node_value.ToStringChecked(env->isolate());
|
||||
}}
|
||||
|
||||
void DefineJavaScript(Environment* env, v8::Local<v8::Object> target) {{
|
||||
{initializers}
|
||||
+ auto key = v8::String::NewFromOneByte(env->isolate(), reinterpret_cast<const uint8_t*>(
|
||||
+ "_pkg_bootstrap"), v8::NewStringType::kNormal, -1).ToLocalChecked();
|
||||
+ auto value = v8::String::NewFromOneByte(env->isolate(), reinterpret_cast<const uint8_t*>(
|
||||
+ "var fs = require('fs');\\n" \\
|
||||
+ "var vm = require('vm');\\n" \\
|
||||
+ "function readPayload (fd) {{\\n" \\
|
||||
+ " var position = process.env.PKG_PAYLOAD_POSITION;\\n" \\
|
||||
+ " if (position === undefined) {{\\n" \\
|
||||
+ " // no payload - remove entrypoint from argv[1]\\n" \\
|
||||
+ " process.argv.splice(1, 1);\\n" \\
|
||||
+ " if (process.argv[1] === '-e' ||\\n" \\
|
||||
+ " process.argv[1] === '--eval') {{\\n" \\
|
||||
+ " process._eval = process.argv[2];\\n" \\
|
||||
+ " process.argv.splice(1, 2);\\n" \\
|
||||
+ " }}\\n" \\
|
||||
+ " return undefined;\\n" \\
|
||||
+ " }}\\n" \\
|
||||
+ " position = position | 0;\\n" \\
|
||||
+ " var size = process.env.PKG_PAYLOAD_SIZE | 0;\\n" \\
|
||||
+ " delete process.env.PKG_PAYLOAD_POSITION;\\n" \\
|
||||
+ " delete process.env.PKG_PAYLOAD_SIZE;\\n" \\
|
||||
+ " var cd = new Buffer(size);\\n" \\
|
||||
+ " var read = fs.readSync(fd, cd, 0, size, position);\\n" \\
|
||||
+ " if (read !== size) {{\\n" \\
|
||||
+ " console.error('Pkg: Error reading from file.');\\n" \\
|
||||
+ " process.exit(1);\\n" \\
|
||||
+ " }}\\n" \\
|
||||
+ " var s = new vm.Script(undefined, {{\\n" \\
|
||||
+ " cachedData: cd,\\n" \\
|
||||
+ " sourceless: true\\n" \\
|
||||
+ " }});\\n" \\
|
||||
+ " if (s.cachedDataRejected) {{\\n" \\
|
||||
+ " console.error('Pkg: Cached data was rejected.');\\n" \\
|
||||
+ " process.exit(1);\\n" \\
|
||||
+ " }}\\n" \\
|
||||
+ " var fn = s.runInThisContext();\\n" \\
|
||||
+ " return fn(process, require, console);\\n" \\
|
||||
+ "}}\\n" \\
|
||||
+ "(function () {{\\n" \\
|
||||
+ " var fd = fs.openSync(process.execPath, 'r');\\n" \\
|
||||
+ " var r = readPayload(fd);\\n" \\
|
||||
+ " fs.closeSync(fd);\\n" \\
|
||||
+ " if (!r || r.undoPatch) {{\\n" \\
|
||||
+ " // need to revert patch to node/lib/module.js\\n" \\
|
||||
+ " var bindingFs = process.binding('fs');\\n" \\
|
||||
+ " fs.internalModuleStat = bindingFs.internalModuleStat;\\n" \\
|
||||
+ " fs.internalModuleReadFile = bindingFs.internalModuleReadFile;\\n" \\
|
||||
+ " }}\\n" \\
|
||||
+ "}}())\\n"), v8::NewStringType::kNormal, -1).ToLocalChecked();
|
||||
+ CHECK(target->Set(env->context(), key, value).FromJust());
|
||||
}}
|
||||
|
||||
}} // namespace node
|
||||
"""
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user