{ "id": "132719", "key": "TIMOB-17489", "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": "2014-07-08T08:41:57.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "bridge", "callback", "crashes", "kroll", "triageSupport" ], "versions": [], "issuelinks": [], "assignee": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2014-09-04T15:16:03.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [], "description": "If a JavaScript callback - e.g. via {{Ti.*.addEventListener('event', fn);}} or {{Ti.Network.createHTTPClient(\\{ onload: fn \\});}} - returns a value, that value will be converted to a native object.\r\n\r\nIf this is a large object this can crash the app, like demonstrated by the first button in this [example app|https://github.com/wappzapp/whatsup].\r\n\r\nI can't think of any use-case why the proxy needs the value the callback returns. So if there is a way to keep Kroll from converting it, this would help to prevent people from spending days - like we did - on nailing the crash.\r\n\r\nI'll publish a [post on tiDev.io|http://www.tidev.io/2014/07/08/dont-let-callbacks-cross-the-bridge/] at 5pm UTC explaining this issue.", "attachment": [], "flagged": false, "summary": "Do not process data returned by callbacks", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "SDK 3.2.2.GA\r\nSDK 3.3.0.RC", "comment": { "comments": [ { "id": "318100", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~fokke] Is this specific to a particular platform, or does it happen both Android and iOS?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-08-11T22:55:55.000+0000", "updated": "2014-08-11T22:55:55.000+0000" }, { "id": "318189", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Can't say (am on holiday) but I'd suspect it's the same on Android and since it has no value other then potentially consuming memory and crashing I'd strip it.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-08-12T14:23:01.000+0000", "updated": "2014-08-12T14:23:01.000+0000" }, { "id": "320200", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~penrique] to review for possible 3.5.0 inclusion.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-08-25T21:12:52.000+0000", "updated": "2014-08-25T21:12:52.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }