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

2243 Коммитов

Автор SHA1 Сообщение Дата
beard%netscape.com a166644e29 Instruction::count(), Instruction::printOperands(), plus newly generated instruction classes. 2000-04-28 05:41:54 +00:00
beard%netscape.com 0dee053bef added jstypes.cpp 2000-04-28 05:40:42 +00:00
beard%netscape.com cf5bda1bec operator<<(Formatter&, const JSValue&) 2000-04-28 05:40:16 +00:00
beard%netscape.com dc524f8331 generates printOperands() 2000-04-28 05:39:27 +00:00
beard%netscape.com bc2e56b97c runs gencode.pl with MW Perl. 2000-04-28 05:39:04 +00:00
waldemar%netscape.com 192b3c45c8 Changed attributes and 'language' statement syntax, added interfaces, and removed ^*, ^?, |*, and |?. 2000-04-28 02:34:14 +00:00
rginda%netscape.com 5ab596c1c3 don't generate print_args if super_has_print
comment fixes
2000-04-28 02:33:36 +00:00
waldemar%netscape.com c0b3a0c99c Changed period to dot 2000-04-28 02:31:41 +00:00
waldemar%netscape.com ef5540e948 Fixed syntax of (bottom) 2000-04-28 02:30:44 +00:00
waldemar%netscape.com 5e5a923879 First Checked In. 2000-04-28 02:30:19 +00:00
rginda%netscape.com 9c217a25f0 moved comment so it made more sense 2000-04-28 02:26:14 +00:00
beard%netscape.com df05dec418 reordered inheritance graph of Linkage. 2000-04-28 02:23:08 +00:00
rginda%netscape.com 5701c02682 printarg stubbed out 2000-04-28 02:20:23 +00:00
beard%netscape.com 7293a17b91 testProto() 2000-04-28 01:43:03 +00:00
rogerl%netscape.com b28efe5b88 try/catch exercise changes 2000-04-28 00:11:18 +00:00
rogerl%netscape.com 11e9424ecd fixed bad constructor thing. 2000-04-28 00:10:22 +00:00
norris%netscape.com 927c1fe19b Propagate changes from 1.21.2.3 into tip. 2000-04-27 18:39:10 +00:00
rogerl%netscape.com 62485331a6 More exception handling handling. 2000-04-27 01:27:09 +00:00
norris%netscape.com cc8de52de5 Allow multiple uses of importClass on the same class. 2000-04-26 23:47:15 +00:00
norris%netscape.com c21f8c696f Fix bug 37317. 2000-04-26 23:33:25 +00:00
norris%netscape.com f1caa8664f Fix NullPointerException caused by clearing cache 2000-04-26 22:48:48 +00:00
beard%netscape.com 427dc1a8eb oops. 2000-04-26 22:10:20 +00:00
beard%netscape.com 758222941a removed JSMap::operator[], added set/getPrototype(). 2000-04-26 22:06:17 +00:00
beard%netscape.com 36a2941e26 oops getProperty() can't be const unless map.find() is used everywhere. 2000-04-26 21:48:04 +00:00
beard%netscape.com 94c129e6fd Using getProperty/setProperty rather than JSMap::operator[]. This follows the prototype chain. 2000-04-26 21:38:14 +00:00
beard%netscape.com c7426026d9 added JSMap::setProperty()/getProperty(), and a prototype field. 2000-04-26 21:27:44 +00:00
rginda%netscape.com a0058d1d8d initial add of debugger vapors 2000-04-26 06:04:02 +00:00
beard%netscape.com 77ef914838 Fixing windows bustage in Linkage. 2000-04-26 05:56:20 +00:00
beard%netscape.com 563b59ef15 fixing bug: js2.cpp:328: Internal compiler error in scope_die_for, at dwarf2out.c:7794 Please submit a full bug report. See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions. 2000-04-26 05:43:24 +00:00
beard%netscape.com 8a97a98204 testFactorial() now installs a Context::Listener to trace execution. 2000-04-26 05:37:00 +00:00
beard%netscape.com 4ae9bfec81 JSActivation -> Activation, JSLinkage --> Linkage. Linkage now implements the Context::Frame interface. Implemented simple Context::Listener support. 2000-04-26 05:35:07 +00:00
beard%netscape.com 36879f0ce5 Added Context::Frame, Context::Listener abstract classes. Initial support for debugger. 2000-04-26 05:29:35 +00:00
beard%netscape.com 4cb6fe2a7b JSFrame -> JSLinkage, using explicit linked list rather than a stack. 2000-04-26 01:42:00 +00:00
beard%netscape.com 9b7ed9578b removed intentionally private JSActivation/JSFrame types. The debugger should be able to ask questions of the interpreter to obtain this information. 2000-04-26 01:39:56 +00:00
jband%netscape.com 7e27d3faff be less aggresive in shutdown cleanup to avoid shutdown crashes. See bug 37058 for an example stack. 2000-04-25 07:26:02 +00:00
jband%netscape.com f7dc9f09e9 release the threadcontextstack to avoid a shutdown leak 2000-04-25 04:59:21 +00:00
jband%netscape.com 42defd8cf1 Cleanup at shutdown the JSContexts that xpconnect manages on a per thread basis. This should fix some shutdown leaks. 2000-04-25 04:57:32 +00:00
beard%netscape.com 27fc318bb1 changed Context constructor to take JSObject* not JSObject&, to be able to control lifetime a little more carefully. 2000-04-25 03:32:53 +00:00
beard%netscape.com 6a4bca91fe warning removal 2000-04-25 03:28:41 +00:00
beard%netscape.com 39551bc785 fixing mac bustage (we do reference argc/argv, to initialize them to something sensible). 2000-04-25 02:58:30 +00:00
beard%netscape.com 9d7aed4cd0 renamed not() -> complement() (not is a keyword in C++), implemented complement(). 2000-04-25 02:55:08 +00:00
brendan%mozilla.org 99896c816a Final destroy-context must await racing GCs before freeing atom state (32525, r=jband). 2000-04-25 01:12:36 +00:00
rogerl%netscape.com 1b75c7efbb Fixes for handling missing params. 2000-04-24 22:40:53 +00:00
rginda%netscape.com 5edf52ba65 adding comments 2000-04-24 21:43:49 +00:00
rginda%netscape.com 5945808db5 NotARegister check in GenericBranch::print() 2000-04-24 20:08:16 +00:00
norris%netscape.com 45ea2bb652 Patch from Matthias Radestock <rade@logee.com>:
Subject:
             JavaAdapter return type conversion
        Date:
             Wed, 19 Apr 2000 12:12:47 +0100
       From:
             Matthias Radestock <rade@logee.com>
 Organization:
             Logee
         To:
             norris@netscape.com
         CC:
             mccabe@netscape.com, beard@netscape.com, rogerl@netscape.com




Dear Rhino team,

When returning an array from a scripted Java object (i.e. a JS object
that implements a Java interface), no type conversion is performed, ie.
a NativeArray is returned instead of a Java array. Example:

Java:
interface Foo {
        public String[] boo();
        }

JS:
FooI = {
        boo: function() { return ["Boo"];}
        }
myFoo = new Packages.Foo(FooI);
myFoo.boo(); //==> breaks with a ClassCastException


Looking at the JavaAdapter code, there is no code for array conversion.
This is particularly bad because precisely such a conversion *does*
happen when calling a Java method from JS. So we end up with a
discrepancy.

See attachment for a patch to fix this and little test program. The
patch works by calling the coerceType function on NativeJavaObject,
which is the function responsible for doing the conversion when calling
from JS to Java. I've simplified the code so that this function gets
called for all non-primitive return type, not just arrays. There are
probably more efficient solutions but I'm not a Java bytecode hacker.


Matthias
PS: I didn't open a bug for this because I wasn't sure whether you guys
would agree that this is indeed a problem ;)





public interface JSReturnTest {

  public boolean returnBoolean();
  public char returnChar();
  public int returnInt();
  public String returnString();
  public org.mozilla.javascript.Scriptable returnScriptable();
  public Object returnObject();
  public boolean[] returnBooleanA();
  public char[] returnCharA();
  public int[] returnIntA();
  public String[] returnStringA();
  public org.mozilla.javascript.Scriptable[] returnScriptableA();
  public Object[] returnObjectA();
  public Object[][] returnObjectAA();
}




Index: JavaAdapter.java
===================================================================
RCS file: /cvsroot/mozilla/js/rhino/org/mozilla/javascript/JavaAdapter.java,v
retrieving revision 1.21
diff -r1.21 JavaAdapter.java
54c54,59
<
---
>
>     public static Object convertResult(Object result, String classname)
>     throws ClassNotFoundException {
>         return NativeJavaObject.coerceType(Class.forName(classname),
>                                            result);
>     }
467,474c472,474
<         } else  if (retType.equals(String.class)) {
<             cfw.add(ByteCode.INVOKESTATIC,
<                     "org/mozilla/javascript/Context",
<                     "toString", "(Ljava/lang/Object;)",
<                     "Ljava/lang/String;");
<             cfw.add(ByteCode.ARETURN);
<         } else if (retType.equals(Scriptable.class)) {
<             cfw.add(ByteCode.ALOAD_0);  // load 'this' to find scope from
---
>         } else {
>             String retTypeStr = retType.getName();
>             cfw.addLoadConstant(retTypeStr);
476,477c476,477
<                     "org/mozilla/javascript/Context",
<                     "toObject",
---
>                     "org/mozilla/javascript/JavaAdapter",
>                     "convertResult",
479,500c479,480
<                      "Lorg/mozilla/javascript/Scriptable;)",
<                     "Lorg/mozilla/javascript/Scriptable;");
<             cfw.add(ByteCode.ARETURN);
<         } else {
<             // If it is a wrapped type, cast to Wrapper and call unwrap()
<             cfw.add(ByteCode.DUP);
<             cfw.add(ByteCode.INSTANCEOF, "org/mozilla/javascript/Wrapper");
<             // skip 3 for IFEQ, 3 for CHECKCAST, and 5 for INVOKEINTERFACE
<             cfw.add(ByteCode.IFEQ, 11);
<             cfw.add(ByteCode.CHECKCAST, "org/mozilla/javascript/Wrapper");
<             cfw.add(ByteCode.INVOKEINTERFACE,
<                     "org/mozilla/javascript/Wrapper",
<                     "unwrap", "()", "Ljava/lang/Object;");
<
<             // If Undefined, return null
<             cfw.add(ByteCode.DUP);
<             cfw.add(ByteCode.INSTANCEOF, "org/mozilla/javascript/Undefined");
<             // skip 3 for IFEQ, 1 for ACONST_NULL, 1 for ARETURN
<             cfw.add(ByteCode.IFEQ, 5);
<             cfw.add(ByteCode.ACONST_NULL);
<             cfw.add(ByteCode.ARETURN);
<
---
>                     "Ljava/lang/String;)",
>                     "Ljava/lang/Object;");
502,503c482
<             String retTypeStr = retType.getName().replace('.', '/');
<             cfw.add(ByteCode.CHECKCAST, retTypeStr);
---
>             cfw.add(ByteCode.CHECKCAST, retTypeStr.replace('.', '/'));



   testpatch.js

               Name:
                     testpatch.js
                Type:
                     JavaScript Program (application/x-javascript)
             Encoding:
                     7bit
2000-04-24 19:36:51 +00:00
rginda%netscape.com 66299105f3 quieting linux warnings 2000-04-24 18:41:05 +00:00
jband%netscape.com 04051a0da0 belt and suspenders check of WITH_SERVICE results 2000-04-23 23:04:40 +00:00
jband%netscape.com c9fbfe6b3f fix a dangerous looking (but harmless) warning on Mac opt 2000-04-22 01:06:42 +00:00
rogerl%netscape.com f516a5722d Added a beginning for exception handling. 2000-04-21 22:52:52 +00:00
mccabe%netscape.com b83e22e2ea Fix to 23532. Check validity of JS_ARENA_ALLOCATE call before using it as an argument of memcpy in JS_ArenaGrow.
Thanks to wyeung@real.com for noticing we were being unsafe here and suggesting the fix.
2000-04-21 09:25:43 +00:00
brendan%mozilla.org c4dc0a590b Spruce up a couple of comments. 2000-04-21 01:49:49 +00:00
brendan%mozilla.org c65d2d6a93 Functions that use unqualified __parent__ or __proto__ must be heavyweight (36625, r=shaver). 2000-04-21 01:47:20 +00:00
rginda%netscape.com d6c8ec2a89 Add nsIScriptError.idl. Build it here rather than back in xpfe/components/console. Checkin by McCabe, on rginda's mac. 2000-04-21 00:57:27 +00:00
rogerl%netscape.com ca67259713 oops 2000-04-21 00:46:48 +00:00
rogerl%netscape.com 5e238bd7a5 Added labelled statements, fixed some VC++'isms 2000-04-21 00:37:51 +00:00
rginda%netscape.com 7615ee9226 icodegenerator.cpp
add m prefix to base and offset label members

interpreter.cpp,h
dual license
wrap interpret in a Context class
add RETURN_VOID case

js2.cpp
update to use context class
remove #if 0 code that'll probably never be used anyway.

jstypes.h
add defineProperty/function to JSObject

vmtypes.h
regerated opcode classes:
  added RETURN_VOID, removed LOAD/SAVE_VAR
  reverted bacl to the smaller print function (thanks to RETURN_VOID)
  fixed branch printing issue
  inherit print() from super if possible

tools/gencode.pl
generate smaller print functions again
don't generate print function if superclass can take care of it.
2000-04-21 00:04:14 +00:00
norris%netscape.com 0bca489fe4 Clean up new methods. 2000-04-20 23:08:07 +00:00
beard%netscape.com d7ad5021eb Simple dependency tracking with make depend target. 2000-04-20 23:02:19 +00:00
rogerl%netscape.com 215b1e19c7 Added ASSERT cases to FixNext child handling. 2000-04-20 23:00:37 +00:00
beard%netscape.com 30971c4c45 Simple dependencies list. Rebuilt with make depend target. 2000-04-20 22:58:23 +00:00
norris%netscape.com 35a0af1014 Fix build error. 2000-04-20 22:36:46 +00:00
norris%netscape.com e8b7e89546 Subject:
contextClassloader problem in ScriptRuntime.java
   Date:
        Tue, 11 Apr 2000 09:45:36 -0400
   From:
        "Howard Lin" <howard@softcom.com>
     To:
        "Norris Boyd" <norris@netscape.com>
    CC:
        "Andrew Wason" <aw@softcom.com>




Hi, Norris, we are trying to create a Java class in JavaScript. When security manager is on, everything works fine. But when security
manager is off, we got an error saying the "... is not defined". The problem is that in ScriptRuntime.java, when security is on,
getContextClassLoader is null due to SecurityException and Class.forName is used to find the class, which works fine. When security
is off, ContextClassLoaderMethod is invoked to find the class. Since we use a separate thread to load third party jar files,
ContextClassLoaderMethod will throw a ClassNotFound exception.

To illustrate this problem, I wrote a simple applet, evaluating a simple js file in its paint method, which is running on a separate thread.
When security is off, I got the following:

ReferenceError: "Global" is not defined.
        at org.mozilla.javascript.NativeGlobal.constructError(NativeGlobal.java:
494)
        at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java, Compile
d Code)
        at org.mozilla.javascript.Interpreter.interpret(Interpreter.java, Compil
ed Code)
        at org.mozilla.javascript.InterpretedScript.call(InterpretedScript.java:
67)
        at org.mozilla.javascript.InterpretedScript.exec(InterpretedScript.java:
54)
        at org.mozilla.javascript.Context.evaluateReader(Context.java:739)
        at test.evaluate(test.java:26)
        at test.paint(test.java:16)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:117)
        at java.awt.Component.dispatchEventImpl(Component.java:2447)
        at java.awt.Container.dispatchEventImpl(Container.java:1035)
        at java.awt.Component.dispatchEvent(Component.java:2307)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:287)
        at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:10
1)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:92)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:83)

When security is on, it runs fine. Or if the code moved to init method, it works fine regardless of security. We are using JDK 1.2.2.

Howard
2000-04-20 19:53:16 +00:00
jband%netscape.com 9b08d1ac85 Had the wrong clazz for the root! So it was better when the caching was broken. Now it works on MI objects with caching fixed. My bad copy/paste error from long ago. 2000-04-20 12:16:45 +00:00
jband%netscape.com 9c1badb1ca backing out little fix from earlier today because it causes crashes in some MI cases. I'll investigate and do the right fix 2000-04-20 11:06:48 +00:00
brendan%mozilla.org 3d6de092fd Check access and redeclaration legality when defining a getter/setter (36117, r=norris) 2000-04-20 07:10:14 +00:00
beard%netscape.com 9acaa398fe removed extraneous semi-colons after namespace declarations. 2000-04-20 06:20:31 +00:00
beard%netscape.com bb0348e64d warnings: commented out unused parameter name. 2000-04-20 06:19:43 +00:00
jband%netscape.com d727af1bbe fix typo bug that was causing wrapper cache misses on wrapper around objects implementing multiple interfaces when the first wrapper is made for an interface that is not leftmost 2000-04-20 03:38:47 +00:00
norris%netscape.com 62efd62f19 Add line number information. 2000-04-19 23:24:04 +00:00
rogerl%netscape.com 5199f6e49c Removing variables. 2000-04-19 22:45:57 +00:00
rogerl%netscape.com 772eb43e2e Added hasOwnProperty, propertyIsEnumerable, isPrototypeOf to Object. 2000-04-19 22:32:50 +00:00
rogerl%netscape.com 7b7fc3829f Began moving away from variables, fixed compare/branch ordering.
Testcases working.
2000-04-19 02:09:06 +00:00
scc%netscape.com 995abb7f46 making string conversions explicit 2000-04-18 23:53:10 +00:00
rginda%netscape.com 3a06b96f97 formatting changes. use only one tab regardless of nested namespaces 2000-04-18 21:51:45 +00:00
norris%netscape.com 5b52db907b Add missing method for 1.4R3 compatibility. 2000-04-18 16:53:28 +00:00
norris%netscape.com 1931f31f5b Fix bug where a bean property can conflict with a method name. 2000-04-18 16:52:00 +00:00
norris%netscape.com f10587a521 Fix bug:
var a = Math.abs;
  a(-245);

  gets the following error :

  org.mozilla.javascript.EvaluatorException: Method "abs" called on
  incompatible object.
2000-04-18 16:34:36 +00:00
rginda%netscape.com 1952e14ff8 removed superfluous ;s after namespace decs. 2000-04-18 07:14:49 +00:00
rginda%netscape.com 531ede4f17 regenerated opcode classes after grncode.pl changes 2000-04-18 07:06:25 +00:00
rginda%netscape.com 33d0848741 modified to print R~ if NotARegister 2000-04-18 07:04:24 +00:00
dp%netscape.com 366ecea0fc Implemented component unregister. 2000-04-18 05:26:40 +00:00
mccabe%netscape.com 4c637c806e added files: mozilla/js/src/xpconnect/src/nsScriptError.cpp 2000-04-18 02:35:06 +00:00
mccabe%netscape.com b93c689e66 Move nsIConsoleService and implementation into xpcom/base, and nsIScriptError and implementation into js/src/xpconnect. (A place for JavaScript-specific XPCOM would be better, but xpconnect will do). 2000-04-18 02:34:54 +00:00
rogerl%netscape.com fce9fa62b1 added '(' for RegisterList output 2000-04-18 01:46:32 +00:00
rginda%netscape.com 8ac24b9045 regenerated opcodenames to include padding, added label printing back into icg::print 2000-04-18 01:31:24 +00:00
rginda%netscape.com b0eca07a47 space out opcodenames array 2000-04-18 01:19:12 +00:00
beard%netscape.com 52d7e01394 std::pair 2000-04-18 00:52:07 +00:00
beard%netscape.com 7add6915a1 moved initConsole() out to :: namespace. 2000-04-18 00:51:53 +00:00
beard%netscape.com c18125076f added vmtypes.h,.cpp 2000-04-18 00:50:58 +00:00
rogerl%netscape.com f163805c99 added vmtypes/jstypes 2000-04-18 00:46:18 +00:00
rogerl%netscape.com 0e17feea55 Fixed WINDOZE build issues 2000-04-18 00:38:26 +00:00
rginda%netscape.com 73017de6a1 initial add of perl script to generate icode classes 2000-04-18 00:22:51 +00:00
rginda%netscape.com 5a6fd84159 removing bogus file 2000-04-18 00:20:10 +00:00
rginda%netscape.com 0fac613959 adding files for namespace change 2000-04-18 00:19:09 +00:00
rginda%netscape.com 66cb26879d added js::VM, ICG, JSTypes, and Interpreter namespaces; messed around with lots of code.
Created class for each ICode, adding a print() method (using formatters)
2000-04-18 00:17:34 +00:00
beard%netscape.com 02798c9177 FASTLOCK changes. 2000-04-17 23:58:28 +00:00
braddr%puremagic.com 97d2f19960 Implicit types are evil. Add PRUint32.
r=mccabe
2000-04-16 00:21:07 +00:00
jband%netscape.com 70c7e60b98 add a test with an 'out' array of strings 2000-04-15 18:44:22 +00:00
mccabe%netscape.com 73dd1ab098 Print error diagnostics to stderr even when non-debug, to support those folks
that want to debug with the -console flag.
2000-04-15 06:59:21 +00:00
brendan%mozilla.org ec5a9e9229 Always call resolve for each object in a prototype chain (35738, r=shaver). 2000-04-15 02:01:02 +00:00
shaver%mozilla.org 024dad8f12 Replace stupid and evil BYTECODE_ITER hack with proper use of back-patch
chained PatchGotos goodness.  (PatchGotos seasoned to taste.)
r=brendan
2000-04-14 23:27:09 +00:00
norris%netscape.com a3caa18f07 Fix
28390, 28866, 34364
r=brendan@mozilla.org
35701
r=jst@netscape.com
2000-04-14 03:14:53 +00:00
rogerl%netscape.com 1e558f10e2 Fxied oboscure bug when user defines function Object(), the next new Object
gets a stack crash looking for the prototype. (bug #32174)
2000-04-13 17:58:18 +00:00
beard%netscape.com e82b4e2532 gc_base now used as common base class of GC allocated objects. 2000-04-13 04:54:41 +00:00
beard%netscape.com 56d97a71e9 added gc_base, which defines a more generic operator new(). 2000-04-13 04:53:56 +00:00
beard%netscape.com d92905d034 builds gc 2000-04-13 00:37:00 +00:00
beard%netscape.com 1468acd8d1 Added gc_allocator.h to project and gc.lib to link against. 2000-04-13 00:28:40 +00:00
beard%netscape.com a1bed20974 linking in gc.lib from ../../gc/boehm 2000-04-13 00:16:58 +00:00
beard%netscape.com 2922707730 enabling GC on all platforms 2000-04-13 00:14:23 +00:00
norris%netscape.com 1316603f7b Fix bug 33841. 2000-04-12 17:30:32 +00:00
norris%netscape.com 5999d2b51d Remove obsolete statement from javadoc. 2000-04-11 18:24:08 +00:00
norris%netscape.com eda51b9f12 Update javadoc 2000-04-11 18:22:36 +00:00
beard%netscape.com 12ccc48ec4 JSActivation, JSFunction 2000-04-11 05:11:58 +00:00
beard%netscape.com 95604b5bff Added JSFunction, defineFunction() 2000-04-11 05:10:40 +00:00
beard%netscape.com c721ec102b defineFunction, added assert 2000-04-11 05:09:38 +00:00
beard%netscape.com b574e77f13 _Charalloc, deallocate(void*) for _WIN32 only 2000-04-11 04:55:27 +00:00
beard%netscape.com 92ec71fb35 defineGlobalProperty 2000-04-11 03:11:47 +00:00
beard%netscape.com af1f41fb7d JSObject, JSArray : public JSMap, gc_object<T>. Frame -> JSFrame. Added JSFrameStack which is an std:stack<JSFrame*, std:vector<JSFrame*> >. 2000-04-11 03:11:00 +00:00
beard%netscape.com 8ef180ab04 use gc_allocator<T> everywhere, addGlobalProperty -> defineGlobalProperty 2000-04-11 03:07:39 +00:00
beard%netscape.com 2930dfd621 removed commented out GET_PROP/SET_PROP. 2000-04-11 02:59:52 +00:00
beard%netscape.com 8bd406efae added gc_object. 2000-04-11 02:59:14 +00:00
beard%netscape.com f7fdcbff8b fixing an assert and warnings 2000-04-11 01:10:26 +00:00
rogerl%netscape.com 2757a2004e CALL opcode & frames etc. (r=beard) 2000-04-11 00:32:17 +00:00
waldemar%netscape.com 84bdf052ab Fixed delete/delete[] mismatch 2000-04-10 22:23:17 +00:00
waldemar%netscape.com d1e89106de Fixed memory leak 2000-04-10 22:20:00 +00:00
beard%netscape.com 1edba28c48 Fixed warnings about member initializers on Linux. Whatever. 2000-04-08 04:49:41 +00:00
beard%netscape.com 14a585783b Reduced size of args arrays to minimum. 2000-04-08 04:41:19 +00:00
beard%netscape.com 138afee3b4 Reordered parameters to getProperty()/setProperty() to be consistent with operand ordering. Added array allocation/indexing to testObjects(). 2000-04-08 04:15:02 +00:00
beard%netscape.com 6337059f6f JSArray::elements(1), operator[](const JSValue&), fixed register-indexing. 2000-04-08 04:12:28 +00:00
beard%netscape.com f589a1ab24 Fixed NEW_ARRAY, GET_ELEMENT, SET_ELEMENT printing., 2000-04-08 04:11:16 +00:00
beard%netscape.com 8c93fb3d06 NEW_ARRAY 2000-04-08 03:37:49 +00:00
beard%netscape.com 0822793571 Reordered GetProp/SetProp operands to base, name. Added NewArray, GetElement, SetElement instructions. 2000-04-08 03:37:18 +00:00
beard%netscape.com afd93b4e07 added JSArray, GET_ELEMENT, SET_ELEMENT, changed some ops to dest/src. 2000-04-08 03:23:44 +00:00
beard%netscape.com 468bc29100 added JSArray, comments. 2000-04-08 02:44:34 +00:00
beard%netscape.com 95cb0e8b9d Changed boilerplate, chmod -x 2000-04-08 02:29:07 +00:00
beard%netscape.com 010a45313a converted NotALabel to an enum, so it obeys proper scoping rules. 2000-04-08 02:25:37 +00:00
rogerl%netscape.com 5e55242311 added interpreter & icodegenerator 2000-04-08 01:09:50 +00:00
rogerl%netscape.com e60b5c26e9 Fixed wacky tabs 2000-04-08 01:08:01 +00:00
rogerl%netscape.com d26609534d Added ICodeModule to collect extra info about executable chunks. 2000-04-08 01:04:55 +00:00
beard%netscape.com bda3717ce9 fixed LoadImmediate. 2000-04-08 00:57:28 +00:00
beard%netscape.com 895fa664c4 reindented, introduced gc_map_allocator to hide platform differences 2000-04-08 00:52:59 +00:00
beard%netscape.com 7810a0856a conforming to MSVC++ allocators 2000-04-08 00:48:13 +00:00
rogerl%netscape.com ad01c0a3c9 Re-ordered instructions so destination is always first.
Changed labels to be struct * instead of ints.
2000-04-07 22:19:36 +00:00
rogerl%netscape.com 6b29288692 fix invalid return in GC_free for win32 build 2000-04-07 21:58:33 +00:00
rginda%netscape.com a475c7a48a #if out references to std::iterator to get gcc to compile 2000-04-07 21:11:40 +00:00
beard%netscape.com 89b42085ab printing code in testObjects(). 2000-04-07 04:59:57 +00:00
beard%netscape.com d5333de9ec added code to print SAVE_NAME, NEW_OBJECT, GET_PROP, and SET_PROP iCodes. 2000-04-07 04:58:58 +00:00
beard%netscape.com a1ce56851a JSObject and its elements now allocated using gc_allocator<T> (XP_MAC only). 2000-04-07 04:39:50 +00:00
beard%netscape.com 3f67d58724 JSValues now using gc_allocator (XP_MAC only for now). 2000-04-07 04:38:18 +00:00
beard%netscape.com 2800c15275 added gc library. 2000-04-07 04:36:38 +00:00
beard%netscape.com 22d99fdce4 prebuilt gc library for bootstrapping. 2000-04-07 04:35:14 +00:00
beard%netscape.com ca07212aa6 added stub implementations of GC entry points. 2000-04-07 04:00:21 +00:00
beard%netscape.com d7fa1b7fe2 added failed gc_rebind, for future compilers to ponder. 2000-04-07 03:11:38 +00:00
beard%netscape.com 1a2406676c duh, can't use wide string constants on Linux 2000-04-07 03:08:20 +00:00
beard%netscape.com 26a073ebc4 XP_MAC: no longer auto close upon exit (so we can see asserts, etc.). Renamed testInterpreter() to testFactorial(). Added testObjects(), which allocates an object, stores it in the global variable "global", assigns 0.0 to "global.counter", and finally defines a function "increment" which adds 1.0 to "global.counter" each time it is called. 2000-04-07 02:58:01 +00:00
beard%netscape.com 781aff8cd6 Added preliminary object representation class JSObject, which is simply an STL map<String, JSValue> for now. Changed static globals to be a JSObject (can you say scope chain?). Implemented NEW_OBJECT, GET_PROP, and SET_PROP, all in terms of operations provided by JSObject. No GC (yet). 2000-04-07 02:52:07 +00:00
beard%netscape.com 53882505b5 added forward declaration to class JSObject, and changed void* JSValue.ref to JSObject* JSValue.obj. 2000-04-07 02:47:53 +00:00
beard%netscape.com 59f99c863e fix calls to template superclass for gcc 2000-04-07 02:45:33 +00:00
beard%netscape.com dab8f50344 added NEW_OBJECT instruction. unified typedef GetProp, SetProp. changed typedef Return to class Return, added class NewObject. These classes automatically pass their opcode to their base-class, and look better in the debugger. Added a virtual destructor to Instruction() #ifdef DEBUG. Added newObject(), saveName() and setProperty() methods to ICodeGenerator. 2000-04-07 02:41:21 +00:00
beard%netscape.com 9c646bbafc added newObject(), saveName() and setProperty(). 2000-04-07 02:41:08 +00:00
waldemar%netscape.com 14b0eb8f01 Worked around Visual C++ bugs 2000-04-07 00:47:39 +00:00
beard%netscape.com f973ddc215 needed to qualify isFieldKind 2000-04-07 00:24:42 +00:00
beard%netscape.com bfe503795f adding int to printCharBufferSize 2000-04-07 00:23:33 +00:00
waldemar%netscape.com 56188bfaae Fixed Mac MPW build 2000-04-07 00:06:05 +00:00
rginda%netscape.com d4b296f0f9 fix to include java version info on rhino(i|ms|msi) engines 2000-04-07 00:05:50 +00:00
waldemar%netscape.com 709bb0562d Made Mac MPW js2 tool work 2000-04-07 00:05:23 +00:00
waldemar%netscape.com 7523109fc4 Added Buffer, BitSet, and implemented Formatters for output 2000-04-06 23:48:05 +00:00
waldemar%netscape.com f9ce82ae8e Implemented Formatters for output 2000-04-06 23:47:33 +00:00
waldemar%netscape.com 5d892e7bf7 Implemented Formatters for output and added parseMember 2000-04-06 23:45:58 +00:00
waldemar%netscape.com 66d8f5244f Fixed syntax errors 2000-04-06 23:43:08 +00:00
waldemar%netscape.com 182fc056f3 Commented out syntax error 2000-04-06 23:40:47 +00:00
rogerl%netscape.com dcbc9904da Changed compare/branch handling to determine last compare opcode.
Made returnStatement a member in ICG.
2000-04-06 22:40:17 +00:00
rginda%netscape.com 5ef5dcbc26 punctuation fix 2000-04-06 21:50:03 +00:00
rginda%netscape.com 83d124c38c -- NOT PART OF THE DEFAULT BUILD --
Added -c (stackchunksize) option to the js shell, for testing purposes
r=pschwartau
2000-04-06 21:19:56 +00:00
rginda%netscape.com 6a5c93bd51 added -o/--opt options to pass args to js engine 2000-04-06 21:14:23 +00:00
rginda%netscape.com b4eab2df18 remove +x mode.
Not part of the default build.
2000-04-06 20:27:22 +00:00
beard%netscape.com bed1820c51 Added interpreter.o to build of js2. 2000-04-06 03:05:12 +00:00
beard%netscape.com efcd4404fa cases for SUBTRACT, MULTIPLY, DIVIDE in print(). 2000-04-06 03:02:24 +00:00
beard%netscape.com 6e423dece1 added testInterpreter(), which computes factorial using iCode (woo hoo!) 2000-04-06 02:59:16 +00:00
beard%netscape.com 602bdc5282 more arithmetic, conditional branches, return instruction. 2000-04-06 02:58:22 +00:00
beard%netscape.com a57994c317 added new instructions, SUBTRACT, MULTIPLY, DIVICE, BRANCH_*, and RETURN. Changed LoadVar/SaveVar to have uint32 operand. Added optional paramter branchOp to ICodeGenerator::branchConditional() & endWhileExpression() to parametrize branch kind. Added complete(Register) to generate a RETURN instruction. 2000-04-06 02:57:42 +00:00
beard%netscape.com 2901700dc5 added a ref field, changed default constructor to initialize f64. 2000-04-06 02:52:51 +00:00
rogerl%netscape.com 047b74d5c6 Resolved branch targets 2000-04-06 00:04:11 +00:00
beard%netscape.com f1388bf5a6 removed usage of labels (duh) 2000-04-05 23:57:51 +00:00
rogerl%netscape.com d5b0b5bc32 typedef'd instructions 2000-04-05 23:41:58 +00:00
beard%netscape.com 76e3fd2f85 Added default case to avoid warning 2000-04-05 21:26:01 +00:00
beard%netscape.com 528d7eb22f added "globals", labels parameter for branches, combined some Instruction_N<> typedefs. 2000-04-05 20:33:41 +00:00
beard%netscape.com 9a69888729 added labels parameter. 2000-04-05 20:29:09 +00:00
beard%netscape.com 391d9767eb added Instruction::opcode(), and Instruction_N::oN(), and ICodeGenerator::getLabels(). 2000-04-05 20:28:17 +00:00
beard%netscape.com 59cf8293ac moved declaration of lgBasicAlignment & basicAlignment inside the include guard. 2000-04-05 20:26:49 +00:00
rogerl%netscape.com c0c155dec7 added missing semi in win32 case 2000-04-05 18:20:02 +00:00
beard%netscape.com 96f9207cc7 added interpreter.cpp/.h 2000-04-05 18:06:04 +00:00
brendan%mozilla.org eb7b547e77 Fix 22048 and 33391 (see bugs for details; r=jband@netscape.com). 2000-04-05 06:39:11 +00:00
beard%netscape.com 8a75ea3668 linux fixes 2000-04-05 06:10:53 +00:00
beard%netscape.com ab11ac751b first crack at an icode interpreter 2000-04-05 06:05:57 +00:00
beard%netscape.com 932ecf336b turned off '\n' -> '\r' mapping 2000-04-05 04:25:51 +00:00
beard%netscape.com 2ff22a0e79 backed out "fix" (thanks waldemar) 2000-04-05 04:24:19 +00:00
beard%netscape.com 91135e142e removed newline mapping code (instead using compiler mapping of '\n' to '\r' in literals, which should do the right thing). 2000-04-05 03:57:57 +00:00
beard%netscape.com a5e6536104 added JS2MPW target (non-debug), converted MPW targets to do newline mapping (rather than using explicit override functions). 2000-04-05 03:56:34 +00:00