CB-10636 Add JSHint for plugins
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2209f42
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+#If ignorance is bliss, then somebody knock the smile off my face
+
+*.csproj.user
+*.suo
+*.cache
+Thumbs.db
+*.DS_Store
+
+*.bak
+*.cache
+*.log
+*.swp
+*.user
+
+node_modules
+
+
+
+
+
+
+
+
+ 
\ No newline at end of file
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..cf48aac
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,16 @@
+{
+    "browser": true
+  , "devel": true
+  , "bitwise": true
+  , "undef": true
+  , "trailing": true
+  , "quotmark": false
+  , "indent": 4
+  , "unused": "vars"
+  , "latedef": "nofunc"
+  , "globals": {
+        "module": false,
+        "exports": false,
+        "require": false
+    }
+}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..b9af4c5
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+sudo: false
+node_js:
+  - "4.2"
diff --git a/README.md b/README.md
index 3655629..360580f 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,8 @@
 #         under the License.
 -->
 
+[![Build Status](https://travis-ci.org/apache/cordova-plugin-wkwebview-engine.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-wkwebview-engine)
+
 Cordova WKWebView Engine
 ======
 
diff --git a/package.json b/package.json
index 6b052af..d64775f 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,13 @@
     "cordova",
     "wkwebview"
   ],
+  "scripts": {
+    "test": "npm run jshint",
+    "jshint": "node node_modules/jshint/bin/jshint src"
+  },
   "author": "Apache Cordova",
-  "license": "Apache-2.0"
+  "license": "Apache-2.0",
+  "devDependencies": {
+    "jshint": "^2.6.0"
+  }
 }
diff --git a/src/www/ios/ios-wkwebview-exec.js b/src/www/ios/ios-wkwebview-exec.js
index 01b5929..2766acc 100644
--- a/src/www/ios/ios-wkwebview-exec.js
+++ b/src/www/ios/ios-wkwebview-exec.js
@@ -24,12 +24,8 @@
  * commands.
  */
 var cordova = require('cordova'),
-    channel = require('cordova/channel'),
     utils = require('cordova/utils'),
-    base64 = require('cordova/base64'),
-    commandQueue = [], // Contains pending JS->Native messages.
-    isInContextOfEvalJs = 0,
-    failSafeTimerId = 0;
+    base64 = require('cordova/base64');
 
 function massageArgsJsToNative(args) {
     if (!args || utils.typeName(args) != 'Array') {
@@ -88,7 +84,7 @@
     //     bridgeMode = jsToNativeModes.WK_WEBVIEW_BINDING;
     // }
 
-    var successCallback, failCallback, service, action, actionArgs, splitCommand;
+    var successCallback, failCallback, service, action, actionArgs;
     var callbackId = null;
     if (typeof arguments[0] !== "string") {
         // FORMAT ONE
@@ -104,8 +100,8 @@
         // an invalid callbackId and passes it even if no callbacks were given.
         callbackId = 'INVALID';
     } else {
-   		throw new Error('The old format of this exec call has been removed (deprecated since 2.1). Change to: ' +
-			'cordova.exec(null, null, \'Service\', \'action\', [ arg1, arg2 ]);');
+   	    throw new Error('The old format of this exec call has been removed (deprecated since 2.1). Change to: ' +
+            'cordova.exec(null, null, \'Service\', \'action\', [ arg1, arg2 ]);');
     }
 
     // If actionArgs is not provided, default to an empty array
@@ -125,7 +121,7 @@
     var command = [callbackId, service, action, JSON.parse(JSON.stringify(actionArgs))];
     window.webkit.messageHandlers.cordova.postMessage(command);
 
-}
+};
 
 iOSExec.nativeCallback = function(callbackId, status, message, keepCallback, debug) {
     
@@ -155,7 +151,7 @@
 
 function execProxy() {
     cordovaExec().apply(null, arguments);
-};
+}
 
 execProxy.nativeFetchMessages = function() {
     return cordovaExec().nativeFetchMessages.apply(null, arguments);