Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
b187d16
src: externalized messages support, 2nd pass
jasnell Jan 7, 2016
6401743
src: externalize debugger.js messages
jasnell Jan 8, 2016
3fcddc4
src: externalized _debug_agent.js messages
jasnell Jan 8, 2016
503092e
test, src: add test-internal-messages.js, address nits
jasnell Jan 8, 2016
4359ec9
src: fix lint issue
jasnell Jan 8, 2016
c48ec49
src: externalize lib/_http_agent.js messages
jasnell Jan 8, 2016
112b084
src: externalize _http_client.js messages
jasnell Jan 8, 2016
8538841
src: externalize _http_outgoing.js messages, address nits
jasnell Jan 8, 2016
ff170ed
src: remove NODE_ prefix from message identifiers
jasnell Jan 8, 2016
bdca377
src: externalize _http_server.js messages
jasnell Jan 8, 2016
b270571
src: externalize _linklist.js messages
jasnell Jan 8, 2016
1b1e228
src: externalize _stream_readable.js messages
jasnell Jan 8, 2016
ee2228d
src: externalize _stream_transform.js messages
jasnell Jan 8, 2016
71d1fae
src: externalize _stream_wrap.js messages
jasnell Jan 8, 2016
eb882bc
src: externalized _stream_writable.js messages
jasnell Jan 8, 2016
0de2994
tools: enable restParams for eslint
jasnell Jan 8, 2016
0f0298e
src: externalize _tls_legacy.js messages, refactor debug
jasnell Jan 8, 2016
f095579
src: externalize _tls_wrap.js messages
jasnell Jan 9, 2016
62f6ec9
src: externalize assert.js messages
jasnell Jan 9, 2016
5d73fb3
src: externalize buffer.js messages
jasnell Jan 9, 2016
b1bc41f
src: externalize child-process.js messages
jasnell Jan 9, 2016
018472b
src: externalize cluster.js messages
jasnell Jan 9, 2016
7aa5d4f
src: externalize console.js messages
jasnell Jan 9, 2016
20640e8
src: externalize crypto.js messages
jasnell Jan 9, 2016
78b9090
src: externalize dgram.js messages
jasnell Jan 9, 2016
82679a5
src: externalize dns.js messages
jasnell Jan 9, 2016
649721b
src: externalize events.js messages
jasnell Jan 9, 2016
11b96dc
src: externalize fs.js messages
jasnell Jan 9, 2016
abc08a9
src: externalize http.js messages
jasnell Jan 9, 2016
0b9c3af
src: externalize https.js messages
jasnell Jan 9, 2016
0e8b40a
src: externalize module.js messages
jasnell Jan 9, 2016
650ab1c
src: externalize net.js messages
jasnell Jan 9, 2016
d89c414
src: externalize os.js messages
jasnell Jan 9, 2016
181e5c6
src: externalize path.js messages
jasnell Jan 9, 2016
b1ca5e1
src: externalize punycode.js messages
jasnell Jan 9, 2016
55fa5d8
src: externalize readline.js messages
jasnell Jan 9, 2016
5f4861d
src: externalize repl.js messages
jasnell Jan 9, 2016
67185ec
src: externalize string_decoder.js messages
jasnell Jan 9, 2016
f0c5782
src: externalize sys.js messages
jasnell Jan 9, 2016
497329f
src: externalized timers.js messages
jasnell Jan 9, 2016
e142e8a
src: externalize tls.js messages
jasnell Jan 9, 2016
678e8e8
src: externalize url.js messages
jasnell Jan 9, 2016
0a197c8
src: externalize util.js messages
jasnell Jan 9, 2016
cd4db97
src: externalize zlib.js messages
jasnell Jan 9, 2016
61240ea
src: externalize internal/child_process.js messages
jasnell Jan 9, 2016
259a36d
src: externalize internal/repl.js messages
jasnell Jan 9, 2016
96aa61f
src: externalize internal/socket_list.js messages
jasnell Jan 9, 2016
b885af3
src: externalize internal/v8_prof_polyfill.js messages
jasnell Jan 9, 2016
924aa9d
src: externalize additional messages missed
jasnell Jan 9, 2016
086bd73
src: avoid runtime calls
jasnell Jan 9, 2016
46fcb2d
src: code cleanup
jasnell Jan 9, 2016
edcb53b
src: refactor I18N.Error, I18N.TypeError and I18N.RangeError
jasnell Jan 10, 2016
42b7c7f
src: internal/messages.js code cleanup
jasnell Jan 10, 2016
21b1d95
src: begin externalizing src/* messages
jasnell Jan 10, 2016
5545855
src: externalize more native strings
jasnell Jan 11, 2016
08866a3
src: support varargs in messages, externalize src/node_dtrace.cc
jasnell Jan 11, 2016
44cc074
src: refactor macros to make env explicit, externalize node_file.cc
jasnell Jan 11, 2016
a5d97de
src: externalize additional src/*.cc files
jasnell Jan 11, 2016
9fc6ec1
src: externalize remaining errors in src/*.cc
jasnell Jan 11, 2016
92df8e6
src: externalize node.cc messages and print help, cleanups
jasnell Jan 11, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
src: externalize additional src/*.cc files
  • Loading branch information
jasnell committed Jan 11, 2016
commit a5d97de810728c4e7791a127f7b97420f453fd6a
13 changes: 13 additions & 0 deletions src/messages/en/messages.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
// The messages used in src/*.cc
// These are used only within the Node.js native source

#define STR_CONVERT_ARGS_TO_UTF8_FAIL "Could not convert arguments to utf8."
#define STR_CALLBACK_NOT_ASSIGNED \
"init callback is not assigned to a function"
#define STR_HOOKSSHOULDNOTBESET \
Expand Down Expand Up @@ -200,6 +201,18 @@
#define STR_MTIME_REQUIRED "mtime required"
#define STR_ATIME_NUMBER "atime must be a number"
#define STR_MTIME_NUMBER "mtime must be a number"
#define STR_OBJ_OBJECT "obj must be an object"
#define STR_NAME_STRING "name must be a string"
#define STR_V8_FLAG_REQUIRED "v8 flag is required"
#define STR_V8_FLAG_STRING "v8 flag must be a string"
#define STR_UNEXPECTED_EOF "unexpected end of file"
#define STR_MISSING_DICTIONARY "Missing dictionary"
#define STR_BAD_DICTIONARY "Bad dictionary"
#define STR_ZLIB_ERROR "Zlib error"
#define STR_INIT_ERROR "Init error"
#define STR_FAILED_TO_SET_DICTIONARY "Failed to set dictionary"
#define STR_FAILED_TO_SET_PARAMETERS "Failed to set parameters"
#define STR_FAILED_TO_RESET_STREAM "Failed to reset stream"

// The messages used in lib/*.js
// These are exposes as constants on require('internal/messages')
Expand Down
120 changes: 58 additions & 62 deletions src/node_lttng.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,76 +37,72 @@ using v8::Object;
using v8::String;
using v8::Value;

#define SLURP_STRING(obj, member, valp) \
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain string member " #member); \
} \
node::Utf8Value _##member(env->isolate(), \
obj->Get(OneByteString(env->isolate(), #member))); \
if ((*(const char **)valp = *_##member) == nullptr) \
#define SLURP_STRING(obj, member, valp) \
if (!(obj)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_OBJECT_TO_CONTAIN_TYPED_MEMBER, \
#obj, "string", #member); \
} \
node::Utf8Value _##member(env->isolate(), \
obj->Get(OneByteString(env->isolate(), #member))); \
if ((*(const char **)valp = *_##member) == nullptr) \
*(const char **)valp = "<unknown>";

#define SLURP_INT(obj, member, valp) \
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain integer member " #member); \
} \
*valp = obj->Get(OneByteString(env->isolate(), #member)) \
#define SLURP_INT(obj, member, valp) \
if (!(obj)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_OBJECT_TO_CONTAIN_TYPED_MEMBER, \
#obj, "integer", #member); \
} \
*valp = obj->Get(OneByteString(env->isolate(), #member)) \
->ToInteger(env->isolate())->Value();

#define SLURP_OBJECT(obj, member, valp) \
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain object member " #member); \
} \
#define SLURP_OBJECT(obj, member, valp) \
if (!(obj)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_OBJECT_TO_CONTAIN_TYPED_MEMBER, \
#obj, "object", #member); \
} \
*valp = Local<Object>::Cast(obj->Get(OneByteString(env->isolate(), #member)));

#define SLURP_CONNECTION(arg, conn) \
if (!(arg)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg " to be a connection object"); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
Local<Value> _handle = \
(_##conn)->Get(FIXED_ONE_BYTE_STRING(env->isolate(), "_handle")); \
if (_handle->IsObject()) { \
SLURP_INT(_handle.As<Object>(), fd, &conn.fd); \
} else { \
conn.fd = -1; \
} \
SLURP_STRING(_##conn, remoteAddress, &conn.remote); \
SLURP_INT(_##conn, remotePort, &conn.port); \
#define SLURP_CONNECTION(arg, conn) \
if (!(arg)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_CONNECTION_OBJECT, #arg); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
Local<Value> _handle = \
(_##conn)->Get(FIXED_ONE_BYTE_STRING(env->isolate(), "_handle")); \
if (_handle->IsObject()) { \
SLURP_INT(_handle.As<Object>(), fd, &conn.fd); \
} else { \
conn.fd = -1; \
} \
SLURP_STRING(_##conn, remoteAddress, &conn.remote); \
SLURP_INT(_##conn, remotePort, &conn.port); \
SLURP_INT(_##conn, bufferSize, &conn.buffered);

#define SLURP_CONNECTION_HTTP_CLIENT(arg, conn) \
if (!(arg)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg " to be a connection object"); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_STRING(_##conn, host, &conn.remote); \
SLURP_INT(_##conn, port, &conn.port); \
#define SLURP_CONNECTION_HTTP_CLIENT(arg, conn) \
if (!(arg)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_CONNECTION_OBJECT, #arg); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_STRING(_##conn, host, &conn.remote); \
SLURP_INT(_##conn, port, &conn.port); \
SLURP_INT(_##conn, bufferSize, &conn.buffered);

#define SLURP_CONNECTION_HTTP_CLIENT_RESPONSE(arg0, arg1, conn) \
if (!(arg0)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg0 " to be a connection object"); \
} \
if (!(arg1)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg1 " to be a connection object"); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg0); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_INT(_##conn, bufferSize, &conn.buffered); \
_##conn = Local<Object>::Cast(arg1); \
SLURP_STRING(_##conn, host, &conn.remote); \
#define SLURP_CONNECTION_HTTP_CLIENT_RESPONSE(arg0, arg1, conn) \
if (!(arg0)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_CONNECTION_OBJECT, #arg0); \
} \
if (!(arg1)->IsObject()) { \
return VTHROWI18NERROR(env, EXPECTED_CONNECTION_OBJECT, #arg1); \
} \
node_lttng_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg0); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_INT(_##conn, bufferSize, &conn.buffered); \
_##conn = Local<Object>::Cast(arg1); \
SLURP_STRING(_##conn, host, &conn.remote); \
SLURP_INT(_##conn, port, &conn.port);


Expand Down Expand Up @@ -148,8 +144,8 @@ void LTTNG_HTTP_SERVER_REQUEST(const FunctionCallbackInfo<Value>& args) {
SLURP_OBJECT(arg0, headers, &headers);

if (!(headers)->IsObject()) {
return env->ThrowError(
"expected object for request to contain string member headers");
return THROWI18NERROR(env,
EXPECTED_OBJECT_FOR_REQUEST_TO_CONTAIN_STRING_HEADERS);
}

Local<Value> strfwdfor = headers->Get(env->x_forwarded_string());
Expand Down
4 changes: 2 additions & 2 deletions src/node_main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ int wmain(int argc, wchar_t *wargv[]) {
nullptr);
if (size == 0) {
// This should never happen.
fprintf(stderr, "Could not convert arguments to utf8.");
fprintf(stderr, STR_CONVERT_ARGS_TO_UTF8_FAIL);
exit(1);
}
// Do the actual conversion
Expand All @@ -31,7 +31,7 @@ int wmain(int argc, wchar_t *wargv[]) {
nullptr);
if (result == 0) {
// This should never happen.
fprintf(stderr, "Could not convert arguments to utf8.");
fprintf(stderr, STR_CONVERT_ARGS_TO_UTF8_FAIL);
exit(1);
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/node_util.cc
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ static void GetHiddenValue(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);

if (!args[0]->IsObject())
return env->ThrowTypeError("obj must be an object");
return THROWI18NTYPEERROR(env, OBJ_OBJECT);

if (!args[1]->IsString())
return env->ThrowTypeError("name must be a string");
return THROWI18NTYPEERROR(env, NAME_STRING);

Local<Object> obj = args[0].As<Object>();
Local<String> name = args[1].As<String>();
Expand All @@ -56,10 +56,10 @@ static void SetHiddenValue(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);

if (!args[0]->IsObject())
return env->ThrowTypeError("obj must be an object");
return THROWI18NTYPEERROR(env, OBJ_OBJECT);

if (!args[1]->IsString())
return env->ThrowTypeError("name must be a string");
return THROWI18NTYPEERROR(env, NAME_STRING);

Local<Object> obj = args[0].As<Object>();
Local<String> name = args[1].As<String>();
Expand Down
4 changes: 2 additions & 2 deletions src/node_v8.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ void SetFlagsFromString(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);

if (args.Length() < 1)
return env->ThrowTypeError("v8 flag is required");
return THROWI18NTYPEERROR(env, V8_FLAG_REQUIRED);
if (!args[0]->IsString())
return env->ThrowTypeError("v8 flag must be a string");
return THROWI18NTYPEERROR(env, V8_FLAG_STRING);

String::Utf8Value flags(args[0]);
V8::SetFlagsFromString(*flags, flags.length());
Expand Down
20 changes: 10 additions & 10 deletions src/node_zlib.cc
Original file line number Diff line number Diff line change
Expand Up @@ -273,21 +273,21 @@ class ZCtx : public AsyncWrap {
case Z_OK:
case Z_BUF_ERROR:
if (ctx->strm_.avail_out != 0 && ctx->flush_ == Z_FINISH) {
ZCtx::Error(ctx, "unexpected end of file");
ZCtx::Error(ctx, STR_UNEXPECTED_EOF);
return false;
}
case Z_STREAM_END:
// normal statuses, not fatal
break;
case Z_NEED_DICT:
if (ctx->dictionary_ == nullptr)
ZCtx::Error(ctx, "Missing dictionary");
ZCtx::Error(ctx, STR_MISSING_DICTIONARY);
else
ZCtx::Error(ctx, "Bad dictionary");
ZCtx::Error(ctx, STR_BAD_DICTIONARY);
return false;
default:
// something else.
ZCtx::Error(ctx, "Zlib error");
ZCtx::Error(ctx, STR_ZLIB_ERROR);
return false;
}

Expand Down Expand Up @@ -353,12 +353,12 @@ class ZCtx : public AsyncWrap {
Environment* env = Environment::GetCurrent(args);

if (args.Length() < 1 || !args[0]->IsInt32()) {
return env->ThrowTypeError("Bad argument");
return THROWI18NTYPEERROR(env, BAD_ARGUMENT);
}
node_zlib_mode mode = static_cast<node_zlib_mode>(args[0]->Int32Value());

if (mode < DEFLATE || mode > UNZIP) {
return env->ThrowTypeError("Bad argument");
return THROWI18NTYPEERROR(env, BAD_ARGUMENT);
}

new ZCtx(env, args.This(), mode);
Expand Down Expand Up @@ -468,7 +468,7 @@ class ZCtx : public AsyncWrap {
}

if (ctx->err_ != Z_OK) {
ZCtx::Error(ctx, "Init error");
ZCtx::Error(ctx, STR_INIT_ERROR);
}


Expand Down Expand Up @@ -497,7 +497,7 @@ class ZCtx : public AsyncWrap {
}

if (ctx->err_ != Z_OK) {
ZCtx::Error(ctx, "Failed to set dictionary");
ZCtx::Error(ctx, STR_FAILED_TO_SET_DICTIONARY);
}
}

Expand All @@ -514,7 +514,7 @@ class ZCtx : public AsyncWrap {
}

if (ctx->err_ != Z_OK && ctx->err_ != Z_BUF_ERROR) {
ZCtx::Error(ctx, "Failed to set parameters");
ZCtx::Error(ctx, STR_FAILED_TO_SET_PARAMETERS);
}
}

Expand All @@ -535,7 +535,7 @@ class ZCtx : public AsyncWrap {
}

if (ctx->err_ != Z_OK) {
ZCtx::Error(ctx, "Failed to reset stream");
ZCtx::Error(ctx, STR_FAILED_TO_RESET_STREAM);
}
}

Expand Down