{ "id": "138459", "key": "TIMOB-17892", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "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": "16723", "description": "Windows Platform Support, ListView updates, Vector overlays in maps", "name": "Release 4.1.0", "archived": false, "released": true, "releaseDate": "2015-07-08" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-02-01T13:29:49.000+0000", "created": "2014-10-23T20:27:34.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [ { "id": "47280", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "146966", "key": "TISTUD-8604", "fields": { "summary": "iOS: Update Debugger and Profiler ", "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": "Critical", "id": "1" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "47278", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "146963", "key": "TIMOB-18834", "fields": { "summary": "iOS: Provide mechanism to use the JavaScriptCore framework", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "47279", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "146964", "key": "TIMOB-18835", "fields": { "summary": "iOS: Conditionally link required libraries/Framework at runtime", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-02-03T14:33:47.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": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Currently, we ship a custom version of JSCore, built from:\r\n\r\n https://github.com/appcelerator/tijscore\r\n\r\nStarting in iOS 7, applications can instead use the built-in version of JSCore:\r\n\r\nhttp://www.bignerdranch.com/blog/javascriptcore-and-ios-7/\r\n\r\nWe should investigate switching this.\r\n\r\nPros:\r\n* Smaller application file size\r\n* Updated JS engine with possible performance improvements\r\n\r\nCons:\r\n* Updated iOS versions could provide breaking changes for your applications\r\n* Possible issues with having to update our debugger and profiling code", "attachment": [], "flagged": false, "summary": "iOS: Replace custom JSCore with built-in JSCore version", "creator": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 808, "state": "closed", "name": "2017 Sprint 03 SDK", "startDate": "2017-01-28T21:12:30.215Z", "endDate": "2017-02-12T21:12:00.000Z", "completeDate": "2017-02-12T23:37:14.667Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "345564", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR is here: https://github.com/appcelerator/titanium_mobile/pull/6450", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-03-10T17:10:46.000+0000", "updated": "2015-03-10T17:10:46.000+0000" }, { "id": "351910", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "This is a great PR! I love it and it works pretty well already.\r\n\r\nI have one warning, but i think you already know about it. Using the native JSCore proxies objects are never released.\r\nI guess this is simply because KrollFinalizer is never called.", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2015-05-07T08:47:29.000+0000", "updated": "2015-05-07T08:47:29.000+0000" }, { "id": "351921", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~farfromrefuge] That's good to hear it is working for you. My understanding is that those proxies would be garbage collected eventually, but not at the speed we did so previously (for the reason you mention). Do you see that happening?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-05-07T12:58:02.000+0000", "updated": "2015-05-07T12:58:02.000+0000" }, { "id": "351923", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "Well in my tests i put a breakpoint in the _destroy method of TiWindowProxy to see when a window is actually released.\r\nWith TiCore it gets called from the forceGarbageCollectNow as the Javascript will say that the JS window object is released and then call KrollFinalizer\r\nWith the native JSCore i don't ever get in that function. I have been playing a bit with it but maybe not long enough, will try a little bit more. But honestly i don't see why it would get released as unregisterProxy is never going to be called on the Proxy.", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2015-05-07T13:04:53.000+0000", "updated": "2015-05-07T13:04:53.000+0000" }, { "id": "351953", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~farfromrefuge] To confirm, as you using the PR linked above, or TIMOB-18834 and TIMOB-18835? We do expect the proxies to hang around, but we do also expect them to be collected eventually.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-05-07T19:13:42.000+0000", "updated": "2015-05-07T19:13:42.000+0000" }, { "id": "352027", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "@Ingo: I am using the master branch so i am clearly using the PRs from Vishal.\r\nI will spend more time on testing.", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2015-05-08T14:17:12.000+0000", "updated": "2015-05-08T14:17:12.000+0000" }, { "id": "406036", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Resolving this epic, as all sub-tasks including TIMOB-18834 are resolved.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-01T13:29:49.000+0000", "updated": "2017-02-01T13:29:49.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }