Congrats Andrew! Well done! wt., 3 lip 2018 o 18:31 Alex Harui <aha...@adobe.com.invalid> napisał(a):
> Hi Andrew, > > I just accepted your pull requests. Great Job! > > Yes, I know it was more work than expected, but actually you did a lot > more than just handle Date APIs. You provided a way to specify readonly > vars in externs and provided a pile of new tests. > > Hope to see more contributions like these. > > Thanks, > -Alex > > On 7/3/18, 3:57 AM, "Frost, Andrew" <andrew.fr...@harman.com> wrote: > > Another update: the swfdumps are all done and it's all working fine > and testing itself properly, I had to change another externc-config.xml > file along with the other missing.js file to ensure that the 'testing' > libraries are [roughly] equivalent to the actual files used in compilation.. > > Seems to be working to me and, I hope, is an acceptable solution. It > required a lot more changes than I'd originally thought! > > Pull requests are: > Typedefs: > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-typedefs%2Fpull%2F2&data=02%7C01%7Caharui%40adobe.com%7C23fabd6b67b94e1dc16008d5e0d3d550%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636662122786567530&sdata=Q%2FnpJJ657LMOQFUvytn5k4LWbVVw3YancGcyqU%2F9MSI%3D&reserved=0 > Compiler: > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-compiler%2Fpull%2F46&data=02%7C01%7Caharui%40adobe.com%7C23fabd6b67b94e1dc16008d5e0d3d550%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636662122786567530&sdata=L%2B3cknwmPbt4rvzFd7sDguzXXNspXHUdnVY4UVIPnW0%3D&reserved=0 > > If you have the typedefs changes but not the compiler ones, then your > Date properties will start coming through as undefined, as it will miss the > transpiling bit where it converts e.g. "date.day" into "date.getDay()"... > > Let me know of any issues (or please add to the discussion comments on > the pull request instead?) > > cheers > > Andrew > > > > -----Original Message----- > From: Frost, Andrew [mailto:andrew.fr...@harman.com] > Sent: 02 July 2018 16:53 > To: dev@royale.apache.org > Subject: [EXTERNAL] RE: Royale compiler not handling Date.fullYear etc > > Ah - thank you! Will look at that later and create a pull request once > everything is in there and testing itself properly.. > > cheers > > Andrew > > > -----Original Message----- > From: Alex Harui [mailto:aha...@adobe.com.INVALID] > Sent: 02 July 2018 16:51 > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Royale compiler not handling Date.fullYear etc > > Ah yes, the swfdumps... > > So when tests that produce a SWF run without the Flash playerglobal > and standalone debugger, the test harness runs SWFDump and compares the > output. The reference copies of the swfdumps are in > compiler/src/test/resources/swfdumps and the files have a naming scheme I > hope you can decode. So, when you add a new test and it can't find the > reference swfdump, it will dump what it found to make it easy for you to > copy the swfdump and make it the reference copy. So copy the console > output of the swfdump and create the reference file and it should be ok > after that. > > Thanks, > -Alex > > On 7/2/18, 8:42 AM, "Frost, Andrew" <andrew.fr...@harman.com> wrote: > > Latest on this: > > With the changes in the compiler per the below suggestion > (externc-config.xml and ExternCConfiguration changes), we can generate the > below code (as extracted from js.swc): > > public function get timezoneOffset():Number{ > return (null); > } > > And everything looks good... works well, we get the right warning > out when we try to assign a value to timezoneOffset. > Changes are visible in > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fclicktime.symantec.com%2Fa%2F1%2FwviiW6QxLi8ypSnU5H09X2xjni7YMbYvK77LEkO5CDc%3D%3Fd%3D_zziaDODDuvZwC8YjWYfsPGmQ13A3Q5xBbMSUHKZIo34PLSaC9n5J08tWjYr684YeBkkWxnp2HcZdkgNzuQomI_AxW87-eGOUJ6BX3fpIq_85GevpLOLDtImXR9QSgOqRr8CPPdoqGLktBiwqfyZgvoybKudC2IK3zCmJoehcWoBmeXjp5BYTa2y0nIyvPd5uIG0WYm3JsJ2SYir9Lo6eyi-l_jT5qujCB9duN6TZDMw6d3nk9CU1DUlTgmpu8sTVpksO772_ZC0g-UQ0XAwzNaKvyauEqoa7Dn0h61XfQp5AqHmj6fdgrYEtUrlQQYC5UE3i8HxOcaCgOYGOEQ1GClok3NDQMETE1dyjN20C1N_Z-dWb1-qNMzyGi732Hk-nT_kq4IjD3YDuNeJwtk0wYZ42ik8c4M-nNHDMcZJfnVJf9_MWpQBY7o3JH2Vdg%253D%253D%26u%3Dhttps%253A%252F%252Fna01.safelinks.protection.outlook.com%252F%253Furl%253Dhttps%25253A%25252F%25252Fgithub.com%25252Fajwfrost%25252Froyale-compiler%25252Fcommit%25252F8157465fbe05022136ae7b405f316e89ee809c97%2526data%253D02%25257C01%25257Caharui%252540adobe.com%25257C71b34e8a1cca401a8f6d08d5e032645e%25257Cfa7b1b5a7b34438794aed2c178decee1%25257C0%25257C0%25257C636661429411013521%2526sdata%253D6DNQpiY0msNOA2%25252Fj0CiWEvv94X1JfDIacwOlm9nzqqE%25253D%2526reserved%253D0&data=02%7C01%7Caharui%40adobe.com%7C23fabd6b67b94e1dc16008d5e0d3d550%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636662122786567530&sdata=6hEzv0grDYsQ3AHulsQ15RkUFlAprJAhN7LDMUXsqso%3D&reserved=0 > but I've not yet created the pull request on this project.. > > > In terms of testing: to properly test this, we need to add an > external test for it (i.e. running through the full compile sequence), so I > looked at where there are some current tests that do this: > royale-compiler\compiler\src\test\java\as\ASExpressionTests.java > etc > and then copy/pasted one of these into a new file > "ASDateTests.java". However this is causing weird errors: when I build the > royale-compiler project without this file, I get: > > tests: > [junit] Running as.ASExpressionTests > [junit] looking for > C:\Work\Royale\royale-compiler\env.properties > [junit] environment property - FLEX_HOME = null > [junit] environment property - PLAYERGLOBAL_HOME = null > [junit] environment property - PLAYERGLOBAL_VERSION = 11.1 > [junit] environment property - TLF_HOME = null > [junit] environment property - AIR_HOME = null > [junit] environment property - FLASHPLAYER_DEBUGGER = null > [junit] environment property - ASJS_HOME = > C:\Work\Royale\royale-asjs > [junit] environment property - GOOG_HOME = null > [junit] Generating test: > [junit] Compiling test: > [junit] > -external-library-path=C:\Work\Royale\royale-compiler\compiler-externc\target\js.swc > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASExpressionTests7333543909053 > 470191.as > [junit] > [junit] 608 bytes written to > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASExpressionTests7333543909053470191.swf > in 0.817 seconds > [junit] After compile: > [junit] Unexpected compilation problems: > [junit] > [junit] Generating test: > [junit] Compiling test: > [junit] > -external-library-path=C:\Work\Royale\royale-compiler\compiler-externc\target\js.swc > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASExpressionTests3291256200729 > 799168.as > [junit] > [junit] 595 bytes written to > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASExpressionTests3291256200729799168.swf > in 0.112 seconds > [junit] After compile: > [junit] Unexpected compilation problems: > ... > [junit] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time > elapsed: 1.493 sec > The "unexpected compilation problems" seem to be 'expected' as the > result is that the tests all pass.. > > But when I have a new file ASDateTests.java, I get: > tests: > [junit] Running as.ASDateTests > [junit] looking for > C:\Work\Royale\royale-compiler\env.properties > [junit] environment property - FLEX_HOME = null > [junit] environment property - PLAYERGLOBAL_HOME = null > [junit] environment property - PLAYERGLOBAL_VERSION = 11.1 > [junit] environment property - TLF_HOME = null > [junit] environment property - AIR_HOME = null > [junit] environment property - FLASHPLAYER_DEBUGGER = null > [junit] environment property - ASJS_HOME = > C:\Work\Royale\royale-asjs > [junit] environment property - GOOG_HOME = null > [junit] Generating test: > [junit] Compiling test: > [junit] > -external-library-path=C:\Work\Royale\royale-compiler\compiler-externc\target\js.swc > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASDateTests3525997529829206058.as > > [junit] > [junit] 592 bytes written to > C:\Work\Royale\royale-compiler\compiler\target\junit-temp\ASDateTests3525997529829206058.swf > in 0.853 seconds > [junit] After compile: > [junit] Unexpected compilation problems: > [junit] > [junit] as_ASDateTests_ASDateTests_simpleTernary_swfdump.xml > [junit] <?xml version="1.0" encoding="UTF-8"?> > [junit] <!-- Parsing swf > file:/C:/Work/Royale/royale-compiler/compiler/target/junit-temp/ASDateTests3525997529829206058.swf > --> > .. there follows a dump of the SWF contents ... > [junit] Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time > elapsed: 1.725 sec > > > I'm not sure why it's treating my new file differently from the > existing ones ... any hints/thoughts?! It seems like all I have to do to > include these tests is to create this file in the relevant folder, but > maybe there's another step that I'm missing? > > thanks > > Andrew > > > > > -----Original Message----- > From: Frost, Andrew [mailto:andrew.fr...@harman.com] > Sent: 02 July 2018 10:14 > To: dev@royale.apache.org > Subject: [EXTERNAL] RE: Royale compiler not handling Date.fullYear > etc > > Hi > > Even if we get the latest version, they still don't support a > "readonly" annotation: > > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fclicktime.symantec.com%2Fa%2F1%2F34_ApVH89ZYMA6skDKzoAhaFarF5_Q-YHNeF3Yt77Xs%3D%3Fd%3D_zziaDODDuvZwC8YjWYfsPGmQ13A3Q5xBbMSUHKZIo34PLSaC9n5J08tWjYr684YeBkkWxnp2HcZdkgNzuQomI_AxW87-eGOUJ6BX3fpIq_85GevpLOLDtImXR9QSgOqRr8CPPdoqGLktBiwqfyZgvoybKudC2IK3zCmJoehcWoBmeXjp5BYTa2y0nIyvPd5uIG0WYm3JsJ2SYir9Lo6eyi-l_jT5qujCB9duN6TZDMw6d3nk9CU1DUlTgmpu8sTVpksO772_ZC0g-UQ0XAwzNaKvyauEqoa7Dn0h61XfQp5AqHmj6fdgrYEtUrlQQYC5UE3i8HxOcaCgOYGOEQ1GClok3NDQMETE1dyjN20C1N_Z-dWb1-qNMzyGi732Hk-nT_kq4IjD3YDuNeJwtk0wYZ42ik8c4M-nNHDMcZJfnVJf9_MWpQBY7o3JH2Vdg%253D%253D%26u%3Dhttps%253A%252F%252Fna01.safelinks.protection.outlook.com%252F%253Furl%253Dhttps%25253A%25252F%25252Fclicktime.symantec.com%25252Fa%25252F1%25252FT83CUIducqI9Lkpsqh8xgxVIyLMGnJbMonLa5_1_9kg%25253D%25253Fd%25253Da9uxnQqkSmG7oTXapoG51ZcBcs2YQHVAyX7jtig52n_nvBCIyavSa7KScNwp1Pl-KHVyOVX10_IT-KhaR3dogyBF_PhM8l3mUniTusdETZeur68fGw663Yj8q73kuaKvNSfxQjwF-6v9sicptU6c945r2TlZu66048QF9Hc5OfDqAjf3LVZb5gbp2xebFV7gzThYfrj1WT851Sp6LaTuiiQKrNJnk-b2P2hiwTctWCrxALua42IS-8UJgp9t515EbpW7BWVMaS7827cZqn5K1H5bcXQ2kYGEL8HrJLm5nnsDgC9IpTYdOcwHuxR3TmYpp6ymdh14dZ6Mc2O9_fpD1E9WaZW9n2sYlFHXAMQFYuvNMQeXTSETZlJ0B0fYtPOnVyR-jL7hXo3MptfdPzl3nzfuVaJFJaVoPEXU5m8yhCn-2McWhLwPf0UNxPbmL58COzo4KqYtEqA%2525253D%252526u%25253Dhttps%2525253A%2525252F%2525252Fgithub.com%2525252Fgoogle%2525252Fclosure-compiler%2525252Fblob%2525252Fmaster%2525252Fsrc%2525252Fcom%2525252Fgoogle%2525252Fjavascript%2525252Fjscomp%2525252Fparsing%2525252FAnnotation.java%2526data%253D02%25257C01%25257Caharui%252540adobe.com%25257C71b34e8a1cca401a8f6d08d5e032645e%25257Cfa7b1b5a7b34438794aed2c178decee1%25257C0%25257C0%25257C636661429411023530%2526sdata%253D5QX90Py%25252BYSblXW%25252BRjKw4q9IouS9O6QYCuXN%25252FcndrJ00%25253D%2526reserved%253D0&data=02%7C01%7Caharui%40adobe.com%7C23fabd6b67b94e1dc16008d5e0d3d550%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636662122786567530&sdata=hEl0rpHLA%2Bq9TVOnEXt8nybUN7z9xAMMnwbmssQzYZU%3D&reserved=0 > lists the ones that are supported. > > And I tried updating to the newest jar file, got some weird errors > so I think that way would lead to a lot more work. > > We do get the original Javadoc comment come into our parsing > function, so we could do a free-text search for "@readonly" within this? > Might be the simplest route until(?) Google add this support properly.. > > Alternatively you suggest using ExternCConfiguration: having > looked into this, I think the process would be: > 1) update the externc-config.xml file to include something like > <field-readonly><class>Date</class><name>timezoneOffset</name></field-readonly> > (so a bit like the "exclude" list where we don't include things like > Array.toSource etc) > 2) update the ExternCConfiguration.java file to handle this input > field (like the "setExcludes" handler for the "exclude" mapping..) and put > in place a new "ReadOnlyMember" element and list to hold this > 3) in the FieldReference.emit() method, check if this element is > in the read-only property list; if it is, treat it like an accessor but > only with a 'get' method. > > So I'm thinking this latter approach is a nicer one and fits more > with the rest of how things are done... I'll update the pull requests later > on after running through this and also adding some tests... > > cheers > > Andrew > > > > -----Original Message----- > From: Alex Harui [mailto:aha...@adobe.com.INVALID] > Sent: 30 June 2018 08:00 > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Royale compiler not handling Date.fullYear > etc > > Yeah, if @const becomes const in AS, that probably isn't right. > > I just found this: > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fclicktime.symantec.com%2Fa%2F1%2FQUWhsoxKtWnoa75S5qhiHUOQqaPDxNbZ7aRKeLE1_2U%3D%3Fd%3D_zziaDODDuvZwC8YjWYfsPGmQ13A3Q5xBbMSUHKZIo34PLSaC9n5J08tWjYr684YeBkkWxnp2HcZdkgNzuQomI_AxW87-eGOUJ6BX3fpIq_85GevpLOLDtImXR9QSgOqRr8CPPdoqGLktBiwqfyZgvoybKudC2IK3zCmJoehcWoBmeXjp5BYTa2y0nIyvPd5uIG0WYm3JsJ2SYir9Lo6eyi-l_jT5qujCB9duN6TZDMw6d3nk9CU1DUlTgmpu8sTVpksO772_ZC0g-UQ0XAwzNaKvyauEqoa7Dn0h61XfQp5AqHmj6fdgrYEtUrlQQYC5UE3i8HxOcaCgOYGOEQ1GClok3NDQMETE1dyjN20C1N_Z-dWb1-qNMzyGi732Hk-nT_kq4IjD3YDuNeJwtk0wYZ42ik8c4M-nNHDMcZJfnVJf9_MWpQBY7o3JH2Vdg%253D%253D%26u%3Dhttps%253A%252F%252Fna01.safelinks.protection.outlook.com%252F%253Furl%253Dhttps%25253A%25252F%25252Fclicktime.symantec.com%25252Fa%25252F1%25252Ft8Vt55bBn1paDRrO_tcbGDw3nOt-4_f5sEQDRaUr78g%25253D%25253Fd%25253DlhuiLMs5TaNvmSSfvLo9lH6b9M276TThXO9G60OlPgOsY0f-pENIrkec8khCn7viL4JfEe1fvVJVaiQjQh6BhiYP7C_O9RJunWasASxHmucjtZZQBzeCviGxf9lrMUs0zxkkPNHBoa_rq8QP8-dOSlYcneP9T5WOgjLYBeKsizspqFWxP5Szt6O6GYS1QKNQtcPvwoh5NSOLYeB2K3j46FeJyZfM51xmX1vX4JN5xKWd1bY4mOAK6B9Kr7A2u6i65r0iSYuzL8ok9ybJXKGK43QxR_nahrgFSKD2Bg-0iMujUKi8uNlZ5kOGSzi3oE0ByPCbF-4QIZtYTa3V7zQ1AaG4rQnICykl0p0UohbhZZrVdA2536sB_xwCGEKvHXA0Hf5_evEzsPHoxiB5HeyKiYQW8vzNmmT3CSqOKfakgQLVd_4l5xMYQ7AeYmU%2525253D%252526u%25253Dhttps%2525253A%2525252F%2525252Fgithub.com%2525252Fgoogle%2525252Fclosure-compiler%2525252Fissues%2525252F139%2526data%253D02%25257C01%25257Caharui%252540adobe.com%25257C71b34e8a1cca401a8f6d08d5e032645e%25257Cfa7b1b5a7b34438794aed2c178decee1%25257C0%25257C0%25257C636661429411023530%2526sdata%253D8%25252F%25252FVIPCYKVmYbNzmsKLIWPe3pj9aLtL2ZLJvW9fEvDc%25253D%2526reserved%253D0&data=02%7C01%7Caharui%40adobe.com%7C23fabd6b67b94e1dc16008d5e0d3d550%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636662122786567530&sdata=eeaOYqkTqPAoWQVvGcPgvCs8Ldw0xt2hJXpYkUQEzs0%3D&reserved=0 > I don't have time to investigate further right now, so if you have > time that would be great. We might need to update which version of Google > Closure we are using. > > Regarding the options you listed, I think goal is to generate the > right AS classes with a getter and no setter. If Google still doesn't > handle @readonly, we could add a field to the ExternCConfiguration where > you specify which APIs should be read-only and correct the output AS. > > HTH, > -Alex > > On 6/29/18, 11:46 PM, "Frost, Andrew" <andrew.fr...@harman.com> > wrote: > > Hi > > Well @const is at least supported by the Google classes; with > a slight change in FieldReference.java to actually set the internal flag > ("this.isConst = comment.hasConstAnnotation();") then it changes the > ActionScript declaration so that it's now: > public const timezoneOffset:Number = 13; > > And when you try to assign to it, you get > TestRoyale.mxml(38): col: 5 Error: Illegal assignment to a > variable specified as constant. > date.timezoneOffset = 55; > ^ > > So it kind of works in flagging up a bad bit of code, but from > an ActionScript perspective it's not right, we should be getting an > "AssignToReadOnlyPropertyProblem" rather than an "AssignToConstProblem". > > The options as I see it: > 1) live with this as a slightly incorrect warning, as it's > very unlikely to happen (shouldn't occur in the AS3 code to start with > assuming that compiles already in Flex) and it's the simplest/most elegant > change > 2) have specific code in the SemanticUtils class which knows > about this particular Date property and is looking out for it by name ... > not very efficient and something of a hack! > 3) extend the closure compiler to support some of the other > JSDoc annotations so that we can generate property getters/setters and > create read-only properties. Possibly the most "correct" solution but not > so good from a maintainability perspective if we have to change the Google > code... > > > In terms of testing: as you said, the 'missing.js' in the > royale-compiler folders is for the compiler's testing, so if we add extra > testing for the compiler with these new properties then we need that file > to also include those extra Date things. I guess it's not a massive > maintenance issue if these files are hardly ever changing.. I just wanted > to be sure I wasn't missing some step in the process that did an automatic > sync from one to the other. The same is true of the js.swc, it's being > generated in the royale-typedefs folder and currently I'm manually copying > it to the royale-asjs folder... but for that one, there must be something > that copies it over, as that js/lib folder doesn't exist in the original > source! > > > thanks > > Andrew > > > > -----Original Message----- > From: Alex Harui [mailto:aha...@adobe.com.INVALID] > Sent: 30 June 2018 07:19 > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Royale compiler not handling > Date.fullYear etc > > Interesting. In > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fclicktime.symantec.com%2Fa%2F1%2FJu25ASzndEjOnqYNDd7xiVeQME8ALGuo-URR6C3y6WI%3D%3Fd%3DlhuiLMs5TaNvmSSfvLo9lH6b9M276TThXO9G60OlPgOsY0f-pENIrkec8khCn7viL4JfEe1fvVJVaiQjQh6BhiYP7C_O9RJunWasASxHmucjtZZQBzeCviGxf9lrMUs0zxkkPNHBoa_rq8QP8-dOSlYcneP9T5WOgjLYBeKsizspqFWxP5Szt6O6GYS1QKNQtcPvwoh5NSOLYeB2K3j46FeJyZfM51xmX1vX4JN5xKWd1bY4mOAK6B9Kr7A2u6i65r0iSYuzL8ok9ybJXKGK43QxR_nahrgFSKD2Bg-0iMujUKi8uNlZ5kOGSzi3oE0ByPCbF-4QIZtYTa3V7zQ1AaG4rQnICykl0p0UohbhZZrVdA2536sB_xwCGEKvHXA0Hf5_evEzsPHoxiB5HeyKiYQW8vzNmmT3CSqOKfakgQLVd_4l5xMYQ7AeYmU%253D%26u%3Dhttps%253A%252F%252Fna01.safelinks.protection.outlook.com%252F%253Furl%253Dhttps%25253A%25252F%25252Fclicktime.symantec.com%25252Fa%25252F1%25252FuntftVdsWwPmiJWAVt3nm3wg6v4ZACZ9RDBNQjuszM0%25253D%25253Fd%25253DbbejT-O_-jFYytoEIpecgb-HW7JAfVy-JYJKJjpirj9WyJta8y-Vetrzg91hMyjxwIZDBbGoPRETuW8R-_GJ2QI3JFRNDooGe4nnEJmgsbOCgX9zvdpNOtRejsS_vQ96JFtVBei96NlGXnAeb9O-n2UPHrthFwLfNhxhivyLhutMuYZf1_Bwf9uhuogWi4XEGnREN0VeGK-7HR-0IXBlFkwvMeyJ_r7KS89xbvNmYhN1EFExUVrPWOSGUU7bDbqQGwx_iQnLVTX8Lj1IsNPJvd8qUgJnR5R6P-smt5q_FBaLNjsRWDWI0U_XMUyRIY_5-Kz1H2BKLxZppDcoEdbSVn_k9bD-Eo7722e3Jajt9nKt5EOvpU8kzNvIgbQxRNW4JbQ0gyaaZG-838aZUMmtuoW39NTiDdhoowZejUVmDmKstEs8NbBBtOnE3Ck%2525253D%252526u%25253Dhttps%2525253A%2525252F%2525252Fgithub.com%2525252Fgoogle%2525252Fclosure-compiler%2525252Fwiki%2525252FAnnotating-JavaScript-for-the-Closure-Compiler%2526data%253D02%25257C01%25257Caharui%252540adobe.com%25257Cb7acdaa31fda47dff0c508d5de553e2e%25257Cfa7b1b5a7b34438794aed2c178decee1%25257C0%25257C1%25257C636659380078411962%2526sdata%253DoCQLuHrDHlf9BSbfTC%25252F2UJgSlMLkKV2kNQ0z3FX%25252F%25252Bxk%25253D%2526reserved%253D0&data=02%7C01%7Caharui%40adobe.com%7C71b34e8a1cca401a8f6d08d5e032645e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636661429411023530&sdata=lqXDq0EMQ9xVe%2FcLOKXLzlRIMfxI%2BAUaBo7H7FWLMQM%3D&reserved=0 > it mentions @const as the annotation. That might already work and if not, > we should probably make it work. > > The missing.js in royale-compiler is just there to get the > compiler's tests to run. The royale-typedefs repo has a dependency on > royale-compiler, so we can't create a circular dependency by having > royale-compiler require royale-typedefs missing.js. They don't need to be > kept in sync. The royale-compiler version should be minimal. The one in > royale-typedefs is intended to make a library with the right and complete > Browser APIs. > > HTH, > -Alex > > On 6/29/18, 3:55 PM, "Frost, Andrew" <andrew.fr...@harman.com> > wrote: > > Hi > > Those date tests already test the mapping, and are running > fine. They're not getting stuck at the earlier stage which is where the > original problem lay. So I'd been thinking of adding a new test file under > the below folder, where other AS-specific testing is happening: > royale-compiler/compiler/src/test/java/as > > In terms of the read-only properties, I would have hoped > that the definition in missing.js could be written: > /** > * @type {number} > * @property > * @readonly > */ > Date.prototype.timezoneOffset; > > but the JSDoc parser isn't able to pick up/report upon the > 'property' or 'readonly' usage. We could add support for these perhaps, > manually within the FieldReference.java file (which is where these > properties are coming in currently) we could manually look for the > "@property" and/or "@readonly" tags within the > comment.getOriginalCommentString() value; I would have preferred to be able > to call "comment.isReadOnly" or similar, but to get to that requires > changing Google's code.. > > So yes, hold off doing anything with the pull requests for > now, I'll see whether I can get it to do things from the typedefs side of > things... > > One extra note: I'm finding two "missing.js" files which > aren't being kept in sync at all (by the build tools); is this by design or > should there be some kind of a link between them? > royale-typedefs\js\src\main\javascript\missing.js > > royale-compiler\compiler-externc\src\test\resources\typedefs\unit_tests\missing.js > > > thanks > > Andrew > > > > -----Original Message----- > From: Alex Harui [mailto:aha...@adobe.com.INVALID] > Sent: 29 June 2018 17:38 > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Royale compiler not handling > Date.fullYear etc > > There are Date tests in TestRoyaleGlobalClasses.java > > In this case, the issue may be in how to set up a copy of > the tests to work with js.swc instead of playerglobal.swc. > > Regarding read-only properties, I think the externc > compiler might have a way of doing that. It would likely involve one of > the JSDoc annotations or an interface. And the result should be a getter > without a setter. I don't have time to look for it right now. It would be > best to deal with this in the typedefs instead of in the compiler, IMO. > > My 2 cents, > -Alex > > On 6/29/18, 7:47 AM, "Frost, Andrew" > <andrew.fr...@harman.com> wrote: > > ".. not yet" is probably the most appropriate > response!! > > I had wondered whether it would need some formal > self-tests adding, I'll have a dig around to see how to do this bit :-) > > thanks > > Andrew > > > -----Original Message----- > From: Harbs [mailto:harbs.li...@gmail.com] > Sent: 29 June 2018 13:35 > To: dev@royale.apache.org > Subject: [EXTERNAL] Re: Royale compiler not handling > Date.fullYear etc > > Cool. Are there compiler tests for these Date > additions? > > > > > > > > > > > > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*