Skip to content

Commit c3b431f

Browse files
Jake ChampionJakeChampion
authored andcommitted
move console namespace into it's own files
1 parent eeedd41 commit c3b431f

File tree

3 files changed

+52
-40
lines changed

3 files changed

+52
-40
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include "console.h"
2+
3+
namespace Console {
4+
template <const char *prefix, uint8_t prefix_len>
5+
static bool console_out(JSContext *cx, unsigned argc, JS::Value *vp) {
6+
JS::CallArgs args = CallArgsFromVp(argc, vp);
7+
size_t msg_len;
8+
JS::UniqueChars msg = encode(cx, args.get(0), &msg_len);
9+
if (!msg)
10+
return false;
11+
12+
printf("%s: %s\n", prefix, msg.get());
13+
fflush(stdout);
14+
15+
args.rval().setUndefined();
16+
return true;
17+
}
18+
19+
static constexpr char PREFIX_LOG[] = "Log";
20+
static constexpr char PREFIX_DEBUG[] = "Debug";
21+
static constexpr char PREFIX_INFO[] = "Info";
22+
static constexpr char PREFIX_WARN[] = "Warn";
23+
static constexpr char PREFIX_ERROR[] = "Error";
24+
25+
const JSFunctionSpec methods[] = {
26+
JS_FN("log", (console_out<PREFIX_LOG, 3>), 1, JSPROP_ENUMERATE),
27+
JS_FN("debug", (console_out<PREFIX_DEBUG, 5>), 1, JSPROP_ENUMERATE),
28+
JS_FN("info", (console_out<PREFIX_INFO, 4>), 1, JSPROP_ENUMERATE),
29+
JS_FN("warn", (console_out<PREFIX_WARN, 4>), 1, JSPROP_ENUMERATE),
30+
JS_FN("error", (console_out<PREFIX_ERROR, 5>), 1, JSPROP_ENUMERATE),
31+
JS_FS_END};
32+
33+
bool create(JSContext *cx, JS::HandleObject global) {
34+
JS::RootedObject console(cx, JS_NewPlainObject(cx));
35+
if (!console)
36+
return false;
37+
if (!JS_DefineProperty(cx, global, "console", console, JSPROP_ENUMERATE))
38+
return false;
39+
return JS_DefineFunctions(cx, console, methods);
40+
}
41+
} // namespace Console
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#ifndef JS_COMPUTE_RUNTIME_BUILTIN_CONSOLE_H
2+
#define JS_COMPUTE_RUNTIME_BUILTIN_CONSOLE_H
3+
4+
#include "builtin.h"
5+
6+
namespace Console {
7+
bool create(JSContext *cx, JS::HandleObject global);
8+
}
9+
10+
#endif

c-dependencies/js-compute-runtime/js-compute-builtins.cpp

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
#include "builtin.h"
3434
#include "builtins/compression-stream.h"
35+
#include "builtins/console.h"
3536
#include "builtins/decompression-stream.h"
3637
#include "builtins/env.h"
3738
#include "builtins/logger.h"
@@ -610,46 +611,6 @@ static bool create(JSContext *cx, HandleObject global) {
610611
}
611612
} // namespace Fastly
612613

613-
namespace Console {
614-
template <const char *prefix, uint8_t prefix_len>
615-
static bool console_out(JSContext *cx, unsigned argc, Value *vp) {
616-
CallArgs args = CallArgsFromVp(argc, vp);
617-
size_t msg_len;
618-
UniqueChars msg = encode(cx, args.get(0), &msg_len);
619-
if (!msg)
620-
return false;
621-
622-
printf("%s: %s\n", prefix, msg.get());
623-
fflush(stdout);
624-
625-
args.rval().setUndefined();
626-
return true;
627-
}
628-
629-
static constexpr char PREFIX_LOG[] = "Log";
630-
static constexpr char PREFIX_DEBUG[] = "Debug";
631-
static constexpr char PREFIX_INFO[] = "Info";
632-
static constexpr char PREFIX_WARN[] = "Warn";
633-
static constexpr char PREFIX_ERROR[] = "Error";
634-
635-
const JSFunctionSpec methods[] = {
636-
JS_FN("log", (console_out<PREFIX_LOG, 3>), 1, JSPROP_ENUMERATE),
637-
JS_FN("debug", (console_out<PREFIX_DEBUG, 5>), 1, JSPROP_ENUMERATE),
638-
JS_FN("info", (console_out<PREFIX_INFO, 4>), 1, JSPROP_ENUMERATE),
639-
JS_FN("warn", (console_out<PREFIX_WARN, 4>), 1, JSPROP_ENUMERATE),
640-
JS_FN("error", (console_out<PREFIX_ERROR, 5>), 1, JSPROP_ENUMERATE),
641-
JS_FS_END};
642-
643-
static bool create(JSContext *cx, HandleObject global) {
644-
RootedObject console(cx, JS_NewPlainObject(cx));
645-
if (!console)
646-
return false;
647-
if (!JS_DefineProperty(cx, global, "console", console, JSPROP_ENUMERATE))
648-
return false;
649-
return JS_DefineFunctions(cx, console, methods);
650-
}
651-
} // namespace Console
652-
653614
bool is_int_typed_array(JSObject *obj) {
654615
return JS_IsInt8Array(obj) || JS_IsUint8Array(obj) || JS_IsInt16Array(obj) ||
655616
JS_IsUint16Array(obj) || JS_IsInt32Array(obj) || JS_IsUint32Array(obj) ||

0 commit comments

Comments
 (0)