{ "id": "167217", "key": "TIMOB-24610", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "19957", "description": "", "name": "Release 7.1.0", "archived": false, "released": true, "releaseDate": "2018-03-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-01-29T15:48:55.000+0000", "created": "2017-04-20T18:36:01.000+0000", "epic": { "id": 152521, "key": "TIMOB-19834", "name": "Support ES6 for Titanium Application Development", "summary": "Support ES6 for Titanium Application Development", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [ { "id": "56019", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "169942", "key": "TIMOB-25362", "fields": { "summary": "TiAPI: Move KitchenSink-v2 to use ES6", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "55539", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "169246", "key": "ALOY-1574", "fields": { "summary": "Unable to use ES6 import/exports in alloy controllers due to bad code generation", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "57089", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "171826", "key": "TIMOB-26146", "fields": { "summary": "Enable ES6 transpile/polyfill by default", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updated": "2020-01-28T15:17:42.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [], "description": "Not all of our target platforms/OSes natively support ES6 code. So while we may be able to support \"passing\" ES6+ code through our tooling with TIMOB-24609, that raises an issue of users being able to write ES6/7 code that the JS engine doesn't yet support.\r\n\r\nGiven that we current support iOS 8 as minimum for Titanium 6 this makes this a pretty important feature.\r\n\r\n\r\nAs seen here: https://kangax.github.io/compat-table/es6/\r\n- iOS 8 only supports roughly 17% of ES6 feature set. iOS 9 supports 54%; while iOS 10 is 100%.\r\n- The issue is much less important on Android since we are currently on v8 5.1 which supports 97% of ES6.\r\n- I'd have to research further for Windows, but I believe we're closer to an Android situation where virtually all of ES6 is supported.", "attachment": [], "flagged": false, "summary": "Support ES6 by transpiling to ES5 via new tiapp.xml \"transpile\" property", "creator": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "environment": null, "closedSprints": [ { "id": 1000, "state": "closed", "name": "2018 Sprint 04 SDK", "startDate": "2018-02-12T04:23:01.913Z", "endDate": "2018-02-26T04:23:00.000Z", "completeDate": "2018-02-26T19:36:01.769Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "418102", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "There's some JSON files that give details on what browser support what features (basically the data behind the combat table above): https://github.com/kangax/compat-table?files=1\r\n\r\n\r\nThere's also a babel preset which basically filters the plugins used based on the \"target\" browsers/versions: https://github.com/sdkennedy/babel-preset-target\r\n\r\nSeems like pretty much exactly what we'd want, though maybe we'd need to run it once or twice to gather the list for our targets and then just generate our own non-dynamic preset?", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2017-04-26T14:26:14.000+0000", "updated": "2017-04-26T14:26:14.000+0000" }, { "id": "419273", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "[~cwilliams] Not sure whether you'd seen it but https://github.com/babel/babel-preset-env is probably the better preset as it's maintained by the babel team. Might be worth also seeing what they is happening in v7 of babel as I had heard they were thinking about moving preset-env into it by default", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2017-05-08T10:55:04.000+0000", "updated": "2017-05-08T10:55:04.000+0000" }, { "id": "425268", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Of note here, is that we generate bad code using imports/exports on Alloy, and if we \"fix\" that issue there, we still need to handle import/export generally here. Safari 10.1 supports export natively, not sure if that means some versions of iOS's JSC does? We likely need to simply transpire import/exports into require via babel everywhere for now.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2017-08-02T16:00:11.000+0000", "updated": "2017-08-02T16:00:11.000+0000" }, { "id": "428842", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "WIP PR for 7.0: https://github.com/appcelerator/titanium_mobile/pull/9512", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2017-10-09T18:36:49.000+0000", "updated": "2017-10-09T18:36:49.000+0000" }, { "id": "431053", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/9512", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2017-11-20T19:58:24.000+0000", "updated": "2017-11-20T19:58:24.000+0000" }, { "id": "433769", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "node-titanium-sdk: https://github.com/appcelerator/node-titanium-sdk/pull/20", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-01-28T18:31:57.000+0000", "updated": "2018-01-28T18:31:57.000+0000" }, { "id": "433770", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "titanium_mobile_windows: https://github.com/appcelerator/titanium_mobile_windows/pull/1175", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-01-28T18:39:40.000+0000", "updated": "2018-01-28T18:39:40.000+0000" }, { "id": "434932", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2018-02-26T20:42:19.000+0000", "updated": "2018-02-26T20:42:19.000+0000" }, { "id": "440154", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Cleaning up older fixed issues. If this issue should not have been closed as fixed, please reopen.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:49:24.000+0000", "updated": "2018-08-06T17:49:24.000+0000" }, { "id": "444097", "author": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "body": "Guys, don't know if this is the correct jira issue but I have a feedback about ES6 and its Promises: _finally_ statement is only available for iOS.\r\nOn Android it gives: \r\n\r\n{code}\r\n[ERROR] TypeError: promise.then(...).catch(...).finally is not a function\r\n{code}\r\n", "updateAuthor": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-11-30T12:47:35.000+0000", "updated": "2018-11-30T12:47:35.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }