Index: chrome/browser/resources/touch_ntp/tools/check |
diff --git a/chrome/browser/resources/touch_ntp/tools/check b/chrome/browser/resources/touch_ntp/tools/check |
new file mode 100755 |
index 0000000000000000000000000000000000000000..5b1742bd8f09b950609e8d06d6c3ae65410157a3 |
--- /dev/null |
+++ b/chrome/browser/resources/touch_ntp/tools/check |
@@ -0,0 +1,58 @@ |
+#!/bin/bash |
+ |
+# Copyright (c) 2008 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# This script checks the touch_ntp code for common errors and style |
+# problems using the closure compiler (jscompiler) and closure linter |
+# (gjslint) - both of which must be on the path. |
+# See http://code.google.com/closure/compiler/ and |
+# http://code.google.com/closure/utilities/ for details on these tools. |
+ |
+SOURCES="eventtracker.js touchhandler.js slider.js newtab.js grabber.js " |
+SOURCES+="standalone/standalone_hack.js" |
+ |
+# First run the closure compiler looking for syntactic issues. |
+# Note that we throw away the output from jscompiler since it's use |
+# is not yet common in Chromium and for now we want it to be an optional |
+# tool for helping to find bugs, not something that actually changes |
+# the embedded JavaScript (making it harder to debug, for example). |
+ |
+# I used to run with '--warning_level VERBOSE' to get full type checking |
+# but there are enough limitations in the language and compiler that |
+# it doesn't seem worth the benefit (spent more time trying to apease |
+# the compiler and reviewers of my code than the compiler saved me). |
+ |
+# Enable support for property get/set syntax as added in ecmascript5. |
+# Note that this requires a build of JSCompiler that is newer than |
+# Feb 2011. |
+CARGS="--language_in=ECMASCRIPT5_STRICT" |
+ |
+CARGS+=" --js_output_file /dev/null" |
+for S in $SOURCES tools/externs.js; do |
+ CARGS+=" --js $S" |
+done |
+ |
+cd `dirname $0`/.. |
+ |
+echo jscompiler $CARGS |
+jscompiler $CARGS || exit 1 |
+ |
+# Now run the closure linter looking for style issues. |
+ |
+# GJSLint can't follow the more concice syntax for prototype members and |
+# complains about missing @this annotations (filed as bug 4073735). To |
+# cope for now I just just off all missing-JSDoc warnings. |
+LARGS="--nojsdoc" |
+ |
+# Verify extra rules like spacing and indentation |
+LARGS+=" --strict" |
+ |
+# Might as well check the bit of JS we have embedded in HTML too |
+LARGS+=" --check_html newtab.html" |
+ |
+LARGS+=" $SOURCES" |
+ |
+echo gjslint $LARGS |
+gjslint $LARGS || exit 1 |