return njs_trap(vm, NJS_TRAP_PRIMITIVE_ARG);
}
- time = args[1].data.u.date->time;
+ time = njs_date(&args[1])->time;
} else if (njs_is_string(&args[1])) {
time = njs_date_string_parse(&args[1]);
} else {
- time = args[1].data.u.number;
+ time = njs_number(&args[1]);
}
} else {
return njs_trap(vm, NJS_TRAP_NUMBER_ARG);
}
- num = args[i].data.u.number;
+ num = njs_number(&args[i]);
if (isnan(num)) {
time = num;
date->time = njs_timeclip(time);
- vm->retval.data.u.date = date;
- vm->retval.type = NJS_DATE;
- vm->retval.data.truth = 1;
+ njs_set_date(&vm->retval, date);
return NXT_OK;
}
return njs_trap(vm, NJS_TRAP_NUMBER_ARG);
}
- num = args[i].data.u.number;
+ num = njs_number(&args[i]);
if (isnan(num)) {
goto done;
njs_date_prototype_value_of(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
njs_index_t unused)
{
- njs_set_number(&vm->retval, args[0].data.u.date->time);
+ njs_set_number(&vm->retval, njs_date(&args[0])->time);
return NXT_OK;
}
njs_index_t unused)
{
return njs_date_string(vm, "%a %b %d %Y %T GMT%z (%Z)",
- args[0].data.u.date->time);
+ njs_date(&args[0])->time);
}
njs_date_prototype_to_date_string(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused)
{
- return njs_date_string(vm, "%a %b %d %Y", args[0].data.u.date->time);
+ return njs_date_string(vm, "%a %b %d %Y", njs_date(&args[0])->time);
}
njs_date_prototype_to_time_string(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused)
{
- return njs_date_string(vm, "%T GMT%z (%Z)", args[0].data.u.date->time);
+ return njs_date_string(vm, "%T GMT%z (%Z)", njs_date(&args[0])->time);
}
static const char *month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (!isnan(time)) {
clock = time / 1000;
u_char buf[NJS_ISO_DATE_TIME_LEN], *p;
struct tm tm;
- time = date->data.u.date->time;
+ time = njs_date(date)->time;
if (!isnan(time)) {
clock = time / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
{
double value;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
value = (int64_t) (value / 1000) % 60;
{
double value;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
value = (int64_t) value % 1000;
time_t clock;
struct tm tm;
- value = args[0].data.u.date->time;
+ value = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(value))) {
clock = value / 1000;
{
double time;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
if (nargs > 1) {
- time = args[1].data.u.number;
+ time = njs_number(&args[1]);
} else {
time = NAN;
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
{
double time;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
if (nargs > 1) {
- time = (int64_t) (time / 1000) * 1000 + args[1].data.u.number;
+ time = (int64_t) (time / 1000) * 1000 + njs_number(&args[1]);
} else {
time = NAN;
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
double time;
int64_t sec, ms;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
if (nargs > 1) {
- sec = args[1].data.u.number;
- ms = (nargs > 2) ? args[2].data.u.number : (int64_t) time % 1000;
+ sec = njs_number(&args[1]);
+ ms = (nargs > 2) ? njs_number(&args[2]) : (int64_t) time % 1000;
time = (int64_t) (time / 60000) * 60000 + sec * 1000 + ms;
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
int64_t ms;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
localtime_r(&clock, &tm);
- tm.tm_min = args[1].data.u.number;
+ tm.tm_min = njs_number(&args[1]);
if (nargs > 2) {
- tm.tm_sec = args[2].data.u.number;
+ tm.tm_sec = njs_number(&args[2]);
}
- ms = (nargs > 3) ? args[3].data.u.number : (int64_t) time % 1000;
+ ms = (nargs > 3) ? njs_number(&args[3]) : (int64_t) time % 1000;
time = njs_date_time(&tm, ms);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
double time;
int64_t clock, min, sec, ms;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
if (nargs > 1) {
clock = time / 1000;
- sec = (nargs > 2) ? args[2].data.u.number : clock % 60;
- min = args[1].data.u.number;
+ sec = (nargs > 2) ? njs_number(&args[2]) : clock % 60;
+ min = njs_number(&args[1]);
clock = clock / 3600 * 3600 + min * 60 + sec;
- ms = (nargs > 3) ? args[3].data.u.number : (int64_t) time % 1000;
+ ms = (nargs > 3) ? njs_number(&args[3]) : (int64_t) time % 1000;
time = clock * 1000 + ms;
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
int64_t ms;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
localtime_r(&clock, &tm);
- tm.tm_hour = args[1].data.u.number;
+ tm.tm_hour = njs_number(&args[1]);
if (nargs > 2) {
- tm.tm_min = args[2].data.u.number;
+ tm.tm_min = njs_number(&args[2]);
}
if (nargs > 3) {
- tm.tm_sec = args[3].data.u.number;
+ tm.tm_sec = njs_number(&args[3]);
}
- ms = (nargs > 4) ? args[4].data.u.number : (int64_t) time % 1000;
+ ms = (nargs > 4) ? njs_number(&args[4]) : (int64_t) time % 1000;
time = njs_date_time(&tm, ms);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
double time;
int64_t clock, hour, min, sec, ms;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
if (nargs > 1) {
clock = time / 1000;
- sec = (nargs > 3) ? args[3].data.u.number : clock % 60;
- min = (nargs > 2) ? args[2].data.u.number : clock / 60 % 60;
- hour = args[1].data.u.number;
+ sec = (nargs > 3) ? njs_number(&args[3]) : clock % 60;
+ min = (nargs > 2) ? njs_number(&args[2]) : clock / 60 % 60;
+ hour = njs_number(&args[1]);
clock = clock / 86400 * 86400 + hour * 3600 + min * 60 + sec;
- ms = (nargs > 4) ? args[4].data.u.number : (int64_t) time % 1000;
+ ms = (nargs > 4) ? njs_number(&args[4]) : (int64_t) time % 1000;
time = clock * 1000 + ms;
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
localtime_r(&clock, &tm);
- tm.tm_mday = args[1].data.u.number;
+ tm.tm_mday = njs_number(&args[1]);
time = njs_date_time(&tm, (int64_t) time % 1000);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
gmtime_r(&clock, &tm);
- tm.tm_mday = args[1].data.u.number;
+ tm.tm_mday = njs_number(&args[1]);
time = njs_date_utc_time(&tm, time);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
localtime_r(&clock, &tm);
- tm.tm_mon = args[1].data.u.number;
+ tm.tm_mon = njs_number(&args[1]);
if (nargs > 2) {
- tm.tm_mday = args[2].data.u.number;
+ tm.tm_mday = njs_number(&args[2]);
}
time = njs_date_time(&tm, (int64_t) time % 1000);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
gmtime_r(&clock, &tm);
- tm.tm_mon = args[1].data.u.number;
+ tm.tm_mon = njs_number(&args[1]);
if (nargs > 2) {
- tm.tm_mday = args[2].data.u.number;
+ tm.tm_mday = njs_number(&args[2]);
}
time = njs_date_utc_time(&tm, time);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
localtime_r(&clock, &tm);
- tm.tm_year = args[1].data.u.number - 1900;
+ tm.tm_year = njs_number(&args[1]) - 1900;
if (nargs > 2) {
- tm.tm_mon = args[2].data.u.number;
+ tm.tm_mon = njs_number(&args[2]);
}
if (nargs > 3) {
- tm.tm_mday = args[3].data.u.number;
+ tm.tm_mday = njs_number(&args[3]);
}
time = njs_date_time(&tm, (int64_t) time % 1000);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
time_t clock;
struct tm tm;
- time = args[0].data.u.date->time;
+ time = njs_date(&args[0])->time;
if (nxt_fast_path(!isnan(time))) {
clock = time / 1000;
gmtime_r(&clock, &tm);
- tm.tm_year = args[1].data.u.number - 1900;
+ tm.tm_year = njs_number(&args[1]) - 1900;
if (nargs > 2) {
- tm.tm_mon = args[2].data.u.number;
+ tm.tm_mon = njs_number(&args[2]);
}
if (nargs > 3) {
- tm.tm_mday = args[3].data.u.number;
+ tm.tm_mday = njs_number(&args[3]);
}
time = njs_date_utc_time(&tm, time);
}
}
- args[0].data.u.date->time = time;
+ njs_date(&args[0])->time = time;
njs_set_number(&vm->retval, time);
return NXT_OK;
lhq.key_hash = NJS_TO_ISO_STRING_HASH;
lhq.key = nxt_string_value("toISOString");
- prop = njs_object_property(vm, args[0].data.u.object, &lhq);
+ prop = njs_object_property(vm, njs_object(&args[0]), &lhq);
if (nxt_fast_path(prop != NULL && njs_is_function(&prop->value))) {
- return njs_function_replace(vm, prop->value.data.u.function,
+ return njs_function_replace(vm, njs_function(&prop->value),
args, nargs, retval);
}
}