diff --git a/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSException.java b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSException.java new file mode 100644 index 00000000000..4ae02ffcb77 --- /dev/null +++ b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSException.java @@ -0,0 +1,56 @@ +/* Insert copyright and license here 19** */ + +package netscape.javascript; + +/** + * JSException is an exception which is thrown when JavaScript code + * returns an error. + */ + +public +class JSException extends Exception { + String filename; + int lineno; + String source; + int tokenIndex; + + /** + * Constructs a JSException without a detail message. + * A detail message is a String that describes this particular exception. + */ + public JSException() { + super(); + filename = "unknown"; + lineno = 0; + source = ""; + tokenIndex = 0; + } + + /** + * Constructs a JSException with a detail message. + * A detail message is a String that describes this particular exception. + * @param s the detail message + */ + public JSException(String s) { + super(s); + filename = "unknown"; + lineno = 0; + source = ""; + tokenIndex = 0; + } + + /** + * Constructs a JSException with a detail message and all the + * other info that usually comes with a JavaScript error. + * @param s the detail message + */ + public JSException(String s, String filename, int lineno, + String source, int tokenIndex) { + super(s); + this.filename = filename; + this.lineno = lineno; + this.source = source; + this.tokenIndex = tokenIndex; + } +} + diff --git a/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSObject.java b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSObject.java new file mode 100644 index 00000000000..f93e51ace74 --- /dev/null +++ b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSObject.java @@ -0,0 +1,131 @@ +/* -*- Mode: C; tab-width: 4; -*- */ + +/* Insert copyright and license here 19** */ + +/* more doc todo: + * threads + * gc + * + * + */ + +package netscape.javascript; + +import java.applet.Applet; + +/** + * JSObject allows Java to manipulate objects that are + * defined in JavaScript. + * Values passed from Java to JavaScript are converted as + * follows:
(String) window.getMember("name"); or
+ * (JSObject) window.getMember("document");.
+ */
+public final class JSObject {
+ /* the internal object data */
+ private int internal;
+
+ /**
+ * initialize
+ */
+ private static native void initClass();
+ static {
+ System.loadLibrary("LiveConnect");
+ initClass();
+ }
+
+ /**
+ * it is illegal to construct a JSObject manually
+ */
+ private JSObject(int jsobj_addr) {internal = jsobj_addr;}
+
+ /**
+ * Retrieves a named member of a JavaScript object.
+ * Equivalent to "this.name" in JavaScript.
+ */
+ public native Object getMember(String name);
+
+ /**
+ * Retrieves an indexed member of a JavaScript object.
+ * Equivalent to "this[index]" in JavaScript.
+ */
+// public Object getMember(int index) { return getSlot(index); }
+ public native Object getSlot(int index);
+
+ /**
+ * Sets a named member of a JavaScript object.
+ * Equivalent to "this.name = value" in JavaScript.
+ */
+ public native void setMember(String name, Object value);
+
+ /**
+ * Sets an indexed member of a JavaScript object.
+ * Equivalent to "this[index] = value" in JavaScript.
+ */
+// public void setMember(int index, Object value) {
+// setSlot(index, value);
+// }
+ public native void setSlot(int index, Object value);
+
+ /**
+ * Removes a named member of a JavaScript object.
+ */
+ public native void removeMember(String name);
+
+ /**
+ * Calls a JavaScript method.
+ * Equivalent to "this.methodName(args[0], args[1], ...)" in JavaScript.
+ */
+ public native Object call(String methodName, Object args[]);
+
+ /**
+ * Evaluates a JavaScript expression. The expression is a string
+ * of JavaScript source code which will be evaluated in the context
+ * given by "this".
+ */
+ public native Object eval(String s);
+
+ /**
+ * Converts a JSObject to a String.
+ */
+ public native String toString();
+
+ // should use some sort of identifier rather than String
+ // is "property" the right word?
+ // native String[] listProperties();
+
+
+ /**
+ * get a JSObject for the window containing the given applet
+ */
+ public static native JSObject getWindow(Applet applet);
+
+ /**
+ * Finalization decrements the reference count on the corresponding
+ * JavaScript object.
+ */
+ protected native void finalize();
+}
diff --git a/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSProxy.java b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSProxy.java
new file mode 100644
index 00000000000..ee266c4a538
--- /dev/null
+++ b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSProxy.java
@@ -0,0 +1,37 @@
+/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+/* ** */
+/**
+ * The JSProxy interface allows applets and plugins to
+ * share javascript contexts.
+ */
+
+package netscape.javascript;
+import java.applet.Applet;
+
+public interface JSProxy {
+ Object getMember(JSObject jso, String name);
+ Object getSlot(JSObject jso, int index);
+ void setMember(JSObject jso, String name, Object value);
+ void setSlot(JSObject jso, int index, Object value);
+ void removeMember(JSObject jso, String name);
+ Object call(JSObject jso, String methodName, Object args[]);
+ Object eval(JSObject jso, String s);
+ String toString(JSObject jso);
+ JSObject getWindow(Applet applet);
+}
diff --git a/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSUtil.java b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSUtil.java
new file mode 100644
index 00000000000..6d3cab84048
--- /dev/null
+++ b/mozilla/js/ref/liveconnect/classes/netscape/javascript/JSUtil.java
@@ -0,0 +1,38 @@
+/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+/* ** */
+
+package netscape.javascript;
+import java.io.*;
+
+public class JSUtil {
+
+ /* Return the stack trace of an exception or error as a String */
+ public static String getStackTrace(Throwable t) {
+ ByteArrayOutputStream captureStream;
+ PrintStream p;
+
+ captureStream = new ByteArrayOutputStream();
+ p = new PrintStream(captureStream);
+
+ t.printStackTrace(p);
+ p.flush();
+
+ return captureStream.toString();
+ }
+}