Skip to content
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

Macros #3

Closed
cpq opened this issue Aug 22, 2014 · 4 comments
Closed

Macros #3

cpq opened this issue Aug 22, 2014 · 4 comments
Labels

Comments

@cpq
Copy link
Member

cpq commented Aug 22, 2014

TRACE_OBJ, MKOBJ, SET_RO_PROP_V, SET_RO_PROP2, SET_RO_PROP, SET_PROP_FUNC, SET_METHOD
По этим макросам я написал комментарии в internal.h.

По поводу properties: read-only property я реализовал как функцию которую можно установить макросом SET_PROP_FUNC. Но честно говоря мне не очень нравится этот подход. Такую функцию нельзя использовать как setter, а только как getter. Можно подправить парсер и при присваивании проверять, не присваивается ли значение атрибуту которое на самом деле такая property function, и если да, вызвать функцию с аргументами. Но можно придумать и какой-то другой вариант. Например, в каждом объекте тупо добавлять такие атрибуты - но потом за ними придется следить (например строка меняется - нужно изменить атрибут length и тп).

Про флаги: да, мне кажется битовые поля удобнее флагов.
Только зачем их заворачивать в union? Не проще просто

    struct v7_val {
       ...
       unsigned foo:1; 
       unsigned bar:1; 
    }
@cpq cpq added the question label Aug 22, 2014
@vrz
Copy link
Contributor

vrz commented Aug 22, 2014

в имеющемся коде уже были использованы маски поэтому я и использовал union, чтобы остальные файлы не трогать

@vrz
Copy link
Contributor

vrz commented Aug 23, 2014

По поводу SET_PROP_FUNC. Я думаю есть резон подправить парсер чтобы устанавливаемая этим макросом функция работала как setter, и как getter. А является ли property read-only или нет можно определять кодом функции. И не надо будет ничего парсером отслеживать.

@cpq
Copy link
Member Author

cpq commented Aug 23, 2014

SGTM (sounds good to me). Если есть желание парсер поменять - welcome, желательно отдельным PR.

@vrz
Copy link
Contributor

vrz commented Oct 26, 2014

Я реализовал функционал setter/getter.
Без него неудобно было реализовывать RegExp.lastIndex.
см. на моём форке, бранч: setter_getter.

@cpq cpq closed this as completed Nov 1, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants