82 Commits

Author SHA1 Message Date
beard%netscape.com
8a6abe2247 JSFrame -> JSLinkage, using explicit linked list rather than a stack.
git-svn-id: svn://10.0.0.236/trunk@67165 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-26 01:42:00 +00:00
beard%netscape.com
2483f6c208 changed Context constructor to take JSObject* not JSObject&, to be able to control lifetime a little more carefully.
git-svn-id: svn://10.0.0.236/trunk@67068 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-25 03:32:53 +00:00
rogerl%netscape.com
c4747ce60e Added a beginning for exception handling.
git-svn-id: svn://10.0.0.236/trunk@66788 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-21 22:52:52 +00:00
rogerl%netscape.com
cf972ed7c0 Added labelled statements, fixed some VC++'isms
git-svn-id: svn://10.0.0.236/trunk@66617 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-21 00:37:51 +00:00
rginda%netscape.com
e7290871fc 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.


git-svn-id: svn://10.0.0.236/trunk@66611 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-21 00:04:14 +00:00
rogerl%netscape.com
41b94e7563 Removing variables.
git-svn-id: svn://10.0.0.236/trunk@66472 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-19 22:45:57 +00:00
rginda%netscape.com
e400e4c1b0 formatting changes. use only one tab regardless of nested namespaces
git-svn-id: svn://10.0.0.236/trunk@66317 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 21:51:45 +00:00
rginda%netscape.com
88784cab59 removed superfluous ;s after namespace decs.
git-svn-id: svn://10.0.0.236/trunk@66270 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 07:14:49 +00:00
rogerl%netscape.com
1bfac2ec9e Fixed WINDOZE build issues
git-svn-id: svn://10.0.0.236/trunk@66218 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 00:38:26 +00:00
rginda%netscape.com
570245f757 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)


git-svn-id: svn://10.0.0.236/trunk@66214 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 00:17:34 +00:00
beard%netscape.com
8f6ef04403 gc_base now used as common base class of GC allocated objects.
git-svn-id: svn://10.0.0.236/trunk@65771 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-13 04:54:41 +00:00
beard%netscape.com
9381029146 JSActivation, JSFunction
git-svn-id: svn://10.0.0.236/trunk@65597 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-11 05:11:58 +00:00
beard%netscape.com
975ce0edfa JSObject, JSArray : public JSMap, gc_object<T>. Frame -> JSFrame. Added JSFrameStack which is an std:stack<JSFrame*, std:vector<JSFrame*> >.
git-svn-id: svn://10.0.0.236/trunk@65592 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-11 03:11:00 +00:00
rogerl%netscape.com
1f60d50799 CALL opcode & frames etc. (r=beard)
git-svn-id: svn://10.0.0.236/trunk@65583 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-11 00:32:17 +00:00
beard%netscape.com
914d7a51de JSArray::elements(1), operator[](const JSValue&), fixed register-indexing.
git-svn-id: svn://10.0.0.236/trunk@65534 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 04:12:28 +00:00
beard%netscape.com
15070af13c NEW_ARRAY
git-svn-id: svn://10.0.0.236/trunk@65531 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 03:37:49 +00:00
beard%netscape.com
d19e518b56 added JSArray, GET_ELEMENT, SET_ELEMENT, changed some ops to dest/src.
git-svn-id: svn://10.0.0.236/trunk@65529 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 03:23:44 +00:00
rogerl%netscape.com
250e4699ba Fixed wacky tabs
git-svn-id: svn://10.0.0.236/trunk@65523 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 01:08:01 +00:00
rogerl%netscape.com
f8a5823b94 Added ICodeModule to collect extra info about executable chunks.
git-svn-id: svn://10.0.0.236/trunk@65522 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 01:04:55 +00:00
beard%netscape.com
bf8767518c reindented, introduced gc_map_allocator to hide platform differences
git-svn-id: svn://10.0.0.236/trunk@65520 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-08 00:52:59 +00:00
rogerl%netscape.com
b66a335e7f Re-ordered instructions so destination is always first.
Changed labels to be struct * instead of ints.


git-svn-id: svn://10.0.0.236/trunk@65510 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-07 22:19:36 +00:00
beard%netscape.com
7e5b3ffe33 JSObject and its elements now allocated using gc_allocator<T> (XP_MAC only).
git-svn-id: svn://10.0.0.236/trunk@65484 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-07 04:39:50 +00:00
beard%netscape.com
4543749474 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).
git-svn-id: svn://10.0.0.236/trunk@65476 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-07 02:52:07 +00:00
rogerl%netscape.com
8ea5e6aebd Changed compare/branch handling to determine last compare opcode.
Made returnStatement a member in ICG.


git-svn-id: svn://10.0.0.236/trunk@65450 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 22:40:17 +00:00
beard%netscape.com
826b63caba more arithmetic, conditional branches, return instruction.
git-svn-id: svn://10.0.0.236/trunk@65412 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 02:58:22 +00:00
rogerl%netscape.com
ce4eff7437 Resolved branch targets
git-svn-id: svn://10.0.0.236/trunk@65393 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 00:04:11 +00:00
beard%netscape.com
e1e3d42b75 removed usage of labels (duh)
git-svn-id: svn://10.0.0.236/trunk@65392 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 23:57:51 +00:00
rogerl%netscape.com
3580a148de typedef'd instructions
git-svn-id: svn://10.0.0.236/trunk@65389 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 23:41:58 +00:00
beard%netscape.com
e095d84ccd Added default case to avoid warning
git-svn-id: svn://10.0.0.236/trunk@65379 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 21:26:01 +00:00
beard%netscape.com
a91f66f391 added "globals", labels parameter for branches, combined some Instruction_N<> typedefs.
git-svn-id: svn://10.0.0.236/trunk@65377 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 20:33:41 +00:00
beard%netscape.com
caec52d10b linux fixes
git-svn-id: svn://10.0.0.236/trunk@65355 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 06:10:53 +00:00
beard%netscape.com
03f68d8e4f first crack at an icode interpreter
git-svn-id: svn://10.0.0.236/trunk@65353 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 06:05:57 +00:00