mirror of
https://github.com/bellard/quickjs.git
synced 2025-05-15 10:45:02 +08:00
fixed operation order in Object.prototype.propertyIsEnumerable()
This commit is contained in:
parent
5afd0eb37b
commit
1e958abcd8
11
quickjs.c
11
quickjs.c
@ -37312,6 +37312,7 @@ static __exception int JS_ObjectDefineProperties(JSContext *ctx,
|
|||||||
if (JS_IsException(props))
|
if (JS_IsException(props))
|
||||||
return -1;
|
return -1;
|
||||||
p = JS_VALUE_GET_OBJ(props);
|
p = JS_VALUE_GET_OBJ(props);
|
||||||
|
/* XXX: not done in the same order as the spec */
|
||||||
if (JS_GetOwnPropertyNamesInternal(ctx, &atoms, &len, p, JS_GPN_ENUM_ONLY | JS_GPN_STRING_MASK | JS_GPN_SYMBOL_MASK) < 0)
|
if (JS_GetOwnPropertyNamesInternal(ctx, &atoms, &len, p, JS_GPN_ENUM_ONLY | JS_GPN_STRING_MASK | JS_GPN_SYMBOL_MASK) < 0)
|
||||||
goto exception;
|
goto exception;
|
||||||
for(i = 0; i < len; i++) {
|
for(i = 0; i < len; i++) {
|
||||||
@ -38268,17 +38269,17 @@ exception:
|
|||||||
static JSValue js_object_propertyIsEnumerable(JSContext *ctx, JSValueConst this_val,
|
static JSValue js_object_propertyIsEnumerable(JSContext *ctx, JSValueConst this_val,
|
||||||
int argc, JSValueConst *argv)
|
int argc, JSValueConst *argv)
|
||||||
{
|
{
|
||||||
JSValue obj, res = JS_EXCEPTION;
|
JSValue obj = JS_UNDEFINED, res = JS_EXCEPTION;
|
||||||
JSAtom prop = JS_ATOM_NULL;
|
JSAtom prop;
|
||||||
JSPropertyDescriptor desc;
|
JSPropertyDescriptor desc;
|
||||||
int has_prop;
|
int has_prop;
|
||||||
|
|
||||||
obj = JS_ToObject(ctx, this_val);
|
|
||||||
if (JS_IsException(obj))
|
|
||||||
goto exception;
|
|
||||||
prop = JS_ValueToAtom(ctx, argv[0]);
|
prop = JS_ValueToAtom(ctx, argv[0]);
|
||||||
if (unlikely(prop == JS_ATOM_NULL))
|
if (unlikely(prop == JS_ATOM_NULL))
|
||||||
goto exception;
|
goto exception;
|
||||||
|
obj = JS_ToObject(ctx, this_val);
|
||||||
|
if (JS_IsException(obj))
|
||||||
|
goto exception;
|
||||||
|
|
||||||
has_prop = JS_GetOwnPropertyInternal(ctx, &desc, JS_VALUE_GET_OBJ(obj), prop);
|
has_prop = JS_GetOwnPropertyInternal(ctx, &desc, JS_VALUE_GET_OBJ(obj), prop);
|
||||||
if (has_prop < 0)
|
if (has_prop < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user