summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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_