Commit Graph

1152 Commits

Author SHA1 Message Date
igor%mir2.org
c1add24197 Cosmetics: use
import java.lang.reflect.*;
import java.io.*;

instead of explicit importing multiple classes.
2003-07-06 19:02:03 +00:00
igor%mir2.org
32619aac8e NativeJavaMethod.add is removed. It allows to assume that after NativeJavaMethod constructor methods array will remain the same, which I will use in the following patch to add caching of Method.getParameterTypes.
Instead of calling NativeJavaMethod.add, JavaMembers assemble the method list directly and then pass it to NativeJavaMethod when done.
2003-07-06 18:59:30 +00:00
igor%mir2.org
2dd779b626 Pass staticType to wrapAsJavaObject to restore an option to use it for reflection instead of dynamicType if a security manager prevents the later 2003-07-06 18:51:54 +00:00
igor%mir2.org
4b42da1dbb More JavaMembers cosmetics:
1. All its methods package private methods that are not accesible outside the class itself are made private.

2. Various package-private getters are removed in favor of direct field access.
2003-07-06 18:51:53 +00:00
igor%mir2.org
1c181334c2 1. Changing NativeJavaMethod.findFunction to return index of found method instead of the method itself to make smaller the following optimizations of findFunction.
2. Removal of NativeJavaMethod.getMethod that simply returned package-private field NativeJavaMethod.methods since the filed itself was accessed directly by other files.
2003-07-05 22:13:33 +00:00
igor%mir2.org
4fdc22f62d Added reportRuntimeError4 and getMessage4 to build 4-argument messages 2003-07-05 22:05:55 +00:00
igor%mir2.org
922f49f971 For compatibility, resurrect unwrap as deprecated method. 2003-07-03 18:51:16 +00:00
igor%mir2.org
c922b2359b Added public FunctionObject.getMethodOrConstructor() to resolve
http://bugzilla.mozilla.org/show_bug.cgi?id=108719
2003-07-02 21:07:44 +00:00
igor%mir2.org
b5dd8750a1 Do not store dynamic scope flag in the object. Instead when checking thisObj against Java this type use scope != getParentScope() to detect such usage. 2003-07-02 19:41:48 +00:00
igor%mir2.org
df5af91220 Updating exception debugging to reflect changes due to http://bugzilla.mozilla.org/show_bug.cgi?id=210605 . 2003-07-02 16:37:29 +00:00
igor%mir2.org
10e5abd5a1 Reorganization of Java and JavaScript exception iteraction. See http://bugzilla.mozilla.org/show_bug.cgi?id=210605 for details. 2003-07-02 16:35:51 +00:00
igor%mir2.org
50093185e7 1. Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=102093 :
In NativeCall constructor adds argument object only if there is no parameters with this name and similarly do not set arguments to undefined if the function has "var arguments".

2. Split NativeCall into NativeCall and NativeCallPrototype to allow for smaller activation objects with faster property access.
2003-07-02 16:31:54 +00:00
igor%mir2.org
e168d3f93a Cosmetics: end-of-line junk space removal 2003-07-01 07:18:07 +00:00
igor%mir2.org
78167b2c67 Teach Committing.generateCatchBlock() to generate catch blocks for EcmaError exceptions to avoid code duplication. 2003-06-30 20:21:32 +00:00
igor%mir2.org
0ca2f9239b The code to deal with caught Java exceptions and transfer control to script finally/catch is transfered to CATCH bytecode which is now always added to the and of script bytecode. In this way if Context.observeInstructionCount throws an exception, a proper cleanup to restore Interpreter runtime will still be carried out. It also allowed to transfer control directly to catch/finally code when script call throw instead of throwing Java exception just to capture it immediately.
This special CATCH bytecode is a simple way to workaround lack of goto in Java which makes writing interpreters more complex then necessary...
2003-06-30 19:31:44 +00:00
igor%mir2.org
387b707f61 Added ScriptRuntime.getCatchObject() for extracting JS object to pass as the argument to JS catch statement. 2003-06-30 19:21:41 +00:00
igor%mir2.org
6d1229405a Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=210682 :
A slightly modified version of Brian Gugliemetti fix for bad interaction in TokenStream.getToken()/peekTokenSameLine() when dealing with EOL.
2003-06-30 19:18:31 +00:00
igor%mir2.org
90c20109d8 Removal of deprecated DefiningClassLoader 2003-06-29 22:32:52 +00:00
igor%mir2.org
b4b7524a24 Exception handling cleanup: use CATCH bytecode to extract JS object from Trowable so any exception that happens during this process will be handled properly. 2003-06-29 22:12:48 +00:00
igor%mir2.org
f1f70ebd4e Cosmetics: removal of unused import 2003-06-29 21:58:01 +00:00
igor%mir2.org
31641ef33a Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=208293 :
Patch from Steve Beal to fix my bug in Context.readReader.
2003-06-11 13:27:23 +00:00
igor%mir2.org
12a288b564 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=207999 :
EcmaError constructor now takes a generic Scriptable and not NativeError so classes outside org.mozilla.javascript can use it.
2003-06-11 07:36:11 +00:00
igor%mir2.org
4b523296c6 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=207968 :
As suggested by Roland Knight, WrappedException does not call exception.fillInStackTrace() to prevent hiding of the original stack trace.
2003-06-11 07:33:22 +00:00
igor%mir2.org
db16eb9355 To store properties, replace UintMap by a linked list. The former creates 2 objects (UintMap itself and int array) to store int properties and 3 objects (additional object array) to store object properties but vast majority of Nodes has no more then 2 properties with single-property-node contributing most to the majority. 2003-06-02 06:35:57 +00:00
igor%mir2.org
d1ca7cd329 Pass IRFactory to Parser.parse instead of Parser constructor so Parser initialization would not require IRFactory which needs Interpreter in turn . 2003-05-21 12:09:08 +00:00
igor%mir2.org
f46fd7f3b0 Layout cosmetics 2003-05-21 11:48:32 +00:00
igor%mir2.org
6b6368d8c8 Added WrapFactory.wrapAsJavaObject to simplify customization of LiveConnect 2003-05-20 12:46:09 +00:00
igor%mir2.org
e449bd5853 Adding missed final qualifier to the declaration of js_NaN_date_str field 2003-05-20 08:10:48 +00:00
igor%mir2.org
fde9643eed Addition of seal function to Rhino shell to seal all supplied arguments. 2003-05-19 15:53:23 +00:00
igor%mir2.org
3f84d7fe70 Resolving http://bugzilla.mozilla.org/show_bug.cgi?id=203013 :
Changing behavior of sealed objects to throw an exception on any attempt to modify them including changing values of existing properties. In the same time making object sealed does not affect read-only status of its properties which allows to override properties of objects with a sealed object as a prototype.

