3 import org.ibex.util.*;
5 final class JSString extends JSPrimitive {
7 public JSString(String s) { this.s = s; }
8 public int hashCode() { return s.hashCode(); }
10 public boolean jsequals(JS o) {
11 if(o == this) return true;
12 if(o instanceof JSString) {
13 return ((JSString)o).s.equals(s);
14 } else if(o instanceof JSNumber) {
15 return o.jsequals(this);
21 int length() { return s.length(); }
23 private static Hash internHash = new Hash();
24 static synchronized JS intern(String s) {
25 JS js = (JS)internHash.get(s);
26 if(js == null) internHash.put(s,js = new JSString(s));
29 JS intern() { return intern(s); }
31 String coerceToString() { return s; }