Граф коммитов

2040 Коммитов

Автор SHA1 Сообщение Дата
igor%mir2.org d6d018f0b6 Resolving bug 282595: patch from Juerg lehni <juerg@scratchdisk.com> to allow
for several setters for bean properties.
2005-02-18 23:06:39 +00:00
igor%mir2.org c57a9a3c25 Implementing bug 274467: Add JavaScript stack trace to exceptions
The changes are based on that patch from Attila Szegedi, szegedia@freemail.hu.
2005-02-16 19:57:03 +00:00
igor%mir2.org 4130b9bffa Fixing bug 282447: patch from Attila Szegedi <szegedia@freemail.hu> to fix NullPointerException. 2005-02-16 12:11:42 +00:00
igor%mir2.org 7bdfe51648 Fixing bug 281537, a regression introduced due to work on bug 280047. It was reported by Attila Szegedi, szegedia@freemail.hu, who also provided the initial patch. 2005-02-09 15:46:50 +00:00
igor%mir2.org bb1ee0458d Implementing bug 281247: JDK compatibility is implemented through VMBridge class and its subclasses to avoid excessive reflection usage. 2005-02-07 07:34:32 +00:00
igor%mir2.org 7ef36e99a0 I removed unused Context argument from various SomeObject.init methods to decrease code bloat. 2005-02-06 01:56:46 +00:00
igor%mir2.org 26f82f20b1 I chaged JavaAdapter to store ContextFactory in the proxy object directly instead of extracting it from scope. It ensures that the proper factory is used to reenter Context objects even if scope stored in the adapter is manipulated and no longer contains the reference to factory. 2005-02-06 01:14:24 +00:00
igor%mir2.org 73ddc72a0e Fixing bug 281067: patch from Attila Szegedi, szegedia@freemail.hu, to allow to garbage collect unused Rhino classes. 2005-02-04 15:53:05 +00:00
igor%mir2.org 90f67281a3 Fixing bug 280629: Compatibility patch to add Main.dispose() 2005-02-01 20:41:21 +00:00
nboyd%atg.com d8a2fd79c1 Update link to ECMA standard 2005-02-01 18:49:56 +00:00
igor%mir2.org 356370801a Implementing bug 280047: Undefined no longer implements Scriptable 2005-01-27 16:35:39 +00:00
igor%mir2.org 21add3734f Always use Undefined.instance and not Context.getUndefinedValue() for consistency. 2005-01-27 00:59:59 +00:00
igor%mir2.org 0791ba8d5b Changing deprecated EcmaError.getErrorObject to return null for smaller footprint 2005-01-27 00:57:38 +00:00
igor%mir2.org bacb410d10 Fixing JavaDoc formating 2005-01-27 00:55:08 +00:00
nboyd%atg.com fef9cb9470 Seppia 2005-01-24 15:46:44 +00:00
igor%mir2.org 6d48a85ee1 Reverting Ref to the original implementation which did not pass an additional
"Scriptable target" argument to Ref.(get|set|has|delete) methods. The idea was
to optimize away in many cases creation of Ref instances, but given that modern
JVM can GC short-lived objects efficiently it does not sound right to have code
complexity now in the hope of slightly more efficient implementation later.
2005-01-22 20:26:08 +00:00
igor%mir2.org f73e4917d6 Removal of GETVAR SETVAR -> NAME SETNAME transformations during code generation
for functions with activation records  as NodeTransformer never introduce VAR
node if activation would be created.
2005-01-22 00:06:00 +00:00
igor%mir2.org 0bb1b838fc 1. Removal of passing of unused scope argument to ScriptRuntime.in|instanceOf
2. Compacting interpreter loop via reusing common parts for binary operations.
2005-01-21 18:03:41 +00:00
igor%mir2.org 22e3a1efca Removal of passing unused scope argument to ScriptRuntime.in|instanceOf 2005-01-21 18:02:11 +00:00
igor%mir2.org 1cd55fde7f Removal of invoker optimization as under JDK >= 1.4 it does not make things
visibly faster and under GCJ it makes thinks worse.
2005-01-20 19:45:27 +00:00
nboyd%atg.com df0b403f21 adding xmoon 2005-01-20 18:30:29 +00:00
igor%mir2.org 22cf07ef28 Work on bug 264637: BaseFunction.functionName is removed as was suggested by Attila Szegedi <szegedia@freemail.hu> :
I assume "functionName" in BaseFunction could also undergo a similar treatment
of being replaced with an abstract getFunctionName() method, couldn't it? The
function name is either calculable from other data (FieldAndMethods, overloaded
case of NativeJavaMethod*, NativeJavaConstructor, InterpetedFunction) or fixed
(NativeRegExpCtor) in lots of subclasses.
2005-01-17 13:06:34 +00:00
igor%mir2.org 45600b4578 Fixing bug 277537: implementing isXMLName() 2005-01-14 14:13:56 +00:00
nboyd%atg.com 7aaca38a0f Add Lombardi 2005-01-14 13:34:29 +00:00
igor%mir2.org 65bd8f3f3c Fixing bug 277935: now parser throws syntax error on assignments to descendants like x..y = 1 2005-01-12 14:21:06 +00:00
igor%mir2.org 571c08aac0 JavaDoc fix: refer to WrapFactory, not already removed WrapHandler 2005-01-11 10:50:36 +00:00
igor%mir2.org d4f9f16668 Less bloated implementation of Kit.semicolonSplit 2005-01-10 01:26:36 +00:00
igor%mir2.org 8f38ec0317 Fix from Dave Russo <d-russo@ti.com>:
While investigating how Rhino loads Java packages I came across what
appears to be a "typo" bug in NativeJavaTopPackage.java; a missing
semicolon in a string results in minor performance degradation for
script accessing the java.lang.reflect and java.lang.io packages.
2005-01-10 01:25:26 +00:00
igor%mir2.org ed3d0aff1f Removal of deprecated features including WrapHandler 2004-12-31 01:27:00 +00:00
igor%mir2.org aa7d93f4cc Deprecated classes that are kept only for compatiblity is moved to a separated source tree to simplify their removal if necessary from compilation scope 2004-12-31 00:02:46 +00:00
igor%mir2.org 270b06a2c3 Fixing JavaDoc for @deprecated methods to make documentation to look less ugly 2004-12-31 00:00:44 +00:00
igor%mir2.org 33fb68f581 Context.toType is deprecated in favor of Context.jsToJava which throws EvaluatorException, not IllegalArgumentException.
In this way when native code implementing host objects calls Context.jsToJava the exception can be caught in JS and processed in in the same way as exceptions resulting from bad calls to LiveConnect Java objects.
2004-12-30 15:28:29 +00:00
igor%mir2.org 79d72c45df Added info on seal() 2004-12-14 14:52:40 +00:00
nboyd%atg.com f1c0b03cde Add HttpUnit and HtmlUnit 2004-12-10 01:52:18 +00:00
nboyd%atg.com 05d23643bb remove stale link 2004-12-10 01:35:05 +00:00
nboyd%atg.com 1ba0d7e788 Conform to style guide 2004-12-08 03:45:55 +00:00
igor%mir2.org fa9d55e2a1 Patch from Daniel Gredler <danigredler@charter.net> to address bug 271401 :
JS prototypes for superclasses with ScriptableObject.defineClass
2004-12-07 00:10:31 +00:00
igor%mir2.org d38fbd087e Link to changes.html 2004-12-01 00:07:07 +00:00
igor%mir2.org 8e8f1205cf Added release date information 2004-11-30 23:23:17 +00:00
nboyd%atg.com cee22090c3 Version is 1.6R1 2004-11-29 14:30:28 +00:00
igor%mir2.org a3ee5d5129 *** empty log message *** 2004-11-29 13:07:27 +00:00
igor%mir2.org 0054cfa5c7 Fixing bug 271545: XML() should bahave exactly as XML("") 2004-11-24 23:16:38 +00:00
igor%mir2.org 471522f868 I added DebuggableScript to javadoc list and fixed javadoc warnings about its documentation comments. 2004-11-24 10:38:40 +00:00
igor%mir2.org 46983f0e49 I added debug API to get names of parameters or variables from DebuggableScript. 2004-11-24 10:03:14 +00:00
igor%mir2.org c3f6f8811c Removal of serialVersionUID which was not used correctly:
Rhino never claimed to support binary compatibility in the serialized objects and it is better to use the system generated ids always to catch errors about incompatible changes ASAP.
2004-11-22 13:23:03 +00:00
igor%mir2.org aa233e680f Preparations for Rhino 1.6R1 release 2004-11-19 13:27:45 +00:00
igor%mir2.org 7bbde08ea4 *** empty log message *** 2004-11-19 13:01:16 +00:00
igor%mir2.org c810732922 Renaming DebugGui into SwingGui to better reflect GUI nature 2004-11-19 10:13:04 +00:00
igor%mir2.org a6285637fd Fixing nasty bug which prevented Open/Load to work in GUI among other things: the debugger should enter context using factory.call(...) and not Context.call(...) as the default factory is not the one that is used by GUI. 2004-11-19 10:12:21 +00:00
igor%mir2.org 17f78b8762 For VARARG methods wrap the result in the same way as for other methods: in this way VARARG method returning non-JS-type will get its results properly wrapped as LiveConnect object 2004-11-17 16:48:57 +00:00
igor%mir2.org d41bf7368b XML no longer implements Wrapper interface. Instead getXmlObject method
is added to access the implementation. In this way all functionality
of Java API in XmlObject is available to scripts if they need it.
2004-11-10 23:13:04 +00:00
igor%mir2.org e8651af27d Implement specially NativeJavaObject.getDefaultValue for java.lang.Boolean to match the behavior of JS Boolean object. 2004-10-31 00:15:57 +00:00
igor%mir2.org 93d3069419 Disabling invoker optimization by default: under jdk >= 1.4 and especially with 1.5 it does not bring noticeable benefits with typical usage while increasing loading time and memory consumption and introducing class loading issues. 2004-10-31 00:12:25 +00:00
igor%mir2.org 185bee0e6d Work for bug 261278: splitting STRICT_MODE into STRICT_VARS and STRICT_EVAL to allow for better compatibility in future if strictness would be exetended to other areas. 2004-10-28 14:13:05 +00:00
igor%mir2.org 50027bc3ad Fixing bug 266418: making RegExp serializable 2004-10-28 11:31:38 +00:00
igor%mir2.org 3f5b0b9d22 Minimizing memory footprint by eliminating class fields:
1. IdScriptableObject.maxInstanceId is replaced by overridden getMaxInstanceId()

2. BaseFunction.argumentsProperty is replaced by storing when necessary explicit "arguments" property in ScriptableObject hashmap.

3. NativeFunction.(argNames|argCount|version) is replaced by code that reconstruct the necessary values from embedded in class file or InterpreterData (see bug 264637)
2004-10-25 15:44:24 +00:00
igor%mir2.org 6449692d51 Preparations for Rhino 1.6R1 RC3 2004-10-22 13:34:44 +00:00
igor%mir2.org e68a272765 Directory with external jars is renamed from jarlib to lib for consistency with other projects. 2004-10-22 12:36:36 +00:00
igor%mir2.org bb9a8bf35e Fixing smalljar target implementation to include all the necessary classes and updating documentation about its usage. 2004-10-22 07:49:15 +00:00
igor%mir2.org 7e0e605b99 Compatibility with Rhino+Continuation fork: in ScriptableObject.callMethod always use object as scope source even if the scope from function does not belong to its prototype chain. 2004-10-21 17:55:14 +00:00
igor%mir2.org bf7c485bb4 Patch from Attila Szegedi <szegedia@freemail.hu> to adress bug 264637 :
Reducing InterpretedFunction footprint
2004-10-17 14:18:19 +00:00
igor%mir2.org c67a443fc9 Fixing bug 263978: for compatibility with BSF usage IllegalArgumentException is not thrown on negative line numbers. 2004-10-16 00:37:05 +00:00
igor%mir2.org ab9a876cd8 For compatibility wrap numbers always as Double instances. 2004-10-15 20:41:01 +00:00
igor%mir2.org 3bf7dc7d59 Fixing initialization bug: Continuation.initImplementation() can be called with null arg! 2004-10-15 20:38:21 +00:00
igor%mir2.org f61aa46b59 Compatibility with Rhino+Continuations fork: Continuation class is moved to continuations package. 2004-10-15 20:33:45 +00:00
igor%mir2.org 96afa61ad3 Compatiblility with Rhno+Continuations fork: added Main.setSize(Dimension) 2004-10-15 20:06:22 +00:00
igor%mir2.org e95400f9d9 For compatibility with Rhino+Continuations fork Continuation is made public 2004-10-15 19:59:55 +00:00
igor%mir2.org d1e5635847 Compatibility change: allow to use Context.enter/exit when thread already has associated Context with factory. 2004-10-15 18:34:24 +00:00
igor%mir2.org 014c2a7140 New public API Context.getDebuggableView to extract DebuggableScript implementation. 2004-10-15 18:27:38 +00:00
igor%mir2.org 5047c343d5 Compatibility with Cocoon and its usage of Rhino debugger. 2004-10-14 09:15:19 +00:00
igor%mir2.org 90de2b091f Added GeneratedClassLoader 2004-10-14 07:34:54 +00:00
igor%mir2.org effa03602d Changing (XML|XMLList).(propertyIsEnumeratable|attribute|child) to confirm to the published ECMA 357 specification. 2004-10-14 07:34:13 +00:00
igor%mir2.org 79994fc900 I added ContextFactory.createClassLoader that is called from Context.createClassLoader to remove the need to subclass Context if a custom ClassLoader is required. 2004-10-14 07:31:00 +00:00
igor%mir2.org bf18aea97b Fixing https://bugzilla.mozilla.org/show_bug.cgi?id=258844#c25 2004-10-12 13:58:52 +00:00
igor%mir2.org 648f936a6c Removal of autowrapping of XmlObject as XML as it prevents to use full API of XmlObject in JS. Use XML(jsWrapOfXmObject) to get XML corresponding to XmlObject. 2004-10-10 22:54:01 +00:00
igor%mir2.org c5134974b1 Better information about continuation support 2004-10-10 22:51:10 +00:00
igor%mir2.org 6ecac9b8be Work on bug 258844: Continuation by default 2004-10-09 22:07:04 +00:00
igor%mir2.org bf3840028d Implementing Wrapper interface in XML to unwrap to XmlObject and back 2004-10-08 21:04:41 +00:00
igor%mir2.org 4acd4d04e2 Changing the license to NPL/GPL duo for consistency with the rest of the sources:
-------- Original Message --------
Subject: RE: www.mozilla.org/rhino: NPL license Messages_fr.properties?
Date: Fri, 8 Oct 2004 13:52:39 -0400
From: Aresteanu, Eugene <eugenea@avivasolutions.com>
To: 'Igor Bukanov' <igor@fastmail.fm>

	Hi Igor,
	Yes, I agree,
	Eugene Aresteanu


Do you agree to change the license as expressed in the license header
for the file:

mozilla/js/rhino/src/org/mozilla/javascript/resources/Messages_fr.properties

located at cvs.mozilla.org:/cvsroot to the following text:

#
# French JavaScript messages file.
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (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.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Aviva Inc. code, released March 5, 2004.
#
# The Initial Developer of the Original Code is Aviva Inc.
# Portions created by Aviva Inc. are Copyright (C) 2004 Aviva Inc.
# All Rights Reserved.
#
# Contributor(s):
# Eugene Aresteanu
#
# Alternatively, the contents of this file may be used under the
# terms of the GNU Public License (the "GPL"), in which case the
# provisions of the GPL are applicable instead of those above.
# If you wish to allow use of your version of this file only
# under the terms of the GPL and not to allow others to use your
# version of this file under the NPL, indicate your decision by
# deleting the provisions above and replace them with the notice
# and other provisions required by the GPL.  If you do not delete
# the provisions above, a recipient may use your version of this
# file under either the NPL or the GPL.


The change shall apply only to CVS HEAD version of the file.
2004-10-08 21:02:47 +00:00
igor%mir2.org c5c5ad4255 License change to NPL 1.1/GPL duo for consistency with the rest of Rhino:
-------- Original Message --------
Subject: Re: www.mozilla.org/rhino: Changing the license for Delegator
Date: Fri, 08 Oct 2004 16:08:01 +0100
From: Matthias Radestock <matthias@sorted.org>
To: Igor Bukanov <igor@fastmail.fm>
References: <41668055.2050404@fastmail.fm> <4166830A.3010900@sorted.org> <4166AD80.6070806@fastmail.fm>

Igor Bukanov wrote:

> Thanks, I would like to change the license header from the current:
>
> /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset:
> 4 -*-
>  * The contents of this file are subject to the Mozilla Public License
>  * Version 1.1 (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.mozilla.org/MPL/
>  *
>  * Software distributed under the License is distributed on an "AS IS"
>  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
>  * License for the specific language governing rights and limitations
>  * under the License.
>  *
>  * The Original Code is Delegator.java, released Sep 27, 2000.
>  *
>  * The Initial Developer of the Original Code is Matthias Radestock.
>  * <matthias@sorted.org>. Portions created by Matthias Radestock are
>  * Copyright (C) 2000 Matthias Radestock. All Rights Reserved.
>  *
>  * Contributor(s):
>  *      Redfig Ltd (http://www.redfig.com)
>  *      LShift Ltd (http://www.lshift.net)
>  *
>  * Alternatively, the contents of this file may be used under the terms
>  * of the GNU Public License (the  "GPL License"), in which case the
>  * provisions of the GPL License are applicable instead of those
>  * above.  If you wish to allow use of your version of this file only
>  * under the terms of the GPL License and not to allow others to use
>  * your version of this file under the MPL, indicate your decision by
>  * deleting  the provisions above and replace  them with the notice and
>  * other provisions required by the GPL License.  If you do not delete
>  * the provisions above, a recipient may use your version of this file
>  * under either the MPL or the GPL License.
>  */
>
>
> to the following one:
>
>
> /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset:
> 4 -*-
>  *
>  * The contents of this file are subject to the Netscape Public
>  * License Version 1.1 (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.mozilla.org/NPL/
>  *
>  * Software distributed under the License is distributed on an "AS
>  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
>  * implied. See the License for the specific language governing
>  * rights and limitations under the License.
>  *
>  * The Original Code is Delegator.java, released Sep 27, 2000.
>  *
>  * The Initial Developer of the Original Code is Matthias Radestock.
>  * <matthias@sorted.org>. Portions created by Matthias Radestock are
>  * Copyright (C) 2000 Matthias Radestock. All Rights Reserved.
>  *
>  * Contributor(s):
>  *
>  * Matthias Radestock, Redfig Ltd (http://www.redfig.com)
>  * Matthias Radestock, LShift Ltd (http://www.lshift.net)
>  *
>  * Alternatively, the contents of this file may be used under the
>  * terms of the GNU Public License (the "GPL"), in which case the
>  * provisions of the GPL are applicable instead of those above.
>  * If you wish to allow use of your version of this file only
>  * under the terms of the GPL and not to allow others to use your
>  * version of this file under the NPL, indicate your decision by
>  * deleting the provisions above and replace them with the notice
>  * and other provisions required by the GPL.  If you do not delete
>  * the provisions above, a recipient may use your version of this
>  * file under either the NPL or the GPL.
>  */
>
>
>
> Note that the new version replaces:
>
>  * Contributor(s):
>  *      Redfig Ltd (http://www.redfig.com)
>  *      LShift Ltd (http://www.lshift.net)
>
> by the following text:
>
>  * Contributor(s):
>  *
>  * Matthias Radestock, Redfig Ltd (http://www.redfig.com)
>  * Matthias Radestock, LShift Ltd (http://www.lshift.net)
>
> since Contributors section should contain at lease the name of the
> person contributing.
>
> If it is Ok, then I need your authorisation to perform such license
> change for the following files:
>
> mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java
> mozilla/js/rhino/src/org/mozilla/javascript/.java
>
> located at the CVS repository at cvs.mozilla.org:/cvsroot
>
> The license change shall apply only to the CVS HEAD version of the files.
>

Igor,

that's all fine. Go ahead and make the changes.


Matthias.
2004-10-08 15:20:04 +00:00
igor%mir2.org e35e735319 Yet another reference reorganization:
References now are represented by the pairs (ref, ref_target) where ref is Ref (former Reference) instance and ref_target is Scriptable to apply the reference for.

To return the pair from Reference creation function Context.scratchRefTarget is used to store the target part.

This change allowed to extend XMLName from Ref eliminating the need for XMLReference.
2004-10-03 23:55:04 +00:00
igor%mir2.org f3ddfa7ac6 Fixing bug 262687: patch from Kurt Huwig, bugzilla@huwig.de , to make the source compatible with JDK 1.5. 2004-10-03 11:23:07 +00:00
igor%mir2.org 66523d9651 Better error reporting for undefined access:
I changes just added toObject(Contetx cx, Object obj) to
toObjectOrNull(Contetx cx, Object obj) which returns null when obj is undefined
or null. It forces the caller to check to the return status but then much
better error report can be generated since the caller knows the operation that was called upon the undefined or null value.
2004-10-02 22:14:02 +00:00
igor%mir2.org 79222f002b Removal of scope argument of runtime functions to access|modify object members. The only reason for the argument was the need to call toObject to convert target object to Scriptable, but since now there is topCallScope available, that one can always be used instead. 2004-10-02 09:45:44 +00:00
igor%mir2.org 5cec178ab1 Change ScriptRuntime.get(Elem|Prop)FunctionAndThis to treat XML objects specially to follow ECMA 357, 11.2.2.1, CalMethod. This is done to minimize the overhead of method calls as otherwise someXmlObject.method() would first construct XMLList and apply () to it later.
To implement the function call redirection functionality XMLObject.getExtraMethodSource is added() to return an additional object to use as method source.
2004-10-01 22:07:12 +00:00
igor%mir2.org 51da0ce769 RUnit Software AS as the single owner of copyrights for the following list of files present in Mozilla CVS as of 2004-10-01 15:10 UTC changes the license of the files to NPL/GPL. This is done for consistency with the rest of the source code in Rhino.
List of the affected files:

mozilla/js/rhino/src/org/mozilla/javascript/Callable.java
mozilla/js/rhino/src/org/mozilla/javascript/ClassCache.java
mozilla/js/rhino/src/org/mozilla/javascript/CompilerEnvirons.java
mozilla/js/rhino/src/org/mozilla/javascript/ContextAction.java
mozilla/js/rhino/src/org/mozilla/javascript/ContextFactory.java
mozilla/js/rhino/src/org/mozilla/javascript/Kit.java
mozilla/js/rhino/src/org/mozilla/javascript/Reference.java
mozilla/js/rhino/src/org/mozilla/javascript/SpecialRef.java
mozilla/js/rhino/toolsrc/org/mozilla/javascript/tools/debugger/GuiCallback.java
mozilla/js/rhino/toolsrc/org/mozilla/javascript/tools/debugger/test.js
mozilla/js/rhino/xmlimplsrc/org/mozilla/javascript/xmlimpl/XMLReference.java

Please contact igor@runitsoft.com if you have any questions about this.
2004-10-01 15:11:01 +00:00
igor%mir2.org 397acb96aa Fixing bug 262447: bad implementation of trying-hard-to-avoid-map-allocation idea in ScriptableObject.getPropertyIds 2004-10-01 14:59:45 +00:00
igor%mir2.org a8119cb66f More Reference clenups: Reference.delete now returns boolean to follow JS semantic clother and Reference implementation for __proto__|__parent__ is moved to a separated file SpecialRef. 2004-10-01 13:32:14 +00:00
igor%mir2.org f269e33742 Replacing calls to XMLLib to construct special name objects to represent qulified names, attributes and descendants by calls to object to get Reference based on name type. It allowed to implement proper namespace resolution in qulified name without forcing activation creation and simplified code.
In addition XMLName is no longer leaked to interpretation stack which would allow to remove unnecessary casts to XMLName in future.
2004-09-30 22:52:40 +00:00
igor%mir2.org ee94cb397f 1. Reference cleanup:
Signatures in Reference are changed to include Context and reference-related methods in ScriptRuntime accept/return explicit Reference type instead of generic Object as code generation ensure proper type.

2. x..y use explicit reference instead of special descendants mark XMLName:

In this way less code is necessary to support x..y operations and support for .. in non-xml objects is possible.
2004-09-29 20:58:16 +00:00
igor%mir2.org 615bf892fa Transform name access to var access only if function does not require activation: previously the tests missed the check for .() that caused activation to be created. 2004-09-29 20:49:05 +00:00
igor%mir2.org 66e6a7cba1 Define var and arguments as PERMANENT properties as required by ECMA. 2004-09-29 19:04:47 +00:00
igor%mir2.org 2194596ed9 1. I fixed a recent regression that caused "arguments" array to be constructed before initialization of standard objects: Global.init() should be called in procesFiles as well.
2. I replaced a couple of anonymous classes implementing ContextAction by Use single IProxy class to shrink compiled code size.
2004-09-29 05:41:00 +00:00
igor%mir2.org 67b7bc3bee Store optimization level and language version in ShellContextFactory
so all Context instances created on other threads or from JavaAdapter
calls would have proper setup.
2004-09-28 21:58:01 +00:00
igor%mir2.org 0bc442b668 1. Pass Context argument to XMLReference creation method to use it later
to check for strict mode.

2. Fix name lokup bug in XMLReference that caused in cases like
   foo.(@bar == 'something') to throw runtime exception if bar attribute
   does not exist in foo.
2004-09-28 21:56:33 +00:00
igor%mir2.org ceb8cb57de I added methods to check for valid version and optimization levels that
Rhino embeddings can use to check the validity of data.
2004-09-28 21:52:19 +00:00
igor%mir2.org d090717b2b NotAFuctionException is not deprecated for now 2004-09-28 07:20:27 +00:00
igor%mir2.org 2188afde23 *** empty log message *** 2004-09-27 23:24:27 +00:00
igor%mir2.org 54e375ccfa Use Context.emptyArgs, not null to denote null-arity method call for consistency. 2004-09-27 20:48:44 +00:00
igor%mir2.org e9f5a80866 In ScriptableObject.callMethod use object itself as possible top scope source for to support of dynamic scoping. 2004-09-27 12:08:24 +00:00
igor%mir2.org 3f4e79f70a Removal of OptLocalVariable: the class is replaced by varRegisters array in Codegen and numberVarFlags in OptFunctionNode. The later is initilized only when optimizer deduces that there are variables used in pure number context. 2004-09-27 12:04:52 +00:00
igor%mir2.org 5e4ccba507 Replace explicit parse tree walk to associate OptLocalVariable with tree nodes by lazy initialization of the association on first OptLocalVariable access. It shrinks code while making optimization to run slightly faster. 2004-09-27 09:33:50 +00:00
igor%mir2.org 0752f9de23 Updating links to xmlbeans home and refer to xbean.jar, not xmlbeans.jar in the documentation. 2004-09-26 22:35:29 +00:00
igor%mir2.org 25e3698cb0 I added ScriptRuntime.setObjectProtoAndParent to initialize prototype and parent of objects created outside the standard constructor calls. It allowed to replace scattered setPrototype/setParentScope and shrink code size. 2004-09-26 14:36:01 +00:00
igor%mir2.org 5ec731db71 Avoid duplicated getMessage* code in ScriptRuntime and Context: now all the necessary code is moved to ScriptRuntime and the rest of code is updated to call ScriptRuntime 2004-09-25 18:11:44 +00:00
igor%mir2.org 23fb7c786a Better compatibility of continuation implementation with the version from cocoondev.org: use current top call scope as scope for Continuation, not library scope. 2004-09-25 10:34:05 +00:00
igor%mir2.org f28bf33502 For compatibility allow jsFunction_* to return non-scriptable type. Not to
perform type conversion checks for methods that do return proper JS type the
type check is done only once in the constructor and if necessary a flag is set
to call WrapFaactory.wrap on method return.
2004-09-25 09:24:43 +00:00
igor%mir2.org eaaeceda06 Allow to specify explicit ContextFactory with the debugger. 2004-09-24 20:35:42 +00:00
igor%mir2.org 68fea6f3ba Make sure that all functionality that Main.(main|mainEmbedded) use to initialize debug GUI is available for applications through public methods. 2004-09-24 16:46:50 +00:00
igor%mir2.org 2909ccd349 More compatibility changes: added Main.isVisible 2004-09-24 16:38:09 +00:00
igor%mir2.org 4826534799 Move getObjectIndex/setObjectIndex that take double as index from optimizer/OptRuntime to ScriptRuntime and use it in the Interpreter to avoid code duplication. 2004-09-24 16:27:27 +00:00
igor%mir2.org 22b9a2c4b9 Revert wrong commit of build.properties with temporary changes 2004-09-24 16:19:26 +00:00
igor%mir2.org d923a13d08 Added few methods to redirect calls from main to DebugGui for compatibility. 2004-09-24 16:14:02 +00:00
igor%mir2.org 1a58a86e75 Use single function, Kit.xDigitToInt, to convert character representing hex digit to number. The function replaces duplicated code in TokenStream/NativeGlobal/NativeRegExp. 2004-09-24 13:14:01 +00:00
igor%mir2.org 7844c6fc6e Code reorganisation to shrink the size of JVM class files. 2004-09-24 13:11:02 +00:00
igor%mir2.org 2a5a17ab3f Resolving bug 261278: strict mode implementation 2004-09-23 21:34:22 +00:00
igor%mir2.org 98090314ea Preparations for RC2 for 1.6R1 2004-09-22 10:59:39 +00:00
igor%mir2.org f9259f1b6e Added some information about experimental support for continuations 2004-09-22 10:43:52 +00:00
igor%mir2.org 11211a4aa5 1. Extend index and offset jump limits to 2^16 - 1 from 2^15 - 1 using unsigned indexes.
2. Use linked list of read-only REPogState to implement state stack instead of array of struct. It fixes bug 258417 while making creation of back track stack data much cheaper since there is no need to copy read-only structures.
2004-09-22 09:48:17 +00:00
igor%mir2.org 268f61bc87 In NativeRegExp.executeREBytecode I moved code to manipulate regexp program
stack to separated pushProgStack|popProgStack methods to localize changes to
for the following patch to use linked list for state stack.
2004-09-21 18:38:46 +00:00
igor%mir2.org bbc8aa638c I merged REMatchState into REGlobalData and replaced all REMatchState usages as function return type by boolean. It simplified matching code while reducing code bloat. 2004-09-21 15:00:43 +00:00
igor%mir2.org e4c677e919 1. Use direct reference to backTraceStack top to save/restore backTraceStack reference when matching REOP_ASSERT/REOP_ASSERT_NOT
2. Coalesce duplicated code in NativeRegExp.executeREBytecode
2004-09-20 22:44:51 +00:00
igor%mir2.org a1dd5464b5 Resolving bug 258844: implementation of continuation support for Rhino interpret
er inspired by Christopher Oliver work for custom Rhino version for cocoon.apach
e.org.
2004-09-16 19:04:34 +00:00
igor%mir2.org 073a538dd0 Resolving bug 258844: implementation of continuation support for Rhino interpreter inspired by Christopher Oliver work for custom Rhino version for cocoon.apache.org. 2004-09-16 18:27:42 +00:00
igor%mir2.org c7e4b65890 Replacing back track array in RegExp matching code by linked list to address bug 258419. 2004-09-16 17:30:01 +00:00
igor%mir2.org 79f7b70309 1. Using explicit ShellContextFactory in shell to avoid interference from changes in global ContextFactory.
2. Initializing global scope before the first execution to allow to customize ShellContextFactory before calls to Context.initStandardObjects()
2004-09-15 16:00:30 +00:00
igor%mir2.org 70d97db80b 1. Call contextData.pushFrame(this) from StackFrame.onEnter and not from StackFrame.constructor to allow multiple invocations of enter/exit per single debug frame. The continuation support will use it.
2. Expand tabs
2004-09-15 14:59:36 +00:00
igor%mir2.org 5467110c68 1. Ignoring recursive invocation of Dim.interrupted on event thread: when Gui
processes breakpoint hit and another breakpoint is met during event processing,
then on Linux recursive invocations of EventQueue.getNextEvent()/dispatchEvent
lead to eventual GUI deadlock. It is easy to observe when the break on function
enter is enabled and a JS function is called that is attached to an action
handler of some button. With recursive bahaviour repeated clicks lead to deeper
and deeper invocation of EventQueue.getNextEvent() and GUI deadlock on Linux.

So to improve debugger stubility I modify Dim.interrupted to ignore calls from
event thread when another invocation of Dim.interrupted already waits for GUI
result.

2. To decrease class and jar bloat I merges various implementations of Runnable
and and other interfaces to single class with switch dispatch. It saved about
6K from js.jar.
2004-09-15 14:45:10 +00:00
igor%mir2.org b21add5b8a 1. Using UniqueTag.DOUBLE_MARK in interpreter instaed of Object instance to mark double values on stack for better debug printouts.
2. In parse tree use Node instances, not Node.Target to denote target nodes as later just leads to code bloat without safty benefits.
2004-09-15 13:51:19 +00:00
igor%mir2.org e66d5ecab5 Added UniqueTag.DOUBLE_MARK for better debug printouts in interpreter and potential support for serialization of Interpreter.CallFrame. 2004-09-15 13:42:26 +00:00
igor%mir2.org 62e48063e9 1. Marking NativeCall.parentActivationCall transient so serialization would not see it.
2. Removal of never used NativeCall.thisObj field and code to initialize it.

3. Renaming NativeCall.funObj to NativeCall.function for better readability.
2004-09-14 14:59:21 +00:00
igor%mir2.org 35acfd58fc 1. Allow to monitor from application top script or function calls: now they go through ContextFactory.doTopCall which can be overridden.
2. Context.observeInstructionCount now calls ContxtFactory.observeInstructionCount so it can overridden without extra Context class.
2004-09-13 13:19:17 +00:00
igor%mir2.org 174afde970 My take on the patch from Attila Szegedi <szegedia@freemail.hu> to resolve 258959. 2004-09-12 16:41:04 +00:00
igor%mir2.org a4aeaa0d97 Patch from Attila Szegedi <szegedia@freemail.hu> to fix bug 258958 2004-09-12 16:39:39 +00:00
igor%mir2.org 2e956756ac Added ContextFactory.hasExplicitGlobal to verify if ContextFactory.initGlobal was already called. 2004-09-12 16:37:59 +00:00
igor%mir2.org 65815ce3ec Few changes from continuation patch in bug 258844 that are useful on its own:
1. Fix to pass to debugger wrapped frame.resultDbl if frame.result is DBL_MARK
2. Change Interpreter.interpret to return the properly wrapped result instead of the final frame.
3. Use Object for throwable variable in Interpreter.interpret to avoid multiple casts to Throwable
2004-09-12 13:05:34 +00:00
igor%mir2.org c7e4e1bb41 Fixing recent bad typo in exception handler search that caused to ignore finally handlers and check only catch blocks with finally-only exceptions. 2004-09-12 00:36:46 +00:00
igor%mir2.org d781a0b468 Consistently use ScriptRuntime.(wrapNumber|wrapBoolean) to wrap Java double and boolean values to the corresponding JS primitive types. 2004-09-10 19:54:43 +00:00
igor%mir2.org 675eab9782 1. Replacing IdScriptableObject.wrap_* methods by their ScriptRuntime.wrap* counterparts since the wrap methods are useful not only for subclasses of IdScriptableObject.
2. Reorganizing execIdCall in few classes inherited from IdScriptableObject to shrink code size.
2004-09-10 18:02:06 +00:00
igor%mir2.org f274203998 Removal of unnecessary cast to (String) during getter/setter enumeration. 2004-09-10 17:56:13 +00:00
igor%mir2.org 2e9f2ce29e Removal of package-private setter methods in FunctionNode in favor of package-private (not private) fields: that just was just adding unnecessary code bloat. 2004-09-10 17:54:13 +00:00
igor%mir2.org 16ae7ea84b More work for bug 244492: I deprecated ClassDefinitionException modified
ScriptableObject to use EvaluatorException instead.

For greater compatibility I also changed ClassDefinitionException to extend
from RuntimeException, not Exception so compilers would not complain about
"catch (ClassDefinitionException ex)" when no ClassDefinitionException is present in the called code.
2004-09-10 17:50:05 +00:00
igor%mir2.org 8bbc783f57 XMLLib.escapeXMLAttribute is required to add " arround the text to simplify code generation. 2004-09-10 17:40:59 +00:00
igor%mir2.org 00751b6a4f 1. Fixing a race in implementation of date.prototype.setYear where NativeDate.date was updated several times with temporary values.
2. Reorganizing NativeDate.execIdCall to shrink code size
2004-09-10 17:36:49 +00:00
igor%mir2.org 6ed2763e79 RegExpProxy.(search|find|match) was replaced by the single action taking additional actionType argument: this is how the methods were implemented in RegExpImpl in any case and talking to implementation directly saved code. 2004-09-10 07:51:16 +00:00
igor%mir2.org a4bbd0c424 Inlining back code that were moved recently to do_call/do_new: if continuation support materializes, it would be much easier to transfer control to appropriate part of interpretation loop from the inlined code then to pass the necessary information from do_call. 2004-09-10 07:48:00 +00:00
igor%mir2.org 294417215a 1. Interpreter.interpret no longer tracks "with" statement nesting and instead use local register to save/restore scope during exception handling. It allowed to simplify exception handling and move it back to Interpreter.interpret to avoid issues with hypothetical stack overflow exceptions during exception catching.
2. local registers are cleared with null after use to allow to GC no longer used objects.
2004-09-09 17:40:48 +00:00
igor%mir2.org 73f67832ac Removal of "throws JavaSriptException" declaration:
JavaSriptException now inherits from RhinoException which inherits from RuntimeException and as such it does not necessary to declare it.

Moreover, it is wrong to use it for the documentation purpose since a  script can also throw EcmaError and WrappedException and a proper documentation would require to document those exceptions as well. But since almost all Rhino functions can potentially execute script code it means that wast majority of functions would bear the declarations, not only code overriding or calling explicitly Function.call/construct. And then the throw declarations would bring no information if it always would be "throws RhinoException". Thus it is better not to litter sources with the declarations at all.
2004-09-08 12:29:59 +00:00
igor%mir2.org 299cb56cfd Fixing bug 258144: my take on patch patch from Andrew Madigan <andymadigan@yahoo.com> to add class compiler option controlling which class will be used for main method implementation. 2004-09-07 19:11:39 +00:00
igor%mir2.org 1d4bf35781 Inline small functions used for code generation to produce intepreter or JVM bytecode for particular parser tree node: they just add to jar file size without readability benefits. 2004-09-07 09:08:31 +00:00
igor%mir2.org cb95ce90c4 Refactoring of catch code generation to address bug 258183 and bug 258207. 2004-09-06 20:05:55 +00:00
igor%mir2.org 5c514c8b22 Print exception trace inside Kit.codeBug() to have it even if the execption is shadowed by another one 2004-09-06 19:08:11 +00:00
igor%mir2.org d78af3b167 Resolving bug 255891: new approach to dynamic scoping 2004-09-01 14:17:00 +00:00
igor%mir2.org 2f5f26f2f0 Fixing bug 257425: Context.toObject now works even without Context.iniStandardLibrary 2004-08-30 14:57:25 +00:00
igor%mir2.org a75cbc9182 Fixing bug 257423: the code generation was not updated to use ScriptRuntime.getObjedctProp instead of OptRuntime.thisGet. 2004-08-30 14:48:23 +00:00
igor%mir2.org 5968f885ea Renaming Interpreter.State to Interpreter.CallFrame to better reflect class semantics 2004-08-28 19:19:30 +00:00
igor%mir2.org 22240334dc Changes to make Interpreter to recover from exceptions during execution of ScriptRuntime.getCatchObject() and during initState and do not leave runtime in inconsitent o even corrupt state. 2004-08-28 17:29:50 +00:00
igor%mir2.org 9f8d8ca495 Implementing 257128: tail call optimization 2004-08-28 00:42:38 +00:00
igor%mir2.org 5f2437939f Removal of ScriptRuntime.getThis() : it was used by nested functions or
functions declared inside with statements to ensure that their thisObj
is not with or call scope as required by ECMA-262.

But due the changes to support E4X extensions such situation can only happen
when function is accessed as expression like in

var f = function() { }
...

f()

and typically it is exactly nested the functions that are accessed in this way.
So the patch adds optimized code that always check for proper thisObj to
ScriptRuntime.getValueFunctionAndThis and removes getThis and corresponding parsing/code generation code.

In this way when nested functions are accessed  as name or property no checks are done for them and Rhino code slightly shrinks.
2004-08-27 11:37:17 +00:00
igor%mir2.org 2f35d91d67 Link to E4X example 2004-08-25 19:26:56 +00:00
igor%mir2.org 7d76b8660d Fixing bug 256865: changing ByteCode constants to int from byte so switches over them would not crash widely installed versions of GCJ like GCJ 3.3.*. 2004-08-25 17:22:02 +00:00
igor%mir2.org d8f667cdc3 Interpreter optimization: use state.resultDbl to store double result accross calls of interpreted functions to avoid creation of Double instance. 2004-08-25 15:19:22 +00:00
igor%mir2.org 8c465a784a Optimizing name access: since top scope can not be NativeWith or NativeCall, it is possible to avoid thisObj checks for name-as-function access and "with" statement and XML object checks. 2004-08-25 09:50:32 +00:00
igor%mir2.org 66ccb85667 Fixing bug 256691: forcing XML.hasSimpleContent() to return true for atributes and text. 2004-08-24 11:38:59 +00:00
igor%mir2.org d58a323423 More parser/scanner changes under the name of bug 256575 :
Do not scan regexp literals in TokenStream.getToken(). Instead parser will call explicit TokenStream.readRegExp() after it gets / or /= as primary expression. In this way there is no need to use any explicit regexp flags which rather error prone.
2004-08-24 11:23:13 +00:00
igor%mir2.org ee1fa1d931 Fixing bug 256621: throw \n 1 is not allowed per ECMA 262 2004-08-23 23:01:00 +00:00
igor%mir2.org e23cc7a3a4 Context.hasFeature now calls ContextFactory.hasFeature so application would need to override only one class for common customization. 2004-08-23 22:46:58 +00:00
igor%mir2.org f136705c18 Addressing 256575: refactoring of parser/scanner iteraction to address bugs in eol/semicolon handling 2004-08-23 19:06:45 +00:00
igor%mir2.org bb56b55288 Resolving bug 256387: XML objects got toSource implementation 2004-08-21 12:26:43 +00:00
igor%mir2.org 0e329a3dc0 Fixing bug 256389: working CompilerEnvirons.isXmlAvailable() etc. 2004-08-21 11:10:24 +00:00
igor%mir2.org a22b4d177e Added notes about addressed bug 256339 2004-08-20 23:01:28 +00:00
igor%mir2.org 0fe0aba4b1 Resolving bug 256339: interpreter does not recurse across calls to interpreted functions and scripts and instead uses explicit State object to store JS frame information. It removes the limit on maximum recursion depth in scripts. 2004-08-20 22:50:36 +00:00
igor%mir2.org f25c81b28e Fixing bug 256321: IdScriptableObject can be serialized again 2004-08-20 18:25:20 +00:00
igor%mir2.org b0945b613c Resolving bug 256318: for consistancy with XMLObject.addValues ScriptableObject.equivalentValues also uses NOT_FOUND to indicate no operation available. 2004-08-20 18:05:50 +00:00
igor%mir2.org a60c5d3cb3 Fixing bug 256317: report about invalid references during parsing, not runtime. 2004-08-20 17:43:24 +00:00
igor%mir2.org 012b5ccb2b Fixing bug 255891: just without throwing exceptions about non-js values for compatibility. 2004-08-17 18:33:38 +00:00
igor%mir2.org d585d5fc3e Removal of bogus comments about parser usage. 2004-08-17 17:23:44 +00:00
igor%mir2.org 5bcda5d735 Making most of TokenStream methods package-private: the class can not be made package-private itself as regexps implementation needs TokenStream.isJSLineTerminator(). 2004-08-17 17:18:14 +00:00
igor%mir2.org 6f828ea7c1 Moving IFGlue internal class of JavaAdapter into separated source file and renaming it to InterfaceAdapter to have more manageable code. 2004-08-16 17:14:24 +00:00
igor%mir2.org caab4e99d6 Fixing regression caused by new JavaImporter, see bug 245882. 2004-08-16 16:11:27 +00:00
igor%mir2.org b8eee9807e More E4X credits 2004-08-16 14:19:44 +00:00
igor%mir2.org 40c0449b14 Fixing regression caused by the committed patch under bug 255595 2004-08-16 09:57:15 +00:00
igor%mir2.org 9835900b2f Credits to BEA for E4X implementation. 2004-08-15 09:05:30 +00:00
igor%mir2.org 153e664477 Build modifications to make Context.getImplementationVersion() to return string defined in build property files with automatic timestamping. 2004-08-14 22:44:22 +00:00
igor%mir2.org ddaa32365c Deprecating PropertyException as a part of common exception root changes, see 244492. 2004-08-14 16:45:30 +00:00
igor%mir2.org cb08a88e11 Using Kit.initCause to wrap the original exception preventing creation of SecurityController class. 2004-08-14 16:42:33 +00:00
igor%mir2.org 43681e3c83 Documenting ClassFactory usage 2004-08-14 15:17:40 +00:00
igor%mir2.org 8bf8eabe05 Fixing compatibility issue caused by introduction of ContextFactory. See bug 255595 . 2004-08-14 15:12:38 +00:00
igor%mir2.org b9c1cdf776 Fixing JavaDoc 2004-08-14 15:08:32 +00:00
igor%mir2.org f0b2a92e18 Changing Kit.initCause to take and return RuntimeException: this is how it is supposed to be used, that is wrap checkable exceptions into uncheckable RuntimeExceptions. 2004-08-14 15:07:50 +00:00
igor%mir2.org 682b343169 Use common API to extract value associated with top scope prototype chain
not to duplicate code
2004-08-14 13:57:39 +00:00
igor%mir2.org b198395e8d NativeScript no longer implements Script interface which was kept only f
or compatibility.
2004-08-14 10:29:09 +00:00
igor%mir2.org 961c643892 The scope argument is removed from Context.decompileScript() since
decompilation does not depends on scope.
For compatibility the old signature is preserved as a deprecated method.
2004-08-14 10:28:15 +00:00
igor%mir2.org 30d891f64a More JavaDoc comments including Context customization example 2004-08-14 09:01:26 +00:00
igor%mir2.org f51deade8e Fixing broken HTML markup in JavaDoc comments. 2004-08-14 06:44:39 +00:00
igor%mir2.org 9451768f5b Renaming Kit.initCauseOrNull into simple Kit.initCause and making it to
return the passed exception to allow usage like:

throw Kit.initCause(new RuntimeException("WRAPPED"), origException);
2004-08-13 23:45:52 +00:00
igor%mir2.org c407d06dc1 Fixing bug 255549: proper resolution of overloaded methods. 2004-08-13 19:31:32 +00:00
nboyd%atg.com 49823e0c7b Prepare release candidate for 1.6R1. 2004-08-12 02:00:09 +00:00
igor%mir2.org 412251e336 Using explicit JavaImporter constructor to make namespace for swing and using it later with the "with" statement to get access to Java classes.
In this way the example can be used in an application that does not use ImporterTopLevel.
2004-08-10 16:11:13 +00:00
igor%mir2.org f8da42c9d2 1. Separating compilation into bytecode and wrapping it into Script and Function instances both for the interpreter and class compiler. It is possible now to serialize the compiled interpreter bytecode and then wrap it in proper security context.
The change required to move security domain information form InterpreterData to its Scriptable wrappers. To simplify it and to make the interpreted functions to behave exactly as class compiled I merged InterpretedScript into InterpretedFunction which allowed to remove many casts and discrepancies when handling script and function instances.

2. Explicitly passing Interpreter instances to Context.compile... functions to avoid changing optimization level even temporarily.

3. Uniform initialization of class compiled and interpreted functions and scripts to avoid code duplication.
2004-08-10 16:06:56 +00:00
igor%mir2.org 1cb0255478 In JavaAdapter.currentFactory() do not assume that there is always active Context available and fallback to ContextFactory.getGlobal() in that case. 2004-08-10 15:52:19 +00:00
igor%mir2.org 89769e9a85 Simpler SyntxError handling:
Since changes to fix bug 254778 made the parser the sole source of syntax error reports, it removed the need to check for errors after tree transformation.

The patch removes those checks and moves all reporting about syntax errors into omj/Parser.java.
2004-08-09 18:04:18 +00:00
igor%mir2.org d0628043b9 Fixing bug 254915: proper name lookup etc. 2004-08-09 16:57:06 +00:00
igor%mir2.org caf00e67ee Top call scope tracking changes:
Since E4X implementation needs to know the activation scope for tracking of default namespaces, previously an elaborated schema was added to set/restore the activation scope which relied on the fact that scrip and function with activation record should always call special entry/exit functions.

But that does not work for functions without activation records since they never call any special entry/exit pairs. So if application call such function directly, the function would not store its top scope anywhere and the E4X subsystem would not be able to get E4X library object.

The patch fixes with introduction of 2 functions, hasTopCall and doTopCall to ScriptRuntime and adding the following code prefix to each implementation of Callable.call that can start execution of script code:

    public Object call(Context cx, Scriptable scope,
                       Scriptable thisObj, Object[] args)
        throws JavaScriptException
    {
// Prefix start
        if (!ScriptRuntime.hasTopCall(cx)) {
            return ScriptRuntime.doTopCall(this, cx, scope, thisObj, args);
        }
// Prefix end
        ...

In this way there is always registered top scope during script execution and the previous elaborated schema became unnecessary so I reverted that part to almost pre-E4x state.
2004-08-09 11:00:47 +00:00
igor%mir2.org d65a74793c Fixing bug 254778: proper treatment of labels 2004-08-08 13:45:09 +00:00
igor%mir2.org 06080a4162 More switch parsing/code generation cleanups: now IRFactory constructs the proper parsed tree for the switch statement which removed the need for tree mutations in NodeTransformer and during code generation. 2004-08-07 20:08:38 +00:00
igor%mir2.org c436b86043 Cleanup for code generation in interpreter: store itsICodeTop as instance variable to avoid clattering code with explicit passing of iCodeTop, 2004-08-07 15:42:13 +00:00
igor%mir2.org 1835a4776d Switch parsing cleanup including reporting syntax error on duplicated default label 2004-08-07 15:39:55 +00:00
igor%mir2.org 72cfb14c71 Preparations for 1.6R1 2004-08-06 16:05:40 +00:00
igor%mir2.org 473f76a50f Class-Path entry for Rhino: xmlbean.jar 2004-08-06 15:49:25 +00:00
igor%mir2.org dc693719f5 Cleanup of call code generation: now it is split into separated functions for optimized/standard function calls. 2004-08-06 15:08:38 +00:00
igor%mir2.org 3811cf183e Removal of no longer used debug name index in Token.CALL/Token.REF_CALL: ScriptRuntime.get(Elem|Prop|Name|Value)FunctionAndThis takes care about debugging themselves. 2004-08-06 15:02:48 +00:00
igor%mir2.org 09de001da9 GeneratedClassLoader is API class and should be listed in apiClasses.properties 2004-08-05 06:06:30 +00:00
igor%mir2.org 5f54cd264e Restoring ScriptRuntime.call: BSF uses it! 2004-08-04 17:42:56 +00:00
igor%mir2.org 686ca051d2 Allow to pass JS-wrapped instances of org.apache.xmlbeans.XmlCursor and org.apache.xmlbeans.XmlObject to XML constructor to make proper XML objects from them. 2004-08-04 17:32:48 +00:00
igor%mir2.org d7cab8295c Preparations for Rhino 1.6R1 RC1 2004-08-04 17:28:11 +00:00
igor%mir2.org 5c76a0f4fa 1. Recently introduced ScriptableObject.default(Prototype|ParentScope)() methods had problems with serialization and are removed now. XML code explicitly sets parent/prototype. To simplify that ScriptableObject now contains a special constructor taking scope and prototype arguments.
2. xml/XMLObject do not define lib() method and instead defines few abstract methods to create "with" proxies and perform addition.

3. XMLLib implementation is stored in the scope using ScriptableObject.associateValue() and does not depend on presence of proper XML object.
2004-08-04 12:54:03 +00:00
igor%mir2.org 552d49a5ae Preparations for 1.6R1 RC1 2004-08-03 17:13:40 +00:00
igor%mir2.org d09a0eee9c Cosmetics: untabify 2004-08-02 17:49:04 +00:00
igor%mir2.org 5a5e402b85 Added runtime support to allow custom wrapping of XML objects 2004-08-02 14:46:33 +00:00
igor%mir2.org c65e9b8450 Use ScriptRuntime.notAFunction to report bad ScriptableObject.callMethod arguments 2004-08-02 14:44:03 +00:00
igor%mir2.org 0875b1550b Explicit ScriptRuntime methods to get function and function this for all cases of method calls:
ScriptRuntime.get(Name|Prop|Elem|Value)FunctionAndThis provides uniform way to get function object and its this during function calls. It allowed to simplify handling of method calls both in interpreter and optimizer and opened a way to implement independent processing of function and property namespaces.
2004-08-01 23:21:17 +00:00
igor%mir2.org 061a717577 More compatibility renames: to simplify life for applications that use old IdScriptable/IdFunction/IdFunctionMaster I farther renamed:
IdFunction -> IdFunctionObject
IdFunctionMaster -> IdFunctionCall
2004-07-30 13:18:30 +00:00
igor%mir2.org ed22b8d5bc Compatibility rename: due to changes in IdScrittable any code that sublasses
it has to be updated. This is done for Rhino classes and since IdScriptable
is not a part of public API, it should not matter. But in reality someone can
subclass IdScriptable in application code.

To help with upgrade in such cases I renamed IdScriptable into
IdScriptableObject. In this way the application using IdScriptable code can add
old IdScriptable class to its CLASSPATH  and be able to run again without the
need to recompile/change anything in the source.
2004-07-30 10:31:00 +00:00
igor%mir2.org f8ca6bb144 The previous patch introduced regression: it is posible for slots array to be filled with slot objects and REMOVED tags. Thus getSlotPosition can loop through the whole table. This patch restores the old and proper state of affairs. 2004-07-30 07:52:30 +00:00
igor%mir2.org 88d3ceb9eb Using single ScriptRuntime.toStringIdOrIndex to convert object id to string of index key instead of multiple calls to getStringId/getIntId. 2004-07-29 22:47:05 +00:00
igor%mir2.org 457b3cac9a Calling proper ScriptRuntime.call taking scope argument instead of eprectaed old form. 2004-07-29 22:44:45 +00:00
igor%mir2.org 594bb52734 New "scratch" field for int indexes to allow to return more then one result from index parsing functions. 2004-07-29 22:42:50 +00:00
igor%mir2.org 61b4dfe136 Explicitly throw IllegalStateException to indicate code bug when hashtable scan end up in infinite loop. 2004-07-29 22:40:47 +00:00
igor%mir2.org 6c33ddde1a Adding E4X example contributed by John Schneider from AgileDelta, Inc., http://www.agiledelta.com/ . 2004-07-29 15:55:41 +00:00
igor%mir2.org 7727f9784c Fixing missed context wrapping in debugger/Dim and proper button enable/dosable in debugger/DebugGui 2004-07-29 12:51:35 +00:00
igor%mir2.org f8d44cc5d9 Fixing under allocation of ids array while enumerating properties. 2004-07-29 12:46:46 +00:00
igor%mir2.org 80101fd2cf Better error propagation from failed class loading: RuntimeError instances are rethrown while ClassNotFound, LinkageError etc. are caught. 2004-07-29 12:45:55 +00:00
igor%mir2.org 0f6d41a084 Renaming StringIdMap to Main and ipdating documentation 2004-07-29 10:44:59 +00:00
igor%mir2.org 0e32e1807e Cleanup patch from Mario Cormier <mcormier@miranda.com> to fix bug 253323:
Parser contained useless this.decompiler = decompiler assignment.
2004-07-29 08:28:42 +00:00
igor%mir2.org e9d84b06aa Committing E4X runtime implementation: see enhancement report 242805.
This is based on code contributed to Rhino by AgileDelta, Inc, www.agiledelta.com and in particular by

Ethan Hugg
Terry Lucas
Milen Nankov
John Schneider

Thanks!
2004-07-28 23:43:17 +00:00
igor%mir2.org 575e8a64ff Committing E4X parser and runtime proxies: see enhancement report 242805.
This is based on code contributed to Rhino by AgileDelta, Inc, www.agiledelta.com and in particular by

Ethan Hugg
Terry Lucas
Milen Nankov
John Schneider

Thanks!
2004-07-28 21:11:02 +00:00
igor%mir2.org 104a577692 Added ScriptableObject.equivalentValues to allow for custom equality operator support. 2004-07-28 15:23:11 +00:00
igor%mir2.org eca6887020 Added Reference.has() for future use. 2004-07-28 15:21:02 +00:00
igor%mir2.org a41b3ec13e Ignore any exception during script class initialization unless it is an instance of RhinoException. In this way lazily class loading or incompatible with the current JVMs jars will simply hide the script variables. 2004-07-28 15:20:08 +00:00
igor%mir2.org fa3b4a39aa Always call Scriptable.has(name, start) as obj.has(name, obj) since the start argument is useless in Scriptable.has and in this way it is possible to add temporary assertions to the code checking this. 2004-07-28 13:27:39 +00:00
igor%mir2.org 02ca5d7471 Redesigning IdScriptable implementation.
The new logic introduces 2 independent id namespaces, instance ids and prototype ids. Typically there are very few instance properties and instance ids corresponds exactly to them. The prototype ids allows to define functions and other constant objects that typically found in prototype objects.

The new implementation takes advantage of this difference to provide very different API to implement fast mapping both for instance and prototype ids.
2004-07-28 11:40:38 +00:00
igor%mir2.org 26e2f979e9 Introduction of defaultParentScope and defaultPrototype in ScriptableObject for lazily initialization of scope and prototype. 2004-07-28 09:52:29 +00:00
igor%mir2.org 26bde72dd8 Making ScriptRuntime.typeError* public 2004-07-28 09:51:02 +00:00
igor%mir2.org 8684cd21de Allow to subclass NativeWith 2004-07-28 09:50:07 +00:00
igor%mir2.org a9e5ef9c3b Favour same type converssions during LiveConnect for better support of java methods taking instances of Scriptable 2004-07-28 09:49:19 +00:00
igor%mir2.org a17d812303 1. Optimizing getClassPrototype and getDefaultValue in ScriptableObject.
2. Start of the changes for simpler to use IdScriptable implementation: new utility functions in IdFunction and removal of Context argument from IdScriptable.fillConstructorProperties.
2004-07-28 07:12:46 +00:00
igor%mir2.org d8725eb93f Context.getArrayElements implementation is moved to ScriptRuntime which also defined now isArrayObject 2004-07-28 07:06:35 +00:00
igor%mir2.org 0b43005efc Making next release to be 1.6 release 1 2004-07-12 14:26:30 +00:00
igor%mir2.org 6e592d434b Renaming ObjArray.setReadOnly() to ObjArray.seal() to follow the rest of Rhino code. 2004-07-09 13:28:48 +00:00