fixed define own property with writable=false on module namespace

This commit is contained in:
Fabrice Bellard
2023-12-22 11:04:22 +01:00
parent c3599515c8
commit 3ba181e6c6
2 changed files with 7 additions and 4 deletions

View File

@@ -9081,15 +9081,19 @@ int JS_DefineProperty(JSContext *ctx, JSValueConst this_obj,
spaces. */
if (!js_same_value(ctx, val, *pr->u.var_ref->pvalue))
goto not_configurable;
} else {
/* update the reference */
set_value(ctx, pr->u.var_ref->pvalue,
JS_DupValue(ctx, val));
}
/* update the reference */
set_value(ctx, pr->u.var_ref->pvalue,
JS_DupValue(ctx, val));
}
/* if writable is set to false, no longer a
reference (for mapped arguments) */
if ((flags & (JS_PROP_HAS_WRITABLE | JS_PROP_WRITABLE)) == JS_PROP_HAS_WRITABLE) {
JSValue val1;
if (p->class_id == JS_CLASS_MODULE_NS) {
return JS_ThrowTypeErrorOrFalse(ctx, flags, "module namespace properties have writable = false");
}
if (js_shape_prepare_update(ctx, p, &prs))
return -1;
val1 = JS_DupValue(ctx, *pr->u.var_ref->pvalue);