{ "id": "174093", "key": "TIMOB-27377", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": [], "resolution": null, "resolutiondate": null, "created": "2019-09-04T18:24:04.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [ { "id": "57832", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "id": "174095", "key": "TIMOB-27378", "fields": { "summary": "Android: Disable minifying of Javascript source", "status": { "description": "Submitted for code review", "name": "In Review", "id": "10003", "statusCategory": { "id": 4, "key": "indeterminate", "colorName": "yellow", "name": "In Progress" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "58522", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "175271", "key": "AC-6572", "fields": { "summary": "iOS: when running a on a device, Javascript compilation results in a particular block of code not being executed, without errors", "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" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-07-13T15:32:24.000+0000", "status": { "description": "Submitted for code review", "name": "In Review", "id": "10003", "statusCategory": { "id": 4, "key": "indeterminate", "colorName": "yellow", "name": "In Progress" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "- Production applications using ACA without source-maps will produce illegible crash reports due to minification of the source code.\r\n- Although minifying the source can reduce file size, the benefit for Titanium applications isn't significant like it is for web applications.\r\n- We should set minifying to {{false}} by default for both {{production}} and {{development}} deploy types.", "attachment": [], "flagged": false, "summary": "iOS: Disable minifying of Javascript source", "creator": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "451243", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/11206", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-09-09T23:15:20.000+0000", "updated": "2019-09-09T23:15:20.000+0000" }, { "id": "451265", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Is there any reason to disable this when ACA is not used? The benefits are also to harden the reverse engineering of client code and app size is a BIG thing for developers. I hope this can be fine-tuned to be only set if explicitly requested. ", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-09-10T17:01:23.000+0000", "updated": "2019-09-10T17:01:23.000+0000" }, { "id": "451433", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "I would suggest that perhaps we look into use of \"alternate\" source maps and retaining minification for production builds. Right now our source map support includes inlined original sources for iOS due to limitations of the Safari WebInspector resolving the original source files when debugging via Safari. There are options for us since we manually handle the source maps to a degree so we could significantly alter them, which may give us a balance that works (i.e. ACA stacks are meaningful to the line or line+column level, but we don't inline the original source)\r\n\r\nThis is very much a trade-off - minifying source may not be much of a gain in terms of reducing app size, especially if we need to include source maps inline to make ACA relevant; but as Hans suggested, there's more to minification as it's generally also used to obfuscate source - and we do have plans to eventually do more significant minification based on dead code elimination/tree shaking (investigate rollup for the whole app, or inlining of constants/statics via https://github.com/appcelerator/babel-plugin-transform-titanium and then do dead code elimination of platform-specific branches for other platforms, etc).", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-09-17T12:46:02.000+0000", "updated": "2019-09-17T12:46:02.000+0000" }, { "id": "456059", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Linking related ticket which was a bug exposed via minification ", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2020-07-13T15:32:24.000+0000", "updated": "2020-07-13T15:32:24.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }