Commit Graph

237 Commits

Author SHA1 Message Date
jband%netscape.com
98c507c676 (not part of mozilla build) added source hook to jsdbgapi so that debugger can get clean access to source from jsscan when the JSFILE hack is used 1998-09-11 04:04:26 +00:00
brendan%netscape.com
7e8d72f13f Don't CHECK_BRANCH(len) in GOSUB (len must be > 0) or at all in RETSUB. 1998-09-10 20:46:37 +00:00
brendan%netscape.com
47030e2d0d - GOSUB pushes the next pc after it, not its own pc (tradition!) and RETSUB
sets pc to the unbiased result of the pop.
- Use #if JS_HAS_EXCEPTIONS in the decompiler, fiddle similar cosmetic stuff.
1998-09-10 20:42:26 +00:00
norris%netscape.com
c7e0b4fd28 Fix 312954 "monkey: on HPUX, special case failure when dividing by -0" 1998-09-10 20:27:16 +00:00
brendan%netscape.com
0b411ad632 - Added commentary for TOK_DEFSHARP nodes explaining pn_kid's purpose.
- Don't over-commend nearby #endifs at the expense of legibility.
1998-09-10 20:13:06 +00:00
brendan%netscape.com
123e68fe7a - Use JSBool for MatchChar's return type and values.
- Spacing nits.
1998-09-10 19:58:15 +00:00
brendan%netscape.com
a8df12702b Remove excessive JS_FRIEND_API uses; clean up nits. 1998-09-10 19:18:23 +00:00
shaver%netscape.com
92bca3301d clean up old assertions and remove vestigial tryLimit 1998-09-10 17:45:37 +00:00
shaver%netscape.com
23b7327ace fix memory leak 1998-09-10 14:56:58 +00:00
brendan%netscape.com
fa72057162 Need to prevent GC activation during compile on the compiling context, not
just when evaluating old-style switch case expressions.
1998-09-10 07:09:44 +00:00
brendan%netscape.com
c3830fe4eb Remove javaData, left over from original LiveConnect. 1998-09-09 19:20:07 +00:00
brendan%netscape.com
9b12b81ef6 Now that SRC_COMMA has been renamed to reflect its generality (SRC_PCDELTA),
and more important, to save a byte of useless note offset, use SRC_CONTINUE
instead of SRC_PCDELTA to annotate JSOP_ENDINIT when there's an extra comma
at the end of an array literal (e.g. [1,2,,]).
1998-09-09 19:18:01 +00:00
brendan%netscape.com
cacf641709 - Might as well use tempPool to arena-allocate collected_args as well as the
tokenstream in Function, to avoid calling malloc at all.
- But do check for malloc failure under PR_ARENA_ALLOCATE (the old call to
  JS_malloc was unchecked).
1998-09-09 10:02:12 +00:00
brendan%netscape.com
0b351f4c23 Fix tempPool bloat bugs in Function by mark/release around NewTokenStream. 1998-09-09 09:50:40 +00:00
brendan%netscape.com
1cf65e15ec - Don't cast malloc's return value, it's void *.
- Don't double-report a scanner error such as illegal character in
  Function("a@b", "return a*b")
- Do report a "malformed formal parameter" error in
  Function("a,b,", "return a*b")
- Fiddle comments to more precisely rule out the above bugs.
1998-09-09 09:27:56 +00:00
brendan%netscape.com
89c7bdee13 JSMSG_NO_FORMAL duplicated DUPLICATE_FORMAL, now is reborn as BAD_FORMAL. 1998-09-09 09:04:35 +00:00
brendan%netscape.com
a95987dd0b Improve TABLESWITCH comment precision and add XXX about JSVERSION_IS_ECMAv2. 1998-09-09 06:35:30 +00:00
brendan%netscape.com
0ef0c706ae Renamed SRC_COMMA to SRC_PCDELTA and fixed related comments. 1998-09-09 02:16:19 +00:00
brendan%netscape.com
6327319e0d Fix busted version check in JSOP_TABLESWITCH. 1998-09-09 02:01:52 +00:00
shaver%netscape.com
2e4590ec47 ToBoolean behaviour for all non-ECMA versions, not just 1.2 1998-09-08 20:59:19 +00:00
brendan%netscape.com
89d641ff37 Don't emit two SRC_HIDDENs in a row. 1998-09-08 18:26:37 +00:00
norris%netscape.com
c6b299a84d Fix bug: space was not allocated for terminal '\0' in string.
Spell "JavaScript" correctly.
1998-09-08 18:18:52 +00:00
brendan%netscape.com
aeb3f1e6b9 Oops! How did that ever work on my Win32 build? 1998-09-08 05:49:12 +00:00
brendan%netscape.com
347aaac8d3 js.c jsemit.c jsemit.h jsgc.c jsinterp.c jsopcode.c jsopcode.def
- Switch improvements:
  - JSOP_CONDSWITCH is a 1 byte nop, not variable length with the same kind
    of immediate operand as JSOP_LOOKUPSWITCH (which is useless except for
    decompilation).  New scheme uses SRC_COMMA notes on each JSOP_CASE opcode,
    usually 2 bytes per note, and a typically-1-byte 2nd offset on SRC_SWITCH:
      1 + 2 * ncases
    vs. the previous JSOP_LOOKUPSWITCH immediate, which consumed:
      4 * ncases
    bytes after the switch opcode just for decompilation.
  - SRC_SWITCH has two offsets, first to end of switch as before, the second
    to first case if JSOP_CONDSWITCH, for decompilation.
  - Optimize switches with all-constant cases using JSOP_TABLESWITH, or if
    that can't be used, JSOP_LOOKUPSWITCH, before falling back on ECMAv2's
    JSOP_CONDSWITCH.
  - Use cx->gcDisabled when evaluating case exprs at compile time for old,
    pre-ECMAv2 switches, to prevent branch-callback-based GC invocations
    from ripping apart the unrooted temporary script for each case expr.
  - Fixed up stale SRC_SWITCH comments in jsemit.h.

jsemit.c jsemit.h
  - TREE_CONTEXT_INIT to match ATOM_LIST_INIT, not English word order.
  - Reorganized JSCodeGenerator to sort of match argument order to
    js_InitCodeGenerator.
  - Got rid of confusing CG_RESET* macros and used memset(cg, 0, sizeof *cg)
    and non-zero-default init in js_InitCodeGenerator.  js_ResetCodeGenerator
    just releases the code and temp arena pools and leaves the cg in a state
    where it must be re-initialized (as before, but more obvious).
  - In the same spirit, don't do partial "resets" or src and trynotes in their
    js_FinishTaking*Notes functions -- those are friends of jsscript.c and are
    not general, idempotent functions.

jsapi.c jsapi.h jsarray.c jsatom.c jsatom.h jscntxt.c jsemit.c jsmsg.def
jsnum.c jsobj.c jsopcode.c jsregexp.c jsscan.c jsstr.c jsxdrapi.
  - Use PR_snprintf rather than sprintf always, so we don't have to worry
    about systems with 64-bit longs that overflow 12-byte buffers and open
    Morris-Worm-type security holes.
  - Trim extra spaces, fix hanging indentation, and similar anal retention.
  - Renamed JSMSG_BAD_PROTO_SORT to JSMSG_BAD_SORT_ARG cuz that's what it
    is complaining about.
  - SRC_CATCHGUARD still lived in comments, but it's SRC_CATCH in code.

jscntxt.c jscntxt.h jsinterp.c
  - Packed nearby JSPackedBools and added a new one: gcDisabled, for use by
    jsemit.c's pre-ECMAv2 switch case expr eval.
  - Rip out old js_InterpreterHooks stuff from original liveconnect (moja).
  - Remove javaData and savedErrors from JSContext.  Leaving it to fur or
    shaver to remove javaData from jsscript.h.
1998-09-08 05:39:51 +00:00
brendan%netscape.com
9d404730f1 Remove '(balance' comments, fix hanging indents, other nits. 1998-09-06 19:23:06 +00:00
brendan%netscape.com
93281b559a Fix switch comments, it's not a ternary node any longer. 1998-09-06 19:19:04 +00:00
brendan%netscape.com
310fe6513e - Use consistent spelling in the API: "Callback" not "CallBack" -- it's a one
word neologism, not two words.
- Use consistent neighboring terseness ("error" rather than "err" in intercaps
  identifiers).
- Don't leave pointers in JSErrorReport to freed memory if bailing on OOM in
  jscntxt.c:js_ExpandErrorArguments.
