/* * Copyright 2007 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.dev.js; import java.util.HashSet; import java.util.Set; /** * Determines whether or not a particular string is a JavaScript keyword or not. */ public class JsKeywords { private static Set<String> sJavaScriptKeywords = new HashSet<String>(); static { initJavaScriptKeywords(); } public static boolean isKeyword(String s) { return sJavaScriptKeywords.contains(s); } private static synchronized void initJavaScriptKeywords() { String[] keywords = new String[]{ // These are current keywords // "break", "delete", "function", "return", "typeof", "case", "do", "if", "switch", "var", "catch", "else", "in", "this", "void", "continue", "false", "instanceof", "throw", "while", "debugger", "finally", "new", "true", "with", "default", "for", "null", "try", // These are future keywords // "abstract", "double", "goto", "native", "static", "boolean", "enum", "implements", "package", "super", "byte", "export", "import", "private", "synchronized", "char", "extends", "int", "protected", "throws", "class", "final", "interface", "public", "transient", "const", "float", "long", "short", "volatile"}; for (int i = 0; i < keywords.length; i++) { sJavaScriptKeywords.add(keywords[i]); } } private JsKeywords() { } }