{ "id": "124079", "key": "TIMOB-16058", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "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": "15817", "description": "2014 Sprint 01", "name": "2014 Sprint 01", "archived": true, "released": true, "releaseDate": "2014-01-17" }, { "id": "15819", "description": "2014 Sprint 01 Core", "name": "2014 Sprint 01 Core", "archived": true, "released": true, "releaseDate": "2014-01-17" }, { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-01-09T18:21:02.000+0000", "created": "2013-12-20T16:21:23.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "cli", "qe-closed-3.3.0", "qe-testadded" ], "versions": [ { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2014-07-24T10:26:03.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": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "During device and distribution builds, we run all JavaScript code through UglifyJS and if there's a syntax error, it will stop the build. The problem is this step is not performed for simulator/emulator builds, so developers won't see the errors until runtime.\r\n\r\nThis fix should also include a tiapp.xml property and CLI config option to turn off this feature.", "attachment": [], "flagged": false, "summary": "CLI: Perform syntax check of JavaScript files for Simulator/Emulator builds", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "287352", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/5196\n3.2.x pull request: https://github.com/appcelerator/titanium_mobile/pull/5197\n\nTo test:\n1. create a project for ios and android\n2. replace contents of app.js with chrisrocks{};\n3. run: ti build -p android --build-only\n4. observe the javascript error\n5. run: ti build -p ios --build-only\n6. observe the javascript error", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-09T01:25:00.000+0000", "updated": "2014-01-09T01:25:00.000+0000" }, { "id": "287441", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Can we disable that option? In case we want to do syntax checking in some other way.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-01-09T18:26:16.000+0000", "updated": "2014-01-09T18:26:16.000+0000" }, { "id": "287452", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~ivan.skugor] No, you cannot disable this. We use UglifyJS to parse the AST of your JavaScript code and detect Titanium API symbols. If you have a syntax error, then we cannot detect these symbols and include the appropriate dependencies and permissions. So, if I add a flag to bypass this, then there will probably be severe side effects that prevents your app from running.\n\nBesides, you should be writing valid JavaScript, right?", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-09T18:49:34.000+0000", "updated": "2014-01-09T18:49:34.000+0000" }, { "id": "287544", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Yeah, of course, but we can validate JS code before doing build process (for example, on file save). I was just guessing build process would be a bit faster if we could disable another JS validation in cases like that. But if you need to parse JS code anyway, then I guess there won't be much difference so you can just ignore my comment :)\r\n\r\n\r\nTnx anyway.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-01-09T23:24:07.000+0000", "updated": "2014-01-09T23:24:07.000+0000" }, { "id": "287547", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Just for example, when packaging large Alloy app (which, when compiled, has lots of files), Ti does syntax checking and code analysis (I guess, not really sure what it does), which in my case lasts for 15 minutes. If I could disable that, I could save a lot of time (and in most cases I'm not interested in that because app just works fine, just want to make sure production configuration/certificates work fine).", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-01-09T23:33:36.000+0000", "updated": "2014-01-09T23:33:36.000+0000" }, { "id": "287549", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~ivan.skugor] Not sure I follow. The syntax checking I'm doing should be quick. Even if you have hundreds of files, it shouldn't take that long.\n\nI suspect you are talking about the code analyzer in Studio. That will take a long time since it's running your code through a virtual JavaScript engine and analyzing it several different ways. That has nothing to do with the build process and should not be invoked.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-09T23:41:31.000+0000", "updated": "2014-01-09T23:41:31.000+0000" }, { "id": "287618", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "OK then, thanks for clarification.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-01-10T09:51:42.000+0000", "updated": "2014-01-10T09:51:42.000+0000" }, { "id": "291098", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Javascript error is shown during the build process. Checked on:\nOSX: 10.9.1\nCLI: 3.2.1-beta3\nAppcelerator Studio: 3.2.1.201401311225\nTitanium SDK: 3.2.1.v20140130101648, 3.3.0.v20140202230850", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-02-04T08:46:11.000+0000", "updated": "2014-02-04T08:46:11.000+0000" }, { "id": "302803", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested and verified CLI performance of syntax check of JavaScript files for Simulator/Emulator builds\r\nEnvironment:\r\nMac osx 10.9.2 Mavericks\r\nAppcelerator Studio, build: 3.3.0.201404221437\r\nTitanium SDK, build: 3.3.0.v20140425191906\r\nNode.JS Version: v0.10.13\r\nNPM Version: 1.3.2\r\n├── acs@1.0.14\r\n├── alloy@1.4.0-dev\r\n├── npm@1.3.2\r\n├── titanium@3.3.0-dev\r\n└── titanium-code-processor@1.1.1-beta1", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-28T22:34:30.000+0000", "updated": "2014-04-28T22:35:52.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }