)]}'
{
  "log": [
    {
      "commit": "2b7b170b660be153072ca0459b5f2af003eee2c5",
      "tree": "3018b757c985c4ad3d1b040c9521c2dcc8f7a8c7",
      "parents": [
        "71498fc46153cb37541b54559c9f0e5c7772c780",
        "2737f98c87b48f21271e8cc3bf5bbddafae8dc45"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sun Jul 26 14:52:08 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sun Jul 26 14:52:08 2026 +0100"
      },
      "message": "Merge branch \u0027develop\u0027 of https://github.com/apache/royale-compiler into develop\n"
    },
    {
      "commit": "71498fc46153cb37541b54559c9f0e5c7772c780",
      "tree": "5643bf16dda0779e01616880cfbfb6c9fabd2efe",
      "parents": [
        "dcd23695b12fe20a17e20a549f6d113245dda038"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sun Jul 26 14:51:53 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Sun Jul 26 14:51:53 2026 +0100"
      },
      "message": "Add optional verify-source-matches-tag to utility approve scripts\n"
    },
    {
      "commit": "2737f98c87b48f21271e8cc3bf5bbddafae8dc45",
      "tree": "a913008a75008f7629feb79ea0c776824c3711f6",
      "parents": [
        "dcd23695b12fe20a17e20a549f6d113245dda038"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 24 15:47:45 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 24 15:59:46 2026 -0700"
      },
      "message": "EmbedData: Fixed error for duplicate class definitions when using Embed metadata even though there were no actual duplicates\n\nMade the generation of the EmbedData\u0027s uniqueName (which is assigned to the the hashCodeSourceName) more consistent. The inconsistent hashCodeSourceName was causing the DuplicateClassDefinitionProblem to be reported intermittently.\n\nThe result of hashCode() was different between calling EmbedData\u0027s createTranscoder() method and calling its getQName() method. If the EmbedData was used as a key for the embedCompilationUnits in CompilerProject before getQName() was called, the hashCode() calculated for put() and the hashCode() calculated for get() would be different. The EmbedData wouldn\u0027t be found because of the HashMap\u0027s internal bucketing doesn\u0027t associate the EmbedData with its new hash, even though equals() would now return true. Then, put() would be called again, and the map would end up with two of the same key, so two separate compilation units for the exact same EmbedData.\n\nNow, in both createTranscoder() and getQName(), the hashCodeSourceName is set to the same value by calling the same private getUniqueName(). The hashCode() is consistent, and there are no longer duplicate compilation units created for the same EmbedData.\n\nRelated commits: c97ab3ef32a49784e4cb07ca2630880c633f8c28, 970df1e7e6a92f4d498772c2dcd43b72f7833b26, and b4deb222208eb93003a574a34697781351ebcfab\n"
    },
    {
      "commit": "dcd23695b12fe20a17e20a549f6d113245dda038",
      "tree": "57bb55dbb4baf1283e14a089954d1bb94e436c7b",
      "parents": [
        "e10f20c2d27910528fb68db6bc358751c021e2f5"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 17:28:36 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 17:28:36 2026 +0100"
      },
      "message": "Include Git tag/commit provenance and clarify 72-hour minimum in release vote emails\n"
    },
    {
      "commit": "e10f20c2d27910528fb68db6bc358751c021e2f5",
      "tree": "a54bc84324096c00bae6be51e7260e281591fafa",
      "parents": [
        "4cc10861353d2b04071c07b13a2734d2e1322bda"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 14:31:57 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 14:31:57 2026 +0100"
      },
      "message": "Clean up unused fields in approval step for jburg\n"
    },
    {
      "commit": "4cc10861353d2b04071c07b13a2734d2e1322bda",
      "tree": "87bc619381ebd9203dff0b88e9e123d9a593ea48",
      "parents": [
        "480482654d9ea4cd825f072a69b82141d0e1b4dd"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:48:00 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:48:00 2026 +0100"
      },
      "message": "Remove beta-quality wording from release vote email templates\n"
    },
    {
      "commit": "480482654d9ea4cd825f072a69b82141d0e1b4dd",
      "tree": "96bec02eba27481b91821dc2a33db6f477876804",
      "parents": [
        "5efce8cbb54474966cad936bfe62af460f7e1d61",
        "6cb97d33bf2278d982171408f39e05d30118c017"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:27:00 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:27:00 2026 +0100"
      },
      "message": "Merge branch \u0027develop\u0027 of https://github.com/apache/royale-compiler into develop\n"
    },
    {
      "commit": "5efce8cbb54474966cad936bfe62af460f7e1d61",
      "tree": "27e66cee37f629b070a1bfdc4402f4b45b08125c",
      "parents": [
        "2ddf3afeceace0315fefc11bcc519031b2e94d89"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:26:49 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 13:26:49 2026 +0100"
      },
      "message": "compiler-jburg-types: add optional verify-compiler-integration target to ApproveJBurgTypes.xml\n"
    },
    {
      "commit": "6cb97d33bf2278d982171408f39e05d30118c017",
      "tree": "cec97517b57c2b7dec39b17350c84b3b5327cac9",
      "parents": [
        "3d9fca8a179fbcc0dc8b8d84b0cab6c8895197e5"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Fri Jul 24 08:47:46 2026 +0000"
      },
      "committer": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Fri Jul 24 08:47:46 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare for next development iteration\n"
    },
    {
      "commit": "3d9fca8a179fbcc0dc8b8d84b0cab6c8895197e5",
      "tree": "bffded8ae4ce765d9f6822c9e7f86f9f47681333",
      "parents": [
        "2ddf3afeceace0315fefc11bcc519031b2e94d89"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Fri Jul 24 08:47:39 2026 +0000"
      },
      "committer": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Fri Jul 24 08:47:39 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare release org.apache.royale.compiler-jburg-types-1.1.1-rc2\n"
    },
    {
      "commit": "2ddf3afeceace0315fefc11bcc519031b2e94d89",
      "tree": "966eac8e63915136eac376fba0c89718669cc940",
      "parents": [
        "dc25bb5160c7e8d6c66c0bb08bbf45897284d98f"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 09:18:36 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 09:18:36 2026 +0100"
      },
      "message": "Revert \"[maven-release-plugin] prepare release org.apache.royale.compiler-jburg-types-1.1.1-rc1\"\n\nThis reverts commit 4fcb8cdf13795b465bf17a7d0ea802de28084488.\n"
    },
    {
      "commit": "dc25bb5160c7e8d6c66c0bb08bbf45897284d98f",
      "tree": "dba8c868e31610fa90663fafd3da0dbd18c8f17b",
      "parents": [
        "f2889488c802fec307cc8b1f6d6a8aa60089bf52"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 09:18:36 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 09:18:36 2026 +0100"
      },
      "message": "Revert \"[maven-release-plugin] prepare for next development iteration\"\n\nThis reverts commit 479bb7529d3932abe3b986b6a3989a8777ab29c0.\n"
    },
    {
      "commit": "f2889488c802fec307cc8b1f6d6a8aa60089bf52",
      "tree": "cec97517b57c2b7dec39b17350c84b3b5327cac9",
      "parents": [
        "780afff2042e6f7d0fc549958b5f83554f00b039"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 08:52:31 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 24 09:17:07 2026 +0100"
      },
      "message": "compiler-jburg-types: add royale-release profile (mirrors compiler-build-tools)\n"
    },
    {
      "commit": "780afff2042e6f7d0fc549958b5f83554f00b039",
      "tree": "1cec42195abd8070a1ba56d38eb55db5e524faeb",
      "parents": [
        "cbb65f6ca263277b4893883e79a7209f5512f0ce"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 23 12:40:40 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 23 12:43:51 2026 -0700"
      },
      "message": "MXMLStateSplitter: allow dot (.) character in MXML namespace prefixes\n\nExamples:\n\nxmlns:com.exmaple\u003d\"com.example.*\"\n\u003ccom.example:MyClass/\u003e\n\nThe Flex compiler differentiated between . as a state override and . in an MXML namespace prefix. These locations for the . don\u0027t conflict at all, so it is safe to make the Royale behavior support this same syntax as Flex.\n"
    },
    {
      "commit": "cbb65f6ca263277b4893883e79a7209f5512f0ce",
      "tree": "1aa3e409cdc880d05a905902ab76cce9817b8585",
      "parents": [
        "479bb7529d3932abe3b986b6a3989a8777ab29c0"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 23 12:37:47 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 23 12:43:51 2026 -0700"
      },
      "message": "IMXMLToken: similar to IASToken, it should extend ISourceLocation\n\nThe MXMLToken implementation already extends ASToken, so no other change is required, and this helps us avoid unnecessary casting.\n"
    },
    {
      "commit": "479bb7529d3932abe3b986b6a3989a8777ab29c0",
      "tree": "5b5b79def9c366c07e5d4d6c5c9b08ac44d4c175",
      "parents": [
        "4fcb8cdf13795b465bf17a7d0ea802de28084488"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Thu Jul 23 09:13:11 2026 +0000"
      },
      "committer": {
        "name": "yishayw@apache.org",
        "email": "yishayw@apache.org",
        "time": "Thu Jul 23 09:13:11 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare for next development iteration\n"
    },
    {
      "commit": "4fcb8cdf13795b465bf17a7d0ea802de28084488",
      "tree": "c33acfbb765234a542e92d00b5aeae127ffe9bd5",
      "parents": [
        "f9b385a7e991ebd017a1cf958106cf0c1ba90c4f"
      ],
      "author": {
        "name": "yishayw",
        "email": "yishayw@apache.org",
        "time": "Thu Jul 23 09:13:05 2026 +0000"
      },
      "committer": {
        "name": "yishayw@apache.org",
        "email": "yishayw@apache.org",
        "time": "Thu Jul 23 09:13:05 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare release org.apache.royale.compiler-jburg-types-1.1.1-rc1\n"
    },
    {
      "commit": "f9b385a7e991ebd017a1cf958106cf0c1ba90c4f",
      "tree": "966dd56511adb32c92c1f77a51ff9cffd8c9d9f4",
      "parents": [
        "e6ee821c2c491980c0beb58da384e7fac5406eb4"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 17 15:30:39 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 17 15:30:39 2026 +0100"
      },
      "message": "compiler-jburg-types: add release scaffolding (releasesteps.xml, ApproveJBurgTypes.xml)\n"
    },
    {
      "commit": "e6ee821c2c491980c0beb58da384e7fac5406eb4",
      "tree": "73200abc06841ebb47d47240428f7e0f7b8ed1cd",
      "parents": [
        "0e8029f6a9d5f78cc0aebb5cb962ebea72bdd489"
      ],
      "author": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 17 14:29:41 2026 +0100"
      },
      "committer": {
        "name": "Yishay Weiss",
        "email": "yishayjobs@hotmail.com",
        "time": "Fri Jul 17 14:30:57 2026 +0100"
      },
      "message": "Bump compiler-build-tools to 1.2.2\n"
    },
    {
      "commit": "0e8029f6a9d5f78cc0aebb5cb962ebea72bdd489",
      "tree": "f19c62c6a4ca44674712d1cc75ffd4677fc8ea11",
      "parents": [
        "aed3bed67ff4188e1150c0d5bb2f260f78e07901"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 16 14:34:03 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jul 16 14:34:19 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: followup to children-as-data\u003dfalse in JS to include IMXMLFactoryNode\n\nFollowup to commit de684f3eb4c65bcaa424e9a5d22d45ced57c7005\n"
    },
    {
      "commit": "aed3bed67ff4188e1150c0d5bb2f260f78e07901",
      "tree": "0a422ada6dccd57546a6dce46fafbc15ab05041b",
      "parents": [
        "4a54ab95351c84670c73cbe0261a2316bf638ba5"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jul 14 16:25:24 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jul 14 16:25:24 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: followup to fix extra comma in array when instance node descriptor should be skipped\n\nFollowup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab\n"
    },
    {
      "commit": "4a54ab95351c84670c73cbe0261a2316bf638ba5",
      "tree": "cc5103f2bc7d4ce071d3d127d4e1c0423f5fbe00",
      "parents": [
        "739d7db2bf47095ae4626d821636df195c6bddf1"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jul 14 09:52:59 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jul 14 09:52:59 2026 -0700"
      },
      "message": "DefinitionBase: Fixed race condition in populating metadata on definitions.\n\nMultiple threads may be writing or reading the meta tags on a definition. Use a lock to ensure that they play nicely together. Not using synchronized because other threads should be able to access non-meta tag parts of the definition at the same time without issue.\n"
    },
    {
      "commit": "739d7db2bf47095ae4626d821636df195c6bddf1",
      "tree": "1a42fd7e40fcafd63b27431c32f6222decad1bed",
      "parents": [
        "ed5b2af43f66bd0fce017af7598d8bcebf8095e8"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 15:57:56 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 15:57:56 2026 -0700"
      },
      "message": "MXMLClassDirectiveProcessor: Fixed operand stack underflow error when using data binding in MXML to assign to \u003cfx:Object\u003e property.\n"
    },
    {
      "commit": "ed5b2af43f66bd0fce017af7598d8bcebf8095e8",
      "tree": "97360e0ca915031e30fa10db8962b82187bb4270",
      "parents": [
        "d678e7269fd54106da0868f79bea0d80694ea5f2"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 13:42:15 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 13:42:15 2026 -0700"
      },
      "message": "JSRoyaleEmitter: fixed null exception when emitting embedded plain text strings\n"
    },
    {
      "commit": "d678e7269fd54106da0868f79bea0d80694ea5f2",
      "tree": "34af74d257cb95d45691f3095f4b47957204e348",
      "parents": [
        "bbe6adab4f6e3d066af33468a1dd21ea36f6ec6c"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 10:20:56 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Mon Jul 13 10:20:56 2026 -0700"
      },
      "message": "ProblemQuery: Fixed missing Generated byte code contains an operand stack underflow error when warnings are reported, but not other errors\n\nThe CodeGenErrorFilter should have been checking the severity.\n"
    },
    {
      "commit": "bbe6adab4f6e3d066af33468a1dd21ea36f6ec6c",
      "tree": "5321876131e93854e84cec93e9e2826e1ac05b5c",
      "parents": [
        "ff0c89189a838f56c3b5a1296e10c8ddc77b669e"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 15:48:44 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 15:48:44 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: follow up to emitting MXML factory methods to include mx:Function, mx:Class, and mx:RegExp\n\nFollowup to de684f3eb4c65bcaa424e9a5d22d45ced57c7005\n"
    },
    {
      "commit": "ff0c89189a838f56c3b5a1296e10c8ddc77b669e",
      "tree": "09d30f70a6f423a9da1cb49166fa1cff165d2abf",
      "parents": [
        "ce9a41b0a5055e8d1252c09487d7bb00d6de2642"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 15:26:48 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 15:26:48 2026 -0700"
      },
      "message": "MXMLRoyaleEmitter: follow up to component descriptors to skip embed nodes in properties for now\n\nFollowup to commit 5469ef57820dbc3d7d59b58d72cef2ab3dbbe87d\n"
    },
    {
      "commit": "ce9a41b0a5055e8d1252c09487d7bb00d6de2642",
      "tree": "50f6aec3253041f17fcb963eb81ace565844a3b5",
      "parents": [
        "caae4bfdf370c6341e46adbb7ffcc463ad28d5ce"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 14:22:25 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Fri Jul 10 14:22:25 2026 -0700"
      },
      "message": "MXMLClassDirectiveProcessor, MXMLClassReferenceNodeBase: fix operand stack underflow when using \u003cmx:Repeater\u003e\n"
    },
    {
      "commit": "caae4bfdf370c6341e46adbb7ffcc463ad28d5ce",
      "tree": "b8a11ff9425c038ee7cc09e687f079f550a6d6fe",
      "parents": [
        "2454b69c710823e5be79f97f97770662a2b45c3d"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jul 08 10:10:28 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Wed Jul 08 10:10:46 2026 -0700"
      },
      "message": "royaleunit-ant-tasks: avoid possible infinite loop in recently improved check for AIR adl versions\n\nFollowup to commit adb5a29699b41d9520dfb6660b5b7413ed87df16\n"
    },
    {
      "commit": "2454b69c710823e5be79f97f97770662a2b45c3d",
      "tree": "d74fd462ae996c7455f608980d48f6a28a01257f",
      "parents": [
        "c2137debbad7180098ec1a1fea42f9796774a97b"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jun 18 15:21:24 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Thu Jun 18 16:16:05 2026 -0700"
      },
      "message": "FunctionNode: remove existing definitions from scope immediately before adding new definitions for parsed function body (references #249)\n\nFollowup to bad8386b0555df1b6304cec79267d67ce56bc32f and 35eed62f13519c659e6346d26cca3f44afe3170f\n\nRemoving the definitions in analyze() when hasBeenParsed() is false, instead of in parseFunctionBody() before post processing still resulted in weird states where a scope might not contain any non-parameter local definitions. This change basically avoids removing any definitions unless those definitions are guaranteed to be immediately replaced because the function body is in the process of being re-parsed. This seems to fix the original assertion failure, and also seems to prevent scopes with no definitions.\n"
    },
    {
      "commit": "c2137debbad7180098ec1a1fea42f9796774a97b",
      "tree": "eb4877fcbd556af8bfdcfe8b1ef2c671a0f46de2",
      "parents": [
        "488fc5fbc7f5f5a638d8832a385886cf66c6246a"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jun 16 14:31:19 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jun 16 14:31:19 2026 -0700"
      },
      "message": "IMXMLTypeConstants: mx.core.FlexVersion should not have been converted to mx.core.RoyaleVersion\n\nThis is used for Flex framework compilation. There is no RoyaleVersion class in royale-asjs\n"
    },
    {
      "commit": "488fc5fbc7f5f5a638d8832a385886cf66c6246a",
      "tree": "27c3b33bab48a9abd03fb02ef0b0120d8921a458",
      "parents": [
        "bad8386b0555df1b6304cec79267d67ce56bc32f"
      ],
      "author": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jun 16 09:45:33 2026 -0700"
      },
      "committer": {
        "name": "Josh Tynjala",
        "email": "joshtynjala@apache.org",
        "time": "Tue Jun 16 09:45:33 2026 -0700"
      },
      "message": "GoogDepsWriter: Fixed missing symbols specified with -includes compiler option in generated JS.\n"
    },
    {
      "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"
    }
  ],
  "next": "a6290f7a23c97b04d8229dfee6877b0d3c3802cc"
}
