home *** CD-ROM | disk | FTP | other *** search
- package com.netscape.javascript;
-
- import java.lang.reflect.Method;
-
- public class NativeString extends RescopeableObject implements Wrapper {
- private static final String defaultValue = "";
- private String string;
- // $FF: synthetic field
- private static Class class$com$netscape$javascript$NativeString;
-
- public String getClassName() {
- return "String";
- }
-
- public static String js_toUpperCase(Context var0, Scriptable var1, Object[] var2, Function var3) {
- String var4 = ScriptRuntime.toString(var1);
- return var4.toUpperCase();
- }
-
- public String js_fontsize(String var1) {
- return this.tagify("FONT SIZE", "FONT", var1);
- }
-
- public String js_valueOf() {
- return this.string;
- }
-
- public void put(int var1, Scriptable var2, Object var3) {
- if (var1 < 0 || var1 >= this.string.length()) {
- super.put(var1, var2, var3);
- }
- }
-
- public double js_getLength() {
- return (double)this.string.length();
- }
-
- public String js_blink() {
- return this.tagify("BLINK", (String)null, (String)null);
- }
-
- public static Object js_String(Context var0, Object[] var1, Function var2, boolean var3) {
- String var4 = var1.length >= 1 ? ScriptRuntime.toString(var1[0]) : "";
- return var3 ? new NativeString(var4) : var4;
- }
-
- public String js_toString() {
- return this.string;
- }
-
- private String tagify(String var1, String var2, String var3) {
- StringBuffer var4 = new StringBuffer();
- var4.append('<');
- var4.append(var1);
- if (var3 != null) {
- var4.append('=');
- var4.append(var3);
- }
-
- var4.append('>');
- var4.append(this.string);
- var4.append("</");
- var4.append(var2 == null ? var1 : var2);
- var4.append('>');
- return var4.toString();
- }
-
- public static Object js_search(Context var0, Scriptable var1, Object[] var2, Function var3) throws JavaScriptException {
- MatchData var4 = new MatchData();
- var4.optarg = 1;
- var4.mode = 3;
- var4.parent = ScriptableObject.getTopLevelScope(var3);
- return matchOrReplace(var0, var1, var2, var3, var4);
- }
-
- private static Object matchOrReplace(Context var0, Scriptable var1, Object[] var2, Function var3, GlobData var4) throws JavaScriptException {
- String var6 = ScriptRuntime.toString(var1);
- var4.str = var6;
- RegExpStatics var7 = var0.getRegExpStatics();
- NativeRegExp var5;
- if (var2[0] instanceof NativeRegExp) {
- var5 = (NativeRegExp)var2[0];
- } else {
- String var8 = ScriptRuntime.toString(var2[0]);
- String var9;
- if (var4.optarg < var2.length) {
- var2[0] = var8;
- var9 = ScriptRuntime.toString(var2[var4.optarg]);
- } else {
- var9 = null;
- }
-
- Scriptable var10 = ScriptableObject.getTopLevelScope(var3);
- var5 = new NativeRegExp(var10, var8, var9);
- }
-
- var4.regexp = var5;
- var4.global = (var5.getFlags() & 1) != 0;
- int[] var11 = new int[1];
- Object var12 = null;
- if (var4.mode == 3) {
- var12 = var5.executeRegExp(var3, var6, var11, true);
- if (var12 != null && var12.equals(Boolean.TRUE)) {
- var12 = new Integer(var7.leftContext.length);
- } else {
- var12 = new Integer(-1);
- }
- } else if (var4.global) {
- var5.setLastIndex(0);
-
- for(int var14 = 0; var11[0] <= var6.length(); ++var14) {
- var12 = var5.executeRegExp(var3, var6, var11, true);
- if (var12 == null || !var12.equals(Boolean.TRUE)) {
- break;
- }
-
- var4.doGlobal(var3, var14);
- if (var7.lastMatch.length == 0) {
- if (var11[0] == var6.length()) {
- break;
- }
-
- int var10002 = var11[0]++;
- }
- }
- } else {
- var12 = var5.executeRegExp(var3, var6, var11, var4.mode == 2);
- }
-
- return var12;
- }
-
- public static void finishInit(Scriptable var0, FunctionObject var1, Scriptable var2) {
- Method[] var3 = FunctionObject.findMethods(class$com$netscape$javascript$NativeString != null ? class$com$netscape$javascript$NativeString : (class$com$netscape$javascript$NativeString = class$("com.netscape.javascript.NativeString")), "fromCharCode");
- FunctionObject var4 = new FunctionObject("fromCharCode", var3[0], var1);
- ((ScriptableObject)var1).defineProperty("fromCharCode", var4, 2);
- String[] var5 = new String[]{"indexOf", "lastIndexOf", "substring", "toUpperCase", "toLowerCase", "toString"};
- short[] var6 = new short[]{2, 2, 2, 0, 0, 0};
-
- for(int var7 = 0; var7 < var5.length; ++var7) {
- Object var8 = var2.get(var5[var7], var2);
- ((FunctionObject)var8).setLength(var6[var7]);
- }
-
- }
-
- public String js_sub() {
- return this.tagify("SUB", (String)null, (String)null);
- }
-
- public static String js_toLowerCase(Context var0, Scriptable var1, Object[] var2, Function var3) {
- String var4 = ScriptRuntime.toString(var1);
- return var4.toLowerCase();
- }
-
- public static String js_charAt(Context var0, Scriptable var1, Object[] var2, Function var3) {
- if (var2.length < 1) {
- var2 = ScriptRuntime.padArguments(var2, 1);
- }
-
- String var4 = ScriptRuntime.toString(var1);
- double var5 = ScriptRuntime.toInteger(var2[0]);
- return !(var5 < (double)0.0F) && !(var5 >= (double)var4.length()) ? var4.substring((int)var5, (int)var5 + 1) : "";
- }
-
- public static double js_charCodeAt(Context var0, Scriptable var1, Object[] var2, Function var3) {
- if (var2.length < 1) {
- var2 = ScriptRuntime.padArguments(var2, 1);
- }
-
- String var4 = ScriptRuntime.toString(var1);
- double var5 = ScriptRuntime.toInteger(var2[0]);
- return !(var5 < (double)0.0F) && !(var5 >= (double)var4.length()) ? (double)var4.charAt((int)var5) : ScriptRuntime.NaN;
- }
-
- public String js_big() {
- return this.tagify("BIG", (String)null, (String)null);
- }
-
- public String js_link(String var1) {
- return this.tagify("A HREF", "A", var1);
- }
-
- public String js_bold() {
- return this.tagify("B", (String)null, (String)null);
- }
-
- public String js_small() {
- return this.tagify("SMALL", (String)null, (String)null);
- }
-
- public String js_strike() {
- return this.tagify("STRIKE", (String)null, (String)null);
- }
-
- public static int js_lastIndexOf(Context var0, Scriptable var1, Object[] var2, Function var3) {
- if (var2.length < 2) {
- var2 = ScriptRuntime.padArguments(var2, 2);
- }
-
- String var4 = ScriptRuntime.toString(var1);
- String var5 = ScriptRuntime.toString(var2[0]);
- double var6 = ScriptRuntime.toNumber(var2[1]);
- if (var6 == var6 && !(var6 > (double)var4.length())) {
- if (var6 < (double)0.0F) {
- var6 = (double)0.0F;
- }
- } else {
- var6 = (double)var4.length();
- }
-
- return var4.lastIndexOf(var5, (int)var6);
- }
-
- public Object get(int var1, Scriptable var2) {
- return var1 >= 0 && var1 < this.string.length() ? this.string.substring(var1, var1 + 1) : super.get(var1, var2);
- }
-
- public static String js_concat(Context var0, Scriptable var1, Object[] var2, Function var3) {
- StringBuffer var4 = new StringBuffer();
- var4.append(ScriptRuntime.toString(var1));
-
- for(int var5 = 0; var5 < var2.length; ++var5) {
- var4.append(ScriptRuntime.toString(var2[var5]));
- }
-
- return var4.toString();
- }
-
- public String js_fixed() {
- return this.tagify("TT", (String)null, (String)null);
- }
-
- public String toString() {
- return this.string;
- }
-
- public NativeString() {
- this.string = "";
- }
-
- public NativeString(String var1) {
- this.string = var1;
- }
-
- public static String fromCharCode(Context var0, Scriptable var1, Object[] var2, Function var3) {
- StringBuffer var4 = new StringBuffer();
- if (var2.length < 1) {
- return "";
- } else {
- for(int var5 = 0; var5 < var2.length; ++var5) {
- var4.append(ScriptRuntime.toUint16(var2[var5]));
- }
-
- return var4.toString();
- }
- }
-
- public static String js_substring(Context var0, Scriptable var1, Object[] var2, Function var3) {
- if (var2.length < 1) {
- var2 = ScriptRuntime.padArguments(var2, 1);
- }
-
- String var4 = ScriptRuntime.toString(var1);
- int var5 = var4.length();
- double var6 = ScriptRuntime.toInteger(var2[0]);
- if (var6 < (double)0.0F) {
- var6 = (double)0.0F;
- } else if (var6 > (double)var5) {
- var6 = (double)var5;
- }
-
- double var8;
- if (var2.length == 1) {
- var8 = (double)var5;
- } else {
- var8 = ScriptRuntime.toInteger(var2[1]);
- if (var8 < (double)0.0F) {
- var8 = (double)0.0F;
- } else if (var8 > (double)var5) {
- var8 = (double)var5;
- }
-
- if (var8 < var6) {
- if (var0.getLanguageVersion() != 120) {
- double var10 = var6;
- var6 = var8;
- var8 = var10;
- } else {
- var8 = var6;
- }
- }
- }
-
- return var4.substring((int)var6, (int)var8);
- }
-
- public String js_anchor(String var1) {
- return this.tagify("A NAME", "A", var1);
- }
-
- // $FF: synthetic method
- private static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- public static Object js_replace(Context var0, Scriptable var1, Object[] var2, Function var3) throws JavaScriptException {
- Object var4 = var2.length < 2 ? Undefined.instance : var2[1];
- String var5 = null;
- Function var6 = null;
- if (var4 instanceof Function) {
- var6 = (Function)var4;
- } else {
- var5 = ScriptRuntime.toString(var4);
- }
-
- RegExpStatics var7 = var0.getRegExpStatics();
- ReplaceData var8 = new ReplaceData();
- var8.optarg = 2;
- var8.mode = 2;
- var8.lambda = var6;
- var8.repstr = var5 == null ? null : var5.toCharArray();
- var8.dollar = var5 == null ? -1 : var5.indexOf(36);
- var8.charArray = null;
- var8.length = 0;
- var8.index = 0;
- var8.leftIndex = 0;
- Object var9 = matchOrReplace(var0, var1, var2, var3, var8);
- if (var8.charArray == null) {
- if (var8.global || var9 == null || !var9.equals(Boolean.TRUE)) {
- return var8.str;
- }
-
- int var11 = var7.leftContext.length;
- int var12 = var11 + var8.findReplen(var7);
- char[] var10 = new char[var12];
- SubString var13 = var7.leftContext;
- System.arraycopy(var13.charArray, var13.index, var10, 0, var11);
- var8.doReplace(var7, var10, var11);
- var8.charArray = var10;
- var8.length = var12;
- }
-
- SubString var15 = var7.rightContext;
- int var16 = var15.length;
- int var17 = var8.length + var16;
- char[] var14 = new char[var17];
- System.arraycopy(var8.charArray, 0, var14, 0, var8.charArray.length);
- System.arraycopy(var15.charArray, var15.index, var14, var8.length, var16);
- return new String(var14, 0, var17);
- }
-
- public static String js_substr(Context var0, Scriptable var1, Object[] var2, Function var3) {
- String var4 = ScriptRuntime.toString(var1);
- if (var2.length < 1) {
- return var4;
- } else {
- double var5 = ScriptRuntime.toInteger(var2[0]);
- int var9 = var4.length();
- if (var5 < (double)0.0F) {
- var5 += (double)var9;
- if (var5 < (double)0.0F) {
- var5 = (double)0.0F;
- }
- } else if (var5 > (double)var9) {
- var5 = (double)var9;
- }
-
- double var7;
- if (var2.length == 1) {
- var7 = (double)var9;
- } else {
- var7 = ScriptRuntime.toInteger(var2[1]);
- if (var7 < (double)0.0F) {
- var7 = (double)0.0F;
- }
-
- var7 += var5;
- if (var7 > (double)var9) {
- var7 = (double)var9;
- }
- }
-
- return var4.substring((int)var5, (int)var7);
- }
- }
-
- public static int js_indexOf(Context var0, Scriptable var1, Object[] var2, Function var3) {
- if (var2.length < 2) {
- var2 = ScriptRuntime.padArguments(var2, 2);
- }
-
- String var4 = ScriptRuntime.toString(var1);
- String var5 = ScriptRuntime.toString(var2[0]);
- double var6 = ScriptRuntime.toInteger(var2[1]);
- if (var6 > (double)var4.length()) {
- return -1;
- } else {
- if (var6 < (double)0.0F) {
- var6 = (double)0.0F;
- }
-
- return var4.indexOf(var5, (int)var6);
- }
- }
-
- public Object unwrap() {
- return this.string;
- }
-
- public String js_sup() {
- return this.tagify("SUP", (String)null, (String)null);
- }
-
- private static int find_split(Function var0, String var1, String var2, NativeRegExp var3, int[] var4, int[] var5, boolean[] var6) {
- int var13 = var4[0];
- int var8 = var1.length();
- int var9 = Context.getContext().getLanguageVersion();
- if (var9 == 120 && var3 == null && var2.length() == 1 && var2.charAt(0) == ' ') {
- if (var13 == 0) {
- while(var13 < var8 && Character.isWhitespace(var1.charAt(var13))) {
- ++var13;
- }
-
- var4[0] = var13;
- }
-
- if (var13 == var8) {
- return -1;
- } else {
- while(var13 < var8 && !Character.isWhitespace(var1.charAt(var13))) {
- ++var13;
- }
-
- int var15;
- for(var15 = var13; var15 < var8 && Character.isWhitespace(var1.charAt(var15)); ++var15) {
- }
-
- var5[0] = var15 - var13;
- return var13;
- }
- } else if (var13 > var8) {
- return -1;
- } else if (var3 == null) {
- if (var9 != 0 && var9 < 130 && var8 == 0) {
- return -1;
- } else if (var2.length() == 0) {
- return var13 + 1;
- } else if (var4[0] >= var8) {
- return var8;
- } else {
- var13 = var1.indexOf(var2, var4[0]);
- return var13 != -1 ? var13 : var8;
- }
- } else {
- while(var9 != 120 || var13 != var8) {
- int var10 = var4[0];
- var4[0] = var13;
- if (var3.executeRegExp(var0, var1, var4, true) != Boolean.TRUE) {
- var4[0] = var10;
- var5[0] = 1;
- var6[0] = false;
- return var8;
- }
-
- var13 = var4[0];
- var4[0] = var10;
- var6[0] = true;
- RegExpStatics var11 = Context.getContext().getRegExpStatics();
- SubString var12 = var11.lastMatch;
- var5[0] = var12.length;
- if (var5[0] != 0 || var13 != var4[0]) {
- return var13 - var5[0];
- }
-
- if (var13 == var8) {
- var5[0] = 1;
- return var13;
- }
-
- ++var13;
- }
-
- return -1;
- }
- }
-
- public static Object js_split(Context var0, Scriptable var1, Object[] var2, Function var3) {
- String var4 = ScriptRuntime.toString(var1);
- Scriptable var5 = ScriptableObject.getTopLevelScope(var3);
- Scriptable var6 = ScriptRuntime.newObject(var0, var5, "Array", (Object[])null);
- if (var2.length < 1) {
- var6.put(0, var6, var4);
- return var6;
- } else {
- boolean var7 = var2.length > 1;
- int var8 = 0;
- if (var7) {
- double var9 = ScriptRuntime.toInteger(var2[1]);
- if (var9 < (double)0.0F) {
- var9 = (double)0.0F;
- } else if (var9 > (double)var4.length()) {
- var9 = (double)(1 + var4.length());
- }
-
- var8 = (int)var9;
- }
-
- String var21 = null;
- NativeRegExp var10 = null;
- RegExpStatics var11 = null;
- int[] var12 = new int[1];
- if (var2[0] instanceof NativeRegExp) {
- var10 = (NativeRegExp)var2[0];
- var11 = var0.getRegExpStatics();
- } else {
- var21 = ScriptRuntime.toString(var2[0]);
- var12[0] = var21.length();
- }
-
- int[] var13 = new int[1];
- int var15 = 0;
- boolean[] var16 = new boolean[1];
-
- int var14;
- while((var14 = find_split(var3, var4, var21, var10, var13, var12, var16)) >= 0 && (!var7 || var15 < var8) && var14 <= var4.length()) {
- String var17;
- if (var4.length() == 0) {
- var17 = var4;
- } else {
- var17 = var4.substring(var13[0], var14);
- }
-
- var6.put(var15, var6, var17);
- ++var15;
- if (var10 != null && var16[0]) {
- int var18 = var11.parens.size();
-
- for(int var19 = 0; var19 < var18 && (!var7 || var15 < var8); ++var19) {
- SubString var20 = var11.getParenSubString(var19);
- var6.put(var15, var6, var20.toString());
- ++var15;
- }
-
- var16[0] = false;
- }
-
- var13[0] = var14 + var12[0];
- if (var0.getLanguageVersion() < 130 && var0.getLanguageVersion() != 0 && !var7 && var13[0] == var4.length()) {
- break;
- }
- }
-
- return var6;
- }
- }
-
- public static Object js_match(Context var0, Scriptable var1, Object[] var2, Function var3) throws JavaScriptException {
- MatchData var4 = new MatchData();
- var4.optarg = 1;
- var4.mode = 1;
- var4.parent = ScriptableObject.getTopLevelScope(var3);
- Object var5 = matchOrReplace(var0, var1, var2, var3, var4);
- return var4.arrayobj == null ? var5 : var4.arrayobj;
- }
-
- public String js_fontcolor(String var1) {
- return this.tagify("FONT COLOR", "FONT", var1);
- }
-
- public String js_italics() {
- return this.tagify("I", (String)null, (String)null);
- }
-
- public static String js_slice(Context var0, Scriptable var1, Object[] var2, Function var3) {
- String var4 = ScriptRuntime.toString(var1);
- if (var2.length != 0) {
- double var5 = ScriptRuntime.toInteger(var2[0]);
- int var9 = var4.length();
- if (var5 < (double)0.0F) {
- var5 += (double)var9;
- if (var5 < (double)0.0F) {
- var5 = (double)0.0F;
- }
- } else if (var5 > (double)var9) {
- var5 = (double)var9;
- }
-
- double var7;
- if (var2.length == 1) {
- var7 = (double)var9;
- } else {
- var7 = ScriptRuntime.toInteger(var2[1]);
- if (var7 < (double)0.0F) {
- var7 += (double)var9;
- if (var7 < (double)0.0F) {
- var7 = (double)0.0F;
- }
- } else if (var7 > (double)var9) {
- var7 = (double)var9;
- }
-
- if (var7 < var5) {
- var7 = var5;
- }
- }
-
- return var4.substring((int)var5, (int)var7);
- } else {
- return var4;
- }
- }
- }
-