- Hanging indentation, code fusion via continue, and other misc. cleanups.
1998-09-06 08:07:35 +00:00
bjorn%netscape.com
a66b0a3f70 Added a missing read in ArenaAllocate. 1998-09-05 00:36:14 +00:00
bjorn%netscape.com
28404ccc8f Locks with almost no global locking. This will relieve contention. 1998-09-05 00:34:03 +00:00
shaver%netscape.com
9756611cdc fix ifdef breakage 1998-09-04 18:48:16 +00:00
norris%netscape.com
9ff1d1f26d Previous checkin was mistaken; back it out. 1998-09-04 00:47:22 +00:00
norris%netscape.com
984ac268fd Add support for ECMA switch statements. These are like LISP cond in that they
evaluate the case label each time.
Still to do is to optimize so that TABLESWITCH and LOOKUPSWITCH are created
when possible.
1998-09-04 00:45:21 +00:00
rogerl%netscape.com
801d3e6ac9 Removed redundant #undef 1998-09-03 22:50:55 +00:00
rogerl%netscape.com
4c0b7cffd9 New errorNumber handling.
Fixed bug #317398, for loop without condition wasn't decompiling the body
correctly since the first statement in that body was getting eaten by
mistake when trying to consume the condition expression.
1998-09-03 20:44:55 +00:00
rogerl%netscape.com
f4649b191c New errorNumber handling 1998-09-03 20:35:41 +00:00
rogerl%netscape.com
474bde20c3 New break-out of error message text from core engine 1998-09-03 20:33:32 +00:00
rogerl%netscape.com
6b0757f6fe New errorNumber handling 1998-09-03 20:29:37 +00:00
mccabe%netscape.com
30521bb1b0 Further exception work - added 'message' to the js_ErrorToException
call, and experimented with copying the original JSErrorReport into
private data.  Much of this to support a toString method for exception
objects.

It's not polished, but I wanted to get toString available quickly.
1998-09-02 20:01:34 +00:00
mccabe%netscape.com
5569d89bd7 Another platform!
Thanks go to Marc Fraioli <fraioli@dg-rtp.dg.com> for
the initial port of the js/ref standalone javascript
engine to DG/UX.
1998-09-02 08:19:31 +00:00
bjorn%netscape.com
501ca3dfad Added compare-and-swap patches for AIX (_check_lock) and Solaris (stbar). 1998-09-01 20:21:11 +00:00
shaver%netscape.com
a6a11ab6e9 if throwing, cx->exception is a valid root 1998-09-01 12:38:59 +00:00
mccabe%netscape.com
7505b29f0e restore npl. 1998-09-01 01:16:45 +00:00
mccabe%netscape.com
45051d3191 More runtime errors now bound to exceptions.
Most of these will require a second look, but I wanted to get all of
them (that need exceptions) throwing something interesting.
1998-09-01 01:15:16 +00:00
mccabe%netscape.com
91997034dc Further runtime error work... expose many new errors as catchable
exceptions.  Mostly syntax errors, so far.  Fixed missing #if
JS_HAS_ERROR_EXCEPTIONS
1998-08-31 09:49:43 +00:00
mccabe%netscape.com
25da47211e Added a call to js_ErrorToException to
the compile-error reporting mechanism,
providing a way to associate exceptions
(very likely SyntaxError exceptions)
with compile-time errors.

(Hopefully this is temporary, as I'd
prefer one central place in the
error-reporting process to put the
js_ErrorToException call.)

Also changed the error reporter in js.c
to only ignore error reports marked with
the JSREPORT_EXCEPTION advisory flag when
the error occurs during javascript execution.

If it's at the toplevel compilation
level, then the error is still reported
(and the exception discarded.)

The api is feeling slightly dirtier, but
it still seems like the best
compromise...
1998-08-31 08:17:40 +00:00
mccabe%netscape.com
b629e66f24 Added jsmsg.def to the list of files used by the
'make tar' target.
1998-08-31 07:33:13 +00:00
mccabe%netscape.com
c6028e15e4 Made the enum JSErrNum into a typedef
enum JSErrNum, and changed a uintN
errorNumber declaration to JSErrNum.

It'd be nice to change the uintN
errorNumber field in JSErrorReport to
JSErrNum, but it's not clear that
JSErrNum is or should be exposed in the
API.  Any C esthetes want to offer their
opinions?

It made my debugger slightly happier.
1998-08-31 07:07:26 +00:00
fur%netscape.com
b10cffdc67 Shane's makefiles 1998-08-29 03:04:11 +00:00
fur%netscape.com
252890a523 New file to deal with case of Java field and method with same name. 1998-08-29 03:03:51 +00:00
fur%netscape.com
bb196a6370 Error messages, in separate file for internationalization purposes. 1998-08-29 03:03:05 +00:00