Rhino shell now accepts -sealedlib option to seal all standard objects.
2003-05-16 14:25:57 +00:00
igor%mir2.org
6fb4e51cdf Optimizations in NativeDate mostly to reduce amount of various format strings runtime has to initialize. 2003-05-16 08:32:58 +00:00
igor%mir2.org
d6229c666d NativeObject is split into NativeObject and NativeObjectPrototype subclass not to have prototypeFlag field in each and every object instance. 2003-05-15 13:12:41 +00:00
igor%mir2.org
3fb9f1b2ab Resolving http://bugzilla.mozilla.org/show_bug.cgi?id=205661 :
In setBySetter when start != this setters with delegators and setters without one if start is not an instance of this class are not invoked on start. Instead the standard JS rules applies so x.a = 1 would not change a in x.__proto__ if a in x.__proto__ is controlled by setter.
2003-05-15 07:29:46 +00:00
igor%mir2.org
9e9108a091 In getByGetter/setBySetter with slot.delegateTo avoid potentially expensive checks for start type if this == start. 2003-05-14 14:51:00 +00:00
igor%mir2.org
7f65f9ebed Changing JavaAdapter not to define JavaAdapter.prototype since new JavaAdapter create JS objects with __proto__ pointing to Object.prototype. It removes the need to extend from ScriptableObject in JavaAdapter and effectively makes it a collection of static methods.
To implement JavaAdapter JS call I used JIFunction subclass so the method implementing this functionality can be package private.
2003-05-14 12:44:24 +00:00
igor%mir2.org
6e6a6e7226 More layout fixes and renames to make the following commit smaller. 2003-05-14 09:45:59 +00:00
igor%mir2.org
36b6f85b95 In jsConstructor catch reflection exceptions and rethrow them as WrappedException not to create InvocationTargetException proxy that will be converted to WrappedException by the runtime in any case. 2003-05-14 09:37:39 +00:00
igor%mir2.org
f88a99c04b Removal of overridden equals that simply calls super.equals since JavaAdapter does not need to define the method for ScriptableObject.defineClass to work and layout cosmetics. 2003-05-14 06:24:00 +00:00
igor%mir2.org
65e85a6cc2 Replace catch for various exceptions that reflection methods can throw by single catch (Exception ex) to have smaller code. 2003-05-13 10:07:44 +00:00
igor%mir2.org
d0fc67bca5 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=205297 2003-05-12 16:54:41 +00:00
igor%mir2.org
b7d1664a5d Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=201896 :
New helper class JIFunction for easy implementation of JS functions in Java without using reflection and its usage in ImporterTopLevel and NativeJavaPackage
2003-05-06 18:59:22 +00:00
igor%mir2.org
39e3557521 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=204210 2003-05-06 18:53:16 +00:00
nboyd%atg.com
bfd7fbedd9 Fix suggested by Bojan Cekrlic in Bugzilla Bug 203752:
While you are messing arround with JavaScriptException, is it possible to add

if(value instanceof Throwable) {
	initCause((Throwable) value);
}

I know it's a Java 1.4 feature and not directly connected to this bug and don't
know what's the Rhino's policy of supported Java versions, but it in the end it
could be done with method.invoke() or something similar.

This would help debugging a lot.
2003-05-06 16:56:38 +00:00
igor%mir2.org
e96d15dffb Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=204513 2003-05-06 15:29:36 +00:00
igor%mir2.org
050bb6a756 Fixing http://bugzilla.mozilla.org/show_bug.cgi?id=204576
Using (x instanceof Wrapper) instead of (x instanceof NativeJavaObject) which replaces the previous fix of unwrapping NativeJavaObject.call arguments for the custom wrappers problem.
2003-05-06 10:51:24 +00:00
igor%mir2.org
615d3d50af Cosmetics: removal of NativeJavaObject. prefix when calling NativeJavaObject methods. 2003-05-05 16:15:50 +00:00
igor%mir2.org
0b305af30a When marking parse tree nodes as special calls, use explicit integer id to specify node type, note a generic boolean flag. It would allow for simpler code during special calls evaluation. 2003-05-02 14:00:19 +00:00
igor%mir2.org
fb9e9f48e4 In ScriptRuntime.callOrNewSpecial remove special handling of exec calls since it is never used. 2003-05-02 12:16:05 +00:00
igor%mir2.org
b6541a48a4 Simpler code in Codegen.visitRegularCall to select which runtime method to call. 2003-05-02 11:34:05 +00:00
igor%mir2.org
9de1cfa5c7 Cosmetics: tabs and end-of-line whitespace removal 2003-05-02 10:27:56 +00:00