Skip to content

Commit da8668c

Browse files
Jake ChampionJakeChampion
authored andcommitted
refactor console to extend from BuiltinNoConstructor class
1 parent 0107766 commit da8668c

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "console.h"
22

3-
namespace Console {
3+
namespace builtins {
4+
45
template <const char *prefix, uint8_t prefix_len>
56
static bool console_out(JSContext *cx, unsigned argc, JS::Value *vp) {
67
JS::CallArgs args = CallArgsFromVp(argc, vp);
@@ -32,20 +33,22 @@ static constexpr char PREFIX_INFO[] = "Info";
3233
static constexpr char PREFIX_WARN[] = "Warn";
3334
static constexpr char PREFIX_ERROR[] = "Error";
3435

35-
const JSFunctionSpec methods[] = {
36+
const JSFunctionSpec Console::methods[] = {
3637
JS_FN("log", (console_out<PREFIX_LOG, 3>), 1, JSPROP_ENUMERATE),
3738
JS_FN("debug", (console_out<PREFIX_DEBUG, 5>), 1, JSPROP_ENUMERATE),
3839
JS_FN("info", (console_out<PREFIX_INFO, 4>), 1, JSPROP_ENUMERATE),
3940
JS_FN("warn", (console_out<PREFIX_WARN, 4>), 1, JSPROP_ENUMERATE),
4041
JS_FN("error", (console_out<PREFIX_ERROR, 5>), 1, JSPROP_ENUMERATE),
4142
JS_FS_END};
4243

43-
bool create(JSContext *cx, JS::HandleObject global) {
44+
const JSPropertySpec Console::properties[] = {JS_PS_END};
45+
46+
bool Console::create(JSContext *cx, JS::HandleObject global) {
4447
JS::RootedObject console(cx, JS_NewPlainObject(cx));
4548
if (!console)
4649
return false;
4750
if (!JS_DefineProperty(cx, global, "console", console, JSPROP_ENUMERATE))
4851
return false;
4952
return JS_DefineFunctions(cx, console, methods);
5053
}
51-
} // namespace Console
54+
} // namespace builtins

c-dependencies/js-compute-runtime/builtins/console.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,19 @@
33

44
#include "builtin.h"
55

6-
namespace Console {
7-
bool create(JSContext *cx, JS::HandleObject global);
8-
}
6+
namespace builtins {
7+
8+
class Console : public BuiltinNoConstructor<Console> {
9+
private:
10+
public:
11+
static constexpr const char *class_name = "Console";
12+
enum Slots { Count };
13+
static const JSFunctionSpec methods[];
14+
static const JSPropertySpec properties[];
15+
16+
static bool create(JSContext *cx, JS::HandleObject global);
17+
};
18+
19+
} // namespace builtins
920

1021
#endif

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4887,7 +4887,7 @@ bool define_fastly_sys(JSContext *cx, HandleObject global) {
48874887

48884888
if (!builtins::Fastly::create(cx, global))
48894889
return false;
4890-
if (!Console::create(cx, global))
4890+
if (!builtins::Console::create(cx, global))
48914891
return false;
48924892
if (!builtins::Crypto::create(cx, global))
48934893
return false;

0 commit comments

Comments
 (0)