)]}'
{
  "log": [
    {
      "commit": "bad8386b0555df1b6304cec79267d67ce56bc32f",
      "tree": "2e34f0dffb3da7ee9b72481f71875f632ae6a542",
      "parents": [
        "36637fdd3171bd2781bb70e9ec5b61d53ab5f649"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 12 12:20:07 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 12 12:20:19 2026 -0700"
      },
      "message": "FunctionNode: fix missing definitions in FunctionScope when emitting methods as JavaScript (references #249)\n\nUses the existing deferredBodyParsingLock that is already used by parseFunctionBody() and discardFunctionBody() to ensure thread safety when reconnecting the scope to the ScopedBlockNode, and also when removing stale definitions when the function body needs to be re-parsed and will create new definitions to replace them.\n\nI ended up moving the changes from 35eed62f13519c659e6346d26cca3f44afe3170f from FunctionScope to FunctionNode. FunctionNode is the only place where the scope is reconnected, and it\u0027s the only place where definitions are already added to and removed from the FunctionScope. So it\u0027s better to remove stale definitions in the same place.\n\nThis issue is very difficult to reproduce (although building MXRoyaleBaseJS usually does it eventually... sometimes dozens or hundreds of compiles!). My best guess is that reconnecting the scope node while the body is currently being parsed, or while the definitions are currently being added to the scope, is where it leaves the scope without any definitions at all. I see that in analyze(), PostProcessStep.POPULATE_SCOPE creates a new FunctionScope, and PostProcessStep.RECONNECT_DEFINITIONS connects it to the ScopedBlockNode. Perhaps parseFunctionBody() was occasionally populating an old FunctionScope instead of the newly created one, and the lock is now forcing it to wait for the new scope to be connected before it starts populating.\n"
    },
    {
      "commit": "36637fdd3171bd2781bb70e9ec5b61d53ab5f649",
      "tree": "07ae8183b20f05ffb75daec4f303264847f8eb7e",
      "parents": [
        "208b6ad4dff50dec7c31c25cf7aa4dd3f0e56ceb"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jun 10 16:01:43 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jun 10 16:02:00 2026 -0700"
      },
      "message": "RoyaleProject: Fixed missing binding data caused by multiple threads accessing same HashMap (closes #182) (closes #250)\n\ngetBindingMap() is now a ConcurrentHashMap because multiple threads writing to and reading from a regular HashMap can corrupt the data structure. ConcurrentHashMap is designed to be accessed from multiple threads simultaneously and handles locking/unlocking automatically.\n\nDuring compilation, un MXMLRoyaleEmitter.emitBindingData(), project.getBindingMap().get(cdef) was sometimes returning null (often needed multiple compiles to reproduce). This is one sign that the HashMap wass corrupted. Another sign of corruption is that the size() of the map may be smaller than it should be, and not consistent between compiles (but sometimes the size was still correct, but get() still returned null).\n"
    },
    {
      "commit": "208b6ad4dff50dec7c31c25cf7aa4dd3f0e56ceb",
      "tree": "0f578bbe2aa66deae4ab8ea5a7d900cc13732181",
      "parents": [
        "a5f549f577eb3e20b229c56995fb275cc18f5918"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:52:35 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:52:35 2026 -0700"
      },
      "message": "IdentifierEmitter, MemberAccessEmitter: also check for INTERFACE_MEMBER classification when determining if a closure is required for a function\n"
    },
    {
      "commit": "a5f549f577eb3e20b229c56995fb275cc18f5918",
      "tree": "dac75e0b957d3bdc321f120988d2f565657ebf54",
      "parents": [
        "522010b9408b35e49f30d4f06d30160c9b735789"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:34:31 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:34:31 2026 -0700"
      },
      "message": "MemberAccessEmitter: don\u0027t include closure() around package-level functions (just non-static members)\n"
    },
    {
      "commit": "522010b9408b35e49f30d4f06d30160c9b735789",
      "tree": "224fb87366f748e2a4a04412d72272a2f500f157",
      "parents": [
        "319f57ba7951d45379a6db4fcf85d838da9949f1"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:30:38 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 16:30:38 2026 -0700"
      },
      "message": "IdentifierEmitter: Fixed missing require for package-level functions or variables in some situations.\n\nThe qname wasn\u0027t being formatted, so it wasn\u0027t considered used. Now, format it without emitting the formatted name.\n"
    },
    {
      "commit": "319f57ba7951d45379a6db4fcf85d838da9949f1",
      "tree": "5ad609c127e094521ac93deb0b219ac0a52d817d",
      "parents": [
        "e1b037f42ca8ed07059d0f51399328ebd2a33f41"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 14:53:41 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 14:53:59 2026 -0700"
      },
      "message": "JSCSSCompilationSession: output null instead of nothing for PropertyReference() and Embed() functions\n\nThis ensures that the JS syntax is valid.\n\nAlso, use constants instead of strings to compare with ClassReference, PropertyReference, and Embed\n"
    },
    {
      "commit": "e1b037f42ca8ed07059d0f51399328ebd2a33f41",
      "tree": "2d1453bdedee3fdcff9a7fbf91272beccca91fb5",
      "parents": [
        "adb5a29699b41d9520dfb6660b5b7413ed87df16"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 09:24:15 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jun 05 09:24:15 2026 -0700"
      },
      "message": "Configuration: Fixed parsing of namespace uri and manifest mappings to allow multiple manifest paths per URI\n\nThe documentation explains that the namespace compiler option may specify multiple manifest paths for a single URI, and the config buffer treated it that way too. However, it was trying to alternate between URIs and manifest paths, which would be as if the user should specify multiple URIs, each with a single manifest.\n"
    },
    {
      "commit": "adb5a29699b41d9520dfb6660b5b7413ed87df16",
      "tree": "06935c88ad86c73a4d8f3650eb08db16a3eb111a",
      "parents": [
        "6a022275568f98d9dc76bcd91308b8c336adb8fb"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jun 03 12:16:39 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jun 03 12:17:39 2026 -0700"
      },
      "message": "royaleunit-ant-tasks: when checking for AIR version, ignore JAVA_TOOL_OPTIONS and JDK_JAVA_OPTIONS output\n"
    },
    {
      "commit": "6a022275568f98d9dc76bcd91308b8c336adb8fb",
      "tree": "3810222241c90de9eb9d5964f99d1ff090b80145",
      "parents": [
        "9e580afe579447835df7b4b88c8b45bc148e424b"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jun 01 13:08:07 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jun 01 13:13:09 2026 -0700"
      },
      "message": "IdentifierNode, DefinitionBase: Fixed rare race condition where certain cached values are detected as non-null but become null before the method returns.\n"
    },
    {
      "commit": "9e580afe579447835df7b4b88c8b45bc148e424b",
      "tree": "6a3f3c54c78818f8ec7b547765082141b3ef515c",
      "parents": [
        "42b49b4e328496087f7e09450275739839e55c01"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri May 22 15:25:36 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri May 22 15:26:24 2026 -0700"
      },
      "message": "MXMLJSCNative: support resource bundles for JS target, similar to JSRoyale\n"
    },
    {
      "commit": "42b49b4e328496087f7e09450275739839e55c01",
      "tree": "296e591404dfacac8833ed5cb71b83dbd0f344fe",
      "parents": [
        "9dd78ef74a9e6192ce1b8e6185f86ebf18de73dd"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 20 14:35:21 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 20 14:35:21 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: when emitting the new UIComponentDescriptors, include children for MX containers\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "9dd78ef74a9e6192ce1b8e6185f86ebf18de73dd",
      "tree": "14c3e641cb62538a6e6c29084a9ba55f8fcbaab9",
      "parents": [
        "bbeed1399413308a56112ed490f6f930464d4114"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 14:57:24 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 14:57:24 2026 -0700"
      },
      "message": "IJSMetaAttributeConstants: missed adding a separate iteratorDoneMethod for JSForEachOverride\n\nWas accidentally using the one for JSForInOverride instead.\n\nFollowup to commit 308d8867b923c0edff4bf814fa89a175123dcf37\n"
    },
    {
      "commit": "bbeed1399413308a56112ed490f6f930464d4114",
      "tree": "1383be9f415ff161f012fade466934009a4769f7",
      "parents": [
        "b1370d2e1ce5e0f2a397bace45adc1fca0444205"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 09:35:16 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 09:35:16 2026 -0700"
      },
      "message": "Fix up some more metadata checks to use constants\n"
    },
    {
      "commit": "b1370d2e1ce5e0f2a397bace45adc1fca0444205",
      "tree": "6b7b44f9784f4d582e37677ea9337bed84b98f64",
      "parents": [
        "308d8867b923c0edff4bf814fa89a175123dcf37"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 09:30:15 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 09:30:18 2026 -0700"
      },
      "message": "IJSMetaAttributeConstants: move from some magic strings to constants for existing JS metadata\n"
    },
    {
      "commit": "308d8867b923c0edff4bf814fa89a175123dcf37",
      "tree": "b8ffac37f2b37af1dfe6b91676f043322af34469",
      "parents": [
        "41932d78557a350d05f3cb94db1a121911e3b43e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Apr 21 14:08:25 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue May 19 08:43:23 2026 -0700"
      },
      "message": "JSDynamicAccessOverride, JSForInOverride, and JSForEachOverride metadata: optionally emit custom method calls when specific syntax is encountered\n\nIntended to allow folks using Royale to emulate classes like flash.utils.Dictionary and flash.utils.ByteArray, which may support custom behaviors for dynamic access with [] square brackets, for-in loop, and for-each loop syntax.\n\nJSDynamicAccessOverride supports getMethod and setMethod properties to get and set a key, deleteMethod to delete/remove a key, and inMethod to check if a key exists.\n\nJSForInOverride supports the iteratorMethod property to create an iterator object with the target\u0027s keys. iteratorNextMethod gets the next object from the iterator. iteratorHasNextMethod or iteratorDoneMethod is used to determine if a next object exists. iteratorHasNextMethod and iteratorDoneMethod are considered optional. If they are not defined, a null result from iteratorNextMethod will be considered the end of the iterator.\n\nJSForEachOverride supports the same methods, but iterates over the values instead of the keys. If JSForEachOverride is omitted, the compiler will intelligently use JSForInOverride to loop over the keys, and then get each value dynamically at runtime (possibly using JSDynamicAccessOverride, if defined).\n"
    },
    {
      "commit": "41932d78557a350d05f3cb94db1a121911e3b43e",
      "tree": "a99b1c3d4b16f547117e706773652b1dd4a11e8e",
      "parents": [
        "5469ef57820dbc3d7d59b58d72cef2ab3dbbe87d"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 15:38:44 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 15:38:44 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: when outputting UIComponentDescriptor, set _document befor calling setDocumentDescriptor()\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "5469ef57820dbc3d7d59b58d72cef2ab3dbbe87d",
      "tree": "840a324ab04c78e44bb7473878b58397bdb50512",
      "parents": [
        "9cca41eeba7c43bf9b4956dae8abde20c3c55fe9"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 15:35:00 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 15:35:00 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: skip emitting UIComponentDescriptor properties and styles that are embed or data binding\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "9cca41eeba7c43bf9b4956dae8abde20c3c55fe9",
      "tree": "fc843c376f7fc8a7e053027ad75c70c5b2356a6f",
      "parents": [
        "9b63725070fba92c01c1efa5467e50be2d7ab540"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 09:53:14 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 09:53:14 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: fix detection of E4X wildcard syntax (dot star) when generating JavaScript\n"
    },
    {
      "commit": "9b63725070fba92c01c1efa5467e50be2d7ab540",
      "tree": "217250bca4f0e3067aaed9dae98dd4909dcd0e12",
      "parents": [
        "c03be24bc3941a5a1a298b0b1b70974567710eae"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 09:35:03 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed May 06 09:35:03 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: the new children-as-data\u003dfalse factory methods were missing rpc services and XML/XMLList\n\nFollowup to commit de684f3eb4c65bcaa424e9a5d22d45ced57c7005\n"
    },
    {
      "commit": "c03be24bc3941a5a1a298b0b1b70974567710eae",
      "tree": "e7391d15bbd6972c565decd98231045ba9429ced",
      "parents": [
        "4bec47177b748bb04c083f447ed950221160e000"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon May 04 16:00:31 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon May 04 16:00:31 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: fix missing comma after childDescriptors with children-as-data\u003dfalse if there are 0 child descriptors\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "4bec47177b748bb04c083f447ed950221160e000",
      "tree": "22913d59e01b79a657fa8b1847fbca790f7286d6",
      "parents": [
        "e8af9f8032c079d1392bf9888ea45e9a5303556c"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon May 04 13:51:16 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon May 04 13:51:30 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: fixed missing event handlers with children-as-data\u003dfalse because children of container weren\u0027t walked\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "e8af9f8032c079d1392bf9888ea45e9a5303556c",
      "tree": "479646c99070293ac8c15c4db0896292795631ed",
      "parents": [
        "00ee1bf099eeb9a81c77fb94f1b428306df436ef"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Apr 28 14:19:18 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Apr 28 14:21:30 2026 -0700"
      },
      "message": "MethodBodySemanticChecker: don\u0027t warn when comparing numeric or boolean with null if default initializers are disabled for JS\n"
    },
    {
      "commit": "00ee1bf099eeb9a81c77fb94f1b428306df436ef",
      "tree": "0398cda9b1c952277b91a50a0316a03fe82de81e",
      "parents": [
        "e6b7a6f7b5d635e0a8e876f8bcd4c56bef400b3e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 11:04:55 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 11:04:55 2026 -0700"
      },
      "message": "ApproveFalcon.xml: don\u0027t require ANT_HOME environment variable, and download Apache Rat JARs to basedir when they\u0027re not found\n"
    },
    {
      "commit": "e6b7a6f7b5d635e0a8e876f8bcd4c56bef400b3e",
      "tree": "d91a7a9fb99521081a5ac73499ef93fc3aa0dc91",
      "parents": [
        "20abe9bc658b4e4dd00327f93180744afb233043"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 10:47:51 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 10:47:51 2026 -0700"
      },
      "message": "ApproveFalcon.xml: fix examine-jars to work on all platforms (not macOS only)\n"
    },
    {
      "commit": "20abe9bc658b4e4dd00327f93180744afb233043",
      "tree": "6e241164a64d72f02c863e0cdb2cefb45b001ca4",
      "parents": [
        "6e422dae4605140621f00860878825ba858f6efb"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 10:35:26 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Apr 23 10:35:26 2026 -0700"
      },
      "message": "ApproveBuildTools.xml: fix examine-jars to work on all platforms (not macOS only)\n"
    },
    {
      "commit": "6e422dae4605140621f00860878825ba858f6efb",
      "tree": "059ccdc9faa7f369a3b35fcd59237f3e7542ed8a",
      "parents": [
        "cc2dcdbfa11b0b0fafcb72ba6be4569058898fd3"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 22 14:53:05 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 22 14:53:05 2026 -0700"
      },
      "message": "JSRoyaleEmitter: fix namespace URI when namespace is defined in a package\n"
    },
    {
      "commit": "cc2dcdbfa11b0b0fafcb72ba6be4569058898fd3",
      "tree": "769bbf3448b41fc2716da3e01c3615cfc8965836",
      "parents": [
        "e7edc8bfa4c99a8fda3d1dc1c61e9bcf9c9d42d8"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Apr 17 16:02:05 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Apr 17 16:02:05 2026 -0700"
      },
      "message": "ExcludeTagNode: improved parsing of [Exclude] metadata to make the member name an identifier for tooling\n\nWill be used for renaming properties/styles/etc. in editors and IDEs that use the compiler for code intelligence.\n"
    },
    {
      "commit": "e7edc8bfa4c99a8fda3d1dc1c61e9bcf9c9d42d8",
      "tree": "e0279105646ea41ac3ad46532e1370dc11035434",
      "parents": [
        "9fd223b41d542c3b180bbd548ed919af054cffc5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Apr 13 10:06:50 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Apr 13 10:06:50 2026 -0700"
      },
      "message": "Configuration: get/set functions for allow-strict-function-types weren\u0027t named properly following the existing convention\n"
    },
    {
      "commit": "9fd223b41d542c3b180bbd548ed919af054cffc5",
      "tree": "479b4123f67c2dbf9d03b0bfbb3f253e320ea1e3",
      "parents": [
        "44685a4c4cfad31dea85d2b9accf06f5cf6b0f3d"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Apr 13 09:14:13 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Apr 13 09:19:52 2026 -0700"
      },
      "message": "ApproveBuildTools.xml: don\u0027t require ANT_HOME environment variable, and download Apache Rat JARs to basedir when they\u0027re not found\n\nOn both macOS and Linux, I\u0027ve been forced to use sudo in a terminal to manually copy the Apache Rat JARs into env.ANT_HOME, so the approval script always fails when the JARs are missing. Instead, if the script doesn\u0027t find the Rat JARs, it should simply download them into ${basedir} instead of env.ANT_HOME. This will make it easier for PMCs to use the approval script.\n\nHowever, if ANT_HOME is configured, this path will still be searched for previously copied JAR files. This will allow PMCs to keep using the script the old way, if they\u0027re already set things up. I made sure that specifying ANT_HOME without the Rat JARs present won\u0027t fail either.\n\nAlso, added description to main-no-download.\n"
    },
    {
      "commit": "44685a4c4cfad31dea85d2b9accf06f5cf6b0f3d",
      "tree": "c9af773003b3641279286a057983eb801873dff5",
      "parents": [
        "ccea89b745465009c9325713b1d7e64a648f2414"
      ],
      "author": {
        "name": "Andrew Wetmore",
        "email": "andrew@cottage14.com",
        "time": "Fri Apr 10 14:49:35 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 14:49:35 2026 -0300"
      },
      "message": "Create README"
    },
    {
      "commit": "ccea89b745465009c9325713b1d7e64a648f2414",
      "tree": "68b5d13ee540d56308c13baf93b0032a6e6af035",
      "parents": [
        "60f69203c05d55e29cd6420f5df714a1862b1508"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Tue Apr 07 06:48:38 2026 +0000"
      },
      "committer": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Tue Apr 07 06:48:38 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare for next development iteration\n"
    },
    {
      "commit": "60f69203c05d55e29cd6420f5df714a1862b1508",
      "tree": "8e15610719a1b7c209ad1a27d6f998db3af4fdfd",
      "parents": [
        "f574e82e74802f5ce5fd2c11773f1bf3584e5801"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Tue Apr 07 06:48:31 2026 +0000"
      },
      "committer": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Tue Apr 07 06:48:31 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare release org.apache.royale.compiler-build-tools-1.2.2-rc1\n"
    },
    {
      "commit": "f574e82e74802f5ce5fd2c11773f1bf3584e5801",
      "tree": "25e928c8945e74a4034a371be410852bd3362ef8",
      "parents": [
        "3373454a4f35005026412122d7d740718d784c2d"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 21:38:28 2026 +0300"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 21:38:28 2026 +0300"
      },
      "message": "Fix duplicate properties tag in compiler-build-tools pom.xml\n"
    },
    {
      "commit": "3373454a4f35005026412122d7d740718d784c2d",
      "tree": "acc8acfc55e55a00fff3049b249f61add5376c82",
      "parents": [
        "223607f637a6f7b8df19dc05fb426dbd73fbc42b"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 20:46:45 2026 +0300"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 20:46:45 2026 +0300"
      },
      "message": "Set maven.compiler.source/target to 11 for utils (JDK 21 dropped Java 7 support)\n"
    },
    {
      "commit": "223607f637a6f7b8df19dc05fb426dbd73fbc42b",
      "tree": "e346d2f7a9639b8279ab731e97bf8002b29ea1db",
      "parents": [
        "3fb6c58cbb6989b6ff9ccc990f19d5865ed4d354"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:13:27 2026 +0300"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:13:27 2026 +0300"
      },
      "message": "Update compiler-jburg-types version to 1.1.1-SNAPSHOT and add release notes\n\nChanges are maintenance-only (dependency security updates, Java 11 minimum),\nso 1.1.1 is more appropriate than 1.2.0. Also adds release notes for both\ncompiler-jburg-types 1.1.1 and compiler-build-tools 1.2.2.\n"
    },
    {
      "commit": "3fb6c58cbb6989b6ff9ccc990f19d5865ed4d354",
      "tree": "73ea8068a64ded495b26903cbb800042be9b3a87",
      "parents": [
        "d441671bbd27c50686cf499da470a4201398d69c",
        "7009c0c1390b1d7720f4ccf2bfe804d94e92bf0b"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:02:35 2026 +0300"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:02:35 2026 +0300"
      },
      "message": "Merge branch \u0027develop\u0027 of https://github.com/apache/royale-compiler into develop\n"
    },
    {
      "commit": "d441671bbd27c50686cf499da470a4201398d69c",
      "tree": "f4329e7790e8fda02ad158c55933f3ae471971cc",
      "parents": [
        "a487fcfeb00ff5998d7789a78708bd534bb5825e"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:02:22 2026 +0300"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sat Apr 04 18:02:22 2026 +0300"
      },
      "message": "Update release notes for jburg-types and build-tools\n"
    },
    {
      "commit": "7009c0c1390b1d7720f4ccf2bfe804d94e92bf0b",
      "tree": "1a4561d8426a3a62ec52794c932f5468f1848539",
      "parents": [
        "a05d8400c466da4bebebb04e0f99415e14c3a5ab"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 01 16:17:34 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 01 16:17:34 2026 -0700"
      },
      "message": "forgot release note\n"
    },
    {
      "commit": "a05d8400c466da4bebebb04e0f99415e14c3a5ab",
      "tree": "c2571be475c7377ffb89903fd75fd77dc31539b3",
      "parents": [
        "51d22a5ac31ee823f655a84a05181919e9ddffc5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 01 11:27:36 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Apr 01 11:27:36 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: Added support for mx.core.UIComponentDescriptor with -children-as-data\u003dfalse for JavaScript\n"
    },
    {
      "commit": "51d22a5ac31ee823f655a84a05181919e9ddffc5",
      "tree": "f36fae30f5897477464af0139c317ebe87f496a5",
      "parents": [
        "af8b62129a0d8e1110b3f501f92ac7e19fae983f"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 13:46:24 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 13:46:24 2026 -0700"
      },
      "message": "MXMLRoyalEmitter: Added support for mx.core.IDeferredInstance for default properties with -children-as-data\u003dfalse\n"
    },
    {
      "commit": "af8b62129a0d8e1110b3f501f92ac7e19fae983f",
      "tree": "990443f75567ef92661fb0a8f451b03c06f2d80e",
      "parents": [
        "9356c8a62ff42b0a068825b165b4f4c6196c74df"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 12:05:58 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 12:06:03 2026 -0700"
      },
      "message": "MXMLJSCJSEmitter: Fixed intermittent missing goog.require() calls because formatQualifiedName() was overridden to remove formatting\n"
    },
    {
      "commit": "9356c8a62ff42b0a068825b165b4f4c6196c74df",
      "tree": "1f79671180fcdf9b096366a2d587efdf67ad48d3",
      "parents": [
        "b4e3ff671c7b48662f5f8a17548a0ea1d7043d66"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 12:03:25 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 12:04:02 2026 -0700"
      },
      "message": "MXMLDeferredInstanceNode: added missing dependency on mx.core.DeferredInstanceFromFunction that prevented it from being emitted in JavaScript\n"
    },
    {
      "commit": "b4e3ff671c7b48662f5f8a17548a0ea1d7043d66",
      "tree": "cd5150f768deb6a27179b63f4bd65a77fc98235e",
      "parents": [
        "fad7ee8c1504c14b2938dc2f6e2f3c3939e918a2"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 11:17:40 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 11:17:40 2026 -0700"
      },
      "message": "JSCPublisher: don\u0027t call start() for MXML classes either\n\nAt the time, I wasn\u0027t sure if MXML needed a start() method. It does not.\n"
    },
    {
      "commit": "fad7ee8c1504c14b2938dc2f6e2f3c3939e918a2",
      "tree": "562dae7668e3457edb81200af1624bb43a426100",
      "parents": [
        "a487fcfeb00ff5998d7789a78708bd534bb5825e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 11:09:43 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 31 11:09:43 2026 -0700"
      },
      "message": "DefinitionBase: fix resolution of types specified in [InstanceType] when they are in a package\n"
    },
    {
      "commit": "a487fcfeb00ff5998d7789a78708bd534bb5825e",
      "tree": "92cab1751eb59eec08580d1d13f1204b18d69dc5",
      "parents": [
        "e6b5a815a4f66b4ce500a7cf0c9da2e2ab4790d6"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Mar 27 10:19:14 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Mar 27 10:19:14 2026 -0700"
      },
      "message": "MXMLRoyalePublisher added mainClass as a token that may be replaced in the HTML template (closes #245)\n"
    },
    {
      "commit": "e6b5a815a4f66b4ce500a7cf0c9da2e2ab4790d6",
      "tree": "046378489a78d5202a7805d24659533cf44bf115",
      "parents": [
        "4ba78509cfd7404c315aa6c82298df3676d415a2"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Wed Mar 18 17:58:45 2026 +0200"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Wed Mar 18 17:58:45 2026 +0200"
      },
      "message": "Update release notes for 1.0.0\n"
    },
    {
      "commit": "4ba78509cfd7404c315aa6c82298df3676d415a2",
      "tree": "aeff1213452382ef1c971d3ced35163a5362bcf8",
      "parents": [
        "7d583da57d8667c2e67435c0aafb3292478e7ccd"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Wed Mar 18 12:21:39 2026 +0200"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Wed Mar 18 12:23:34 2026 +0200"
      },
      "message": "Update version to 1.0.0 for release\n"
    },
    {
      "commit": "7d583da57d8667c2e67435c0aafb3292478e7ccd",
      "tree": "8afd8937f35b7ed28b266fa5183508fd246171d5",
      "parents": [
        "85a936b59ce07674f8e218e5744a63e65058eb8f"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 17 13:55:09 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 17 13:55:09 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: don\u0027t assign property in factory method if it uses data binding\n\nIt was emitting nothing, resulting in a JS syntax error.\n"
    },
    {
      "commit": "85a936b59ce07674f8e218e5744a63e65058eb8f",
      "tree": "2dc582da28e3fcd038fb1e9b1e8326717990b600",
      "parents": [
        "8f40ae2960703a91878c42f5fee1a7ccb1befc34"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 17 08:54:25 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Mar 17 08:54:25 2026 -0700"
      },
      "message": "update release notes with latest commits\n"
    },
    {
      "commit": "8f40ae2960703a91878c42f5fee1a7ccb1befc34",
      "tree": "8599bf033e241b75df929fdb6a7e3ec023d78b02",
      "parents": [
        "a0a2d54ebabd29b020868510672da621f114da47"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 13:55:47 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 13:55:47 2026 -0700"
      },
      "message": "MXMLClassReferenceNodeBase: an fx:DesignLayer may have children in MXML without [DefaultProperty] metadata\n\nSimilar to MX containers allowing UI components as children without [DefaultProperty].\n"
    },
    {
      "commit": "a0a2d54ebabd29b020868510672da621f114da47",
      "tree": "7723eb52ec0a46197e1e98f9bf8f80d17714222b",
      "parents": [
        "de684f3eb4c65bcaa424e9a5d22d45ced57c7005"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 13:54:06 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 13:54:06 2026 -0700"
      },
      "message": "MXMLArrayNode: special case for fx:DesignLayer when checking if children are valid for the specified optional [ArrayElementType]\n\nNeeds to check the children of the DesignLayer because the DesignLayer is pulled out of the hierarchy. A DesignLayer may contain other DesignLayers as children.\n"
    },
    {
      "commit": "de684f3eb4c65bcaa424e9a5d22d45ced57c7005",
      "tree": "84cf23f14364f68c2e5b20bf4023d148bc597582",
      "parents": [
        "6c75f00b96f52a4d9072d558ec27da7ce30819e7"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 09:59:33 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 10:57:04 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: implement children-as-data\u003dfalse for JS emitter\n\nAlso, Vector is always treated as if children-as-data\u003dfalse because the compiler supports specifying a custom vector class or function, and the MXML data interpreter would have been pre-compiled with the SDK and can\u0027t know which vector class to use.\n"
    },
    {
      "commit": "6c75f00b96f52a4d9072d558ec27da7ce30819e7",
      "tree": "cafd2aeec9285b3c6ecbf642fc8530e1163b1ecf",
      "parents": [
        "16e41abb886ea592c6c7bc9390ca98ce100f4e24"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 09:55:44 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 16 09:56:00 2026 -0700"
      },
      "message": "MXMLClassReferenceNodeBase: stricter MXML handling of default element children\n\nMX Containers may have children, and classes with [DefaultProperty] metadata may have children, but a compile-time error should be reported for classes that meet neither requirement.\n"
    },
    {
      "commit": "16e41abb886ea592c6c7bc9390ca98ce100f4e24",
      "tree": "ee3a47e55c880c20d043d007c2922fc132ba544e",
      "parents": [
        "2ed32afd86982c8af66a79e1e3038f636aea430b"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 15:30:22 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 15:40:13 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: missing implementation for \u003cfx:Vector\u003e inside \u003cfx:Declarations\u003e\n"
    },
    {
      "commit": "2ed32afd86982c8af66a79e1e3038f636aea430b",
      "tree": "b3770b8f8caee50d1756b51b5114852f61a3b7bd",
      "parents": [
        "7c450b0583fb9e46b10d04f1d9e4ae312f4b55d2"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 15:09:59 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 15:09:59 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: an array containing a vector is not simple\n"
    },
    {
      "commit": "7c450b0583fb9e46b10d04f1d9e4ae312f4b55d2",
      "tree": "4686f84300682c144384901cf0afee0cfe9ed681",
      "parents": [
        "733c414091cbf6515e5d3416df1206b041ec06b5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 14:49:45 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 14:49:45 2026 -0700"
      },
      "message": "MXMLVectorNode: fix wrong value of type in initializeDefaultProperty()\n\nWas being set to Vector.\u003cT\u003e instead of T. However, getType() is documented as being the type of the elements in the vector.\n"
    },
    {
      "commit": "733c414091cbf6515e5d3416df1206b041ec06b5",
      "tree": "e8b3741c0fe3996eeb6d68299779a788d5366044",
      "parents": [
        "63ed1bc7f7214483d4b0fa2d0083d0fc13de9a19"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 09:46:19 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 11 11:17:45 2026 -0700"
      },
      "message": "MXMLClassReferenceNodeBase: detect MXML 2006 declarations and add them to implicit MXMLDeclarationsNodes in the AST (references #243)\n\n\u003cfx:Declarations\u003e doesn\u0027t exist in MXML 2006. Instead, declarations are direct children of the root. This is a little quirky. If the root is an mx.core.IContainer, and the child implements mx.core.IUIComponent, then it isn\u0027t considered a Declaration. Otherwise, for non-container roots, or children that aren\u0027t UI components, then they are declarations.\n\nI could have added the declarations directly to the root (they were being incorrectly including in the default property), but then the SWF and JS emitters would also need to detect MXML 2006, and it all got pretty messy. Instead, the implicit MXMLDeclarationsNode makes the emitters detect declarations the same as MXML 2009.\n"
    },
    {
      "commit": "63ed1bc7f7214483d4b0fa2d0083d0fc13de9a19",
      "tree": "47e0e8847143cee47d6f28bd55c0d9b9b67971a2",
      "parents": [
        "4dc4c0f3c020aa8bbb064d36f2c3aed420e75a1a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 09 08:31:51 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 09 08:31:51 2026 -0700"
      },
      "message": "RELEASE_NOTES: update\n"
    },
    {
      "commit": "4dc4c0f3c020aa8bbb064d36f2c3aed420e75a1a",
      "tree": "d052cb56f50d5ae95670684d25106b5ca2282986",
      "parents": [
        "9bbc3e4b64984aa01a6394bb0e561841ec9b0798"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 09 08:10:35 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Mar 09 08:10:35 2026 -0700"
      },
      "message": "JSConfiguration: move warn-this-within-closure default value of true from Configuration\n\nConfiguration tries to keep closer to defaults of Flex SDK, since it may be used with other frameworks. This warning can be a good default for Royale apps, especially in JS. That\u0027s where arrow functions are enabled by default, which is the better option.\n"
    },
    {
      "commit": "9bbc3e4b64984aa01a6394bb0e561841ec9b0798",
      "tree": "ff38e3cb7347b73d9e76398a2f467df9622f223a",
      "parents": [
        "3879893f975cb1d89981d86c850fed6157bead71"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 04 12:00:58 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Mar 04 12:00:58 2026 -0800"
      },
      "message": "JSCPublisher: null check for result of resolveQNameToDefinition() when writing HTML template body\n"
    },
    {
      "commit": "3879893f975cb1d89981d86c850fed6157bead71",
      "tree": "26e4a69e01e21d1c301ca2dd76d0b8f48899ce6e",
      "parents": [
        "0c4b77107440b2fbe83532b35cc0c66c6f5ba5ac"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Feb 27 15:43:13 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Feb 27 15:43:13 2026 -0800"
      },
      "message": "externc: expand list of top-level classes that should be dynamic, and add a list of top-level classes that should be final\n"
    },
    {
      "commit": "0c4b77107440b2fbe83532b35cc0c66c6f5ba5ac",
      "tree": "4a3e2dab70bcf621ffa428c7c6ab930baa4fb50b",
      "parents": [
        "5bf3f7fad5a106fce7054f530664260965994c0c"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Feb 27 11:20:07 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Feb 27 11:20:07 2026 -0800"
      },
      "message": "ASC: fix comment that said the opposite of what it meant\n"
    },
    {
      "commit": "5bf3f7fad5a106fce7054f530664260965994c0c",
      "tree": "f737ceef923310a15a0fa7df91770c6babdf4b30",
      "parents": [
        "4fdacaea1500da1bbadf666c06b28a90118522df"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 24 13:39:07 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 24 13:39:07 2026 -0800"
      },
      "message": "NOTICE: 2026\n"
    },
    {
      "commit": "4fdacaea1500da1bbadf666c06b28a90118522df",
      "tree": "f2e40287adf1bbe815f38e3f4e08d2c1502426d8",
      "parents": [
        "9c1556260f6b33ecf5ad551a8713cb24de2a090a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 23 10:08:26 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 23 10:08:52 2026 -0800"
      },
      "message": "CSSTree: fix CSS attribute selectors that use an identifier instead of a string (closes apache/royale-asjs#108)\n\nExample: input[type\u003drange] instead of input[type\u003d\"range\"]\n\nIt was appending the string, but assigning the identifier, so the attribute name and operator were getting forgotten when using an identifier.\n"
    },
    {
      "commit": "9c1556260f6b33ecf5ad551a8713cb24de2a090a",
      "tree": "bd28c841117fdddf08479a46764f48953fa76c40",
      "parents": [
        "34ca20ce4ada89da910daf864f8fb4e8dda0f00a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Feb 19 16:11:13 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Feb 19 16:11:13 2026 -0800"
      },
      "message": "royaleunit-ant-tasks: parse Adobe AIR version including both major and minor\n\nWhen the version number went into the double-digits, the minor part started getting ignored. This wasn\u0027t a huge issue because the minor part was usually 0. However, Harman started using minor versions again, like 33.1 and 51.2.\n"
    },
    {
      "commit": "34ca20ce4ada89da910daf864f8fb4e8dda0f00a",
      "tree": "915757d44863c7ceedecfe4ab46f08b9504d91ab",
      "parents": [
        "a3f12492b6bd5bd66a6af5ff1f7025d3df8c584a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 14:51:57 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 14:51:57 2026 -0800"
      },
      "message": "externc: hasSuperMethod() and hasSuperField() on ClassReference return false if super method/field is excluded\n"
    },
    {
      "commit": "a3f12492b6bd5bd66a6af5ff1f7025d3df8c584a",
      "tree": "f9c72c102c059c9170c63a2b3b9c4f6b057481c7",
      "parents": [
        "392f5e3811ed0a7296fc382d0adcc9b57cfcd861"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 14:31:41 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 14:31:41 2026 -0800"
      },
      "message": "externc: more exhaustive search for field and method overrides from interfaces\n\nWas searching directly implemented interfaces, but was not searching the interfaces that were extended by the first set of interfaces\n"
    },
    {
      "commit": "392f5e3811ed0a7296fc382d0adcc9b57cfcd861",
      "tree": "620b89d56e6302a719db2f2d7c927e693c734418",
      "parents": [
        "a6290f7a23c97b04d8229dfee6877b0d3c3802cc"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 09:30:09 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 18 09:30:09 2026 -0800"
      },
      "message": "externc: FieldReference needs to check if the field was originally defined on an interface, similar to MethodReference\n\nFields may have just an override jsdoc tag in this case, which was defaulting to type Object instead of the type from the interface\n"
    },
    {
      "commit": "a6290f7a23c97b04d8229dfee6877b0d3c3802cc",
      "tree": "be0c814560443fa917dc96bb2b717dff17e8be69",
      "parents": [
        "8bd5ca9feddcff783429d8a55be04448c2a957a0"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 17 14:53:31 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 17 15:01:33 2026 -0800"
      },
      "message": "MethodBodySemanticChecker: certain expressions that can resolve to a function type expression can be nested, so those need to be checked too\n"
    },
    {
      "commit": "8bd5ca9feddcff783429d8a55be04448c2a957a0",
      "tree": "24709d3ec4c56c5a7b653119247b971b6d5ebed9",
      "parents": [
        "046842d74962f02001852ca1d775a45eeef44b53"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 13:34:23 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 13:48:14 2026 -0800"
      },
      "message": "sdk.dependent.tests: fix for Linux\n\nTweaks to match how flex-sdk Ant build behaves\n\n- skip automation SWCs\n- use different config for mobilethheme on Linux\n\nBug:\n\n- fix textLayout path for case-sensitive file system\n"
    },
    {
      "commit": "046842d74962f02001852ca1d775a45eeef44b53",
      "tree": "cbd9a53c7affa9dad55e869fc68192bc2f756ace",
      "parents": [
        "72a4a282612ccf119a1f5ef5fb5a1f30574781b8"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 12:51:17 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 12:51:17 2026 -0800"
      },
      "message": "MethodBodySemanticChecker: handle function type expressions as operands in ternary operators and logical binary operators\n"
    },
    {
      "commit": "72a4a282612ccf119a1f5ef5fb5a1f30574781b8",
      "tree": "0f3f23f98c43aa758d27d513584aeaa9105967ba",
      "parents": [
        "5db27588dd9105848956571891909450999cf1c5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 09:08:35 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Feb 04 11:21:36 2026 -0800"
      },
      "message": "AccessorDefinition: fix function type expression metadata to work similarly to variables\n\nFunctionDefinition: don\u0027t add function type expression metadata to accessors because the AccessorDefinition will handle it\n"
    },
    {
      "commit": "5db27588dd9105848956571891909450999cf1c5",
      "tree": "01b3eeaf1ab28e0d988a454f92c5d4fb7b382dbb",
      "parents": [
        "3def6a8bd2ec6a1e24b43f25e42bec37dda73fe9"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 03 14:06:36 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Feb 03 14:06:36 2026 -0800"
      },
      "message": "compiler: allow tests to be run with AIR ADL instead of Flash Player\n\nStill uses FLASHPLAYER_DEBUGGER, if defined, but can fall back to ADL if AIR_HOME is defined instead\n"
    },
    {
      "commit": "3def6a8bd2ec6a1e24b43f25e42bec37dda73fe9",
      "tree": "96d82dda1fa379a44b2680d1a1cdf707938ed6b1",
      "parents": [
        "71a1962ee7aeefb25881ba2289765aa8f166fd0b"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 16:09:49 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 16:09:49 2026 -0800"
      },
      "message": "royaleUnitDescriptor.template: hide AIR window by default\n"
    },
    {
      "commit": "71a1962ee7aeefb25881ba2289765aa8f166fd0b",
      "tree": "524506eee9a13e8d2f4c65e4efb1840a36d6bcf1",
      "parents": [
        "a6a7f83a9f30d7affabb3f7b46cab5faf9e6b978"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 16:09:10 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 16:09:10 2026 -0800"
      },
      "message": "royaleUnitDescriptor.template: consistent indentation\n"
    },
    {
      "commit": "a6a7f83a9f30d7affabb3f7b46cab5faf9e6b978",
      "tree": "956f74aa530eca78dcf4944e2f62d1dee7a711c0",
      "parents": [
        "8cee3fb636fa987e460947da24033b2039f65d42"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 14:41:56 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Feb 02 14:41:56 2026 -0800"
      },
      "message": "royaleunit-ant-tasks: prefer AIR_HOME over ROYALE_HOME, if available, to find adl and adt executables\n"
    },
    {
      "commit": "8cee3fb636fa987e460947da24033b2039f65d42",
      "tree": "f48c26fd8993a47405f16b3ece236a6a00b8e13e",
      "parents": [
        "06e46e5a23bd532d25d7cfbfd1402aebd3a7cda6"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 27 12:06:07 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 27 12:06:07 2026 -0800"
      },
      "message": "MethodBodySemanticChecker: don\u0027t allow an arrow function to be used with new as a constructor\n"
    },
    {
      "commit": "06e46e5a23bd532d25d7cfbfd1402aebd3a7cda6",
      "tree": "19bb72956447c99e63d5c00328c4c2f01c0f111e",
      "parents": [
        "42bf14a42850a60af5684776145d6c9551c38626"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 27 11:52:47 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 27 11:52:50 2026 -0800"
      },
      "message": "MethodBodySemanticChecker: prevent \u0027arguments\u0027 binding from being used in an arrow function\n\nArrow functions aren\u0027t supposed to have their own this, super, or arguments bindings. The compiler already reports an error if this or super are used in contexts where they don\u0027t make sense. Report a similar error for arguments here.\n"
    },
    {
      "commit": "42bf14a42850a60af5684776145d6c9551c38626",
      "tree": "986b39f9be9447ca22ed5305eb54a48e9358a545",
      "parents": [
        "5a4b8d34d201024f89818df4ebb1cc41373717b1"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 15:32:57 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 15:32:57 2026 -0800"
      },
      "message": "formatter, linter: fix incorrect end line and end column on generated whitespace or extra tokens\n"
    },
    {
      "commit": "5a4b8d34d201024f89818df4ebb1cc41373717b1",
      "tree": "4043d7b5ab2ca0cc0401494be58e1bd5ac3d2ea2",
      "parents": [
        "2404c68eae3734d9f568faa09e40b6bf56ca474e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 14:11:09 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 14:11:09 2026 -0800"
      },
      "message": "RELEASE_NOTES: update for 0.9.13\n"
    },
    {
      "commit": "2404c68eae3734d9f568faa09e40b6bf56ca474e",
      "tree": "a191f1a2bd722be5406846babeb4383907f9c38c",
      "parents": [
        "5ed20c96320eee806802895c6c12219553cc4a64"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 12:28:24 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 12:28:31 2026 -0800"
      },
      "message": "MethodBodySemanticChecker: another exception for return types that aren\u0027t the same or subclasses (any (*) type)\n\nAS3 allows calling a function with return type void and assigning it to a variable of type any (*). The assigned value will be undefined. Same idea here.\n"
    },
    {
      "commit": "5ed20c96320eee806802895c6c12219553cc4a64",
      "tree": "2765f7506df6b9b68cfec07549f35f0104d53880",
      "parents": [
        "a6c8e592719f57d3d23e29321ac12fd3aff7ea7d"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 12:13:23 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 26 12:13:23 2026 -0800"
      },
      "message": "FunctionTypeExpressionNode: fix null AST node when parsing signature\n\nFalls back to getting the source locations from the definition instead (which is necessary when compiled into a SWC, since the AST nodes won\u0027t exist anymore)\n"
    },
    {
      "commit": "a6c8e592719f57d3d23e29321ac12fd3aff7ea7d",
      "tree": "dce3fd01b2ef9f0e87eabf9190ad24bc1f96f1ff",
      "parents": [
        "fd729b2cadc414fd566fd25487e127841802874c"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 15:07:44 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 15:07:44 2026 -0800"
      },
      "message": "FunctionCallEmitter: fix Vector.\u003cFoo\u003e() global function when using custom vector emulation class\n"
    },
    {
      "commit": "fd729b2cadc414fd566fd25487e127841802874c",
      "tree": "8a71bd42582aa54a48a6bd04a5227053e6fa9b2b",
      "parents": [
        "b6c05230ba98f8fff1f6dbe6525d568be4c2042a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 14:44:41 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 14:44:41 2026 -0800"
      },
      "message": "Tests for new vector emulation options to omit element types and to use a function for literals\n"
    },
    {
      "commit": "b6c05230ba98f8fff1f6dbe6525d568be4c2042a",
      "tree": "935dcb96f829f998947f2e212fa5aa41e811df5e",
      "parents": [
        "5ef5638c54af643819c2a56d546f09bb3e0af371"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 14:22:02 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 14:29:24 2026 -0800"
      },
      "message": "AsIsEmitter: fix implicit cast to vector when using js-vector-emulation-class option\n"
    },
    {
      "commit": "5ef5638c54af643819c2a56d546f09bb3e0af371",
      "tree": "6d3439a736eb428d27c57e347356e596eee6a563",
      "parents": [
        "d22b10d088edfcff3488ddebb464c406d7adce4e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 13:23:09 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 20 13:25:17 2026 -0800"
      },
      "message": "AsIsEmitter: fix (x as *) emitting Language.as(x, *) in JS, where * doesn\u0027t exist\n"
    },
    {
      "commit": "d22b10d088edfcff3488ddebb464c406d7adce4e",
      "tree": "2ffee1cf93ce0d4a88fa449a7a97239339b98ed0",
      "parents": [
        "3f764ab90ea4773beab7dd4a234d1037d2711240"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 15 13:30:45 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 15 13:30:45 2026 -0800"
      },
      "message": "externc: create all directories for generated .as files beforehand\n\nIn particular, duplicates needs to be created because on case-sensitive file systems, there may end up being no duplicates, like there would be on case-insensitive file systems. In royale-typedefs, node creates Buffer.as and buffer.as. On Linux, they both go into classes. On Windows and macOS, one goes into classes, and one duplicates. The configuration for the SWC compiler expects duplicates to exist because it needs to on Windows and macOS, but it didn\u0027t on Linux, breaking the SWC build.\n\nI could have created duplicates only, but it felt weird to single that one out, so I created them all. Some may be empty, but that shouldn\u0027t break anything.\n"
    },
    {
      "commit": "3f764ab90ea4773beab7dd4a234d1037d2711240",
      "tree": "0c64082dc1f44367acc3111120ce86c9e4514917",
      "parents": [
        "c8b7f353d8e6535935f8827240cb9202a7a57b4e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 15:47:50 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 15:47:50 2026 -0800"
      },
      "message": "JSConfiguration: js-vector-emulation-literal-function to allow calling a function to create a Vector literal instead of the constructor\n\nA custom Vector implementation that closely follows Flash\u0027s implementation would accept length and fixed values in the constructor. However, the vector emulation class was expected to overload the constructor to accept an array for the first parameter too. That may not be possible, so a custom function to create a vector and populate it for a vector literal offers more flexibility.\n"
    },
    {
      "commit": "c8b7f353d8e6535935f8827240cb9202a7a57b4e",
      "tree": "b142223834d0141ac135da9a15b7134a65537986",
      "parents": [
        "9fdb92aae3987140a78f5609332a171b3d2490d3"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 15:15:22 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 15:15:22 2026 -0800"
      },
      "message": "AsIsEmitter: fix as and is when using js-vector-emulation-class\n\nWas checking against Language.synthVector() instead of the custom class\n"
    },
    {
      "commit": "9fdb92aae3987140a78f5609332a171b3d2490d3",
      "tree": "5e0ce46983879adcf27f23cd384a231e2d92e703",
      "parents": [
        "5d3b3f083c5ad549eebb5e5ef02d174fa511f189"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 14:55:58 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jan 14 14:55:58 2026 -0800"
      },
      "message": "JSConfiguration: js-vector-emulation-element-types option to control whether js-vector-emulation-class receives the element types as a constructor argument or not\n\nDefaults to true, to preserve existing behavior. Some Vector implementations may not need the element type, though, and they may have the original Flash Vector constructor signature instead (with length followed directly by fixed, and no additional parameters).\n"
    },
    {
      "commit": "5d3b3f083c5ad549eebb5e5ef02d174fa511f189",
      "tree": "4b7f39f5cdcfa66593646808df13c0dd704150f5",
      "parents": [
        "8d12afc4a53d4d42fe53ea96053b5c713a59971a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 13 09:36:40 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 13 09:36:40 2026 -0800"
      },
      "message": "IdentifierNode: fix issue where asc can\u0027t compile because of dependency on RoyaleProject (closes #242)\n"
    },
    {
      "commit": "8d12afc4a53d4d42fe53ea96053b5c713a59971a",
      "tree": "5414cae0f317111cc1c7564948afeb6a02813e0b",
      "parents": [
        "60b7aa7768123223b132de9c5b1aed50721ceee5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 16:04:13 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 16:04:13 2026 -0800"
      },
      "message": "Ant: enable assertions on junit tests\n\nMaven already enabled assertions. Best to find assertion errors without having to run both builds.\n"
    },
    {
      "commit": "60b7aa7768123223b132de9c5b1aed50721ceee5",
      "tree": "65739d83a88d306268647844402960c591ad2dad",
      "parents": [
        "ee996cd366070f992802b5c257522ecbc092d5ea"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 15:41:41 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 15:41:41 2026 -0800"
      },
      "message": "MXML HTTPService, WebService, RemoteObject: tweak some parent/child relationships to fix assertions\n"
    },
    {
      "commit": "ee996cd366070f992802b5c257522ecbc092d5ea",
      "tree": "44cdb222842d8aecf9a76b83ed970faf19b7cde3",
      "parents": [
        "6994db7c5fefe529aeb7e308d29eb61389250bf2"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 14:31:11 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 14:31:11 2026 -0800"
      },
      "message": "ASTokenFormatter, ASLinter: normalize file path and provide ASFileScope to fix assertion errors\n"
    },
    {
      "commit": "6994db7c5fefe529aeb7e308d29eb61389250bf2",
      "tree": "36d72e020b50377b5e745c767d6aad483b21cc76",
      "parents": [
        "7405d89e0f8484ab2adac6d0ae4b002cd53d5874"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 13:44:25 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jan 12 13:44:25 2026 -0800"
      },
      "message": "ExpressionNodeBase: fix assertion error for getDependencyType() with IFunctionTypeExpressionNode\n"
    },
    {
      "commit": "7405d89e0f8484ab2adac6d0ae4b002cd53d5874",
      "tree": "d301dfe461c0d71946b94e4af85ab107404ba4ff",
      "parents": [
        "9afc9f93c9f6d158ac85750a5c842b5fbc7c88d3"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Oct 16 14:55:48 2025 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 08 16:18:50 2026 -0800"
      },
      "message": "Function type expressions: optionally specify a required function signature for variables that can store functions, and check that signature at compile-time\n\nCompiles down to the Function type, so there are no additional checks at run-time.\n\nvar f:(s:String, n?:Number, ...rest)\u003d\u003evoid;\n\nSimilar syntax to real functions. Parameters and return type are separated by the \u003d\u003e token. Optional parameters use the ? token instead of specifying a default value with \u003d and a constant. This allows functions to have different default values.\n\nIncludes various checks for valid use of the signature.\n\n- Assigning another variable that has a function type expression.\n- Assigning a real function to the variable (including arrow functions).\n- Calling the variable in a function call expression.\n\nIf an assignment includes a nested function type expression, such as a parameter or return type, that is checked too.\n"
    },
    {
      "commit": "9afc9f93c9f6d158ac85750a5c842b5fbc7c88d3",
      "tree": "14608e923666a4944df1ac5ace5038143fdb381a",
      "parents": [
        "ed97a921d80e187c36b5318cebcc452ff1139b87"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 08 14:01:58 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 08 14:01:58 2026 -0800"
      },
      "message": "FontEmbeddingNotSupported: restore this class, even though it is not used in the compiler anymore, because it is referenced by the as3mxml language server\n"
    },
    {
      "commit": "ed97a921d80e187c36b5318cebcc452ff1139b87",
      "tree": "df7f6a387c03c43dff50d364c71abdf967594f4c",
      "parents": [
        "ef3c6e755a896cebb697de9b70d13a75569e18ac"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 06 11:42:43 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jan 08 11:56:01 2026 -0800"
      },
      "message": "Enable [Embed] for TTF/OTF fonts when targeting SWF\n\nSupports the embedded font format for flash.text.TextField. Does not support the CFF font format for Flash Text Engine, so specifying embedAsCff\u003d\"true\" will report a compile-time error.\n\nCompile-time errors will also be reported when trying to use systemFont or sourceList attributes that the Flex SDK supported. It may be possible to support them with some tweaks to the way that embedding assets in general works. It looks like a file system path is currently required, and is always derived from source at this time.\n\nBased on the JREFontManager from the Flex SDK, which uses java.awt.Font. Seems to work well with some TTF and OTF fonts that I tested.\n\nDoes not support additional, or custom, font managers.\n"
    },
    {
      "commit": "ef3c6e755a896cebb697de9b70d13a75569e18ac",
      "tree": "3484c71571c65dc393a6e06b793baea43c71ce1e",
      "parents": [
        "8965059847b27fd465aeeb1bd15813cd9582f849"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 06 11:02:19 2026 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jan 06 11:02:19 2026 -0800"
      },
      "message": "FontEmbeddingNotSupported: fix typo\n"
    },
    {
      "commit": "8965059847b27fd465aeeb1bd15813cd9582f849",
      "tree": "68f6afdedb94f6f01742f7be19aae802fc704763",
      "parents": [
        "8d78181917d95c6501dc1a521fc4ce9e497492ff"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Nov 05 09:28:13 2025 -0800"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Nov 05 11:21:49 2025 -0800"
      },
      "message": "CSSTree: fix uncaught exceptions when parsing hexadecimal color values and number values by adding problems when invalid\n"
    }
  ],
  "next": "8d78181917d95c6501dc1a521fc4ce9e497492ff"
}
