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

1308 Коммитов

Автор SHA1 Сообщение Дата
norris%netscape.com b6ec0294ae Fix release date, add contributor. 1999-10-12 16:52:13 +00:00
cbegle%netscape.com 5c331f88b6 new files.
new tests for xpconnect.  r=jband.
1999-10-12 00:12:43 +00:00
rogerl%netscape.com c3ea9c6513 NOT A PART OF SEAMONKEY BUILD
- fixed test ECMA references,
- added test to -002
1999-10-11 22:59:25 +00:00
norris%netscape.com 1f04796183 Fix bug:
Subject:
        optimizer SecurityException
   Date:
        Mon, 11 Oct 1999 17:37:51 -0400
   From:
        Andrew Wason <aw@softcom.com>
     To:
        norris@netscape.com (Norris Boyd)
    CC:
        Howard Lin <howard@softcom.com>




We use our own SecuritySupport implementation in Rhino.  This is properly
getting called by the optimizer to generate new classes (e.g.
org.mozilla.javascript.gen.c5 etc.)

However, after defining the class, Codegen.compile calls getClassLoader()
on the new class.  The default SecurityManager doesn't allow
getClassLoader() to be called and so an exception is thrown:

java.lang.RuntimeException: Malformed optimizer package
java.security.AccessControlException: access denied
(java.lang.RuntimePermission getClassLoader )
        at org.mozilla.javascript.optimizer.Codegen.compile(Codegen.java:138)
        at org.mozilla.javascript.Context.compile(Context.java:1761)
        at org.mozilla.javascript.Context.compile(Context.java:1691)
        at org.mozilla.javascript.Context.compileReader(Context.java:810)
        at org.mozilla.javascript.Context.evaluateReader(Context.java:725)
        [...]

This is kind of a pain to duplicate outside of our application, but if you
require a test case I can create one.

Codegen is attempting to call loadClass() after it uses
SecuritySupport.defineClass().  Our SecuritySupport calls loadClass()
internally in its defineClass() implementation.  This is what JavaAdapter
expects.

This is from Codegen.compile():

                         if (securitySupport == null) {
                             if (Context.isSecurityDomainRequired())
                                 throw new SecurityException("Required " +
                                             "security context missing");
                             if (classLoader == null)
                                 classLoader = new JavaScriptClassLoader();
                             clazz = classLoader.defineClass(name, classFile);
                         } else {
                             clazz = securitySupport.defineClass(name,
classFile,
                                                                 securityDom
securityDomain);
                         }
                         ClassLoader loader = clazz.getClassLoader();
                         clazz = loader.loadClass(name);


This is from JavaAdapter.createAdapterClass():


         SecuritySupport ss = cx.getSecuritySupport();
         if (ss != null)  {
             Object securityDomain = cx.getSecurityDomainForStackDepth(-1);
             return ss.defineClass(adapterName, bytes, securityDomain);
         } else {
             if (classLoader == null)
                 classLoader = new MyClassLoader();
             classLoader.defineClass(adapterName, bytes);
             return classLoader.loadClass(adapterName, true);
         }


So JavaAdapter is assuming SecuritySupport.defineClass() will call
ClassLoader.loadClass() on the new class, while Codegen is assuming it
needs to call ClassLoader.loadClass() on the class defined by
SecuritySupport.defineClass().

These should be made consistent, and in both cases it should be assumed
that SecuritySupport will both define and load the class.


Andrew
--
Andrew Wason
SoftCom, Inc.
aw@softcom.com
1999-10-11 22:48:13 +00:00
rogerl%netscape.com a3ccad0ea2 NOT A PART OF SEAMONKEY BUILD
- removed redundant test & fixed test for 'super' to detect syntax error
1999-10-11 22:38:40 +00:00
jband%netscape.com 3e98f50de6 Much of this is under the auspices of bug 15794. r=mccabe.
- map xpcshell's 'quit()' to a loop exit rather than calling
'exit(0)' so that the cleanup and leak detection code will still
get called.

- add NS_InitXPCOM and NS_ShutdownXPCOM to xpcshell to run said
cleanup and leak detection code.

- use more NS_IF_* macros

- fix numerous places where code assumed that
nsXPConnect::GetXPConnect() does not add a new ref on the
xpconnect singleton object (the behavior changed some time back
but not all the uses did - brainfade!).

- fix nsXPCException::NewException to automatically trim
'dataless' native stackframes off of the front of a stack trace.
The old system of manually telling it how many frames to trim was
not working well. We really want the first frame showing to be an
'interesting' frame so that callers who get exceptions thrown at
them will see some useful information rather than an empty native
frame that represents (but says nothing about) some native frame
in the xpconnect runtime.

- remove an extra addref from the trimming loop in
nsXPCException::NewException.

- Stop building XPCJSStack objects. XPConnect stacks are singly
linked lists of XPCJSStackFrame objects with refcounted links. I
had this stupid idea that each object would have a refcounted
link to a XPCJSStack object that would tie together the lifetimes
of all objects in the chain. This was overcomplex and
unnecessary. The linked list was enough. Any frame without a
refcount deserved to be deleted because it is simply unreachable.
There was no reason to tie together all the lifetimes of each
object in the chain. So this has been simplified in a big way.

- fixed place in xpcthrower.cpp where we were leaking a refcount
on the xpconnect singleton each time an xpcexception was thrown.

- do cleanup and gc() at the end of xpctest_echo.js to use for
leak testing - all wrappers should go away.
1999-10-09 06:01:57 +00:00
rogerl%netscape.com 3321dd12a5 Fixed 14060 - calling exec on java methods was gettmg caught by exec
trapping nonsense.
1999-10-08 22:55:33 +00:00
cbegle%netscape.com b1f067ac08 Adding new files. Tests for XPConnect. These files are not part of the
build.  R=jband@netscape.com
1999-10-08 20:45:37 +00:00
kipp%netscape.com b0dcc883f8 Cleanup moz-decl-counter usage and fix NS_LOG_ADDREF usage 1999-10-08 20:41:19 +00:00
warren%netscape.com b90a06a288 Fixed AddRef/Release problems to eliminate negative refcounts in Bloaty. 1999-10-08 01:49:06 +00:00
jband%netscape.com 75f95fe0e6 fix warning of old style C++ variable scope declared in 'for'. bug 15778. r=slamm 1999-10-08 00:11:05 +00:00
rogerl%netscape.com 191067ee70 Fixed build failures - these files are NOT part of the seamonkey build. 1999-10-07 20:45:27 +00:00
rogerl%netscape.com 6819bebd25 Fixed error reporting to not smack the source line with a zero, but use
copyN instead - things were failing when very last line of input had an
error and didn't end with '\n'. r=mccabe
1999-10-07 20:44:40 +00:00
rogerl%netscape.com 3be66eaa68 Fixed build warnings by removing macros with '{..}'.
Made str_escape available for jsfile.
r=mccabe
1999-10-07 20:42:20 +00:00
rogerl%netscape.com bc37560023 Making str_escape available for jsfile use. r=mccabe. 1999-10-07 20:41:15 +00:00
rogerl%netscape.com f1902c3e90 Bug #12168. Catch new Array(NaN). r=mccabe. 1999-10-07 20:40:17 +00:00
norris%netscape.com 59ad20ea51 Fix 15711 Can't call java.lang.Class methods from JS 1999-10-07 18:27:21 +00:00
norris%netscape.com 8c12e73652 Subject:
Re: NPL vs. MPL
       Date:
            Wed, 06 Oct 1999 18:30:34 -0400
      From:
            "Ian D. Stewart" <idstewart@softhome.net>
        To:
            Norris Boyd <norris@netscape.com>
 References:
            1 , 2 , 3




Norris Boyd wrote:

  Great. So I'd like to change this copyright text

  /* -*- 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.0 (the "MozPL"); you may not use this file except in
   * compliance with the MozPL.  You may obtain a copy of the MozPL at
   * http://www.mozilla.org/NPL/
   *
   * Software distributed under the MozPL is distributed on an "AS IS"
  basis,
   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
  MozPL
   * for the specific language governing rights and limitations under the
   * MozPL.
   *
   * The Initial Developer of this code under the MozPL is Ian D. Stewart.

   * Portions created by Ian D. Stewart are Copyright (C) 1998, 1999
   * Ian D. Stewart.
   * All Rights Reserved.
   */

  to this:

  /* -*- 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 oqr
   * implied. See the License for the specific language governing
   * rights and limitations under the License.
   *
   * The Original Code is ListenerCollection, released
   * May 15, 1998.
   *
   * The Initial Developer of the Original Code is Ian D. Stewart.
   * Portions created by Ian D. Stewart are Copyright (C) 1998, 1999
   * Ian D. Stewart.
   * Rights Reserved.
   *
   * Contributor(s):
   * Ian D. Stewart
   *
   * 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.
   */

  Can you give me your approval for this change?

Make it so.


Ian
1999-10-07 16:57:01 +00:00
rogerl%netscape.com ad0ec07339 More errors-as-exceptions stuff 1999-10-06 23:55:33 +00:00
norris%netscape.com 500507c3bb More license wrangling: fix the release date (1999, not 1998). 1999-10-06 21:52:17 +00:00
jband%netscape.com 4629012b8e - the rest of the fix for bug 14738 - detect JSErrors with
JSErrorReports when thrown as exceptions. Extract JSErrorReport
and convert to an xpcexception. This restores functionality that
was whacked when JS errors-as-exceptions was enabled in the JS
engine.
- add conversion support for string-with-length as part of array
support mentioned in bug 13420. All the array stuff is basically
in with minimal testcases. More comprehensive tests need to be
written to verify and tune the code.
- fix a broken #undef
- switch to using PR_Alloc/PR_Free internally in nsjsid where we
were using new/delete before. This is prompted by warren's change
to nsID::ToString that uses PR_Alloc were before it used new.
This fixes an alloc/delete mismatch detected by Purify.
r=mccabe
1999-10-06 21:35:27 +00:00
sspitzer%netscape.com 754c0a321b fix for #15197 (and a whole bunch of duplicates).
fix by vidur, r=rogerl
1999-10-06 21:31:34 +00:00
beard%netscape.com 06350965dc added EcmaError.java, NativeError.java 1999-10-06 21:07:04 +00:00
norris%netscape.com 80580793fe Update contributors, add some license text. 1999-10-06 20:50:04 +00:00
cbegle%netscape.com 2bd0e3b5d8 tests for javascript errors as exceptions, a feature that was recently
added to the javascript engine.

not part of the build.
1999-10-06 20:45:44 +00:00
norris%netscape.com 31a6dc99ed Make sure creation of class loader is inside a try block to handle security exceptions. 1999-10-06 17:39:48 +00:00
brendan%mozilla.org 64e97e6f4c Fix Object.prototype.toSource so it parenthesizes outermost-toSource literals for eval roundtrips. 1999-10-06 09:09:31 +00:00
brendan%mozilla.org 18ed82e11a Top-level ToSource function for primitive type roundtrips. 1999-10-06 06:37:55 +00:00
brendan%mozilla.org 65be78b626 Fix two multi-threaded GC-rooting bugs:
- js_NewFunction wasn't initializing (clearing) JSFunction members before it
  linked the JSFunction to a JSObject that the GC could reach from a root.
- Make sure frame.scopeChain is cleared before linking frame via cx->fp, even
  though we set frame.scopeChain to some object later (another signal that we
  should rework js_Invoke to inline it and otherwise optimize it).
1999-10-06 06:29:43 +00:00
rogerl%netscape.com 38529d8a6c Added version 150, changed version testing in regexp 1999-10-06 00:10:27 +00:00
rogerl%netscape.com 62a34b909d Bug #14545 - get array length exceptions working with non-Number array
contructor arguments.
1999-10-05 22:11:57 +00:00
jband%netscape.com af9f78c665 the JS engine part of the fix for bug 14738. This does two things: 1) expose the JSClass for JSError so that it is possible to detect from the outside if a given JSObject is of that JSError class, and 2) expose an api call via which the JSErrorReport can be extracted from a JSError (if present). This change required renaming the JSClass used for JSError, so many lines were touched 1999-10-05 21:07:23 +00:00
rogerl%netscape.com ce191ed5b1 Errors as exceptions working from generated code. 1999-10-05 19:44:24 +00:00
kipp%netscape.com 3f773d307d r=jband; fixed a memory leak 1999-10-05 14:56:41 +00:00
mccabe%netscape.com f82c305737 Initial checkin of TestScan.java, a simple driver for generating and printing various kinds of parse trees, and for profiling scanning, parsing and compiling. 1999-10-05 03:47:04 +00:00
dmose%mozilla.org 931d55d3be update license boilerplate to NPL dual w/GPL, r=norris@netscape,a=norris@netscape.com 1999-10-05 01:42:01 +00:00
dmose%mozilla.org 068c6bb828 update license boilerplate to NPL dual w/GPL, r=norris@netscape,a=norris@netscape.com 1999-10-05 00:44:05 +00:00
rogerl%netscape.com 95a8da471d First cut at errors as exceptions - These changes should be benign since
the errors are being wrapped by runtime exceptions and still need to be
explicitly caught (this is happening in the interpreter, but not in
generated code).
1999-10-05 00:21:07 +00:00
waterson%netscape.com ce673a63e9 Bug 15367. Dump 'class' instead of 'file/line' for NS_LOG_REFCNT. r=shaver,dp 1999-10-05 00:07:54 +00:00
norris%netscape.com 312ce3abcc Fix up makefiles; previous patch was mis-applied. 1999-10-04 21:31:21 +00:00
norris%netscape.com 6c5683afd4 Fix bug found by Andrew Wason (see below).
Problem was that one transformation of a node to GETVAR wasn't protected by a check of inWithStatement().

======================================
Subject:
        multiple scopes
   Date:
        Fri, 01 Oct 1999 12:39:14 -0400
   From:
        Andrew Wason <aw@softcom.com>
     To:
        norris@netscape.com
    CC:
        Howard Lin <howard@softcom.com>




When I create two scopes, and one scope evaulates a string in the other
scope, it works.  However, if I do this while handling an exception thrown
within a JavaAdapter method, it fails with an exception.

Run the attached Java program with the two script files.  scope1.js
evaluates a string "printMessage" in the scope of scope2.js.  This returns
a function object which is then invoked.  This works in 3 cases, but fails
in the 4th (in the catch in the JavaAdapter).  Even in the 4th case where
it fails, printing the function object looks normal.

Am I doing something wrong, or is there a bug here?

java CrossScope scope1.js scope2.js

Outside of JavaAdapter
works before exception
works after exception
Inside of JavaAdapter
works before exception
Caught exception
pma=
function printMessage(msg) {
     java.lang.System.out.println(msg);
}

Exception in thread "main" org.mozilla.javascript.JavaScriptException:
org.mozilla.javascript.EvaluatorException: The undefined value has no
properties.
         at
org.mozilla.javascript.JavaScriptException.wrapException(JavaScriptException
.java:61)
         at
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java,
Compiled Code)
         at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1256)
         at org.mozilla.javascript.Interpreter.interpret(Interpreter.java,
Compiled Code)
         at
org.mozilla.javascript.InterpretedScript.call(InterpretedScript.java:49)
         at
org.mozilla.javascript.InterpretedScript.exec(InterpretedScript.java:37)
         at org.mozilla.javascript.Context.evaluateReader(Context.java:697)
         at CrossScope.<init>(CrossScope.java:30)
         at CrossScope.main(CrossScope.java:10)


Thanks,
Andrew

import java.io.*;
import org.mozilla.javascript.*;

public class CrossScope {
	private Context m_jsContext;
	private Scriptable m_scope1;
	private Scriptable m_scope2;

	public static void main(String args[]) throws Exception {
		new CrossScope(args[0], args[1]);
	}

	private CrossScope(String strFile1, String strFile2) throws Exception {
		// Associate Context with main thread
		m_jsContext = Context.enter();
                m_jsContext.setOptimizationLevel(-1);

		// Init scope1, expose Scope object
  		m_scope1 = m_jsContext.initStandardObjects(new ImporterTopLevel());
		m_scope1.put("Scope", m_scope1, this);

		// Init scope2
		m_scope2 = m_jsContext.initStandardObjects(new ImporterTopLevel());

		// Run script in scope2
		Reader r2 = new FileReader(strFile2);
		m_jsContext.evaluateReader(m_scope2, r2, strFile2, 1, null);

		// Eval input JS in scope1 - it can in turn eval JS over in scope2
		Reader r1 = new FileReader(strFile1);
		Object obj = m_jsContext.evaluateReader(m_scope1, r1, strFile1, 1, null);
		if (obj instanceof Throwable)
			((Throwable)obj).printStackTrace();

		m_jsContext.exit();
	}

	public Object scope1Eval(String str) throws JavaScriptException {
			Context cx = Context.enter(m_jsContext);
			Object objResult = cx.evaluateString(m_scope1, str, "scope1EvalString", 1, null);
			cx.exit();
			return objResult;
	}

	public Object scope2Eval(String str) throws JavaScriptException {
			Context cx = Context.enter(m_jsContext);
			Object objResult = cx.evaluateString(m_scope2, str, "scope2EvalString", 1, null);
			cx.exit();
			return objResult;
	}
}


// Scope1

importPackage(java.lang);

System.out.println("Outside of JavaAdapter");

try {
	var pm = Scope.scope2Eval("printMessage");
	pm("works before exception");
	System.arraycopy(null, 5, null, 5, 100);
} catch (e) {
	var pma = Scope.scope2Eval("printMessage");
	pma("works after exception");
}

var obj = new Runnable() {
	run: function() {
		System.out.println("Inside of JavaAdapter");
		try {
			var pm = Scope.scope2Eval("printMessage");
			pm("works before exception");
			System.arraycopy(null, 5, null, 5, 100);
		} catch (e) {
			System.out.println("Caught exception");
			var pma = Scope.scope2Eval("printMessage");
			System.out.println("pma=" + pma);
			pma("works after exception");
		}
	}
};

obj.run();



// Scope2

function printMessage(msg) {
	java.lang.System.out.println(msg);
}
1999-10-04 18:27:30 +00:00
beard%netscape.com 26ba00f59b changed from directly using "MSL ShLibRuntime.Lib" to using "NSLibraryStartup.o" to enable GC leak detector. r=smfr 1999-10-03 20:47:12 +00:00
beard%netscape.com b547c2ffb0 changed from directly using "MSL DropInRuntime.Lib" to using "NSComponentStartup.o" to enable GC leak detector. r=smfr 1999-10-03 20:46:23 +00:00
beard%netscape.com 120647c4c2 changed from directly using "MSL ShLibRuntime.Lib" to using "NSLibraryStartup.o" to enable GC leak detector. r=smfr 1999-10-03 20:23:01 +00:00
norris%netscape.com 3c14af2f14 Fix the following bugs:
14443 "Same origin" security policy may be circumvented using docu
14820 Fixing up the relationship between nsCodeBasePrincipal and n
14919 Crash in JS MM code
Reviewed by mstoltz, approved by scc.
1999-10-02 03:41:37 +00:00
norris%netscape.com 7b6b013b5a Contribution from Andrew Wason:
Subject:
        optimizer Makefiles
   Date:
        Fri, 01 Oct 1999 14:50:05 -0400
   From:
        Andrew Wason <aw@softcom.com>
     To:
        norris@netscape.com
    CC:
        Howard Lin <howard@softcom.com>




Norris,

Here are patches to the Rhino Makefiles to build the optimizer package and
the jsc compiler.  They also fix a problem with "gmake clean".

Andrew
--
Andrew Wason
SoftCom, Inc.
aw@softcom.com
1999-10-01 22:58:48 +00:00
norris%netscape.com f3b4f6e683 \t doesn't work on Windows. 1999-10-01 22:56:30 +00:00
kipp%netscape.com 188755230c Convert to a module from a component 1999-09-30 21:47:04 +00:00
kipp%netscape.com 843961c1ed Fixed shutdown related memory leaks 1999-09-30 21:12:33 +00:00
beard%netscape.com fca5f34231 fixed output directory 1999-09-29 16:11:58 +00:00
beard%netscape.com 893b5b6374 fixed source folder name 1999-09-29 16:10:25 +00:00
beard%netscape.com 413c8ef2c7 build debugger with CW Pro 4. 1999-09-29 16:07:22 +00:00
beard%netscape.com 36454ca749 builds the optimizer using CW Pro 4. 1999-09-29 15:55:29 +00:00
sfraser%netscape.com ff4d90f6a8 More type mismatch fixing for shavear 1999-09-29 03:07:27 +00:00
shaver%netscape.com a0d5aa9034 nsIRegistry scriptability update, r=dveditz,dp,alecf a=leaf,chofmann 1999-09-29 02:36:54 +00:00
dmose%mozilla.org 8370e8419f update license boilerplate to NPL-1.1 dual-licensed with the GPL. a=brendan, r=brendan. 1999-09-28 23:12:09 +00:00
norris%netscape.com ba6c2c928a Add example of classfile generation. 1999-09-27 23:21:01 +00:00
norris%netscape.com 89da8cb66c Changes for classfile generation. 1999-09-27 23:17:29 +00:00
rogerl%netscape.com 67dc9fdf6d Better error handling for interpreter. 1999-09-27 17:47:51 +00:00
rogerl%netscape.com a71f31edb6 Changes from Kurt Westerfield to improve error messages from Interpreter
by passing line/file data through bytecode.
1999-09-27 17:47:05 +00:00
rogerl%netscape.com 5a3d2224bb Stash originating source file for error reporting 1999-09-27 17:45:26 +00:00
rogerl%netscape.com 3da3ea5d84 ECMA 3 array length error handling. 1999-09-27 17:44:30 +00:00
rogerl%netscape.com 836156934b Execute exec in the global scope. 1999-09-27 17:43:40 +00:00
rogerl%netscape.com 00f4d796de New tokens to support better error messages from Interpreter. 1999-09-27 17:43:07 +00:00
rogerl%netscape.com 1ddb9fac14 Added -c <classpath> option to specify, you guessed it, a classpath. 1999-09-27 17:41:44 +00:00
shaver%netscape.com eb1c17fcbf unlock in fun_enumProperty, r,a=brendan 1999-09-27 08:24:36 +00:00
shaver%netscape.com ea329b2c77 properly unlock object, preventing ugly crash with |if (foo in noFoo)| 1999-09-27 06:04:54 +00:00
shaver%netscape.com 8b22629a75 Fix leak of native path in AutoRegisterComponents.
Save registry data for failed components.
Make the loader work again (fix suffix length and init crash).
Better error reporting.
1999-09-27 02:22:25 +00:00
kipp%netscape.com be6b1333d1 new 1999-09-25 20:11:47 +00:00
kipp%netscape.com 709be3f433 Init all variables, not just some of them 1999-09-25 20:07:20 +00:00
beard%netscape.com c8a74166b5 Fixed looking up 'length' property in Function objects: needed to look up prototype chain for zero arguments. Cleaned up some more, always storing Boolean.TRUE in local hash tables, rather than the method, methodKey or methodName. 1999-09-25 09:24:23 +00:00
beard%netscape.com d9a9d82316 Added ClassSignature, a key for caching generated adapter classes. Now passing superName, rather than superClass to constructor generation methods. 1999-09-25 08:11:24 +00:00
beard%netscape.com 82ff8f1cea Fixed generateSuper when override has void return type. 1999-09-25 01:37:32 +00:00
norris%netscape.com a600a94fa3 Shorten name to make Mac developers happy. 1999-09-24 21:05:41 +00:00
norris%netscape.com 9dbb033545 Patches from Kurt Westerfeld for JavaScript property access to JavaBeans.
Subject:
        Re: [Fwd: [Bug 13658] Changed - Rhino: null pointer exception on class with duplicate field/method]
   Date:
        Mon, 13 Sep 1999 20:57:32 -0400
   From:
        "Kurt Westerfeld" <kurt@westerfeld.com>
     To:
        "Norris Boyd" <norris@netscape.com>




I do have a patch for this, but it is intermixed with some other changes
that I have implemented for the get/set on Java instances (per my LC3
proposal).  The bug requires changes that are a little involved actually;
basically it seems that when getting the default value for a "field and
methods" (which combines the same-named entities), the prototype of the
parent scope is deref-ed, and the parent scope is null.  Hence, the scope
must be passed into the the cloned field and method values.

Also, the NativeJavaClass implementation passed "false" for isStatic on the
constructor of the FieldAndMethods Hashtable, which results in classes
having instance methods.  Bad.  I haven't filed a bug on that yet.
Additionally, I fixed a couple other NullPointerException nigglies thrown in
when exceptions are propagated in the same area.  Finally, when getting the
default value for the field, it is helpful to convert a Scriptable to string
when that is requested (as when typing in the console).

I am attaching the changed files.  The LC3++ code can be removed if you
want, which I can do for you but it will take a little longer.  What is your
preference?

-----Original Message-----
From: Norris Boyd <norris@netscape.com>
To: Kurt Westerfeld <kurt@westerfeld.com>
Date: Monday, September 13, 1999 4:54 PM
Subject: [Fwd: [Bug 13658] Changed - Rhino: null pointer exception on class
with duplicate field/method]


>Kurt,
>
>Is this the bug that your patch fixes?
>
>Thanks,
>Norris
>
1999-09-24 20:41:43 +00:00
norris%netscape.com 71bee08e21 Remove '.js' from SECTION. 1999-09-24 20:16:55 +00:00
norris%netscape.com e3ce18cbc8 Propagate files from old netscape code. 1999-09-24 20:05:59 +00:00
norris%netscape.com 4c9c27afaa Implement the "cast" of java class objects so that js objects in java adapters can
use 'this' for the implemented java interface.
1999-09-24 18:20:08 +00:00
beard%netscape.com 45eaa0a35f Added "generateSuper" which generates a method called "super$method()" which when called calls "super.method()." This is provided to support full sub-classing of Java classes from JavaScript. 1999-09-24 18:17:05 +00:00
beard%netscape.com 6c69fd36dc added a prototype field, so that a wrapped JavaAdapter can preserve the delegate object's original prototype chain. 1999-09-24 16:52:23 +00:00
beard%netscape.com d06b137123 setAdapterProto: now splices in wrapper's prototype, rather than replacing object's original prototype chain. seems to work fine. 1999-09-24 16:51:25 +00:00
mscott%netscape.com 0dc3695919 fix build bustage for dp. 1999-09-24 02:52:46 +00:00
dp%netscape.com c39d8df3c8 Fixing jsloader not to hold reference to component manager. (shaver)
Some initialization of members and checking at desctruction. (dp)
1999-09-24 01:37:44 +00:00
rogerl%netscape.com 8cb72034b7 New error for wacky array lengths, ECMA 3 1999-09-23 23:19:00 +00:00
cbegle%netscape.com 4074949318 update script to report an error if no tests passed. 1999-09-23 23:00:38 +00:00
cbegle%netscape.com 31047a3404 just changing the section name so it doesn't break norris's script. 1999-09-23 22:59:20 +00:00
norris%netscape.com 3d5cdd4959 Fix some Array tests in the ecma suite. 1999-09-23 20:37:56 +00:00
norris%netscape.com b48d0978c2 change FAILED color to red 1999-09-23 17:26:22 +00:00
norris%netscape.com 11308fecf0 Add test driver for rhino. 1999-09-23 17:24:14 +00:00
rogerl%netscape.com 84e2dbf549 Can't assume object in reportConversionError is scriptable, so call more
generic java.object.toString instead.
1999-09-22 22:06:14 +00:00
norris%netscape.com b21d1d574c Allow a java.lang.String to be converted to a primitive string in getDefaultValue 1999-09-22 16:30:49 +00:00
norris%netscape.com e798fcce86 Fix "wapper". 1999-09-22 16:25:21 +00:00
beard%netscape.com b4d5f900ca JavaAdapter no longer uses FlattenedObject, since the prototype is simply the LiveConnect wrapper. 1999-09-22 08:22:53 +00:00
beard%netscape.com ec3b77cdbb JavaAdapter no longer uses FlattenedObject, since the prototype is simply the LiveConnect wrapper. Simplified callMethod to only call Context.enter() if methodId property is defined in Scriptable object. 1999-09-22 08:22:47 +00:00
brendan%mozilla.org ec2936ce41 - Enable JS_HAS_NEW_OBJ_METHODS (Object.prototype.hasOwnProperty, isPrototypeOf
and propertyIsEnumerable) for JS1.5.
- Optimize obj_propertyIsEnumerable to avoid extra lookup code bloat, requiring
  fix to js_GetAttributes (unset out param on successful early retunr) that it
  exposed.
- Use more righteous else-if style in shaver's jsarray.c change.
1999-09-22 05:54:44 +00:00
shaver%netscape.com 45707b847c new Array("string") should be ["string"], not silent failure (14545, r=brendan) 1999-09-22 04:36:28 +00:00
beard%netscape.com fee310a6a7 renamed "name" parameter "adapterName", removed explicit StringBuffer in favor of "adapter" + serial++ for clarity. 1999-09-22 03:54:00 +00:00
shaver%netscape.com 1fe19c92b7 add componentType to nsIModule::RegisterSelf 1999-09-22 03:18:27 +00:00
beard%netscape.com 6aa5fe5fe6 changed createAdapterClass() to only generate methods for properties defined in the wrapped object itself, not for properties defined in prototypes. This makes sense, as the prototype for the wrapped object becomes the LiveConnect wrapper, thus prototype properties become inaccessible anyway. 1999-09-22 01:32:05 +00:00
shaver%netscape.com 46a740bd69 having evicted default.js from components/, we reclaim our *.js birthright 1999-09-21 22:10:03 +00:00