-
Notifications
You must be signed in to change notification settings - Fork 227
Simplify JSAtom creation #412
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
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`
saghul
left a comment
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! |
|
Needs a rebase and conflict resolution before it can land but I'm not really sure what value these changes bring. What gets better/faster/stronger? |
|
I don’t really understand why they made those changes, but:
Passing the |
|
I think we better close this. |
JS_NewAtomRTAPI to create atoms with or withoutctxtakes a UTF-8 string and flags, optionally detects numeric atomsjs_realloc_rt2with slack handlingJS_NewAtomLenandJS_NewAtom̀JS_NewAtomUInt32,JS_NewAtomInt64,JS_NewClass