summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2016-05-02 10:27:12 -0700
committerJames M Snell <jasnell@gmail.com>2016-05-17 11:05:18 -0700
commitdcccbfdc799d174901c29d82874457367231fec5 (patch)
treebb1a45d053b169af0b1662000d57e034e4422996 /src
parentf856234ffaa10441545c3b6ce420b247a17c06cf (diff)
downloadandroid-node-v8-dcccbfdc799d174901c29d82874457367231fec5.tar.gz
android-node-v8-dcccbfdc799d174901c29d82874457367231fec5.tar.bz2
android-node-v8-dcccbfdc799d174901c29d82874457367231fec5.zip
src: refactor require('constants')
The require('constants') module is currently undocumented and mashes together unrelated constants. This refactors the require('constants') in favor of distinct os.constants, fs.constants, and crypto.constants that are specific to the modules for which they are relevant. The next step is to document those within the specific modules. PR-URL: https://github.com/nodejs/node/pull/6534 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Robert Lindstaedt <robert.lindstaedt@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node.cc2
-rw-r--r--src/node_constants.cc30
-rw-r--r--src/node_constants.h2
3 files changed, 24 insertions, 10 deletions
diff --git a/src/node.cc b/src/node.cc
index e7c8eb177a..075fd1b81a 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -2509,7 +2509,7 @@ static void Binding(const FunctionCallbackInfo<Value>& args) {
cache->Set(module, exports);
} else if (!strcmp(*module_v, "constants")) {
exports = Object::New(env->isolate());
- DefineConstants(exports);
+ DefineConstants(env->isolate(), exports);
cache->Set(module, exports);
} else if (!strcmp(*module_v, "natives")) {
exports = Object::New(env->isolate());
diff --git a/src/node_constants.cc b/src/node_constants.cc
index 928502f6af..2e6be8df37 100644
--- a/src/node_constants.cc
+++ b/src/node_constants.cc
@@ -1,4 +1,6 @@
#include "node_constants.h"
+#include "env.h"
+#include "env-inl.h"
#include "uv.h"
@@ -1140,14 +1142,26 @@ void DefineCryptoConstants(Local<Object> target) {
#endif
}
-void DefineConstants(Local<Object> target) {
- DefineErrnoConstants(target);
- DefineWindowsErrorConstants(target);
- DefineSignalConstants(target);
- DefineOpenSSLConstants(target);
- DefineSystemConstants(target);
- DefineUVConstants(target);
- DefineCryptoConstants(target);
+void DefineConstants(v8::Isolate* isolate, Local<Object> target) {
+ Local<Object> os_constants = Object::New(isolate);
+ Local<Object> err_constants = Object::New(isolate);
+ Local<Object> sig_constants = Object::New(isolate);
+ Local<Object> fs_constants = Object::New(isolate);
+ Local<Object> crypto_constants = Object::New(isolate);
+
+ DefineErrnoConstants(err_constants);
+ DefineWindowsErrorConstants(err_constants);
+ DefineSignalConstants(sig_constants);
+ DefineUVConstants(os_constants);
+ DefineSystemConstants(fs_constants);
+ DefineOpenSSLConstants(crypto_constants);
+ DefineCryptoConstants(crypto_constants);
+
+ os_constants->Set(OneByteString(isolate, "errno"), err_constants);
+ os_constants->Set(OneByteString(isolate, "signals"), sig_constants);
+ target->Set(OneByteString(isolate, "os"), os_constants);
+ target->Set(OneByteString(isolate, "fs"), fs_constants);
+ target->Set(OneByteString(isolate, "crypto"), crypto_constants);
}
} // namespace node
diff --git a/src/node_constants.h b/src/node_constants.h
index a7c75c4eb2..133e68c192 100644
--- a/src/node_constants.h
+++ b/src/node_constants.h
@@ -34,7 +34,7 @@ namespace node {
extern const char* default_cipher_list;
#endif
-void DefineConstants(v8::Local<v8::Object> target);
+void DefineConstants(v8::Isolate* isolate, v8::Local<v8::Object> target);
} // namespace node
#endif // SRC_NODE_CONSTANTS_H_