diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2025-03-27 16:28:56 +0100 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2025-03-27 16:28:56 +0100 |
commit | b0c1a12196e634d74bcf29997cf256ebc89cb6fb (patch) | |
tree | 67eefc1fe8988d78f76d1755c3534fbe7367e765 /quickjs.c | |
parent | d045a13b4be31f490c972887ae7464aabcad991a (diff) | |
download | quickjs-b0c1a12196e634d74bcf29997cf256ebc89cb6fb.tar.gz quickjs-b0c1a12196e634d74bcf29997cf256ebc89cb6fb.zip |
fixed set_date_field()
Diffstat (limited to 'quickjs.c')
-rw-r--r-- | quickjs.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -49241,7 +49241,7 @@ static JSValue set_date_field(JSContext *ctx, JSValueConst this_val, { // _field(obj, first_field, end_field, args, is_local) double fields[9]; - int res, first_field, end_field, is_local, i, n; + int res, first_field, end_field, is_local, i, n, res1; double d, a; d = NAN; @@ -49252,7 +49252,8 @@ static JSValue set_date_field(JSContext *ctx, JSValueConst this_val, res = get_date_fields(ctx, this_val, fields, is_local, first_field == 0); if (res < 0) return JS_EXCEPTION; - + res1 = res; + // Argument coercion is observable and must be done unconditionally. n = min_int(argc, end_field - first_field); for(i = 0; i < n; i++) { @@ -49262,6 +49263,10 @@ static JSValue set_date_field(JSContext *ctx, JSValueConst this_val, res = FALSE; fields[first_field + i] = trunc(a); } + + if (!res1) + return JS_NAN; /* thisTimeValue is NaN */ + if (res && argc > 0) d = set_date_fields(fields, is_local); |