This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 9b3ff46af078f9fd1501479a188ae5e0598c1e44 Author: Josh Tynjala <[email protected]> AuthorDate: Tue Mar 16 12:13:40 2021 -0700 playerglobalc: some refinements to the Object prototype methods --- .../org/apache/royale/compiler/clients/PLAYERGLOBALC.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java b/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java index dd85cf7..2a692c1 100644 --- a/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java +++ b/compiler-playerglobalc/src/main/java/org/apache/royale/compiler/clients/PLAYERGLOBALC.java @@ -63,8 +63,10 @@ class PLAYERGLOBALC implements FlexTool { private static final List<String> VECTOR_SUFFIXES = Arrays.asList("$double", "$int", "$uint", "$object"); // From the docs: Methods of the Object class are dynamically created on // Object's prototype. - private static final List<String> OBJECT_PROTOTYPE_METHODS = Arrays.asList("hasOwnProperty", "isPrototypeOf", - "propertyIsEnumerable", "setPropertyIsEnumerable", "toString", "toLocaleString", "valueOf"); + private static final List<String> OBJECT_PROTOTYPE_METHODS = Arrays.asList("setPropertyIsEnumerable", "toString", + "toLocaleString", "valueOf"); + private static final List<String> OBJECT_AS3_METHODS = Arrays.asList("hasOwnProperty", "isPrototypeOf", + "propertyIsEnumerable"); private static final List<String> ANY_CONSTRUCTORS = Arrays.asList("ArgumentError", "Boolean", "Date", "DefinitionError", "Error", "EvalError", "int", "Number", "RangeError", "ReferenceError", "RegExp", "SecurityError", "String", "SyntaxError", "TypeError", "uint", "URIError", "VerifyError", "XML", "XMLList"); @@ -88,6 +90,7 @@ class PLAYERGLOBALC implements FlexTool { Arrays.asList("setFullYear", "setMonth", "setDate", "setHours", "setMinutes", "setSeconds", "setMilliseconds", "setUTCFullYear", "setUTCMonth", "setUTCDate", "setUTCHours", "setUTCMinutes", "setUTCSeconds", "setUTCMilliseconds", "setTime")); + NULL_DEFAULT_METHODS.put("Object", Arrays.asList("hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable")); } private static final Map<String, List<String>> ANY_METHODS = new HashMap<String, List<String>>(); { @@ -95,6 +98,7 @@ class PLAYERGLOBALC implements FlexTool { Arrays.asList("setFullYear", "setMonth", "setDate", "setHours", "setMinutes", "setSeconds", "setMilliseconds", "setUTCFullYear", "setUTCMonth", "setUTCDate", "setUTCHours", "setUTCMinutes", "setUTCSeconds", "setUTCMilliseconds", "setTime", "UTC")); + ANY_METHODS.put("Object", Arrays.asList("hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable")); ANY_METHODS.put("XML", Arrays.asList("addNamespace", "appendChild", "attribute", "child", "contains", "descendants", "elements", "insertChildAfter", "insertChildBefore", "namespace", "prependChild", "processingInstructions", "removeNamespace", "replace", "setChildren", "setName", "setNamespace")); @@ -887,6 +891,13 @@ class PLAYERGLOBALC implements FlexTool { List<Element> apiParamElements = apiOperationDefElement.elements("apiParam"); + if (OBJECT_AS3_METHODS.contains(functionName)) { + if ("Object".equals(contextClassName)) { + access = "AS3"; + } else { + return; + } + } if ("Object".equals(contextClassName) && OBJECT_PROTOTYPE_METHODS.contains(functionName)) { return; }
