-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify JSAtom creation #412
base: master
Are you sure you want to change the base?
Conversation
- use single `JS_NewAtomRT` API to create atoms with or without `ctx` takes a UTF-8 string and flags, optionally detects numeric atoms - simplify `__JS_NewAtom - add `js_realloc_rt2` with slack handling - simplify `JS_NewAtomLen` and `JS_NewAtom̀` - simplify `JS_NewAtomUInt32`, `JS_NewAtomInt64`, `JS_NewClass`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I left some questions.
Return `JS_ATOM_NULL` if error. | ||
Exception is thrown if `ctx` is not a null pointer. | ||
*/ | ||
static JSAtom __JS_NewAtom(JSRuntime *rt, JSContext *ctx, JSString *str, int atom_type) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This reads a bit weird. When would one pass rt
but not ctx
?
memcpy(p->u.str8, str, len); | ||
p->u.str8[len] = '\0'; | ||
return __JS_NewAtom(rt, p, atom_type); | ||
if (is_digit(*str) && len < 11) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why 11?
p->u.str8[len] = '\0'; | ||
return __JS_NewAtom(rt, p, atom_type); | ||
if (is_digit(*str) && len < 11) { | ||
if (*str == '0') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the special case just for 0 and not for every single digit string?
Sorry for the delay! |
JS_NewAtomRT
API to create atoms with or withoutctx
takes a UTF-8 string and flags, optionally detects numeric atomsjs_realloc_rt2
with slack handlingJS_NewAtomLen
andJS_NewAtom̀
JS_NewAtomUInt32
,JS_NewAtomInt64
,JS_NewClass