From 0251c4689d7813a1161993bda9363269d11c3fd7 Mon Sep 17 00:00:00 2001 From: TopchetoEU <36534413+TopchetoEU@users.noreply.github.com> Date: Sat, 6 Jan 2024 17:49:27 +0200 Subject: [PATCH] fix: use Values to access members in ObjectLib, instead of direct access --- src/me/topchetoeu/jscript/lib/ObjectLib.java | 26 ++++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/me/topchetoeu/jscript/lib/ObjectLib.java b/src/me/topchetoeu/jscript/lib/ObjectLib.java index 5aefe2f..112da5a 100644 --- a/src/me/topchetoeu/jscript/lib/ObjectLib.java +++ b/src/me/topchetoeu/jscript/lib/ObjectLib.java @@ -45,31 +45,31 @@ public class ObjectLib { var key = args.get(1); var attrib = args.convert(2, ObjectValue.class); - var hasVal = attrib.hasMember(args.ctx, "value", false); - var hasGet = attrib.hasMember(args.ctx, "get", false); - var hasSet = attrib.hasMember(args.ctx, "set", false); + var hasVal = Values.hasMember(args.ctx, attrib, "value", false); + var hasGet = Values.hasMember(args.ctx, attrib, "get", false); + var hasSet = Values.hasMember(args.ctx, attrib, "set", false); if (hasVal) { if (hasGet || hasSet) throw EngineException.ofType("Cannot specify a value and accessors for a property."); if (!obj.defineProperty( args.ctx, key, attrib.getMember(args.ctx, "value"), - Values.toBoolean(attrib.getMember(args.ctx, "writable")), - Values.toBoolean(attrib.getMember(args.ctx, "configurable")), - Values.toBoolean(attrib.getMember(args.ctx, "enumerable")) + Values.toBoolean(Values.getMember(args.ctx, attrib, "writable")), + Values.toBoolean(Values.getMember(args.ctx, attrib, "configurable")), + Values.toBoolean(Values.getMember(args.ctx, attrib, "enumerable")) )) throw EngineException.ofType("Can't define property '" + key + "'."); } else { - var get = attrib.getMember(args.ctx, "get"); - var set = attrib.getMember(args.ctx, "set"); + var get = Values.getMember(args.ctx, attrib, "get"); + var set = Values.getMember(args.ctx, attrib, "set"); if (get != null && !(get instanceof FunctionValue)) throw EngineException.ofType("Get accessor must be a function."); if (set != null && !(set instanceof FunctionValue)) throw EngineException.ofType("Set accessor must be a function."); if (!obj.defineProperty( args.ctx, key, (FunctionValue)get, (FunctionValue)set, - Values.toBoolean(attrib.getMember(args.ctx, "configurable")), - Values.toBoolean(attrib.getMember(args.ctx, "enumerable")) + Values.toBoolean(Values.getMember(args.ctx, attrib, "configurable")), + Values.toBoolean(Values.getMember(args.ctx, attrib, "enumerable")) )) throw EngineException.ofType("Can't define property '" + key + "'."); } @@ -78,10 +78,10 @@ public class ObjectLib { @Expose(target = ExposeTarget.STATIC) public static ObjectValue __defineProperties(Arguments args) { var obj = args.convert(0, ObjectValue.class); - var attrib = args.convert(1, ObjectValue.class); + var attrib = args.get(1); for (var key : Values.getMembers(null, attrib, false, false)) { - __defineProperty(new Arguments(args.ctx, null, obj, key, attrib.getMember(args.ctx, key))); + __defineProperty(new Arguments(args.ctx, null, obj, key, Values.getMember(args.ctx, attrib, key))); } return obj; @@ -133,7 +133,7 @@ public class ObjectLib { var res = new ObjectValue(); var obj = args.get(0); for (var key : Values.getMembers(args.ctx, obj, true, true)) { - res.defineProperty(args.ctx, key, __getOwnPropertyDescriptor(new Arguments(args.ctx, null, obj, key))); + res.defineProperty(args.ctx, key, Values.getMemberDescriptor(args.ctx, obj, key)); } return res; }